写点什么

AIRIOT 物联网低代码平台如何配置 Modbus RTU 协议?

作者:Geek_a614b3
  • 2022 年 5 月 25 日
  • 本文字数:2506 字

    阅读完需:约 8 分钟

AIRIOT物联网低代码平台如何配置Modbus RTU协议?

MBRTU 即 MODBUS RTU 的简称,MODBUS 是 OSI 模型第 7 层上的应用层报文传输协议,它在连接至不同类型总线或网络的设备之间提供客户机/服务器通信。平台的 MBRTU 协议是建立在 TCP 协议之上的应用层协议。一般使用 DTU 实现底层 TCP 连接,然后平台和设备进行应用层的 modbus 协议通讯。了解 MODBUS 协议详细内容请下载 Modbus协议中文版【完整版】。


AIRIOT 物联网低代码配置 Modbus RTU 协议说明


连接地址

每一种协议的连接服务器地址和端口号都不一样,请登录平台>设备管理>进入设置连接界面查看。

序列号

在平台创建设备时会自动生成一个序列号,设备建立 TCP 连接之后应第一时间发送序列号,DTU 的设置上一般设置为登陆包或注册包(可以查看网关连接案例)。

心跳包

心跳包用户维持链接的长连接,空闲时一般为一分钟发送一次。平台识别的心跳包为 Q,当平台收到心跳包 Q 时,会立即响应 A 发送给设备,设备可通过心跳包交互来判断与设备的连接情况。

设备定位数据

其他协议可以对传感器发送经纬度数据,MBRTU 协议不会对传感器进行经纬度数据的解析。但是,平台提供了独立的定位数据格式(GPS:24.03,113.75),在空闲时发送定位数据。

读写指令说明

登陆平台,选择进入 MBRTU 协议设备的设置连接页面。


从站地址

平台支持一个 DTU 接入多个设备(通过 RS485),所以要求每个设备的从站地址各不相同。

功能码

01 读写:对开关量(bit 位)进行读写,写入默认使用 05 功能码(不需要单独设置),该功能码一般针对 PLC 的开关输出点(比如西门子 PLC 的 Q 点)。

02 只读:对开关量(bit 位)进行读,是只读的,不允许写入,一般针对 PLC 的开关输入点(比如西门子 PLC 的 I 点)。

03 读写:对整形/浮点型数据进行读写,写入默认使用 06 功能码(16 位整形数据)和 10 功能码(32 位和 64 位整形和浮点型数据),也就是对单个寄存器写入使用 06,多个寄存器使用 10。

04 只读:对整形/浮点型数据进行读,只读不写。

偏置

偏置表示的是数据地址。如果数据地址是 16 进制表示(0x0000 开始),则需要把 16 进制转为十进制并加 1,才是偏置的值。如果地址使用区号+序号表示(比如 40001),则偏置只取序号就可以了(也就是 1)。

数据格式

Bit:二进制位

16 位有符号数:占用 1 个偏置,2 个字节,表示正负整数,数据范围-32768~32767。

16 位无符号数:占用 1 个偏置,2 个字节,表示正整数,数据范围 0~65535。

16 位按位读写:占用 1 个偏置,表示 16 位二进制,通过数据位(1~16)指定具体的位。

32 位有符号数:占用 2 个偏置,4 个字节,表示正负整数,数据范围- 2147483648~ 2147483647。

32 位无符号数:占用 2 个偏置,4 个字节,表示正整数,数据范文 0~ 4294967295。

32 位浮点型数:占用 2 个偏置,4 个字节,可表示正数、负数、正数、小数。

64 位浮点型数:占用 4 个偏置,8 个字节,可表示正数、负数、正数、小数。

字节顺序

表示字节的高低位顺序。

采集周期

表示读取传感器数据的周期时间,由于 MODBUS 协议是请求应答式协议,每次读数据都会等待接收,等待的过程会产生延时,最长等待 20 秒,所以越多数据不响应,采集周期会越长。


背景说明

ModbusSlave 是一款 MODBUS 协议调试工具,可以模拟支持 MODBUS 协议的从站设备。本案例使用 ModbusSlave 调试工具和虚拟串口工具(模拟 DTU 设备功能)连接平台并实现 MODBUS 通讯。ModbusSlave 调试工具下载地址:ModbusSlave调试工具虚拟串口工具下载地址:虚拟串口工具

操作步骤

登录平台>设备管理>添加设备,创建一个 MODBUS RTU 协议设备。


设备分组:对设备进行分组,分组之后在可以设备管理页面进行调整。

设备名称:自定义。

链接协议:MBRTU

掉线延时:此时间只与“已连接”和“未连接”状态有关系,如果在该时间范围内没有数据传到平台,那么该设备连接状态显示“未连接”。所以此时间要设置为比实际上行数据间隔要大,才不会在正常传输数据过程中出现“未连接”。最小值 60s。

传感器:添加不同类型的数值,用来显示设备的不同变量,一个传感器代表设备的一个变量,比如 PLC 的寄存器变量。

位置信息:给设备标注一个地理位置,标注方式为:搜索框输入地名、搜索框输入经纬度、地图上点击一个位置。

进入设备管理>设置连接>点击读写指令设置。


IP:设备连接服务器的地址,每种协议都有单独的服务器地址。

端口号:设备连接服务器的端口号,每种协议都有单独的服务器端口号。

序列号:设备的唯一标识,创建设备时由平台自动生成,可以重新获取和编辑。

读写指令设置:点击可对每个传感器进行读写指令设置。

写入:输入数据,点击写入,即可把数据写入到设备。

接收指令:实时显示设备上传的原始数据。

设置读写指令


从站地址:本案例设置为 1(ModbusSlave 调试工具设置从站地址为 1)。

功能码:本案例设置为 03 读写(ModbusSlave 调试工具添加 03 功能码的数据)。

偏置:本案例设置 3 个数据,偏置分别为 1、2、3(对应的数据地址 0、1、2,偏置需要加 1)。

数据格式:本案例设置为 16 位有符号数(ModbusSlave 调试工具里面表示为 Signed)。

采集周期:单位为秒,请根据实际需求设置,平台限制了一分钟读取 60 次数据(相同从站和相同功能码且偏置连续,只读取一次),所以,如果想设置采集快一点,先计算一下一个周期要读多少次(即最快可设置多少秒)。

设置虚拟串口工具。

打开虚拟串口工具>点击添加虚拟串口>填入如下信息>点击按钮添加串口>点击按钮启动。


设备名称:自定义。

串口号:com+序号,切记不要设置为电脑已有的 com 口。

TCP 模式:TCP 客户端。

远程 IP 地址:不能使用域名,可以使用 CMD 终端 ping 域名获得。可在设置连接页面查看域名。

远程端口号:可在设置连接页面查看端口号。

连接成功发送注册信息:勾选。

注册信息:输入设备序列号。

设置 ModbusSlave 调试工具

打开调试工具>点击菜单 Connection>Connection Setup>设置如下信息>点击按钮 OK。


SerialSettings:选择上一步添加的虚拟串口。

Mode:RTU

其他的不用设置了,因为虚拟串口会自动识别波特率、数据位、校验位、停止位,所以这一块也不用设置。

点击菜单 Slave Definition>设置如下信息>点击按钮 OK


Slave ID:从站地址。

Function:功能码

设置到这里就可以了,其他的设置这里不描述了,数据格式默认是 16 位有符号,如果需要修改可以选择菜单 Display 根据选项进行修改。

打开监控中心,应该可以看到数据了



试用产品:申请试用 | AIRIOT 让物联网项目更简单

用户头像

Geek_a614b3

关注

还未添加个人签名 2022.03.30 加入

还未添加个人简介

评论

发布
暂无评论
AIRIOT物联网低代码平台如何配置Modbus RTU协议?_驱动配置_Geek_a614b3_InfoQ写作社区