PID控制功能的应用 1. 控制任务 一恒压供水水箱,通过变频器驱动的水泵供水,维持水位在满水位的70%。过程变量PVn为水箱的水位(由水位检测计提供),设定值为70%,PID输出控制变频器,即控制水箱注水调速电机的转速。要求开机后,先手动控制电机,水位上升到70%时,转换到PID自动调节。 2. PID回路参数表,如表6-17所示。 表6-17 恒压供水 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 // 全局开中断www.plcs.cn 中断程序(执行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所示。 |