OPC DA转成OPC UA

OPC DA转成OPC UA,实现网口通信

OPC #

OPC DA(Classic) 和OPC UA的链接方法 #

在仅支持OPC DA 2.0的OPC SERVER上部署代理程序(COM Wrapper),然后发布成 UA SERVER。从: https://github.com/OPCFoundation/UA-.NET-Legacy 下载兼容版的UA-.NET,因为是源代码基于.net framework3.5编写的,故3.5~4.5.1之间的framework都可以运行。因为要兼容windows XP系统,XP最新只能到Framework4.0, 故改成4.0的框架。 几个重要的配置,在Opc.Ua.ComServerWrapper.Config.xml文件中:

<BaseAddresses>
  <ua:String>opc.tcp://localhost:48400/UA/ComServerWrapper</ua:String>
  <ua:String>http://localhost:48401/UA/ComServerWrapper</ua:String>
</BaseAddresses>

以上指明发布的ua地址,tcp和http都可以。

 <ServerSecurityPolicy>
    <SecurityMode>None_1</SecurityMode>
    <SecurityPolicyUri>http://opcfoundation.org/UA/SecurityPolicy#None</SecurityPolicyUri>
    <SecurityLevel>0</SecurityLevel>
  </ServerSecurityPolicy>

以上指明认证方式,把其他的去掉,只保留不需认证方式。其他认证方式暂时没有研究。

<ComClientConfiguration i:type="ComDaClientConfiguration">
    <ServerUrl>opc.com://localhost/ProcessIT.SimulationSvr.1</ServerUrl>
    <ServerName>DA</ServerName>
    <MaxReconnectWait>10000</MaxReconnectWait>
    <SeperatorChars></SeperatorChars>
    <AvailableLocales>
      <ua:String>en-US</ua:String>
      <ua:String>de-DE</ua:String>
      <ua:String>ja-JP</ua:String>
    </AvailableLocales>
    <BrowseToNotSupported>false</BrowseToNotSupported>
  </ComClientConfiguration>

以上配置本地的OPC Server地址和名称。该配置节可以有多个,ServerName可以换成语义化的名称,并不强求一致。 运行UA COM Server Wrapper.sln项目,编译后有UA COM Server Wrapper.exe,直接使用会报错,需要拷贝Opc.Ua.CertificateGenerator.exe,产生证书。 把该程序拷贝到OPC Server的机器上,配置本地的OPC Server地址和名称。双击UA COM Server Wrapper.exe运行,会产生一个地址:opc.tcp://39.107.78.139:8888/UA/ComServerWrapper,使用一般的OPC UA 客户端,点击链接即可浏览数据了。

Modbus #

线圈状态/输入状态/保持寄存器/输入寄存器: coilStatus/inputStatus/holdingRegister/inputRegister