基于 CP1H PLC、变频器和编码器的两条输送线同步控制,核心是通过编码器采集输送线的实际速度 / 位置,由 CP1H 进行同步算法运算后,输出控制信号调节变频器频率,使从动线跟随主动线的速度 / 位置保持同步。以下是完整的方案设计、硬件选型、程序逻辑和调试步骤。
一、同步控制核心思路
采用主从式同步架构:
二、硬件配置与接线
1. 核心硬件清单
| 设备类型 | 型号 / 规格 | 作用 |
|---|---|---|
| PLC | 欧姆龙 CP1H(如 CP1H-X40DT-D,带高速计数 + 模拟量输出 + 脉冲输出) | 核心控制,高速计数采集编码器脉冲,运算后输出控制信号 |
| 变频器 | 台达 / 三菱 / ABB 变频器(支持模拟量输入 AI、Modbus 通讯或脉冲频率输入) | 驱动输送线电机,接收 PLC 控制信号调节频率 |
| 编码器 | 增量式旋转编码器(NPN 集电极开路,线驱动输出,分辨率 500/1000 脉冲 / 转) | 采集输送线电机 / 滚筒的转速 / 位置脉冲 |
| 输送线电机 | 异步电机(与变频器匹配功率) | 驱动输送线运行 |
| 信号转换器 | 若编码器为差分输出,可配差分转单端模块(CP1H 高速计数支持差分,可直接接) | 匹配编码器与 PLC 的信号类型 |
2. 关键接线
(1)编码器与 CP1H 高速计数口接线
CP1H 的高速计数器(HSC) 支持最高 100kHz 脉冲输入,推荐使用差分信号(抗干扰性强),以编码器 A、B 相差分输出为例:
注:主动线编码器接 HSC0,从动线编码器接 HSC1。
(2)CP1H 与变频器的控制接线(两种方式选其一)
三、软件程序设计(基于 CX-Programmer)
程序核心分为脉冲采集、同步运算、控制输出三个模块,以下是分步实现的逻辑和代码示例。
1. 步骤 1:高速计数器配置(HSC)
在 CX-Programmer 中配置 CP1H 的高速计数器,用于采集编码器脉冲:
2. 步骤 2:脉冲数据读取(速度 / 位置)
通过 CP1H 的专用指令读取高速计数器的累计脉冲数和频率:
ladder
// 示例:100ms定时中断(中断号21,周期100ms) // 中断程序:计算主动线和从动线的速度(脉冲/秒) LD INT21 // 触发100ms定时中断 MOV &H0000 SR248 // 清除中断标志 // 读取主动线HSC0当前值 → WR0000 MOV HC0 WR0000 // 计算脉冲变化量:当前值 - 上一次值 → WR0002 SUB WR0000 WR0001 WR0002 // 速度 = 变化量 × 10(100ms→1秒)→ D0000(主动线速度,脉冲/秒) MUL WR0002 #000A D0000 // 保存当前值为下一次的上一次值 → WR0001 MOV WR0000 WR0001 // 从动线HSC1速度计算(同上) MOV HC1 WR0003 SUB WR0003 WR0004 WR0005 MUL WR0005 #000A D0001 MOV WR0003 WR0004
3. 步骤 3:同步运算(PID 调节,核心)
采用PID 指令将主动线的速度 / 位置作为给定值(SV),从动线的速度 / 位置作为反馈值(PV),PID 输出作为变频器的控制信号,使 PV 跟踪 SV。
ladder
// 初始化PID(仅首次扫描执行) LD P_First_Cycle MOV #0001 D0100 // PID运行模式:自动运行 MOV #01F4 D0101 // 比例增益P=50 MOV #0064 D0102 // 积分时间I=100ms MOV #0000 D0103 // 微分时间D=0 MOV #0000 D0104 // 输出下限=0 MOV #1000 D0105 // 输出上限=1000(对应10V) MOV D0000 D0106 // SV给定值 MOV D0001 D0107 // PV反馈值 // 执行PID运算(使用CP1H的PID指令PIDAT) LD M0000 // PID运行触发 PIDAT D0100 D0002 // PID参数起始地址D0100,输出值D0002
4. 步骤 4:控制输出(模拟量 / Modbus)
(1)模拟量输出
将 PID 输出值(D0002)转换为 CP1H 的模拟量输出(如 0-10V 对应 0-4095):
ladder
// 模拟量输出(DA0):将D0002写入DA0的输出寄存器 LD M0001 MOV D0002 DA0 // DA0为CP1H模拟量输出寄存器,自动转换为电压/电流输出
(2)Modbus 通讯输出(以写入变频器频率为例)
若采用 Modbus RTU 控制变频器,使用 CP1H 的 Modbus 主站指令MB_MSTR,写入变频器的频率给定寄存器(如台达变频器的 40001 寄存器对应频率给定):
ladder
// Modbus主站指令:写入从动线变频器频率 LD M0002 MB_MSTR#0001#06#0000#0001D0002D0100M0010 // 从站地址1,功能码6,寄存器地址0000,写入值D0002,状态D0100,完成标志M0010


