OPC UA的源码使用

        最近接到了坑爹的任务,要做个opc ua服务器,让wincc能连接上,opc ua这个东西从来都没有听过,就是因为懂c#就要写了,确实有点尴尬,入门就去看了opc,ua之前的版本,发现很复杂,后来发现了opc ua的存在,解决了很多问题,而且很好有,推荐大家使用,不要再搞opc这坑爹东西。毕竟防火墙就搞傻人了。而且在win10上也很难搞的。opc ua就解决了这些问题。下载了官方github的源码。直接用vs2017运行,新版的代码在vs2015上是运行不了的。

1、修改上的坑

        着手改动显示的节点,这个改动是在UnderlyingSystem.cs这个文件中,打开文件时就能看到s_BlockPathDatabase和s_BlockDatabase这两个string的数组,从数组的内容就知道是节点和节点的内容了,在看看下面的FindSegments(),FindSegment(),findBlocks(),findBlock(),这几个函数的写法,其实就是解析这两个数组,如果是segment就继续返回segment,如果是block就显示内容,这里有两个概念,segment,block,我的理解是,segment是路径的而且,block才是真正的容易,所以如果要做一级级的路径,可以参考这个,我是直接在一级segment下就是block,所以不会这么多级的。

        在这里要注意一个事情,在DataAccessNodeManager.cs这个文件中有一个CreateAddressSpace(IDictionary<NodeId, IList<IReference>> externalReferences)的方法这个方法,在建立连接的时候会调用,有一个比较奇怪的现象,就是createAddressSpace()之后,再调用AddReference()添加节点是不会刷新的,这个可能是我的使用方法不对。

       这之后就很简单了,改动findBlock里,返回直接的block就好了,如果想添加segment,就在s_BlockPathDatabase这个数组里面添加自己的segment就好了,但要记得在最后面加上‘/’斜杆,这样findSegment才能找到的。

2、部署的问题

        opc ua为了保障安全(这个肯定是要的),就搞了个证书验证的过程,这个使用起来就有点尴尬了。在局域网的两台机器上连接的话,会报错

  • 10
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 27
    评论
opc ua是一种用于工业自动化领域的通信协议,其全称为“开放式产品通信统一架构”(Open Platform Communications Unified Architecture)。西门子是一家知名的工业自动化和数字化解决方案提供商。在opc ua领域,西门子也提供了相应的源代码。 作为一种开放的通信标准,opc ua可以帮助不同品牌的工业设备进行无缝通信和集成。它提供了一套统一的规范和接口,使得不同设备之间可以互相交流、共享数据和实现互操作性。无论是控制系统、传感器、执行器还是其他工业设备,只要遵循opc ua的规范,就可以实现相互通信。 西门子将opc ua技术应用于他们的工业自动化产品中,并提供了相应的源代码和软件工具。这些源代码和工具可以帮助开发人员在西门子的设备上实现opc ua通信。通过使用这些源代码,开发人员可以编写自定义的软件控制逻辑,从而实现对西门子设备的远程监控、控制和数据采集等功能。 西门子的opc ua源代码具有很高的可定制性和灵活性。开发人员可以根据实际需求进行定制,从而满足不同的应用场景和工业需求。同时,西门子还提供了详细的开发文档和技术支持,使得开发人员可以更好地理解和使用opc ua源代码。 总之,opc ua与西门子源代码的结合为工业自动化领域带来了更高的互操作性和灵活性。开发人员可以利用这些源代码和工具来实现设备间的数据交换和通信,从而提升工业生产的效率和智能化程度。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值