台达 PLC(如 DVP 系列)通过 RS485 通讯实现两台设备的数据交互,需通过Modbus RTU 协议(台达 PLC 默认支持)配置主从机参数,并编写对应的通讯程序。以下是详细的实现步骤,以DVP-ES2 系列(主机)与 DVP-ES2 系列(从机) 为例:
一、硬件准备与接线
1. 硬件需求
2. RS485 接线(半双工)
台达 PLC 的 485 接口通常标注为 “A”(正)、“B”(负),接线需交叉连接:
plaintext
[主机485接口] [从机485接口] A(正) <-------> A(正) (注意:部分设备需A-B交叉,实际以测试为准) B(负) <-------> B(负) GND <-------> GND (屏蔽层单端接地,接GND,避免共模干扰)
二、通讯参数配置(主从机必须一致)
两台 PLC 需设置相同的波特率、数据位、停止位、校验位,并分配唯一的从机地址。
1. 主机参数设置(以 DVP-ES2 为例)
2. 从机参数设置
三、通讯程序编写(主机读 / 写从机数据)
台达 PLC 通过MODBUS 指令(如MODRD
读数据、MODWR
写数据)实现 485 通讯,主机主动发起读写,从机被动响应。
1. 主机程序(读取从机数据)
需求:主机读取从机的 D100 寄存器的值,存到主机的 D200 中。
ladde
// 触发条件:X0按下时,主机读取从机数据 LD X0 Pulse M0 // M0产生一个扫描周期脉冲 // MODRD指令:读取从机数据 // 格式:MODRD S1 S2 S3 D // S1:从机地址(2);S2:从机寄存器类型及起始地址(H1000=保持寄存器D100); // S3:读取长度(1个寄存器);D:主机存储地址(D200) LD M0 MODRD K2 H1000 K1 D200 // 通讯状态判断:D1000=0表示成功,非0表示错误(错误码见附录) LD M0 MOV D1000 D300 // 存储通讯结果(0=成功)
2. 主机程序(写入从机数据)
需求:主机将 D201 的值写入从机的 D101 寄存器。
ladder
// 触发条件:X1按下时,主机写入从机数据 LD X1 Pulse M1 // M1产生一个扫描周期脉冲 // MODWR指令:写入从机数据 // 格式:MODWR S1 S2 S3 D // S1:从机地址(2);S2:从机寄存器类型及起始地址(H1001=保持寄存器D101); // S3:写入长度(1个寄存器);D:主机数据源地址(D201) LD M1 MODWR K2 H1001 K1 D201 // 通讯状态判断 LD M1 MOV D1000 D301 // 存储通讯结果(0=成功)
3. 从机程序(无需主动编程,被动响应)
从机无需编写通讯触发程序,只需确保:
四、关键指令说明
台达 PLC 的 Modbus RTU 通讯依赖以下核心指令:
指令 | 功能 | 关键参数说明 |
---|---|---|
MODRD | 读取从机数据 | S2:寄存器类型代码(H1 = 输入继电器 X,H3 = 输出继电器 Y,H4 = 辅助继电器 M,H10 = 数据寄存器 D);如 H1000 表示从机 D100 |
MODWR | 写入从机数据 | 同 MODRD,S2 格式一致(写入 D 寄存器需用 H10xxxx) |
MODRDS | 读取字符串(ASCII) | 用于读取从机的字符串数据(如触摸屏文本) |
MODWRS | 写入字符串(ASCII) | 用于向从机写入字符串数据 |
寄存器类型代码速查表:
从机元件 | 代码(S2 高 8 位) | 示例(读取从机 D100) |
---|---|---|
X(输入) | H1 | H10064(X64) |
Y(输出) | H3 | H30064(Y64) |
M(辅助) | H4 | H40100(M100) |
D(数据) | H10 | H100100(D100) |
五、调试与常见问题解决
1. 通讯测试步骤
2. 常见错误及解决
错误码(D1000) | 原因分析 | 解决方法 |
---|---|---|
1 | 从机无响应(超时) | 检查接线是否正确、从机是否上电、地址是否正确 |
2 | 校验错误 | 确保主从机校验位一致(如均设为无校验) |
3 | 从机不支持该功能 | 检查 S2 参数(寄存器类型代码是否正确) |
4 | 从机地址不存在 | 确认从机地址(S1)在 1-247 范围内 |
8 | 波特率不匹配 | 主从机 D1120 的波特率设置必须一致 |
六、扩展:多寄存器读写与批量操作
若需读写多个连续寄存器(如读取从机 D100-D102),只需修改MODRD
/MODWR
的 “长度” 参数(S3):
ladder
// 读取从机D100-D102(3个寄存器)到主机D200-D202 LD X0 Pulse M0 MODRD K2 H100100 K3 D200 // K3=读取3个寄存器
总结
台达两台 PLC 的 485 通讯核心是 “主从机参数一致 + Modbus 指令调用”:通过配置相同的波特率、校验位,主机用MODRD
/MODWR
指令主动读写从机数据,从机被动响应。接线时注意 A/B 极性(可尝试交叉或直连),调试时通过状态码快速定位问题。此方法适用于简单的数据交互(如信号传递、参数同步),复杂场景可扩展为多机通讯(最多 32 台从机)。