1. 项目概述:CP1H-EX与Modbus通讯实战
在工业自动化现场,PLC与各类传感器的稳定通讯是数据采集的基础。欧姆龙CP1H-EX系列PLC凭借其紧凑结构和强大扩展能力,成为中小型控制系统的热门选择。这次我们要实现的是通过Modbus RTU协议,让CP1H-EX与模拟量输入模块(如MAD44)建立可靠通讯,并封装成可复用的功能块。
Modbus作为工业领域最常用的通讯协议之一,其RTU模式在485总线架构下具有硬件成本低、抗干扰强的特点。但原始协议实现往往需要处理大量底层细节,这正是功能块封装的价值所在——把复杂的报文组装、校验计算、数据转换等操作打包成"黑盒子",让现场工程师能像搭积木一样快速构建采集系统。
2. 硬件配置与初始化
2.1 硬件组态要点
典型配置清单如下:
- CP1H-EX本体(型号根据I/O点数选择)
- CP1W-CIF11 RS485通讯模块(安装在PLC侧面扩展口)
- 4通道模拟量输入模块(如MAD44用于温度采集)
关键硬件设置:
- 终端电阻:当485总线末端模块的终端电阻拨码必须切换到ON位置,匹配阻抗可显著减少信号反射
- 接线规范:采用屏蔽双绞线连接,DA/DB端子对应设备A/B线,屏蔽层单端接地
- 波特率同步:所有总线设备(PLC+模块)必须统一设置为19200bps(本案例值),实际需根据线路长度调整
2.2 通讯端口初始化
在PLC的第一个扫描周期需完成串口基础配置:
ladder复制|---[MOV指令设置通讯参数]---
| | D100 -> 通讯端口设置(0:Port2)
| | #19200 -> 波特率寄存器
|---[MSKS指令启用Modbus模式]---
| | #0003 -> 协议格式参数
- D100赋值0:指定使用PLC的Port2物理接口(CP1W-CIF11默认映射)
- MSKS参数#0003:低字节03表示启用Modbus RTU模式,自动处理CRC校验
注意:若使用CP1W-CIF01(RS232模块),需将通讯端口设为1(Port1)
3. 功能块设计与实现
3.1 Modbus读功能块架构
创建名为"Modbus_ReadAI"
