Modbus TCP
协议概述
MODBUS是OSI模型第7层上的应用层报文传输协议,它在连接至不同类型总线或网络的设备之间提供客户机/服务器通信。平台的MBTCP协议是建立在TCP协议之上的应用层协议。自带MODBUS TCP协议的设备一般为TCP server端(只能由客户端主动连接,不能主动连接平台),所以需要一个TCPserver转TCPclient的透明转发模块,来连接设备和平台。当然,如果设备本身支持client模式,可直连。
功能码
- 01读写:对开关量(bit位)进行读写,写入默认使用05功能码(不需要单独设置),该功能码一般针对PLC的开关输出点(比如西门子PLC的Q点)。
- 02只读:对开关量(bit位)进行读,是只读的,不允许写入,一般针对PLC的开关输入点(比如西门子PLC的I点)。
- 03读写:对整形/浮点型数据进行读写,写入默认使用06功能码(16位整形数据)和10功能码(32位和64位整形和浮点型数据),也就是对单个寄存器写入使用06,多个寄存器使用10。
- 04只读:对整形/浮点型数据进行读,只读不写。
字节顺序
表示字节的高低位顺序。
配置说明
设备IP
设备的IP地址。
端口
设备的端口号。
连接超时时间
单位秒,默认10s,创建连接的最长超时时间及读写数据的最长超时时间。
连接空闲时间
单位秒,默认30s,从上一次请求后超过时间链接未使用,关闭当前链接。
连接使用间隔
单位毫秒,默认1毫秒,同一设备IP和端口下的设备,读取的时间间隔。
站号
将请求发送到 Modbus TCP 从站设备的设备ID。
采集周期
表示读取传感器数据的周期时间,单位秒,最小值0.001秒,由于MODBUS协议是请求应答式协议,每次读数据都会等待接收,等待的过程会产生延时,最长等待超时时间(秒),所以越多数据不响应,采集周期会越长。
自动化地址
开启自动化地址,数据点偏移地址从1开始。 偏置表示的是数据地址。如果数据地址是16进制表示(0x0000开始),则需要把16进制转为十进制并加1,才是偏置的值。如果地址使用区号+序号表示(比如40001),则偏置只取序号就可以了(也就是1)。
通讯监控参数
通讯超时时间:单位秒(s),判断设备超时的时间标准,超时时间默认为定义采集周期的3倍。
数据点配置
名称
数据点名称
标识
数据点唯一标识
读取区域
- 线圈状态:01读写,对开关量(bit位)进行读写,写入默认使用05功能码(不需要单独设置),该功能码一般针对PLC的开关输出点(比如西门子PLC的Q点)。
- 输入状态:02只读,对开关量(bit位)进行读,是只读的,不允许写入,一般针对PLC的开关输入点(比如西门子PLC的I点)。
- 保持寄存器:03读写,对整形/浮点型数据进行读写,写入默认使用06功能码(16位整形数据)和10功能码(32位和64位整形和浮点型数据),也就是对单个寄存器写入使用06,多个寄存器使用10。
- 输入寄存器:04只读,对整形/浮点型数据进行读,只读不写。
偏移地址
数据点所在寄存器起始地址。
读写属性
设置读写属性
数据类型
数据类型 | 寄存器个数 | 字节数 | 说明 |
---|---|---|---|
Int8 | 1 | 1 | 有符号整型 |
UInt8 | 1 | 1 | 无符号整型 |
Int16BE | 1 | 2 | 有符号整数,高位在前 |
Int16LE | 1 | 2 | 有符号整数,低位在前 |
UInt16BE | 1 | 2 | 无符号整数,高位在前 |
UInt16LE | 1 | 2 | 无符号整数,低位在前 |
Int32BE | 2 | 4 | 有符号长整数,高位在前 |
Int32LE | 2 | 4 | 有符号长整数,低位在前 |
Int32BE- | 2 | 4 | 有符号长整数,高位在前,字节交换 |
Int32LE- | 2 | 4 | 有符号长整数,低位在前,字节交换 |
UInt32BE | 2 | 4 | 无符号长整数,高位在前 |
UInt32LE | 2 | 4 | 无符号长整数,低位在前 |
UInt32BE- | 2 | 4 | 无符号长整数,高位在前,字节交换 |
UInt32LE- | 2 | 4 | 无符号长整数,低位在前,字节交换 |
FloatBE | 2 | 4 | 浮点数,高位在前 |
FloatLE | 2 | 4 | 浮点数,低位在前 |
FloatBE- | 2 | 4 | 浮点数,高位在前,字节交换 |
FloatLE- | 2 | 4 | 浮点数,低位在前,字节交换 |
DoubleBE | 4 | 8 | 双精度浮点数,高位在前 |
DoubleLE | 4 | 8 | 双精度浮点数,低位在前 |
DoubleBE- | 4 | 8 | 双精度浮点数,高位在前,字节交换 |
DoubleLE- | 4 | 8 | 双精度浮点数,低位在前,字节交换 |
Boolean | 1 | 1 | 布尔型 |
String | 32 | 64 | 字符串-ASCII编码 |
HEX | 1 | 2 | 16进制数字 |
BCD | 3 | 6 | BCD码 |
寄存器个数
数据点占用的寄存器个数,不填根据数据类型处理。
指令配置
写入区域
- 线圈状态:01读写,对开关量(bit位)进行读写,写入默认使用05功能码(不需要单独设置),该功能码一般针对PLC的开关输出点(比如西门子PLC的Q点)。
- 保持寄存器:03读写,对整形/浮点型数据进行读写,写入默认使用06功能码(16位整形数据)和10功能码(32位和64位整形和浮点型数据),也就是对单个寄存器写入使用06,多个寄存器使用10。
偏移地址
点所在寄存器起始地址。
数据类型
同数据点。
默认写入值
指令写入时候的默认值。
单字节
勾选单字节后数据值按寄存器写入数据,否则多个寄存器同时写值。
操作视频
https://appxow65u356815.pc.xiaoe-tech.com/detail/v_62418ab0e4b0812e1784aa97/3