Skip to main content

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只读,对整形/浮点型数据进行读,只读不写。

偏移地址

数据点所在寄存器起始地址。

读写属性

设置读写属性

数据类型

数据类型寄存器个数字节数说明
Int811有符号整型
UInt811无符号整型
Int16BE12有符号整数,高位在前
Int16LE12有符号整数,低位在前
UInt16BE12无符号整数,高位在前
UInt16LE12无符号整数,低位在前
Int32BE24有符号长整数,高位在前
Int32LE24有符号长整数,低位在前
Int32BE-24有符号长整数,高位在前,字节交换
Int32LE-24有符号长整数,低位在前,字节交换
UInt32BE24无符号长整数,高位在前
UInt32LE24无符号长整数,低位在前
UInt32BE-24无符号长整数,高位在前,字节交换
UInt32LE-24无符号长整数,低位在前,字节交换
FloatBE24浮点数,高位在前
FloatLE24浮点数,低位在前
FloatBE-24浮点数,高位在前,字节交换
FloatLE-24浮点数,低位在前,字节交换
DoubleBE48双精度浮点数,高位在前
DoubleLE48双精度浮点数,低位在前
DoubleBE-48双精度浮点数,高位在前,字节交换
DoubleLE-48双精度浮点数,低位在前,字节交换
Boolean11布尔型
String3264字符串-ASCII编码
HEX1216进制数字
BCD36BCD码

寄存器个数

数据点占用的寄存器个数,不填根据数据类型处理。

指令配置

指令配置

写入区域

  1. 线圈状态:01读写,对开关量(bit位)进行读写,写入默认使用05功能码(不需要单独设置),该功能码一般针对PLC的开关输出点(比如西门子PLC的Q点)。
  2. 保持寄存器:03读写,对整形/浮点型数据进行读写,写入默认使用06功能码(16位整形数据)和10功能码(32位和64位整形和浮点型数据),也就是对单个寄存器写入使用06,多个寄存器使用10。

偏移地址

点所在寄存器起始地址。

数据类型

同数据点。

默认写入值

指令写入时候的默认值。

单字节

勾选单字节后数据值按寄存器写入数据,否则多个寄存器同时写值。

操作视频

https://appxow65u356815.pc.xiaoe-tech.com/detail/v_62418ab0e4b0812e1784aa97/3