OPC UA 与Modbus 相结合

        Modbus是目前最普及的控制协议,世界上数十万甚至数百万台modbus 设备。现在必须开始考虑将这些Modbus设备转换为OPC UA的方法。

        为什么选择OPC UA?OPC UA,通常简称为UA,是一种安全,开放,可靠的机制,用于在服务器和客户端之间传输信息。它提供了一组开放的传输,更好的安全性和比我所知道的所有其他机制更完整的信息模型。它提供了一种非常灵活且适应性强的机制,用于在企业级系统以及与真实世界数据交互的各种控件、监控设备和传感器之间移动数据。   

        modbus 与OPCUA 相互映射的方式大致有两种

直接映射方法

       我们都知道Modbus有一个非常简单的地址空间,有四个64K的数据块。两个包含无符号整数数据:包含工作数据的保持寄存器和包含字段数据的输入寄存器。另外两个包含二进制数据:输入线圈包含来自现场的二进制开/关数据,而状态线圈包含工作二进制数据。设备设计人员选择这些数据空间的一部分,将内部设备数据公开给Modbus或Modbus TCP网络。 

       简单转换机制是让每个Modbus寄存器和线圈成为简单OPC UA地址空间中的一个变量。以下示例显示每个 Modbus 数据类型如何成为 OPC UA 对象文件夹下的一组对象,以及每个寄存器或线圈如何成为其对象类型下的变量。此地址空间说明了具有十个保持寄存器和十个状态线圈的器件,但可以扩展到任何 Modbus 类型的任意数量的寄存器和线圈。

       我们可以将这种方式成为Modbus 原生表示方法(Modbus Native Representation)。

     从本质上讲,在此机制中,您将OPC UA服务器固定在前端 设备,虽然该设备看起来像OPC UA服务器,但它仍然是一个Modbus设备。

       在这种系统中,OPC UA服务器并不是真的 用作 OPC UA 服务器。它只是一种机制,可以安全地实现 Modbus 客户端和 Modbus 服务器之间的可靠连接。Modbus 是一个不安全的 协议,并且在其串行实现中,性能受限。如果 将OPC UA服务器添加到该串行Modbus设备的前端,您可以传输安全,可靠和快速地传送Modbus 消息 。

映射到OPCUA 信息模型的方法

        这是将Modbus地址空间转换为OPC UA地址空间的一种非常简单的方法。它并没有真正提供OPC UA提供的任何功能-它只是在OPC UA地址空间中表示相同的Modbus数据。而不是采用OPC UA 信息模型构建物模型(Model of Things) ,然后将modbus 基于地址的数据映射到Opcua 的物模型中去。

    基于OPC UA 信息模型构建的结构化物模型能够构建基于模型的设计。采取将线性化数据映射到OPCUA 信息模型。这显得复杂一些。我建议的方法将OPCUA 模型中的变量引用到modbus 的变量。

读取modbus 数据的方式。

  读取modbus 数据的方法可以是

  1.  按需请求
  2. 定时轮询 

 结束语

  将传统的modbus 转换成为OPC UA 模型和协议是推动传统设备进入开发自动化最为便捷的方法之一。笔者的观点是,在开放性自动化没有完全到来的时候,应该采取渐近的方式实现新技术的转型,这样能够体验新技术带来的好处,也有利于新技术的推广。

猜你喜欢

转载自blog.csdn.net/yaojiawan/article/details/131409445