针对E5CC欧姆龙温控器与FX5U PLC进行Modbus通信时可能遇到的问题,以下从硬件接线、参数配置、PLC编程、调试技巧四个方面提供具体解决方案:
一、硬件接线:确保485通讯的物理连接正确
- 接线方式: 
- E5CC温控器的13脚(B)和14脚(A)为485通讯端子,需通过485转232转换器(或直接连接FX5U的485BD模块)与PLC通信。 
- 关键点:若通信失败,可尝试交换A/B线顺序(如将温控器的A接PLC的B,B接A),以排除极性接反问题。 
- 接地处理: 
- 485通讯需可靠接地,避免共地噪声干扰。建议将温控器和PLC的接地端连接至同一地线。 
二、参数配置:匹配通讯协议与设备参数
- 温控器参数设置: 
- PSEL(协议选择):设置为 - Mod(Modbus协议)。
- U-NO(站号):设置为1(需与PLC程序中设置的站号一致)。 
- BPS(波特率):设置为9600(需与PLC一致)。 
- PRTY(校验位):设置为 - EVEN(偶校验)。
- CMWT(通信写入):设置为 - ON(允许通过通信写入参数)。
- 进入通信设定菜单:长按空白键3秒进入初始设定菜单,再短按空白键进入通信设定菜单。 
- 关键参数: 
- 保存设置:按空白键返回初始菜单,长按空白键3秒退出。 
- FX5U PLC参数设置: 
- 通讯格式:通过 - D8120寄存器设置通讯参数,例如:- plaintextMOV H0C86 D8120 // 设置通讯格式为9600/7/E/1(波特率9600,7数据位,偶校验,1停止位) 
- 站号设置:通过 - D100寄存器设置温控器站号,例如:- plaintextMOV K1 D100 // 设置站号为1 
三、PLC编程:实现温度读取与设定
- 使用RS2指令进行Modbus通信: 
- S:发送缓冲区首地址(存放Modbus指令帧)。
- D:接收缓冲区首地址(存放温控器响应数据)。
- n:发送数据长度(字节数)。
- m:接收数据长度(字节数)。
- 指令格式: - plaintextRS2 S D n m 
- 温度读取示例: 
- 接收缓冲区(D200-D204)中,D203和D204为温度值(16位补码格式),需转换为十进制。 
- Modbus指令帧(读取保持寄存器,功能码03): - 站号 - 功能码 - 寄存器地址 - 寄存器数量 - CRC校验 - 01 - 03 - 00 00 - 00 01 - XX XX 
- PLC程序: - plaintext// 发送缓冲区(D100-D105)MOV K1 D100 // 站号MOV K3 D101 // 功能码03MOV K0 D102 // 寄存器地址高字节MOV K0 D103 // 寄存器地址低字节MOV K0 D104 // 寄存器数量高字节MOV K1 D105 // 寄存器数量低字节// 计算CRC校验(需自行编写CRC算法或使用库函数)// 发送指令RS2 D100 D200 K6 K5 // 发送6字节,接收5字节 
- 数据解析: 
- 温度设定示例: 
- Modbus指令帧(写入单个寄存器,功能码06): - 站号 - 功能码 - 寄存器地址 - 写入值 - CRC校验 - 01 - 06 - 00 00 - 00 64 - XX XX 
- PLC程序: - plaintext// 发送缓冲区(D100-D105)MOV K1 D100 // 站号MOV K6 D101 // 功能码06MOV K0 D102 // 寄存器地址高字节MOV K0 D103 // 寄存器地址低字节MOV K100 D104 // 写入值高字节(100℃)MOV K0 D105 // 写入值低字节// 计算CRC校验// 发送指令RS2 D100 D200 K6 K5 
四、调试技巧:快速定位问题
- 使用串口调试工具: 
- 指令帧格式是否正确(站号、功能码、寄存器地址、CRC校验)。 
- 温控器是否返回错误码(如功能码不支持、寄存器地址错误)。 
- 通过串口调试工具(如COMMIX)模拟PLC发送Modbus指令,验证温控器响应是否正常。 
- 关键检查点: 
- 抗干扰措施: 
- 在485通讯线两端加装120Ω终端电阻,减少信号反射。 
- 避免将485线与动力线并行布线,必要时使用屏蔽双绞线。 
- 数据对齐方法: 
- 确保PLC发送和接收缓冲区的字节顺序与Modbus协议一致(如大端序)。 
- 对于16位数据(如温度值),需合并两个字节并转换为十进制。 
 

