文章来源地址https://www.toymoban.com/news/detail-756309.html
1. IoT Hub软件功能概览
IoT Hub是一款专门应用Modbus、DLT645、PLC、OPC DA、OPC UA等协议进行工业数据采集与MQTT云端转发的工具软件(可直接对接开源Thinsboard平台)。如下图所示:
图 1 软件概览
(1)功能架构
图 2 数据采集转发示意
如上图,IoT Hub内置Modbus-RTU、Modbus-TCP、DLT645 1997/2007、OPC DA、OPC UA、S7等协议,可通过RS-232、RS-485、以太网、以太网透传等多种方式对接现场各种设备,并将采集到的数据打包通过MQTT协议发送给云端服务器。软件可直接支持Thingsboard和阿里云数据协议(即JSON数据打包格式)。
(2)现场部署
图 3 采集软件现场部署示意
如上图,在实际的工业现场数据采集中,各个车间的设备通过网络与工业互联网平台连接,可以考虑在每个车间的汇聚交换机和核心交换机上部署IoT Hub数据采集软件。IoT Hub一般运行在安装了Windows系统的无风扇工控机中,这样可以部署在复杂的工业现场环境中。
2. IoT Hub软件功能描述
本节首先概要介绍一下操作界面元素,再详细介绍如何使用几个最常见工业数据采集协议采集现场设备的数据。
2.1 操作界面
图 4 界面功能示意
软件采用传统工业软件界面,包括:
(1)菜单栏:提供设备、数据点文件打开、保存、导、导出;MQTT和HTTP转发配置;软件语言设置;查看设置等功能。
(2)工具栏:提供文件打开、保存;通道、设备、数据点添加与删除;MQTT转发启动、停止等功能。
(3)协议Tab页:数据采集分为三大类,通用设备、OPC DA和OPC UA。在每个Tab页可以对通道、设备进行增删改查操作。
(4)数据点查看页:可以对每个设备的数据点实时值进行查看,并可对该数据点进行增删改查操作。
(5)事件查看页:用户可以查看重要的历史记录与提示信息。
2.2 设备数据采集
Modbus协议是一种古老、简单但又应用极其广泛的设备数据采集协议,在各行各业中,数量众多的传感器、数字仪表、PLC等都支持Modbus协议。下面以Modbus RTU协议为例,详述软件数据采集和转发的详细过程,其他Modbus TCP、DLT-645/1997、DLT-645/2007、PLC等也类似。
2.2.1 通道添加
通道是数据采集通信协议传输的接口,包括硬件接口信息和通信协议信息。例如对于Modbus RTU协议,它可以通过RS-232、RS-485接口直接传输,也可以通过以太网进行透传。这样“Modbus RTU+串口”和“Modbus RTU+以太网透传”就是两种不同的通道。一个通道比如Modbus RTU以太网透传通道可以被多个设备共用,而Modbus RTU RS-232串口通道就只能被一个设备单独使用。通道能够共用一般取决于接口属性,例如对于Modbus RTU协议来说,如果接口是RS-232,则只能一个设备单独使用;但如果是RS-485,则可以多个设备同时使用。
首先使用Configure Virtual Serial Port Driver软件,创建一对虚拟串口,比如Port7和Port8。再如下图所示,在Device页面的空白处,通过右键菜单或工具栏图标,创建通道:
图 5 Modbus RTU通道添加
(1)设备供应商选择Modbus,协议选择Modbus RTU。
(2)通信类型选择串口,它是软件直接通信的接口。
(3)在通用页面,填写通道名称、描述信息。
(4)在串口页面,填写选择串口通信信息,选择COM7,填写波特率等信息。
(5)对于以太网和以太网透传页面,与串口无关,系统会自动禁止编辑。
填写好后,通道的四个页面信息如下图所示:
图 6 Modbus RTU通道页面
2.2.2 设备添加
设备是对现场各种仪器、仪表、传感器、PLC等待采集设备的抽象。每个设备都有自己的地址,数据采集软件通过设备地址与设备通信。
选中某个通道,可以通过右键菜单或工具栏图标来创建设备,如下图所示:
图 7 Modbus RTU通道添加设备
(1)在通用页面填写填写设备名称、备注等基本信息,名称、备注等都支持中文。
(2)填写设备地址表达式,对于Modbus RTU设备,就是该设备的Slave ID。
(3)设定该设备的数据采集周期,以毫秒为单位。
(4)设定设备连接和数据采集请求超时等待时间,超时后会自动进行重连或重新请求。
(5)块读取页面一般保持默认设置即可,它可以将Modbus多个读取命令合并成一条命令,一次读取多个数据块,提高数据采集效率。
2.2.3 数据点添加
数据点(英文称为Data Point或Tag)是对要采集的参数的统称,每个设备中的数据点以唯一名称标记。比如某个温湿度传感器可以采集温度和湿度两个参数,这两个参数就是两个数据点。选中某个设备,可以通过右键菜单或工具栏图标来添加数据点,如下图所示:
图 8 Modbus RTU设备温度数据点添加
(1)在通用页面填写数据点名称和描述信息,名称和描述都支持中文。本数据点采集温度。
(2)在地址表达式中填写该数据点的地址信息,对不同协议,地址格式也不同。对于Modbus协议,数据点格式沿用工控软件的通用做法,即内存前缀+寄存器编号构成符号索引的方法。实际使用时,用户需要参考设备使用说明书确定要采集的参数地址。如下图:
内存区块 |
前缀 |
线圈状态(或数字或离散量输出) |
0 |
离散输入 |
1 |
保持寄存器(或输出寄存器) |
3 |
输入寄存器 |
4 |
图 9 内存区块前缀示意
内存地址 |
寄存器编号 |
符号索引1 |
符号索引0 |
0 |
1 |
400001 |
400000 |
1 |
2 |
400002 |
400001 |
2 |
3 |
400003 |
400002 |
图 10 内存地址符号索引示意
- 图10是内存区块前缀,不同的内存区域,分别以1~4来表示。假设现在要读取输入寄存器内存区块,这样前缀为4。
- 参考图11,对于该内存区块的不同内存地址,寄存器编号=内存地址+1,这样就构成了红色字体标志的符号索引1,这就是要填写的地址表达式。
本设备中,地址表达式为300011,意思是采集保持寄存器区域起始地址为10或起始第11个寄存器的数据。
(3)选择该数据点的数据类型及字节序。设备以二进制格式发送字节流,数据如何解析完全由用户确定。实际使用时用户需要根据该设备的使用说明书确定数据类型、字节序及线性转化规则。以浮点数Float为例,一个浮点数有四个字节以A、B、C、D表示,则ABCD代表正序存储,而DCBA代表完全逆序。
(4)当前版本,数据点采集周期与所属设备采集周期一致,不能单独设定采集周期。
(5)缩放页中,本数据点不使用任何变换,即使用原始采集值。
使用同样的方法,再添加一个数据点,采集湿度,如下图所示:
图 11 Modbus RTU设备湿度数据点添加
2.2.4 Modbus Slave模拟软件的配置和数据采集
为了方便,使用Modbus Slave代替实际设备进行数据采集模拟。
(1)其连接配置如下图:
图 12 Modbus Slave连接配置
选择串口Port8(与采集软件的Port7是一对虚拟串口),其它如波特率参数等的配置与采集软件保持一致。
(2)数据点配置和采集如下图:
图 13 Modbus Slave数据配置和采集
由于采集软件配置的地址是300011和300013,故需要在modbus slave地址10和12填充数据。填充完毕后,数据就可以被采集到本地。
2.3 MQTT配置与数据转发
下面讲述如何配置MQTT,将上一节中通过Modbus RTU协议采集的数据转发给MQTT Broker即MQTT服务器。
2.3.1 MQTT服务器配置
如果用户部署了Thingsboard服务器,则可以直接将MQTT服务器地址设置为Thingsboard服务器地址,此时在Thingsboard设备-->最新遥测数据里就可以看到IoT Hub软件上报的数据。本应用实例中,为了简单,MQTT服务器使用本地部署的Mosquitto服务器。需要通过mosquitto.conf配置文件对服务器进行如下配置:
(1)配置用户名密码登录信息。
- 在mosquitto.conf文件中输入:allow_anonymous false。不允许匿名登录。
- 在文件中输入:password_file D:\ProgramFiles\Mosquitto\ my_pwd.txt。配置用户名和密码保存文件。
- 通过命令行配置用户名和密码:.\mosquitto_passwd.exe -c my_pwd.txt tb_hub。配置用户名为tb_hub,再按照提示输入密码。这些用户名和密码将保存在my_pwd.txt文件中。
(2)配置数组证书,包括CA证书,服务器证书和服务器私钥证书。
- 在文件中输入:cafile D:\ProgramFiles\Mosquitto\mypem\ca-cert.pem。配置CA证书。
- 在文件中输入:certfile D:\ProgramFiles\Mosquitto\mypem\server-cert.pem。配置服务器证书。
- 在文件中输入:keyfile D:\ProgramFiles\Mosquitto\mypem\server-key.pem。配置服务器私钥证书。
- 在文件中输入:require_certificate true。要求通信必须使用数字证书。
(3)MQTT通用配置。
在文件中输入:
- listener 1883。
- protocol mqtt。
- use_identity_as_username false。
(4)启动服务器:命令行中运行.\mosquitto.exe -c mosquitto.conf命令,将使用mosquitto.conf中的配置启动mosquitto服务器。
2.3.2 IoT Hub转发配置
本系统支持同时给多个MQTT Broker转发数据。如下图所示,点击菜单:转发-->MQTT,打开MQTT配置列表,在列表中可以看到当前所有要转发的MQTT Broker配置信息。可以新建或删除MQTT Broker信息。
图 14 配置MQTT服务器
MQTT的详细配置如下图所示:
(1)连接页中,MQTT服务器地址信息,因部署在本机,故为127.0.0.1。端口为通用的1883。
(2)认证页中,需要配置用户名、密码和客户端证书信息。注意客户端证书要与服务器证书是同一CA颁发,才能被认证通过。
(3)发布页中,发布的Topic为v1/gateway/telemetry。遵从Thingsboard协议。
15 MQTT参数配置
MQTT配置也可以通过配置文件iot_hub.cfg查看或修改,如下图所示:
图 16 MQTT配置文件
注意:本软件所有配置文件必须是UTF-8编码。
2.3.3 通过mqtt.fx订阅数据点
本演示实例中,通过常用的MQTT客户端mqtt.fx去订阅数据点,其配置如下。
(1)如下图所示,配置MQTT服务器信息,地址为127.0.0.1。
图 17 mqtt.fx配置-1
(2)如下图所示,配置用户名、密码及数字证书信息。与上一节IoT Hub的配置是类似的。
图 18 mqtt.fx配置-2
(3)如下图所示,配置完毕后,连接服务器,从v1/gateway/telemetry订阅数据,就可以接收到JSON格式的数据点如下图所示:
图 19 数据点订阅显示
IoT Hub采集传感器数据,发布(Publish)到云端MQTT服务器,其它MQTT客户端订阅数据的整体流程图如下所示:
图 20 IoT Hub采集订阅图
2.4 OPC DA数据采集
2.4.1 OPC DA服务器添加
如下图所示,在空白处点击右键或点击工具栏上的图标,都可以新建OPC服务器。OPC服务器可以类比Device中的通道。软件会自动浏览当前PC上存在的OPC服务器,并以列表展示。如果OPC服务器在其它机器上,则需要输入远程机器IP。
图 21 OPC DA服务器添加
2.4.2 OPC DA组添加
如下图所示,选择服务器后,点击右键或工具栏图标,就可以创建OPC组,每个组中的所有数据点采集周期一样。如果需要不同的采集周期,则就需要创建多个组。一般创建一个组,将所有数据加入即可。
图 22 OPC DA组添加
2.4.3 OPC DA数据点添加
如下图所示,选中组,点击右键或工具栏图标即可为改组添加数据点。软件会自动浏览OPC服务器中所有的数据点,用户可以选择要添加的数据点,加入到组中。
图 23 OPC DA数据点添加
2.4.4 数据采集和订阅
数据点添加成功后,系统将自动从OPC DA服务器读取数据。数据点名称默认就是其ID,用户如果要修改数据点名称(比如以中文命名),可以双击数据点修改其名称。
图 24 OPC DA数据点采集
在mqtt.fx软件中,也可以看到上报的OPC DA数据,如下图所示:
图 25 OPC DA数据点订阅
2.5 OPC UA数据采集
2.5.1 OPC UA服务器添加
如下图所示,在空白处点击右键或点击工具栏图标都可以创建OPC UA服务器。
(1)UA服务器的地址格式为opc.tcp://127.0.0.1:4841,其中127.0.0.1为IP地址,4841为端口。
(2)与MQTT配置类似,也可以进行认证和安全设置,使用用户名、密码、数字证书等加强通信和数据安全。本例中为了简单,使用最简单的匿名登录。
图 26 OPC UA服务器添加
OPC UA服务器可以使用Prosys OPC UA Simulation Server,其配置如下图所示:
图 27 OPC UA模拟服务器配置
2.5.2 OPC UA组添加
与OPC DA类似,UA也可以创建组,每个组中所有数据点采集频率一致。如下图所示,选中服务器,点击右键或工具栏图标,都可以创建组。
图 28 OPC UA组添加
2.5.3 OPC UA数据点添加
(1)数据点浏览与添加
如下图所示,选中组后点击右键菜单或工具栏图标,就可以逐级浏览Object(对象)下的数据点。勾选要添加的数据点,点击添加按钮,即可将这些数据点加入到组中。
图 29 OPC UA数据点添加
(2)数据点名称修改
对加入的数据点,默认以其ID作为名称,如果用户想修改其名称(比如以中文命名),则可以双击数据点,修改其名称。如下图所示:
图 30 OPC UA数据点名称修改
(3)数据点订阅
如下图所示,加入UA后,在mqtt.fx上订阅的数据如下图所示:
图 31 OPC UA数据点订阅
3. 配置文件
3.1 系统配置文件
如下图所示,系统配置文件sys_set.cfg中,可以设置和保存相关系统变量,用户修改保存文件后,重启软件可以生效。例如:
(1)语言,目前系统支持中文(CH)和英文(EN)。
(2)最大数据点数目和每个数据点大小(JSON数据包格式占用的大小),系统默认支持12000个数据点,用户根据实际需求可以进行调整。
图 32 系统配置文件
3.2 MQTT配置文件
如下图所示,MQTT配置文件iot_hub.cfg中,可以设置和保存MQTT信息,用户修改保存文件后,重启软件可以生效。如下图所示:
图 33 MQTT配置文件
3.3 数据点配置文件
如下图所示,数据点配置文件iot_hub.cfg中,可以设置和保存所有通道、设备及数据点信息,用户修改保存文件后,重启软件可以生效。如下图所示:
图 34 数据点配置文件
4. 使用联系
软件提供免费授权文件,启动时,每台PC机绑定唯一的授权文件。授权文件错误时,会弹出如下提示框,请点击“复制密钥”按钮,联系下述微信申请使用授权码。也可提供源码级定制服务。
图35 授权错误提示
微信号(taibai_tu)二维码:
图 36 微信联系方式文章来源:https://www.toymoban.com/news/detail-756309.html
到了这里,关于Modbus、PLC、OPC数据采集与MQTT云端转发工具(直接对接Thingsboard开源平台)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!