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 让物联网项目更简单