点击下载继电器8路PLC安装包
七、最终调通至少要拿到这 10 个参数
你可以按这个清单问卖家或自己测试:
1. PLC默认站号是多少?
2. 默认波特率是多少?
3. 数据位、校验位、停止位是多少?
4. 是否支持 Modbus RTU?
5. 是否支持功能码 0F 写多个线圈?
6. 是否支持直接写 Y0-Y7 输出?
7. Y0 对应的 Modbus 起始地址是多少?
8. 如果不能写Y,是否可以写 M区或 D寄存器?
9. M0 或 D100 对应的 Modbus 地址是多少?
10. PLC程序是否会覆盖软件写入的Y点状态?
你现在现场接线已经完成,第二步“扫串口参数”的目的就是先确认:
电脑能不能和 PLC 通信
PLC 的站号是多少
波特率/校验位/停止位是多少
先不要测试剔除和报警灯,避免误动作。建议你先只发 读寄存器命令,不会控制输出,相对安全。
一、先确认你用的是哪个通信口
你图里 PLC 中间插着一根黑色线,这个大概率是 PLC 编程口/下载口。
如果你是用这根线接电脑,电脑里应该会出现一个 COM口。
先在电脑上看:
设备管理器 → 端口 COM 和 LPT
看有没有类似:
USB-SERIAL CH340 COM3
USB Serial Port COM4
Prolific USB-to-Serial COM5
记住这个 COM 号,比如 COM3。
二、打开串口调试工具
推荐你用下面任意一个:
格西烽火串口助手
SSCOM
友善串口调试助手
Modbus Poll
Modbus调试精灵
如果你只是发十六进制测试,用普通串口助手就可以。
设置时注意:
发送模式:HEX发送
接收模式:HEX显示
不要选字符串发送
三、先用这条“读寄存器”命令测试
先假设:
站号:01
功能码:03
读取地址:0000
读取数量:1个寄存器
发送:
01 03 00 00 00 01 84 0A
这条命令的作用是:
只读取 PLC 的一个寄存器,不会让报警灯亮,也不会让剔除动作。
如果通信成功,正常会收到类似这种返回:
01 03 02 00 00 B8 44
或者:
01 03 02 00 01 79 84
只要返回开头是:
01 03 ...
就说明 站号和串口参数大概率是对的。
四、先按这个顺序扫串口参数
你先固定站号为 01,依次试这些串口参数。
第1组,最常见
COM口:你电脑识别到的COM口
波特率:9600
数据位:8
校验位:None / 无校验
停止位:1
发送:01 03 00 00 00 01 84 0A
如果没有返回,试第2组。
第2组
波特率:9600
数据位:8
校验位:Even / 偶校验
停止位:1
发送:01 03 00 00 00 01 84 0A
第3组
波特率:19200
数据位:8
校验位:None / 无校验
停止位:1
发送:01 03 00 00 00 01 84 0A
第4组
波特率:19200
数据位:8
校验位:Even / 偶校验
停止位:1
发送:01 03 00 00 00 01 84 0A
第5组
波特率:38400
数据位:8
校验位:None / 无校验
停止位:1
发送:01 03 00 00 00 01 84 0A
第6组
波特率:38400
数据位:8
校验位:Even / 偶校验
停止位:1
发送:01 03 00 00 00 01 84 0A
第7组
波特率:115200
数据位:8
校验位:None / 无校验
停止位:1
发送:01 03 00 00 00 01 84 0A
五、每次怎么判断成功或失败
成功表现
发送后,如果收到类似:
01 03 02 XX XX CRC CRC
说明:
站号 01 对
串口参数对
PLC 有响应
这时先不要动输出,记下来:
COM口:
波特率:
校验位:
停止位:
站号:
失败表现
如果发送后:
没有任何返回
可能是:
1. 波特率不对
2. 校验位不对
3. 站号不对
4. COM口选错
5. 不是这个通信口
6. A/B接反,如果你用的是RS485
7. PLC这个口不是Modbus RTU协议
如果返回乱码,比如:
FF 80 7E 乱码
通常是:
波特率不对
校验位不对
数据位/停止位不对
六、如果站号 01 没反应,再扫站号
串口参数优先用最常见的:
9600, 8, N, 1
然后站号按这个顺序试:
01
02
03
04
05
10
11
20
21
FF
对应命令分别是:
01 03 00 00 00 01 84 0A
02 03 00 00 00 01 84 39
03 03 00 00 00 01 85 E8
04 03 00 00 00 01 84 5F
05 03 00 00 00 01 85 8E
10 03 00 00 00 01 86 8B
11 03 00 00 00 01 87 5A
20 03 00 00 00 01 8F 7B
21 03 00 00 00 01 8E AA
FF 03 00 00 00 01 91 D4
你每换一个站号,就发对应这一条。
哪个有返回,哪个站号就可能是对的。
七、如果这些都没返回,重点检查这里
1. 你是不是接到了“编程口”,不是 485 口
有些 PLC 的圆口/方口编程线走的是 三菱编程协议,不是 Modbus RTU。
这种情况下,你用 Modbus 指令发:
01 03 00 00 00 01 84 0A
可能一直没反应。
这时要用:
PLC厂家配套编程软件
GX Works2
FX系列兼容下载软件
先尝试“连接 PLC / 读取 PLC 参数”。
2. 如果你用的是 RS485,A/B 可能接反
如果你接的是端子上的 485:
A ↔ B 对调一次
然后重新试:
9600 8N1
01 03 00 00 00 01 84 0A
3. COM口可能选错
设备管理器里确认一下当前插入后新增的是哪个 COM。
八、建议你现场这样做,最快
你按这个表一条条试:
| 步骤 | 设置 | 发送 |
|---|---|---|
| 1 | 9600 8N1,站号01 | 01 03 00 00 00 01 84 0A |
| 2 | 9600 8E1,站号01 | 01 03 00 00 00 01 84 0A |
| 3 | 19200 8N1,站号01 | 01 03 00 00 00 01 84 0A |
| 4 | 19200 8E1,站号01 | 01 03 00 00 00 01 84 0A |
| 5 | 38400 8N1,站号01 | 01 03 00 00 00 01 84 0A |
| 6 | 9600 8N1,站号21 | 21 03 00 00 00 01 8E AA |
| 7 | 9600 8E1,站号21 | 21 03 00 00 00 01 8E AA |
| 8 | 19200 8N1,站号21 | 21 03 00 00 00 01 8E AA |
只要其中一个有返回,你就先截图发我,我帮你判断下一步该测试 写Y点 还是 写D寄存器。
九、注意安全
现在现场接线已经全部接上了,先不要直接发这些控制输出的指令:
01 0F 00 00 00 08 01 02 7F 54
01 0F 00 00 00 08 01 03 BE 94
01 05 00 00 FF 00 8C 3A
因为这些可能会让:
报警灯亮
蜂鸣器响
剔除气缸动作
先把 读寄存器通信 调通,再动输出。