windows下利用open62541处理UaModeler生成的XML文件

这篇文章里介绍了UaModeler的安装、ubuntu环境下使用open62541处理XML、以及OPC UA Server代码的部分。

基于这位大佬的教程,我在windows下试了同样的操作,第二部分有些不同,记录下来,有需要的朋友可以做个参考。下面只介绍和上面文章不同的第二部分。

使用open62541处理XML

1. 配置open62541

首先,需要对open62541进行配置。原文章里说直接在open62541源码目录下执行

git submodule update --init

我自己是从网上下的open62541源码,单用这句试了很久不成功。

具体操作:

  1. 首先要下载git bash,比较好执行后面的操作。下载和安装教程网上很多这里不详述了。
    在这里插入图片描述

  2. 创建文件夹,用于放后面下载的源码,在文件夹下右键选择git bash here。
    在这里插入图片描述

  3. 在命令窗口中输入以下命令,初始化操作,会在文件夹下生成.git文件夹。

 git init

在这里插入图片描述

  1. 使用以下命令去下载源码
git clone https://github.com/open62541/open62541.git

在这里插入图片描述
于是开始在文件夹下创建了open62541文件夹,下载源码过程比较慢。

  1. 完成后打开open62541文件夹,右键选择git bash here
git submodule update --init

在这里插入图片描述
在这里插入图片描述
等待它更新完成…有点久…

(之前用网上下载的源码,在源码目录下用这条语句更新子模块不成功,只能用git重新下载一遍,试过后果真可以了)

3. 在Cmake中编译open62541

在源码目录下新建文件夹,命名为build
在这里插入图片描述
在Cmake中编译,第一行输入open62541源码目录,第二行输入刚刚创建的build目录,点configure
在这里插入图片描述
选择visual studio版本,我是2019,就选择了2019
在这里插入图片描述
点finish后,红色一片是open62541自带的CMakeLists里提供的配置选择,这里以gui的方式显示出来了。
这里勾选上UA_ENABLE_AMALGAMATION;
以及最后一行把UA_NAMESPACE_ZERO的值由REDUCED改为FULL。在这里插入图片描述
最后点击generate,完成编译。
在这里插入图片描述
编译后的文件都在build文件夹中。

3. 在VS2019中生成open62541.c和.h文件

点开build文件夹中的open62541.sln,在vs中打开如图
在这里插入图片描述
点生成–生成解决方案
在这里插入图片描述
在这里插入图片描述
再返回build文件夹中,可以看到编译好的.c和.h文件
在这里插入图片描述

4. 生成自定义信息模型代码

这一步就使用到了之前生成的example.xml文件

先把该xml文件拷贝到tools/nodeset_compiler下
在这里插入图片描述
win+R,输入cmd打开命令行窗口,先定位到tools/nodeset_compiler这个目录下。

F:

回车

cd F:\OPC UA\OPC UA\open62541\tools\nodeset_compiler

此时定位到了该文件夹,然后输入

python ./nodeset_compiler.py --types-array=UA_TYPES --existing ../../deps/ua-nodeset/Schema/Opc.Ua.NodeSet2.xml --xml example.xml myNS

最后一个参数myNS用来指示生成的代码文件名称,具体这一代码的实现过程和具体参数可以看open62541的官方文档。
打印了下面四条INFO信息表示生成成功。
在这里插入图片描述
再看文件夹中已经有了myNS.c和.h文件
在这里插入图片描述

5. 在VS2019中编写server端代码

导入myNS.c和.h文件,导入前面生成的open62541.c和.h文件。
server.cpp的代码参考open62541官方文档或这篇文章

按照上面的文章继续进行,就可以把信息模型转成代码并添加到OPC UA Server里了!

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值