以下是基于欧姆龙 CP1H PLC 的塔器远传液位计高低限报警与温度 PID 控制示例程序思路及关键代码片段,供参考。
一、系统功能说明
二、I/O 分配表
| 类型 | 地址 | 描述 |
|---|---|---|
| 输入 | 0.00 | 系统启动按钮 |
| 输入 | 0.01 | 系统停止按钮 |
| 模拟量输入 | AI0 (IR200) | 液位信号(4~20mA,对应 0~100%) |
| 模拟量输入 | AI1 (IR201) | 温度信号(4~20mA,对应 0~200℃) |
| 输出 | 100.00 | 液位高限报警(HH) |
| 输出 | 100.01 | 液位低限报警(LL) |
| 模拟量输出 | AO0 (IR210) | PID 调节输出(4~20mA,控制执行器) |
三、程序结构(关键环节)
1. 液位信号采集与报警处理
ladder
// 液位信号转换(4~20mA → 0~100%) // AI0输入值(IR200)范围:0~4095(对应4~20mA) MOV &204 D100 // 4mA对应AD值=204(初始值) MOV &3891 D101 // 20mA对应AD值=3891(满量程) MOV IR200 D102 // 当前液位AD值 // 计算液位百分比:(当前值-初始值)/(满量程-初始值)*100 SUB D102 D100 D103 // D103 = 当前值-初始值 SUB D101 D100 D104 // D104 = 满量程-初始值 DIV D103 D104 D105 // D105 = 比例值(0~1) MUL D105 &100 D106 // D106 = 液位百分比(0~100%) // 液位高限报警(HH=80%,即8m) CMP D106 &80 // 比较当前液位与高限 BCMP 100.00 // 若D106>80,100.00输出(高限报警) // 液位低限报警(LL=20%,即2m) CMP D106 &20 // 比较当前液位与低限 BCMP 100.01 // 若D106<20,100.01输出(低限报警)
2. 温度 PID 控制
ladder
// 温度信号转换(4~20mA → 0~200℃) MOV &204 D200 // 4mA对应AD值=204(0℃) MOV &3891 D201 // 20mA对应AD值=3891(200℃) MOV IR201 D202 // 当前温度AD值 SUB D202 D200 D203 // D203 = 当前值-初始值 SUB D201 D200 D204 // D204 = 满量程-初始值 DIV D203 D204 D205 // D205 = 比例值(0~1) MUL D205 &200 D206 // D206 = 实际温度(℃) // PID控制参数设置 MOV &150 D300 // 目标温度SV=150℃ MOV &50 D301 // 比例带P=50(%) MOV &100 D302 // 积分时间I=100s MOV &20 D303 // 微分时间D=20s MOV &0 D304 // 控制方向:0=正作用(升温) // 启动PID控制(仅在系统运行时有效) LD 0.00 // 系统启动信号 AND NOT 0.01 // 系统未停止 PID D206 D300 D301 D302 D303 D304 D400 // 执行PID运算,结果存D400 // PID输出转换为4~20mA(对应AO0输出) // D400为PID输出(0~100%),转换为AD输出值(204~3891) MOV &204 D401 // 4mA对应输出值 MOV &3687 D402 // 量程差值(3891-204=3687) MUL D400 D402 D403 // D403 = 输出比例值 DIV D403 &100 D404 // 除以100得实际偏移量 ADD D404 D401 D405 // 加上初始值,得AO输出值 MOV D405 IR210 // 输出到AO0(控制执行器)
四、关键说明
如需完整程序或特定功能细化(如压力 PID 控制),可补充说明具体需求,进一步调整逻辑。

