以下是汇川Evo系列PLC(如Evo20、Evo30等小型PLC)的Modbus地址对应软元件表,基于其紧凑架构和Modbus通信协议(支持RTU和TCP)的映射规则,适用于与HMI、变频器、传感器等第三方设备的轻量级通信场景:

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

功能码 地址范围(十进制) 功能描述 内部软元件(PLC) 地址映射公式 最大数量 数据类型/格式 协议支持 说明
0x01 00001-04096 读线圈状态(输出) Y0-Y4095(输出继电器) Modbus地址 = Y编号 + 1 4096点(512字节) BOOL(1位) RTU/TCP 如Y0对应00001,Y50对应00051;基础机型支持Y0-Y511,扩展后最大4096点
0x05 00001-04096 写单个线圈 Y0-Y4095(输出继电器) 同0x01 4096点 BOOL(1位) RTU/TCP 写入值0xFF00=ON,0x0000=OFF;支持立即输出(通过“强制输出”指令刷新)
0x0F 00001-04096 写多个线圈 Y0-Y4095(输出继电器) 同0x01 4096点 BOOL数组(按字节打包) RTU/TCP 单次最多写1968点(246字节),数据按“高位在前”存储(第1字节bit7对应起始地址+7)
0x02 10001-14096 读离散输入状态 X0-X4095(输入继电器) Modbus地址 = X编号 + 1 4096点 BOOL(1位) RTU/TCP 如X0对应10001,X100对应10101;高速输入(X0-X3)支持5kHz响应,需通过参数配置
0x03 40001-48192 读保持寄存器 D0-D8191(数据寄存器) Modbus地址 = D编号 + 1 8191字(16位) INT/UINT/DINT/REAL/BCD RTU/TCP 如D0对应40001,D200对应40201;支持32位数据(连续地址),D8191为保留地址
0x06 40001-48192 写单个保持寄存器 D0-D8191(数据寄存器) 同0x03 8191字 INT/UINT/BCD(16位) RTU/TCP 32位数据需分两次写入(如D0+D1对应40001+40002,低地址存低16位)
0x10 40001-48192 写多个保持寄存器 D0-D8191(数据寄存器) 同0x03 8191字 同0x03(连续地址) RTU/TCP 单次最多写123字(246字节),支持广播写入(地址0),适用于批量参数配置
0x04 30001-30128 读输入寄存器(AI) AI0-AI127(模拟量输入) Modbus地址 = AI通道号 + 1 128字 INT(16位原始值) RTU/TCP 如AI0对应30001,AI5对应30006;原始值0-32767对应0-10V/4-20mA,只读不可写
0x06 420001-420064(扩展) 写输出寄存器(AO) AO0-AO63(模拟量输出) Modbus地址 = 200000 + AO通道号 + 1 64字 INT(16位原始值) RTU/TCP 如AO0对应420001,AO3对应420004;原始值0-32767对应0-10V/4-20mA,需通过功能码0x06写入
0x03 430001-434096(扩展) 读辅助继电器(间接) M0-M4095(辅助继电器) Modbus地址 = 300000 + M编号 + 1 4096点(需转换) 按字打包(16位/字) RTU/TCP M不直接映射,需程序将M0-M15写入D1000(如M0→D1000.0),主站读430001获取状态
0x03 440001-440512(扩展) 读定时器当前值 T0-T511(定时器) Modbus地址 = 400000 + T编号 + 1 511字 INT(16位,BCD码) RTU/TCP 如T10对应440011,定时器分辨率支持10ms-1s,当前值通过程序写入D2000+T编号
0x03 450001-450512(扩展) 读计数器当前值 C0-C511(计数器) Modbus地址 = 500000 + C编号 + 1 511字 INT(16位,BCD码) RTU/TCP 高速计数器(C100-C127)值存储于专用D寄存器(如C100→D3100),主站读450101获取值

关键技术特性说明

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

  • Evo20(微型):支持X0-X127、Y0-Y127、D0-D1023、M0-M1023、T0-T127、C0-C127,AI/AO各最多4通道。
  • Evo30(小型):扩展后支持X0-X4095、Y0-Y4095、D0-D8191、M0-M4095、T0-T511、C0-C511,AI/AO各最多128通道。
  • 软元件扩展通过汇川扩展模块(如Evo-EX16X)实现,地址在EvoWorks编程软件中自动分配。

2. 地址映射核心规则

  • 位元件(X/Y/M):Modbus地址 = 软元件编号 + 1(Modbus地址从1起始,软元件从0起始)。
    例:Y20 → 00021(20+1),X50 → 10051(50+1)。
  • 字元件(D/AI/AO)
    • 保持寄存器(D):Modbus地址 = D编号 + 1(如D50→40051)。
    • 输入寄存器(AI):Modbus地址 = AI通道号 + 1(如AI2→30003)。
    • 输出寄存器(AO):Modbus地址 = 200000 + AO通道号 + 1(如AO1→420002)。

3. 数据类型存储规范

  • 16位数据:INT/UINT/BCD直接对应1个Modbus字地址(如40001=D0)。
  • 32位数据
    • DINT(32位整数):D0(低16位)+ D1(高16位)→ 对应40001+40002。
    • REAL(浮点数):存储格式同DINT,主站需按IEEE754标准解析(如D0=0x42480000→50.0)。
  • 字符串:1个字符占1字节,存储于连续D寄存器(如"EvoPLC"→D100=0x4576,D101=0x6F50,D102=0x4C43)。

4. 通信协议与配置

协议类型 硬件支持 关键配置参数 说明
Modbus RTU 集成RS485端口(Evo30) 波特率(9600bps默认)、偶校验、1停止位 支持1主多从(≤16从站),距离≤500m
Modbus TCP 扩展以太网模块(Evo-ETH) IP地址、端口502(默认)、子网掩码 适用于小型网络,支持最多8个客户端

5. 扩展映射实现方法

  • 辅助继电器M:通过“MOV_BLK”指令将M0-M15的16位状态打包到D1000,主站读取430001(对应D1000)即可获取M0-M15的状态(bit0-bit15)。
  • 定时器T:在PLC程序中用“MOV”指令将T5的当前值(BCD码,单位100ms)写入D2005,主站读取440006(对应D2005)获取值(如25→0x0025)。
  • 高速计数器C:高速计数器C100的当前值自动存储于D3100(16位整数),主站读取450101(对应D3100)即可获取计数结果(最大65535)。

6. 常见问题解决方案

  • 地址访问超限:Evo系列默认限制D0-D1023可访问,需在EvoWorks的“Modbus配置”中扩展范围(如D0-D5000)。
  • 32位数据读取错误:主站需读取连续2个字(如读40001时长度=2),并按“低地址存低字节”拼接(如D0=0x1234,D1=0x5678→32位值=0x56781234)。
  • RTU通信干扰:采用屏蔽双绞线,总线两端接入120Ω终端电阻;避免与强电电缆并行布线。
  • TCP连接超时:缩短“响应超时时间”(默认1000ms→500ms),或检查PLC与主站的IP路由(需同网段)。

应用示例

  • 读取压力传感器(4-20mA)
    AI1连接压力传感器 → Modbus地址30002 → 功能码0x04,读取长度1字 → 原始值32767对应20mA(10MPa),主站转换为0-10MPa工程值。

  • 控制指示灯组
    主站用0x0F写入00001-00008(Y0-Y7)→ 批量控制8个指示灯状态;用0x01读取00001-00008 → 确认输出状态。

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