1. 项目背景与需求分析
这个工业自动化项目源于某工地现场的实际需求,客户要求使用欧姆龙CP1H系列PLC同时控制两台安川变频器和两台松下A6伺服电机。作为一款经典的紧凑型PLC,CP1H虽然上市多年,但其稳定的性能和丰富的扩展能力在工业现场依然广受青睐。
项目核心需求可以分解为三个技术要点:
- 通过RS485总线实现与两台变频器的Modbus-RTU通讯
- 利用PLG2/PLG3脉冲模块控制两台伺服电机
- 实现编码器反馈的高速计数器处理
这种混合控制模式在自动化设备中非常典型——变频器负责电机调速,伺服系统实现精确定位,而PLC作为控制中枢协调各部件工作。选择CP1H主要考虑到其内置RS485端口和可扩展的脉冲输出模块,能够以较低成本满足控制需求。
2. 硬件配置与接线方案
2.1 整体硬件架构
系统硬件组成如下:
- 主控单元:CP1H-XA40DT-D(带内置RS485端口)
- 扩展模块:CP1W-PLG2×1,CP1W-PLG3×1(脉冲输出模块)
- 变频器:安川GA700系列×2
- 伺服驱动器:松下A6系列×2
- 编码器:增量式2500线×2
2.2 RS485通讯接线要点
变频器通讯采用手拉手式接线:
- 使用屏蔽双绞线(AWG22规格)
- 接线顺序:CP1H内置RS485端口(+SDA/-SDA)→ 第一台变频器(S+/S-)→ 第二台变频器(S+/S-)
- 终端电阻:在末端变频器上接入120Ω终端电阻
关键提示:现场测试表明,不加终端电阻时通讯误码率显著升高。建议使用可插拔式终端电阻,方便调试时临时断开。
2.3 伺服系统接线规范
伺服控制采用独立脉冲模块:
- PLG2模块:控制X轴伺服(脉冲输出:CW+/CW-,CCW+/CCW-)
- PLG3模块:控制Y轴伺服(脉冲输出模式相同)
- 编码器反馈:Z相信号接入PLC高速计数器(CT0/CT1)
接地处理特别重要:
- PLC接地线截面积≥2.5mm²
- 伺服驱动器PE端子单独接地
- 在PLC电源输入端加装磁环(TDK ZCAT2035-0930)
3. 变频器通讯实现细节
3.1 Modbus-RTU参数配置
两台变频器参数设置如下:
- 站号:1#变频器=1,2#变频器=2
- 波特率:19200bps
- 数据格式:8数据位,1停止位,无校验
- 响应延迟:5ms(参数C6-01)
通讯测试时发现,默认的3.5字符间隔时间(Modbus规范)在某些情况下会导致通讯超时,建议将变频器的C6-02参数调整为10ms。
3.2 PLC通讯程序设计
读取变频器运行频率的典型程序:
omron复制// 读取1#变频器运行频率(保持寄存器40001)
MOV #0103 D100 // 功能码03(读取保持寄存器)
MOV #0000 D101 // 寄存器地址高位(40001对应地址0000)
MOV #0001 D102 // 寄存器数量
CRC D100 D110 6 // 计算CRC校验(源首字D100,结果存D110,6字节数据)
TXD D100 K8 D200 K6 // 发送数据(源首字D100,通过端口8发送,存响应到D200,发送6字节)
关键注意事项:
- CRC计算时数据长度=功能码+地址+数量的字节数(本例中为6字节)
- TXD指令的发送字节数必须与CRC计算长度一致
- 接收缓冲区建议预留20字以上空间
3.3 通讯异常处理机制
针对现场出现的通讯不稳定问题,实施了以下改进措施:
- 超时重发机制:设置500ms等待应答超时,连续3次失败后报警
- 数据校验:除CRC校验外,增加站号匹配检查
- 心跳检测:每30秒主动读取一次设备状态字(40000)
实测发现,简单的定时轮询在长时间运行后可能出现时序累积误差,改进为动态间隔(25-35秒随机间隔)后通讯稳定性显著提升。
4. 伺服控制系统实现
4.1 脉冲模块配置
PLG模块参数设置要点:
- 脉冲输出模式:CW/CCW(差动输出)
- 脉冲频率:500kHz(参数DM6642=#0001)
- 原点搜索速度:100kHz(参数DM6643)
- 电子齿轮比:根据机械传动比计算
电子齿轮比计算公式:
code复制(伺服电机编码器分辨率 × 4) / (机械移动量 × 指令单位)
以2500线编码器、5mm丝杠、0.001mm指令单位为例:
code复制(2500×4)/(5/0.001) = 20000/5000 = 4/1
4.2 基本运动控制程序
点动控制示例:
omron复制// 设置脉冲量
@PULS #0010 K500000 // 脉冲输出0(对应PLG2的轴1),50万脉冲
// 速度控制
SPED #0010 K1000 K1 // 输出0,1000Hz,正向(K1)
定位控制关键步骤:
- 原点搜索(ORG指令)
- 绝对定位(PULS+SPED组合)
- 中断停止(INI指令)
4.3 高速计数器应用
编码器信号处理配置:
omron复制// 高速计数器CT0设置
MOV #0000 DM6644 // 计数模式:线性
MOV #0001 DM6645 // 复位方式:Z相+软件复位
// 中断表登记
CTBL #0000 K0 K1 // 注册CT0,表格模式1
常见问题处理:
- 过冲现象:检查CTBL指令的预设值与实际机械行程是否匹配
- 计数丢失:确认编码器电源电压(5V±5%)和信号幅值
- 方向错误:检查A/B相信号线序,必要时交换接线
5. 系统集成与调试经验
5.1 联合调试要点
- 上电顺序:PLC→伺服驱动器→变频器
- 干扰排查:
- 使用示波器检查脉冲信号质量
- 通讯线远离动力线(间距≥30cm)
- 必要时增加信号隔离器
- 参数备份:使用CX-Programmer导出所有设备参数
5.2 典型故障处理记录
| 故障现象 | 可能原因 | 解决方案 |
|---|---|---|
| 伺服电机抖动 | 电子齿轮比错误 | 重新计算传动比 |
| 变频器通讯超时 | 终端电阻未接 | 接入120Ω终端电阻 |
| 脉冲丢失 | 接地不良 | 检查PE线连接,加磁环 |
| 定位偏差 | 原点传感器偏移 | 重新校准原点位置 |
5.3 性能优化建议
- 通讯优化:
- 将频繁读取的参数合并为多寄存器读取
- 使用索引寄存器批量处理数据
- 运动控制优化:
- 启用S形加减速曲线(参数DM6646)
- 合理设置前馈控制参数
- 程序结构优化:
- 关键流程增加注释
- 使用子程序封装常用功能
经过72小时连续运行测试和半年实际使用验证,该系统表现出良好的稳定性。相比同类解决方案,CP1H在成本控制和可靠性方面展现出明显优势,特别适合中等复杂度的混合控制系统。对于需要同时处理通讯和精密运动控制的场景,这种架构值得推荐。