1. 控制任务
一恒压供水水箱,通过变频器驱动的水泵供水,维持水位在满水位的70%。过程变量PVn为水箱的水位(由水位检测计提供),设定值为70%,PID输出控制变频器,即控制水箱注水调速电机的转速。要求开机后,先手动控制电机,水位上升到70%时,转换到PID自动调节。
2. PID回路参数表,如表6-17所示。
表6-17 恒压供水 PID控制参数表dzkfw.com.cn
地址 | 参数 | 数值 |
VB100 | 过程变量当前值PVn | 水位检测计提供的模拟量经A/D转换后的标准化数值 |
VB104 | 给定值SPn | 0.7 |
VB108 | 输出值Mn | PID回路的输出值(标准化数值) |
VB112 | 增益Kc | 0.3 |
VB116 | 采样时间Ts | 0.1 |
VB120 | 积分时间Ti | 30 |
VB124 | 微分时间Td | 0(关闭微分作用)WWW.DZKFW.COM.CN |
VB128 | 上一次积分值Mx | 根据PID运算结果更新 |
VB132 | 上一次过程变量PVn-1 | 最近一次PID的变量值 |
(1)I/O分配
手动/自动切换开关I0.0 模拟量输入AIW0 模拟量输出AQW0
(2)程序结构
由主程序,子程序,中断程序构成。主程序用来调用初始化子程序,子程序用来建立PID回路初始参数表和设置中断,由于定时采样,所以采用定时中断(中断事件号为10),设置周期时间和采样时间相同(0.1s),并写入SMB34。中断程序用于执行PID运算,I0.0=1时,执行PID运算,本例标准化时采用单极性(取值范围32000)。
3. 语句表程序
主程序
LD SM0.1
CALL SBR_0
子程序(建立PID回路参数表,设置中断以执行PID指令)
LD SM0.0
MOVR 0.7, VD104 // 写入给定值(注满70%)
MOVR 0.3, VD112 // 写入回路增益(0.25)
MOVR 0.1, VD116 // 写入采样时间(0.1秒)
MOVR 30.0, VD120 // 写入积分时间(30分钟)
MOVR 0.0, VD124 // 设置无微分运算
MOVB 100, SMB34 // 写入定时中断的周期100ms
ATCH INT_0, 10 // 将INT-0(执行PID)和定时中断连接
ENI // 全局开中断
中断程序(执行PID指令)
LD SM0.0
ITD AIW0, AC0 // 将整数转换为双整数
DTR AC0, AC0 // 将双整数转换为实数
/R 32000.0, AC0 // 标准化数值
MOVR AC0, VD100 // 将标准化PV写入回路参数表
LD I0.0
PID VB100, 0 //PID指令设置参数表起始地址为VB100,
LD SM0.0
MOVR VD108, AC0 // 将PID回路输出移至累加器
*R 32000.0, AC0 // 实际化数值
图6-18 恒压供水 PID控制
ROUND AC0, AC0 // 将实际化后的数值取整
DTI AC0, AC0 // 将双整数转换为整数
MOVW AC0, AQW0 // 将数值写入模拟输出
4. 梯形图程序
梯形图程序如图6-18所示。