中控SCADA-MQTT驱动采集与MQTT转发应用详解
一、MQTT协议简介
MQTT(消息队列遥测传输)是ISO 标准(ISO/IEC PRF 20922)下基于发布/订阅范式的消息协议。它工作在TCP/IP协议族上,在远程设备硬件性能不佳、网络状况糟糕依然可以保持设备通讯,在诸多领域都有应用。作为一种发布/订阅型消息协议,MQTT需要一个消息中间件,即MQTT Broker 代理服务器,请在操作前确认已搭建好合适的使用环境。
注:1、MQTT 数据开放功能不需要单独的授权。
2、InPlantSCADA软件不内置MQTT Broker代理服务器的部署,需自行安装部署。
https://www.kdocs.cn/l/cvRCEaITYKE9

二、MQTT应用
在InPlantSCADA中,SCADA既可以通过数据库-MQTT驱动订阅第三方MQTT发布的数据,也可以通过MQTTClient发布数据让第三方客户端进行读取。
MQTT驱动订阅第三方MQTT发布的数据
驱动下建立的位号为只读属性,不支持写值。

MQTT服务转发SCADA实时数据、历史数据、报警数据
支持转发SCADA实时数据,第三方修改SCADA位号实时值,
支持第三方查询历史数据
支持第三方订阅实时报警信息,查询历史报警信息


2.1MQTT驱动订阅数据
通过MQTT驱动,当前客户端可以连接MQTT服务(MQTT Broker代理服务器),用于接收其他客户端发布到MQTT服务端的实时消息。驱动下建立的位号为只读属性,不支持写值。
可通过配置主题名向服务端订阅相关主题,并通过配置位号显示消息的指定数据。

2.1.1驱动配置
通过数据库-本地节点添加MQTT驱动,然后右键驱动进入驱动配置页面,添加客户端及Topic

客户端处,填写MQTT Broker代理服务器的地址及端口号、客户端ID、用户名和密码。(客户端ID、用户名、密码根据代理服务器要求配置,可使用默认配置)

主题处,填写第三方客户端发布数据的主题。SCADA订阅主题要与第三方发布主题保持一致。

2.1.2增加位号
右键驱动添加位号,选择位号类型及IO地址,

保持IO地址类型及数据地址与消息内容同步,

特别注意!
通过MQTT驱动订阅的数据目前无法进行写值操作。
2.1.3数据地址配置举例
除2.1.2配置的单级JSON类型外,SCADA软件还支持其他的JSON类型,如下图所示。
负载数据地址即为SCADA位号添加时的数据地址。


2.2MQTT服务转发数据
InPlant SCADA支持通过MQTT协议向外发布实时数据、历史数据和报警信息,并支持修改实时数据。
启动InPlant SCADA监控、配置MQTTClient的参数并成功建立连接后,软件可以通过MQTTClient将数据推送到MQTT Broker代理服务器,供第三方客户端订阅。

2.2.1全局设置启动MQTT转发服务
工程管理页面,全局设置-启动选项处勾选MQTT数据转发服务,然后对工程进行发布后,启动监控软件

2.2.2MQTTClient配置
启动监控并登陆后,在系统托盘处右键单击图标,选择“属性”,打开MQTTClient。


配置服务参数:输入MQTT代理服务器地址、端口号、客户端ID、用户名、密码等。选择other(Json),然后启动。

启动后,状态处提示已连接。

配置全局属性:MQTT版本(建议默认),推送方式

2.2.3实时数据主题
2.2.3.1第三方订阅实时值
第三方客户端想要获取SCADA本地实时库的位号实时值时,需要订阅“发布主题”。


- 勾选“开放所有位号”并设置主题名。当第三方客户端订阅主题时,会获取所有位号的实时数据。
- 如果只希望开放部分指定位号的数据,请勾选“自定义开放位号”,然后配置主题和开放的位号清单:“添加”按钮,新增一个主题,默认主题名为“Topic+数字”;选中主题后单击“重命名”按钮,可以修改主题名,支持英文字符、数字、下划线,不超过32个字符。选中一个主题,在右侧单击“添加”按钮,在弹出的位号选择器中选择需要订阅的位号。不同订阅主题可以包含相同位号。

效果展示
使用MQTT.fx作第三方客户端仿真。
插入视频12
2.2.3.2第三方发布修改值
第三方客户端想要修改SCADA本地实时库的位号实时值时,需要通过“订阅主题”。


订阅主题:当位号读写属性为可读写时,第三方客户端可以通过MQTTClient向位号写值。写值的位号暂不支持2.1章节MQTT驱动订阅的位号(只读)。
如在Memory驱动下建立中间变量位号,即可以订阅写值也可以对外转发数据。
效果展示
使用MQTT.fx作第三方客户端仿真。
插入视频13
2.2.3.3第三方订阅实时值-自定义格式字段
第三方客户端获取SCADA本地实时库的位号实时值时,除默认的JSON格式外,也可以进行简单的格式字段自定义。
如果想要修改消息格式,可以在工程运行目录下找到配置文件MQTTRTDataJsonSchema.conf进行修改(默认路径为 D:\ECSRun\工程名\HMI\子工程\Run,此文件默认不存在,首次启动后默认生成,或者手动新建),修改后需要重启软件的MQTT 服务。

自定义格式一单级JSON

自定义格式二多级JSON

自定义格式三单级JSON数组

自定义格式四其他点域
2.2.4历史数据查询主题
第三方客户端查询历史数据时,需要向MQTT服务发送查询消息。每次查询时都需要重新发送消息。查询成功后,即可获取目前最新的历史数据。每次最多可以查询到8个位号,最多可以查询到每个位号的5000点数据。

当第三方客户端通过MQTT通信收发数据时,需遵循约定格式。


第三方客户端发布-订阅查询历史数据
设置查询的点位名称、时间范围、时间间隔、接受的主题等参数

第三方客户端订阅-接受历史数据

2.2.5报警主题
第三方客户端向对应主题发送实时报警的订阅消息后,即可获取实时报警消息;发送历史报警的查询消息后,可以获取历史报警数据。获取的报警信息不包括事件报警。
2.2.5.1订阅实时报警消息
第三方客户端发送一次订阅消息后,MQTT服务会向第三方客户端实时推送实时报警数据;第三方客户端发送一次取消订阅消息后,MQTT服务就会停止发送实时报警数据。


第三方客户端发布-订阅报警消息
通过主题11订阅报警消息

第三方客户端订阅-接受报警消息

2.2.5.2订阅查询历史报警消息
查询历史报警时,每次查询时需要重新发送查询消息。查询成功后,即可获取目前最新的历史数据。单次可查询最多10000条报警;每次最多推送1000条报警,超过1000条则会分批推送。

第三方客户端发布-订阅历史报警消息

第三方客户端订阅-接受历史报警消息

三、MQTT应用手册
详细的手册说明可以参照SCADA软件帮助
3.1.1.1MQTT驱动

3.1.1.2MQTT转发

更多推荐



所有评论(0)