S7-300PLC提供有PID控制功能块来实现PID控制。STEP7提供了系统功能块FB41/SFB41、FB43/SFB42及FB43/SFB43实现PID闭环控制,其中FB41/SFB41“CONT_C”用于连续控制,FB42/SFB42“CONT_S”用于步进控制,FB43/SFB43“PULSEGEN”用于脉冲宽度调制,它们位于文件夹“Libraries→Standard Library→PID Controller”中。位于文件夹“Libraries→Standard Library→PID Controller”的FB41、FB41、FB43与SFB41、SFB42、SFB43兼容,FB58、FB59则用于PID温度控制。它们是系统固化的纯软件控制器,运行过程中循环扫描、计算所需的全部数据存储在分配给FB或SFB的背景数据块里,因此可以无限次调用。FB41用于S7-300,而SFB41用于S7-400中。
【例9-3】有一台电炉,要求炉温控制在一定的范围。电炉的工作原理如下:
当设定电炉温度后,CPU314C-2DP经过PID运算后由自带模拟量输出模块输出一个电压信号送到控制板,控制板根据电压信号(弱电信号)的大小控制电热丝的加热电压(强电)的大小(甚至断开),温度传感器测量电炉的温度,温度信号经过控制板的处理后输入到模拟量输入模块,再送到CPU314C-2DP进行PID运算,如此循环。整个系统的硬件配置如图9-8所示。请编写控制程序。
解:
(1)主要软硬件配置
①1套STEP 7 V5.5SP4。
②1台CPU 314C-2DP。
③1根编程电缆。
④1台电炉(含控制板)。
图9-8 硬件配置图
电气原理图如图9-9所示,注意:控制板采集到热电偶的信号,并将其处理成0~10V的信号送到CPU314C-2DP的模拟量输入端子2和4上。CPU314C-2DP的模拟量输出端子16和20,将0~10V的信号送到控制板,控制板将根据其大小,转换成通断信号控制加热强度。控制板的内部结构不在本书的讨论范围,请读者参看其他资料。
(2)硬件组态
1)新建项目,并插入站点。新建项目命名为“PID”,插入站点“SIMATIC300(1)”,再在“块”里插入组织块“OB35”“OB100”和参数表“VAT_1”,如图9-10所示。
图9-10 新建项目并插入站点
2)更改地址。双击“DI24/DO16”,将数字量输入/输出的起始地址修改成从0开始,双击“AI5/AO2”,将模拟量输入/输出的起始地址修改成从4开始,如图9-11所示。修改地址后,编写梯形图程序时,要与此地址对应。
图9-11 更改地址
3)设置模拟输入量测量范围。先选定“输入”选项卡,选择通道0的测量范围为“0~10V”,其余未使用的通道取消激活,最后单击“确定”按钮,如图9-12所示。
图9-12 设置模拟输入量测量范围
4)设置模拟输出量测量范围。先选定“输出”选项卡,再选择通道0的输出电压范围为“0~10V”,其余未使用的通道取消激活,单击“确定”按钮,如图9-13所示。
图9-13 设置模拟输出量测量范围
(3)相关指令介绍(www.xing528.com)
1)FB41指令。FB41“CONT_C”(连续控制器)在SIMATICS7可编程序逻辑控制器上使用,通过持续的输入和输出变量来控制工艺过程。在参数分配期间,可以通过激活或取消激活PID控制器的子功能,使控制器适应工艺过程的需要。
可以使用该控制器作为PID固定设定值控制器,或在多循环控制中作为层叠、混料或比率控制器。该控制器的功能基于使用模拟信号的采样控制器的PID控制算法,必要时可以通过加入脉冲发生器阶段进行扩展,为使用成比例执行机构的两个或三个步骤控制器生成脉冲持续时间调制输出信号。但要注意只有在以固定时间间隔调用块时,在控制块中计算的值才是正确的。为此,应该在周期性中断OB(OB30~OB38)中调用控制块。在CYCLE参数中输入采样时间。FB41指令的主要参数见表9-1。
表9-1 FB41指令参数
(续)
2)FC105指令。SCALE功能接受一个整型值(IN),并将其转换为以工程单位表示的介于下限和上限(LO_LIM和HI_LIM)之间的实型值。将结果写入OUT。SCALE功能使用以下等式:
OUT=(FLOAT(IN)-K1)/(K2-K1)×(HI_LIM-LO_LIM)]+LO_LIM
常数K1和K2根据输入值是BIPOLAR(双极性)还是UNIPOLAR(单极性)设置。BI-POLAR的含义是:假定输入整型值介于-27648与27648之间,则K1=-27648.0,K2=+27648.0。UNIPOLAR的含义是:假定输入整型值介于0~27648之间,则K1=0.0,K2=+27648.0。FC105指令参数见表9-2。
表9-2 FC105指令参数
3)FC106指令。UNSCALE功能指令将一个从低限LO_LIM到高限HI_LIM工程单位的数值转换成一个整数值,将结果写入OUT中。这个指令满足如下公式:
OUT=(IN-LO_LIM)/(HI_LIM-LO_LIM)∗(K2-K1)+K1
常数K1和K2根据输入值是BIPOLAR(双极性)还是UNIPOLAR(单极性)设置。BI-POLAR的含义是假定输出整型值介于-27648与27648之间,则K1=-27648.0,K2=+27648.0。UNIPOLAR的含义是假定输出整型值介于0~27648之间,则K1=0.0,K2=+27648.0。FC106指令参数见表9-3。
表9-3 FC106指令参数
(4)编写程序
在符号编辑器中输入各个地址对应的符号,如图9-14所示,这是编写大型程序时,不能缺少的步骤。
图9-14 符号编辑器
OB1中的程序如图9-15所示;OB100中的程序如图9-16所示,目的是重启PID;OB35中的程序如图9-17所示,每0.1s做一次PID运算。
图9-15 OB1中的程序
图9-16 OB100中的程序
图9-17 OB35中的程序
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。