Modbus-tcp使用示例

EMQX 企业版技术支持发表于:2022年07月26日 10:35:42更新于:2022年09月15日 10:15:03

简介

MODBUS TCP/IP 是 MODBUS 系列简单、供应商中立的通信协议的一个变体,用于监控自动化设备。具体来说,它涵盖了使用 TCP/IP 协议在“Intranet”或“Internet”环境中使用 MODBUS 消息传递。此时协议最常见的用途是将 PLC、I/O 模块和“网关”以以太网连接到其他简单的现场总线或 I/O 网络。

MODBUS TCP/IP 协议作为自动化标准发布。由于 MODBUS 已经广为人知,因此本文档中应该很少有其他地方无法获得的信息。然而,已经尝试阐明 MODBUS 中的哪些功能对通用自动化设备的互操作性具有价值,以及哪些部分是作为 PLC 编程协议交替使用 MODBUS 的“包袱”。

这是通过将支持的消息类型分组到“一致性等级”中来完成的,这些等级区分了那些普遍实现的消息和那些可选的消息,特别是那些特定于诸如 PLC 之类的设备的消息。

安装Modbus模拟器

下载链接:https://www.hmisys.com/downloads/PeakHMISlaveSimulatorInstall.exe

下载完成后运行该模拟器:

image.png

点击Windows,会弹出Register data选项,点击进去:

image.png

根据弹出的窗口选择Holding Registers就可以设置每个点位地址对应的值。

安装Neuron

## 1.获取Docker镜像
docker pull neugates/neuron:2.0.1

## 启动Docker容器
docker run -d --name neuron -p 7000:7000 -p 7001:7001 --privileged=true --restart=always neugates/neuron:2.0.1
  • tcp 7000: 用于访问web。

  • tcp 7001: http api端口。(api端口为web端口+1,例如,当web端口映射为8000时,api端口应映射为8001)

  • tcp 9081: eKuiper api端口.

  • --restart=always: docker进程重启时,自动重启neuron容器。

  • --privileged=true:便于排查问题。

  • --device /dev/ttyUSB0:/dev/ttyS0: 用于映射串口到docker。

image.png

Neuron web页面默认用户名admin,默认密码0000

南向配置

image.png

点击南向设备管理,添加设备

image.png

填写设备名称,选择协议类型,点击创建

image.png

点击设备配置,填写设备配置信息

image.png

填写信息确保无误后,点击提交

image.png

创建完成后,点击该设备面板进入Group列表子页面,点击创建group

image.png

首先,填写group名称和Interval采集频率,点击创建;其次,点击箭头所指图标进入子页面创建需要采集数据的点位信息,如图:

image.png

提示:neuron不但可以数据上报,同时还可以进行协议下发,在配置点位信息的时候,Attribute参数可以选择多个选项,只要将write选项也选上后,就可以通过neuron去修改modbus tcp模拟器上的点位对应的值,实际设备同理。

完成点位信息配置后点击创建,可以看到点位已经创建成功,如图:

image.png

另外在Tag列表页面还可以通过箭头所指对点位进行导入和导出的功能,这样可以避免手工添加点位的繁琐。

image.png

返回到南向设备管理页面,点击箭头所指开关选项后,可以看到工作状态变为“运行中”,连接状态为“已连接”。

image.png

点击数据监控页面,根据箭头顺序,可以监控已创建点位的值是否成功采集,如图:

image.png

北向配置

image.png

创建北向应用,点击北向应用管理,添加应用,填写相应名称选择插件类型,点击完成创建

image.png

这里以数据上报到EMQX为例,所以选择插件mqtt

image.png

和南向一样,首先点击应用配置

注:Upload topic是可以自定义的,如果不设置,消息将会往默认的主题发送(默认topic:neuron/client-id/upload)

image.png

填写相应应用配置信息,点击提交

image.png

与南向相同,点击箭头所指开关选项,可以看到工作状态处于“运行中”,连接状态处于“已连接”,表明北向已经成功连接EMQX且能够正常运行

image.png

点击已创建好的北向应用面板,进入group列表页面,点击添加订阅,选择需要订阅的南向设备及下面的group,选择提交

image.png

验证

最后所有都配置完成后,我们可以用一个客户端测试工具MQTTX连接(https://www.emqx.com/zh/try?product=MQTTX) EMQX去订阅neuron上报数据的topic,查看是否能收到消息。

首先通过EMQX Dashboard可以看到连接的两个客户端,一个是neuron北向连接上来的,一个是用MQTTX连接的,如图:

image.png

然后,在MQTTX上用该连接上的客户端去订阅neuron/neuron/upload主题,可以看到消息在不停的发送过来,如图:

image.png

提示:因为北向设置的clientid为neuron,Upload topic采用默认的(neuron/clientid/upload),所以此处订阅的topic为neuron/neuron/upload。

至此,通过neuron采集modbus tcp模拟器上的数据上报到EMQX已完成。


    您需要登录后才可以回复