页眉内容
S7-300多回路过程控制及PID调节讲解
本实训的知识点:
过程控制中,D槽的液位高度是靠PID调节变频器的补水速度来实现恒定的,其实就是恒压供水的意思。完成本实训,涉及到哪些知识点呢? 1、两台PLC要用MPI通信,则可选择全局数据通信; 2、需要将液位转换成高度值;
3、需要使用OB35、OB100、SFB41块; 4、需要对三菱变频器进行设置; 现在分述上述问题:
1、全局数据(Global data, GD)通信: 全局数据通信使用CPU的MPI接口,不需要增加通信硬件,对CPU也没有特殊的要求,因此这是一种经济而有效的通信方式,但是只能传输少量的数据。在同一个MPI子网中允许最多15台S7-300/400和C7之间周期性地交换少量数据。
全局数据通信采用广播方式来传输数据,数据的接收没有确认信息,因此不能保证通信数据的完整性和准确性。
不需要对全局数据通信进行编程。只需要在STEP7的MPI网络中用全局数据表对全局数据通信组态。方法如下:
法一:组态好MPI网络后,在项目处右击MPI进行全局变量设置;
法二、打开任一CPU站点的硬件配置,点击组态网络,右击MPI进行全局变量定义; 2、液位转换:既可用库(通过下载得到)程序,也可自己写程序; 转换公式:
3.PID控制程序的编制和采样周期的选择,以及相关的OB块:
可在FB或FC里调用系统功能块SFB41~SFB43,注:
调用SFB41~SFB43 的FB或FC必须放在定时循环中断OB35 (OB30~OB38)中被调用。 OB35的循环中断时间即为PID控制器的采样周期TS 。
采样周期TS 与CPU性能有关,需要根据运算速度和控制周期折衷选择。可以在CPU属性中设置。
调用系统功能块必须指定背景数据块,例如:
STL:CALL SFB “CONT_C”, DB41
背景数据块保存了功能块的输入/输出结果,可以在PLC程序中或WINCC软件访问相应的数据。
关于SFB41解释如下:
4、需要对三菱变频器进行设置:
变频器应设为:Pr79=2; 外部运行模式;(启/停、频率都由外部控制) Pr73=0;设为0-10V电压控制;(注意:三菱默认为0-5V) Pr251=0;取消缺相保护;(默认值为1,有缺相保护的) 注意:在S7-200配方中,Pr79=3即可,此时为“外部/PU组合模式”,即启/停由外部接通STF/STR,频率由PU面板设定。
调试时,PQWxx的值只能MOV传送写入,而不能在变量表中强制。
程序存在缺陷:如果目标槽的液位到达后,变频器的启停信号也得复位,不能只靠电压来控制,防止模式设置错误后的不停抽水现象。 附:用于闭环控制的系统功能块
(1) 除了专用的闭环控制模块,S7-300也可以用控制功能块来实现PID控制。但是需要配
页眉内容
置模拟量输入模块和模拟量输出模块(或数字量输出模块)
系统功能块SFB41-SFB43用于CPU313C/314C和C7的闭环控制。SFB41“CONT_C”用于连续控制,SFB42“CONT_S”用于步进控制,SFB43“PULSEGEN”用于脉冲宽带调制。 (2)闭环控制软件包
程序编辑器左边窗口的文件夹“\\库\\Standard Library(标准库)\\PID Controller(PID控制器)”中的FB41-FB43适用于所有S7-300的CPU的PID控制。 5 .使用FB41“CONT_C”实现连续控制
5.1 FB“CONT_C”用于在SIMATIC S7可编程控制器上,控制带有连续输入和输出变量的工艺过程。在参数分配期间,用户可以激活或取消激活PID控制器的子功能,以使控制器适合实际的工艺过程。 FB41的输入参数: 参数 COM_RST 数据类型 BOOL 取值范围 缺省 FALSE 描述 完全重启动:该块有一个完全重启动例行程序,在置位了输入“完全重启动”时执行该例行程序 手动值打开:如果置位了输入“手动值打开”,则中断控制回路。并将手动值设置为调节值。 外设过程变量打开 如果过程变量是从I/O中读取的,则输入PV_PER必须连接到I/O,并且必须置位输入“外设过程变量打开” 比例作用打开 可以在PID算法中单独激活或取消激活各个PID作用。当置位了输入“比例作用打开”后,将打开P比例作用 积分作用打开 可以在PID算法中单独激活或取消激活各个PID作用。置位了输入“积分作用打开”后,将打开I积分作用。 积分作用保持 通过置位输入“积分作用保持”,可以“冻结”积分器的输出。 积分作用初始化 通过置位输入“积分作用初始化打开”,可以将积分器的输出连接到输入I_ITL_VAL。 微分作用打开 可以在PID算法中单独激活或取消激活各个PID作用。当置位了输入“微分作用打开”后,将打开D微分作用。 采样时间 块调用之间的时间间隔必须恒定。“采样时间”输入确定了块调用之间的时间间隔。 内部设定值 “内部设定值”输入用于确定一个设定值。 (如:设定一个目标液位高度值,在此处设置) MAN_ON PVPER_ON BOOL BOOL TRUE FALSE P_SEL BOOL TRUE I_SEL BOOL TRUE INT_HOLD BOOL FALSE I_ITL_ON BOOL FALSE D_SEL BOOL FALSE CYCLE TIME >= 1毫秒 T#1s SP_INT REAL -100.0.0.0 ..100.0(%) 或者是物理值1) PV_IN REAL -100.0.0.0 ..100.0(%) 或者是物理值1) W#16#0 000 页眉内容 过程变量输入 初始值可以在“过程变量输入”输入端上设置,也可以连接到浮点数格式的外部过程变量上。 (如:当前过程液位值由此输入) 可以认为,这两个比较置要么都为百分数,要么都为真实物理高度值! 外设过程变量 I/O格式的过程变量连接到控制器的“外设过程变量”输入端。 手动值 “手动值”输入用于使用操作员接口函数置位一个手动值。 PV_PER WORD MAN REAL -100.0.0.0 ..100.0(%) 或者是物理值1) >= CYCLE >= CYCLE >= CYCLE/2 2.0 T#20s GAIN TI REAL TIME 比例增益 “比例因子”输入用于指定控制器的增益。 复位时间 “复位时间”输入决定了积分器的时间响应。 微分时间 “微分时间”输入决定微分器单元的时间响应 微分作用的时间延迟 D微分作用的算法包含了一个时间延迟,它在“微分作用的时间延迟”输入中设定。 死区带宽 死区应用于误差。“死区带宽”输入决定了死区的大 小。 TD TIME T#10s TM_LAG TIME T#2s DEADB_W REAL >=0.0 0.0 (%) 或者是物理值1) LMN_100.0 LLM ...100.0 (%) 或者是物理值2) -100.0...LMN_HLM(%)或者是物理值2) 0.0 LMN_HLM REAL 调节值上限 调节值总是受上限和下限的限制。“调节值上限”输入指定调节值的上限 以百分数的值表示,如85.5表示85.5%; 亲自测试时,发现当LMN_HLM=50.0时,LMN_PER最大为13824,当LMN_HLM=100.0时,LMN_PER最大为27648;但如果超出100.0时,则LMN_PER也会成比例增大。 调节值下限 调节值总是受上限和下限的限制。“调节值下限”输入指定调节值的下限。 以百分数的值表示。如0.5表示0.5% LMN_LLM REAL