跳到主要内容

三菱MC协议网关

前言

注意点

  • 1 个线圈 = 1
  • 1 个寄存器地址 = 2 个字节;
  • [ 寄存器起始地址 = 0001 ] 相当于 [ 访问地址 = 0 ],存在 1 位地址偏移;
  • 4 字节数据的编码格式 = BA_DC; (大端模式 = DC_BA,小端模式 = AB_CD)
  • 支持自动重连

协议类

Modbus协议对应的类备注
TcpModbusTcp, ModbusTcpServer网口
RtuModbusRtuOverTcp需要串口转网口
AsciiModbusAsciiOverTcp需要串口转网口

数据区

区号名称读写地址范围对应方法
0区输出线圈可读可写布尔量00001-09999readCoil / writeCoil
1区输入线圈只读布尔量10001-19999readDiscreteInput
3区输入寄存器只读寄存器30001-39999readInputRegister
4区保持寄存器可读可写寄存器40001-49999readHoldRegister / writeHoldRegister

地址解析

根据 Modbus 通信协议,Modbus 数据的地址使用 0xxxx、1xxxx、3xxxx 和 4xxxx 的形式。

案例地址数据区地址前缀剩余地址对应方法地址使用示例
00001输出线圈000010readCoil(0, 1)
10003输入线圈100032readDiscreteInput(2, 1)
30020输入寄存器3002019readInputRegister(19, 1)
40100保持寄存器4010099readHoldRegister(99, 1)

功能码

序号功能码功能说明对应方法
101H读取输出线圈readCoil
202H读取输入线圈readDiscreteInput
303H读取保持寄存器readHoldRegister
404H读取输入寄存器readInputRegister
505H写入单线圈writeCoil
606H写入单寄存器writeHoldRegister
70FH写入多线圈writeCoil
810H写入多寄存器writeHoldRegister

保持寄存器快捷访问

序号方法寄存器数量字节大小位大小含义寄存器
1readBoolean11/81读取boolean保持寄存器
2readInt161216读取Int16保持寄存器
3readUInt161216读取UInt16保持寄存器
4readInt322432读取Int32保持寄存器
5readUInt322432读取UInt32保持寄存器
6readFloat322432读取Float32保持寄存器
7readFloat644864读取Float64保持寄存器
8readStringn2n16n读取字符串保持寄存器
9writeInt161216写入Int16保持寄存器
10writeUInt161216写入UInt16保持寄存器
11writeInt322432写入Int32保持寄存器
12writeUInt322432写入UInt32保持寄存器
13writeFloat322432写入Float32保持寄存器
14writeFloat644864写入Float32保持寄存器
15writeStringn2n16n写入字符串保持寄存器