UA-ModelCompiler 是OPCFoundation的开源程序,它实现将NodeSet 的xml 文件编译成C# 的类,以便结合到UA Server 中。同时,它也能够将一种简便的模型xml 文档(ModelDesgin.xml) 转换成为NodeSet2.xml 。
最近的项目中要使用UA-ModelCompiler ,尝试它的编译和使用。
该项目的 GitHub :https://github.com/OPCFoundation/UA-ModelCompiler
遇到问题
按照之前的方法,直接下载zip 然后解压下来,使用VS2022 编译没有上面问题,然后按照readme的方法使用发现出现:
尝试很长时间无法解决。
解决方法
后来按照该文章操作
https://opcua.rocks/step-2-setup-ua-modelcompiler-with-visual-studio/#comment-920
使用Git 下载源代码
git clone https://github.com/OPCFoundation/UA-ModelCompiler.git
cd UA-ModelCompiler
git checkout 8817477c7b481fd6eb6e9cccc05b76e83c7329ba
下载 OPCFoundation UA-Nodeset 的子模型
我们知道OPCFoundation提供了标准的NodeSet ,它们在:
https://github.com/OPCFoundation/UA-Nodeset
内容是基本的NodeSet 以及行业配套NodeSet,这些NodeSet 在编译ModelCompiler的时候是不需要的,但是在使用的时候是需要的,我上面遇到的问题可能就是没有这些NodeSet。
同样地,使用git下载这些:
PS C:\UA-ModelCompiler> git submodule update --init --recursive
完成后发现多了一个Published 文件夹。
使用VS2022 打开ModelCompile项目,改为release 模式,生成。
项目属性中,配置改为release
生成
成功
PS C:\UA-ModelCompiler\Bin\Release> .\Opc.Ua.ModelCompiler.exe compile -d2 E:\yao2023\Model/DemoModel.xml -cg E:\yao2023\Model/DemoModel.csv -o2 E:\yao2023\Model -version v104
PS C:\UA-ModelCompiler\Bin\Release>
在Model 文档中,看到了我想要的东西
小结
我并不清楚使用zip下载和git 下载的区别到底在哪里,但是它们确实不太一样。包括下载下列的文件夹都不同。