Linux上工业交换协议的网关。 组装你自己

我从事自动过程控制系统(ACS TP)的开发,实施和操作。 最初,他使用SCADA系统。 然后,他迅速转而使用交换工业设备的协议。 自写驱动程序和设置数据收集系统。 目前,我的工作是围绕Modbus-s,IEC-101 / 104-s,OPC和其他协议进行的。

图片
1.工业控制系统中使用的各种通信协议

简要介绍典型数据收集系统的工作原理(略有简化)。

图片
2.数据采集系统

称为OPC服务器的特殊软件会轮询连接到RS-485接口的设备。 OPC服务器是SCADA系统和设备之间的一种层,将设备通信所用的语言转换为SCADA系统可以理解的语言。 以太网/ RS-485转换器用于将TCP / IP数据包转换为可通过RS-485物理环境传输的数据包。

此方案有几个缺点:

  1. 例如,在OPC服务器中设置等待200 ms响应的超时时间。 在理想情况下,当数据包无延迟地进入以太网时,与设备的通信将以良好的速度(强度)进行。 但是,如果包含响应的数据包被延迟了300毫秒(这比200毫秒的响应超时时间更长),则OPC服务器认为对请求的响应尚未到达,并发送下一个请求。 此时,前一个请求的答案已到达,但OPC服务器认为这是当前请求的答案,并将错误的数据发送到顶部。 结果,工作站上的数据“跳转”。 为了摆脱这种情况,我们将设置更多超时时间。 以3000毫秒的余量。 如果答案早于3000毫秒到达,则我们不等待剩余时间,而是继续下一个请求。 到目前为止,一切都进行得很好,但是一旦几个设备停止响应,每个设备就会有3000毫秒的延迟。 轮询时间正在增加。
  2. 过程控制系统(Modbus,电表)中使用的大多数协议都是基于对相同参数的顺序轮询。 在大多数情况下,参数值保持不变,因此数据网络用于传输相同的参数。 如果传输介质是GPRS,这是不合理的,并且流量会花费金钱。 另外,在GPRS传输介质中,数据包延迟可能达到几秒钟。 为什么浪费时间和资源来转移同一件事?

对于上述情况,一种协议更合适,在该协议中,数据通过更改(偶尔)向上传输,并按几个值分组为一个TCP数据包。 此类协议为IEC-60870-5-104和OPC UA。 ModBus-TCP也是合适的,它没有变化的传输,但是,如果没有太多数据,则可以将它们打包在一个包中。 最好有一种可以挂在DIN导轨上的控制器,通过RS-485将设备连接到它,以及通过以太网将数据传输到SCADA系统。

通常,有些硬件网关数量很多。 但是以现成的不可分割的解决方案的形式。 合而为一。 我不是很喜欢 我曾经需要一个网关,将SET-4TM仪表的协议转换为具有六个RS-485端口和两个以太网的OPC UA。 一个制造商的网关支持必要的交换协议,但RS-485端口很少,另一家具有正确数量的RS-485端口,但没有两个以太网端口。 第三个具有两个以太网端口,但不是所有通信协议。 第四个几乎包含所有内容,但是在IEC-60870-5-104或ModBus-TCP上没有可用的OPC UA,这些协议需要OPC服务器。

那将是多么美妙:从一个制造商那里购买带有操作系统的控制器或微型PC。 从另一个购买控制器的软件。 如果一个软件制造商不支持某些软件,请从另一软件制造商那里购买其中一个软件,并通过标准软件接口组合软件组件。 看来这里是光明的未来!

这就是为什么协议网关不像OPC服务器和以太网到RS-485转换器捆绑包那样频繁使用的原因,因为它们不可分割。

Linux的SCADA开发不足的原因之一:SCADA可用,支持很少的交换协议,并且没有用于与设备通信的OPC服务器。 SCADA使集成器与硬件一对一地结合在一起。

读者可能已经问过一个问题:您能提供什么? 已经有什么了? 有适用于以下协议的Linux OPC UA服务器:


为了不仅通过OPC UA协议将数据传输到上层,还创建了“ OPC UA到Modbus转换器和IEC 60870-5-104 ”。 除了这些协议的数据传输功能外,“转换器”还具有内置的Web服务器。 使用特殊的编辑器,您可以绘制图表,在其上显示标签值,然后在浏览器中将其打开。 事实证明,mini-SCADA直接在控制器中。 电路的动画如何工作,我已经在这里写到关于编辑器的内容。 将来,计划“ OPC UA到MQTT转换器”。

OPC UA服务器和转换器可在x64,ARMv7和AARCH64体系结构上运行。
因此,对于硬件,您既可以使用基于小型工业计算机的经过时间考验的解决方案,也可以使用各种“与树莓派兼容”的ARM小型计算机。 可以在此处此处阅读如何使用示例安装和配置软件。

通常,复合体的结构如下所示:

图片

该系统是可扩展的。 使用仅用于解决当前问题所需的组件。

使用OPC UA服务器,我们的方案进行了转换:

图片

我们有以下内容:

  • OPC UA服务器通过RS-485从设备收集数据,两次请求之间没有很大的延迟。
  • SCADA中的数据在一个TCP数据包中分几段发布,以进行更改;
  • 您可以将几个配置相同的工作站连接到OPC UA服务器。 如果需要复制,则很有用。

因此,我们得到的是一个结合了它们功能的设备,而不是一堆OPC服务器和“以太网到RS-485转换器”。 我更喜欢这个计划。 那你呢

Source: https://habr.com/ru/post/zh-CN433282/


All Articles