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 根据选项进行修改。
打开监控中心,应该可以看到数据了
评论