前言:LECPServer最新版本支持通过MQTT网关,将PLC的状态信息发布给其他上位系统,如MES,HIM,SCADA等系统,并对信息进行采集和二次加工。
在现代工业现场中,会大量的使用MQTT协议,将现场PLC设备(如欧姆龙,三菱,西门子,施耐德等PLC)的状态,收集到MES、HIM、SCADA系统上,但目前支持独立的MQTT客户端的PLC价格昂贵,而且大部分都不支持。因此有人提供了两组不同的方案
- 外接硬件的解决方案,即在PLC的串口或者网口上添加一个MQTT客户端网关。这种解决方案需要每台PLC都需要追加硬件和独立配置。
- 通过软件进行信息转载,如 KepServer 就是这种方案的翘楚,现场只需要架设一台服务器,通过KepServer与PLC设备连接(可以使用RS232/485、以太网等方式),获取到PLC信息后,通过KepServer内置的MQTT客户端,将信息发布到MQTT Broker上。
LECPServer使用的就是第二种方案。
LECPServer对于PLC的连接和配置,这里就不再赘述了,需要的小伙伴可以到这里阅读。
Kepware KepServer的完美替代者,免费开源项目 LECPServer 使用指南_JamesChan的专栏-CSDN博客_lecpserver
这里陈述下LECPServer关于MQTT的配置方法
LECPServer 提供了两个MQTT的支持:
- MQTT Broker(MQTT服务端),可以通过配置mqtt.conf文件启动或者关闭
- MQTT Client(MQTT客户端),通过页面配置,可以进行对节点信息的发布,使到对应的订阅者能收到最新的节点状态信息
如何配置 MQTT Broker
配置MQTT Broker非常简单,只需要打开mqtt.conf文件 其中
"MQTTSERVER": {
"PORT": 1883,
"START": false
}
为MQTT Broker的配置,PORT是Broker需要打开的端口,START如果是true,则启动Broker,否则则不启动Broker
用户可以使用LECPServer自带的Broker,也可以使用第三方的Broker进行信息的发布
如何配置 MQTT Client
点开配置页面,我们就可以对MQTT进行配置了。
- 点击"设备"栏,的"新加设备"选项,新增一个MQTT设备
- 填写MQTT客户端名称,这时候,名称不可重复
- 点击"确认,添加",新加设备完毕
- 配置MQTT客户端,IP,PORT对应Broker的地址和端口,Client_ID 是客户端ID,可不填,TOPIC是需要发布的主题名称,其他客户端可通过该Topic来订阅信息
- SCAN_RATE,为巡检节点时间,单位ms,默认为1000ms,每巡检一遍,触发一次设备节点的发布
- 配置好必要信息后,点击“应用”按键,即可连上Broker
如何配置 MQTT Client 节点
接下来我们就可以通过配置节点,让MQTT Client实现信息发布
- 点击节点配置里面的“添加”按键
- 选择需要添加的节点,选择完成后点击“应用”
- 这时候添加的节点就会以每次巡检间隔发布一次给Broker
我们使用HSL来做MQTT Broker来演示一遍最终效果,下面是GIF动图