ARIES PLC110 [M02] -MS4,HMI,OPC和SCADA,或一个人需要多少甘菊茶。 第一部分

亲爱的读者,下午好。 我正在用评论格式写这篇文章

小警告
我想警告您,如果您立即从标题中了解演讲内容,建议您将第一项(实际上是PLC核心)更改为价格类别中更高的任何一种。
主观上,没有省钱会花费那么多神经。

对于那些不惧怕一头灰白的头发和紧张的tick嗒声的人,稍后我将详细描述这个技术奇迹是如何产生的。 在本文中,对该项目进行了简要分析并受到一定程度的批评。

起源。 问题陈述


实际上,我在设计办公室工作,我们测试自动化设备以集成到我们的交钥匙工厂中。 最近,在仓库中收到了白羊座的设备,并决定从中组装一个测试台:

  • PLC110 [M02] -MS4(MasterSCADA 4D执行环境)
  • 操作面板SP307
  • 模拟信号通用输入模块MV110-224.2A
  • 应变仪信号输入模块MV110-4TD
  • 电气模块MV110-220.3M

系统的结构是根据网络的目的选择的,它们的定义是:

  1. 基于RS-485的Modbus RTU-PLC与从站之间的通讯(模块,频率图,智能传感器,HMI面板SP307),PLC主站网络。
  2. 基于以太网的Modbus TCP-不同PLC之间以及与OPC服务器之间的通信
  3. OPC和SCADA系统的PC服务器同时是两个不同网络之间的网关(企业的企业LAN和控制器的Modbus TCP网络(两个使用标准Windows工具进行数据路由的网络适配器))
  4. 公司局域网可以通过代理服务器访问Internet

下图显示了系统的总体结构:



合并的功能


  • 数据收集和从PLC重定向到OPC服务器
  • 通过HMI面板进行本地管理和监视
  • 通过OPC服务器从SCADA进行管理和监视
  • 从企业LAN的任何PC以及使用SCADA客户端通过Internet进行的管理
  • 通过LAN和Internet连接移动OPC监视器
  • 当然,存档和生成报告

看来他们什么都没错过。 对系统进行了总体描述,而实际上是关于该主题的描述(我将在文章中描述解决方案以及每个节点的实现):

难点


1. PLC文档

制造商于2012年指定了在MasterSCADA 4D内核上声明的PLC的Beta测试。 尽管这个概念存在的令人印象深刻的时期,但开发人员在2019年所拥有的只是一份28页(!?鉴于界面已更改。

由20位专家组成的论坛主题也得到了三位专家和一名销售经理的积极支持。

2. PLC模块的架构

这是一个单独的讨论主题。 简而言之:PLC与Modbus RTU从站设备一样与模块进行通信,必须先通过实用程序对其进行配置,该实用程序通过RS-485转换器将每个模块分别连接到PC。

当然,聪明的叔叔可能知道如何在没有通过PLC的转换器的情况下做到这一点,将模块依次连接到网络并编写必要的寄存器,但这会带来很多经验和痛苦。

对于最先了解这种架构的开发人员来说,它根本不是用户友好的。
同样,所有模拟模块都出于未知原因而失败,它们沿着Terra Incognita的整个RS-485网络运行,但是我也想单独谈论这一点,当然这是一个史诗。 顺便说一下,这个问题大约有10年了,制造商开玩笑说“必须承认我们没有成功” ,但这是与模块通信的唯一接口,人们很认真地长期以来一直在编写其Modbus RTU实现。

同时,洋甘菊茶快要用完了...太阳落山了

3. IDE MasterSCADA

我们不会谈论图形工具,我还没有做很多测试,但是我会马上说我不喜欢它。

我们正在谈论IEC标准的数据交换和语言的实现:

控制器引脚的物理输入不是全局变量,并且无法通过编写别名(例如“ DI1”)从程序的任何部分进行访问。 在每个程序中,都应使用手柄拖动它,在那里形成一个局部变量,该局部变量继承或传递值。 即 在我看来,PLC的精髓是有些失落:设备应将物理通道的逻辑编程简化为“如果输入DI1起作用-打开输出DO1” ,看起来像是“输入DI1-变量LI1-变量LO1-输出DO1” ,同样由于对IDE原理的无知,人们可能会得到令人愉悦的警告:“布尔-布尔变换是不可能的”(很可能,它们是一个指针,但我将它呈现给创建者是更加和谐的)。

语言ST,FBD,SFC的库非常丰富,可以选择方便编程,但是这些组件不是功能,而是用于缝制方法的类,其次,在大多数情况下,对功能和数据类型的描述没有帮助。 持久性将我带到了CodeSys核心库,所有这些功能都来自那里,它们的帮助有所帮助。

4.与SP307面板交换

对于那些没有时间花几天时间的人来说,这是一个非常有趣的事件。

对我来说,标准的GUI测试(HMI或SCADA)是要进行6个测试:

  1. 读取离散信号
  2. 离散信号记录
  3. 读取整数值
  4. 写一个整数
  5. 阅读真实价值
  6. 物料值记录

因此,我在屏幕上绘制了6个基本组件,并依次检查了每个组件
交换与模块完全相同,但是交换来自​​单独的RS-232 / 485 PLC端口,并且看起来更稳定。 由于HMI是从机,因此我将更改内容写给它,并以500ms的轮询读取它,以免错过操作员的操作。

前4分非常好,但5和6引起了问题。

我们发送类型为Single Float的数据,在屏幕上我们将其显示出来,尽管所有输出设置(Float,Dimension 1寄存器等)都是正确的,但我们看到的数据并不相同。 说文档中没有描述先例是不正确的,但是,从侧面看,尝试在何处和何处发现它是很有趣的。

在对与数据本身及其发送有关的所有设置进行歇斯底里的枚举之后, 我们写信给技术支持,答案是平均5-6个日历日,我们根据标准技术支持脚本工作:“检查电源是否打开-检查软件版本-等待,请等待一周你自己

顺便说一句,我决定在一个绝对不足的地方安装一个选中标记,并确保绝对没有足够的签名。

屏幕功能不包括“ Runner”格式的模拟信号的输入 ;只能在文本字段中以数字形式输入。 这真是太神奇了,无论我们自己编写“±”按钮和脚本,还是从键盘输入数字,我们都会忘记任何驱动器的软控制。

我不会重载本文,因此我将在第2部分中描述较高级别的问题。

总而言之,我想指出,我有足够的自由和足够的时间来解决这些问题,乍一看似乎很荒谬,但却给受害者带来很多痛苦。 在有限的时间条件下,此类问题至关重要。

PS:这里介绍的所有内容都是主观的,仅是警告未做好的准备,而不是歧视制造商,请从这种角度对待本文。

第二部分已经在这里: 单击

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


All Articles