Featured image of post ModbusRtu

ModbusRtu

Mcgs 与 Modbus RTU通讯

Mcgs 与 Modbus RTU通讯

基础知识

HMI串口引脚定义

串口引脚定义

接口 PIN 引脚定义
COM1
(RS232)
2 RS232RXD
3 RS232TXD
5 GND
COM2
(RS485)
7 RS485+
8 RS485-
COM3
(RS485)
4 RS485+
9 RS485-
COM9
(RS422)
4 TXD+
9 TXD-
5 GND
7 RXD+
8 RXD-

支持的寄存器及功能码说明如下

寄存器 读功能码 写功能码 功能码说明
[1区]输入继电器 0x02 0x02: 读取输入状态
[0区]输出继电器 0x01 0x05、0x0F 0x01: 读取线圈状态
0x05: 强制单个线圈
0x0F: 强制多个线圈
[3区]输入寄存器 0x04 0x04: 读输入寄存器
[4区]输出寄存器 0x03 0x06、0x10 0x03: 读保持寄存器
0x06: 预置单个寄存器
0x10: 预置多个寄存器

[!ATTENTION] 添加寄存器通道时,起始地址均为1,这是遵从modbusrtu协议,即所谓的“协议地址”,对于部分寄存器起始地址为0的设备,通道添加时,地址应加1处理

PLC协议说明

离散量输出(线圈)和保持寄存器支持读请求和写请求。离散量输入(触点)和输入寄存器仅支持读请求。
参数地址 (Addr) 是起始 Modbus 地址。S7‑200 SMART 支持以下地址范围:
对于离散量输出(线圈),为 00001 至 09999
对于离散量输入(触点),为 10001 至 19999
对于输入寄存器,为 30001 至 39999
对于保持寄存器,为 40001 至 49999 和 400001 至 465535
Modbus 从站设备支持的地址决定了 Addr 的实际取值范围。
参数“计数”(Count) 用于分配要在该请求中读取或写入的数据元素数。
对于位数据类型,“Count”是位数,对于字数据类型,则表示字数。
对于地址 0xxxx,“计数”(Count) 是要读取或写入的位数
对于地址 1xxxx,“计数”(Count) 是要读取的位数
对于地址 3xxxx,“计数”(Count) 是要读取的输入寄存器字数
对于地址 4xxxx 或 4yyyyy,“计数”(Count) 是要读取或写入的保持寄存器字数
MBUS_MSG/MB_MSG2 指令最多读取或写入 120 个字或 1920 个位(240 个字节的数据)。
Count 的实际限值取决于 Modbus 从站设备的限制。
参数 DataPtr 是间接地址指针,指向 CPU 中与读/写请求相关的数据的 V 存储器。
对于读请求,将 DataPtr 设置为用于存储从 Modbus 从站读取的数据的第一个 CPU 存储单元。
对于写请求,将 DataPtr 设置为要发送到 Modbus 从站的数据的第一个 CPU 存储单元。
程序将 DataPtr 值以间接地址指针的形式传递到 MBUS_MSG/MB_MSG2。
例如,如果要写入到 Modbus 从站设备的数据始于 CPU 的地址 VW200,则 DataPtr 的值将为 &VB200(地址 VB200)。指针必须始终是 VB 类型,即使它们指向字数据。
保持寄存器(地址 4xxxx 或 4yyyyy)和输入寄存器(地址 3xxxx)是字值(2 个字节或 16 个位)。
CPU 字的格式与 Modbus 寄存器相同。编号较小的 V 存储器地址是寄存器的最高有效字节。编号较大的 V 存储器地址是寄存器的最低有效字节。下表显示了 CPU 字节和字寻址如何与 Modbus 寄存器格式相对应。

1.通讯参数设置 “通用串口父设备”通讯参数设置,选择串口端口号,波特率,校验方式等。 添加子设备,设置设备的从站地址。 2.添加设备通道

使用 Hugo 构建
主题 StackJimmy 设计