以下是汇川AM系列PLC(如AM400、AM600等中大型PLC)的Modbus地址对应软元件表,基于其硬件架构和Modbus通信协议(支持RTU、ASCII和TCP)的映射规则,适用于与第三方设备(如HMI、工业机器人、仪表)的通信配置:

汇川AM系列PLC Modbus地址详细映射表

功能码 地址范围(十进制) 功能描述 内部软元件(PLC) 地址映射公式 最大数量 数据类型/格式 协议支持 说明
0x01 00001-065536 读线圈状态(输出) Y0-Y65535(输出继电器) Modbus地址 = Y编号 + 1 65536点(8192字节) BOOL(1位) RTU/TCP/ASCII 如Y0对应00001,Y100对应00101;支持扩展模块,总点数取决于机架配置(最大65536点)
0x05 00001-065536 写单个线圈 Y0-Y65535(输出继电器) 同0x01 65536点 BOOL(1位) RTU/TCP/ASCII 写入值0xFF00=ON,0x0000=OFF;支持立即输出(通过“强制输出”指令刷新)
0x0F 00001-065536 写多个线圈 Y0-Y65535(输出继电器) 同0x01 65536点 BOOL数组(按字节打包) RTU/TCP/ASCII 单次最多写1968点(246字节),数据按“高位在前”存储(第1字节bit7对应起始地址+7)
0x02 10001-165536 读离散输入状态 X0-X65535(输入继电器) Modbus地址 = X编号 + 1 65536点 BOOL(1位) RTU/TCP/ASCII 如X0对应10001,X200对应10201;高速输入(X0-X15)支持1MHz响应,需通过硬件配置启用
0x03 40001-4131072 读保持寄存器 D0-D131071(数据寄存器) Modbus地址 = D编号 + 1 131072字(16位) INT/UINT/DINT/REAL/BCD RTU/TCP/ASCII 如D0对应40001,D1000对应41001;支持32位/64位数据(连续地址),D131071为保留地址
0x06 40001-4131072 写单个保持寄存器 D0-D131071(数据寄存器) 同0x03 131072字 INT/UINT/BCD(16位) RTU/TCP/ASCII 32位数据需分两次写入(如D0+D1对应40001+40002,低地址存低16位)
0x10 40001-4131072 写多个保持寄存器 D0-D131071(数据寄存器) 同0x03 131072字 同0x03(连续地址) RTU/TCP/ASCII 单次最多写123字(246字节),支持广播写入(地址0),适用于批量参数下载
0x04 30001-301024 读输入寄存器(AI) AI0-AI1023(模拟量输入) Modbus地址 = AI通道号 + 1 1024字 INT(16位原始值) RTU/TCP/ASCII 如AI0对应30001,AI100对应30101;原始值0-65535对应0-10V/4-20mA,只读不可写
0x06 420001-420512(扩展) 写输出寄存器(AO) AO0-AO511(模拟量输出) Modbus地址 = 200000 + AO通道号 + 1 512字 INT(16位原始值) RTU/TCP/ASCII 如AO0对应420001,AO10对应420011;原始值0-65535对应0-10V/4-20mA,需通过功能码0x06写入
0x03 430001-4365536(扩展) 读辅助继电器(间接) M0-M65535(辅助继电器) Modbus地址 = 300000 + M编号 + 1 65536点(需转换) 按字打包(16位/字) RTU/TCP/ASCII M不直接映射,需程序将M0-M15写入D20000(如M0→D20000.0),主站读430001获取状态
0x03 440001-442048(扩展) 读定时器当前值 T0-T2047(定时器) Modbus地址 = 400000 + T编号 + 1 2047字 INT(32位,浮点型) RTU/TCP/ASCII 如T10对应440011,定时器分辨率支持1μs-1s,当前值通过程序写入D30000+T编号
0x03 450001-452048(扩展) 读计数器当前值 C0-C2047(计数器) Modbus地址 = 500000 + C编号 + 1 2047字 INT(32位,整数型) RTU/TCP/ASCII 高速计数器(C1000-C2047)值存储于专用D寄存器(如C1000→D40000),主站读451001获取值

关键技术特性说明

1. 软元件范围与机型差异

  • AM400系列:基础支持X0-X1023、Y0-Y1023、D0-D32767、M0-M8191,扩展后最大支持32768点I/O。
  • AM600系列:支持X0-X65535、Y0-Y65535、D0-D131071、M0-M65535,适用于大型控制系统。
  • 软元件扩展通过汇川EtherCAT或PROFINET总线模块实现,地址在InoProShop软件中分配。

2. 地址映射核心规则

  • 位元件(X/Y/M):Modbus地址 = 软元件编号 + 1(Modbus地址从1起始,软元件从0起始)。
    例:Y100 → 00101(100+1),X200 → 10201(200+1)。
  • 字元件(D/AI/AO):保持寄存器地址 = D编号 + 1,输入寄存器(AI)= 通道号 + 1,输出寄存器(AO)= 200000 + 通道号 + 1。
    例:D500 → 40501(500+1),AI8 → 30009(8+1),AO3 → 420004(200000+3+1)。

3. 数据类型存储规范

  • 32位数据
    • DINT(32位整数):D0(低16位)+ D1(高16位)→ 对应40001+40002
    • REAL(浮点数):存储格式同DINT,主站需按IEEE754标准解析(如D0=0x42480000→50.0)。
  • 64位数据:占用连续4个D寄存器(如D0-D3对应40001-40004),适用于LREAL或LINT类型。
  • 字符串:1个字符占1字节,存储于连续D寄存器(如"AMPLC"→D100=0x414D,D101=0x504C,D102=0x4300)。

4. 通信协议与配置

协议类型 硬件支持 关键配置参数 应用场景
Modbus RTU 集成RS485端口或CM模块 波特率(9600-115200bps)、偶校验 近距离设备通信(≤1200m),如变频器、传感器
Modbus TCP 集成以太网端口 IP地址、子网掩码、端口502(默认) 远程监控或多设备联网,如SCADA系统
Modbus ASCII 扩展RS232模块 数据格式8N1,波特率1200-9600bps 低速、低干扰环境,如条码扫描器

5. 扩展映射实现方法

  • 辅助继电器M:通过“BLKMOV”指令将M0-M15的16位状态打包到D20000,主站读取430001(对应D20000)即可获取M0-M15的状态(bit0-bit15)。
  • 定时器T:在PLC程序中用“MOVR”指令将T10的当前值(浮点型,单位秒)写入D30010,主站读取440011(对应D30010)获取实时值。
  • 高速计数器C:高速计数器C1000的当前值自动存储于D40000(32位整数),主站读取451001(对应D40000)即可获取计数结果。

6. 常见问题解决方案

  • 地址访问超限:AM系列支持“访问权限设置”,需在InoProShop中配置允许访问的软元件范围(如限制D0-D1000可读写)。
  • 32位数据读取异常:主站需读取连续2个字(如读取40001时指定长度=2),并按“小端模式”拼接(低地址存低字节)。
  • TCP通信延迟:在以太网模块参数中降低“响应超时时间”(默认2000ms→500ms),或启用“快速响应”模式。
  • 模拟量精度问题:对AI模块进行“温度补偿校准”(InoProShop→硬件配置→校准),或通过程序线性修正(如SCALE_X指令)。

应用示例

  • 读取多路模拟量(压力+流量)
    AI0(压力)→ 30001,AI1(流量)→ 30002 → 功能码0x04,读取长度2字 → 主站解析为0-10MPa和0-50m³/h。

  • 控制伺服电机运行
    主站用0x10写入40100-40103 → 设定位置(D99-D102,64位LINT);用0x05写入00010(Y9)→ 启动运行;用0x02读取10015(X14)→ 确认运行完成信号。

此表适用于汇川AM系列PLC的Modbus通信配置,实际应用需结合InoProShop软件的硬件组态和用户程序,确保地址映射与第三方设备的数据格式、通信参数完全匹配。