以下是汇川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软件的参数设置和用户程序,确保地址映射与第三方设备的数据格式、通信参数匹配。
李枭龙8 个月前
AI生成文章:请以上所有知识进行深入分析,确定主要知识点,为每个知识点撰写详细说明并附上具有代表性且带有清晰注释的代码示例,接着根据内容拟定一个准确反映文档核心的标题,最后严格按照 Markdown 格式进行排版,确保文档规范美观,以满足初学者学习使用的需求。
李枭龙1 年前
X Lucas