在OB1中,用T8和T9组成振荡电路(见图10-16),T8的常开触点的接通和断开的时间均为30s。"PID_DI".SP_INT是FB41的背景数据块PID_DI中存放控制器浮点数设定值的输入参数SP_INT。在T8的常开触点刚接通和刚断开时,分别将设定值SP_INT修改为浮点数20.0%和70.0%,设定值的波形为方波。
图10-16 OB1中的梯形图
2.起动组织块OB100
在OB100中调用FB41和模拟被控对象的功能块FB100,设置下述输入参数的初始值。
1)令FB41和FB100的起动标志COM_RST为TRUE,将PID控制器和被控对象的内部参数初始化为默认值。
2)设置FB41和FB100的采样时间CYCLE为200ms,它们的采样时间一般与OB35的循环执行周期相同,也可以是OB35周期的若干倍。
3)设置被控对象的增益和时间常数的值。因为输入参数TM_LAG3(惯性环节的时间常数)为0,实际上模拟的被控对象只有两个惯性环节。被控对象的传递函数为3/[(5s+1)(2s+1)]。
4)设置PID控制器的参数GAIN、TI和TD的初始值。假设AO模块为双极性输出,设置控制器输出下限值为-100.0%,上限值为默认的100.0%。
5)FB41默认的设置为PI控制器,将参数D_SEL设置为1(TRUE),该控制器为PID控制器。设置微分操作的延迟时间TM_LAG为0ms,微分部分未使用惯性滤波环节。
6)设置MAN_ON为FALSE,控制器工作在自动方式。
7)在退出OB100之前,将两个FB的起动标志位COM_RST复位,以后在执行FB41和FB100时,COM_RST位的值均为0。
未设置的输入参数采用其默认值(即初始值)。下面是OB100中的程序:
程序段1:初始化模拟被控对象的FB100
程序段2:初始化连续PID控制器FB41
程序段3:复位启动标志
(www.xing528.com)
程序段4:令PID设定值的初值为70%
3.循环中断组织块OB35
为了保证PID运算的采样时间的精度,在循环中断组织块OB35中调用FB41和FB100。
在OB35中使用在OB100中设置的FB41和FB100的参数初始值,直到用PID参数赋值工具修改了其中的某些参数。在OB100和OB35中未设置的FB41和FB100的输入、输出参数,将使用它们的默认值。在FB41和FB100的局部变量表或FB41的在线帮助中,可以看到各输入、输入参数的默认值。
FB41的背景数据块DB41的符号名为“PID_DI”,FB100的背景数据块DB100的符号名为“对象DI”。将PID控制器的输出参数值"PID_DI".LMN送给FB100的输入参数INV,将FB100的输出参数值"对象DI".OUTV送给PID控制器的过程变量输入PV_IN,FB41和FB100组成了图10-14所示的闭环。因为是用软件对被控对象仿真,不涉及模拟量输入模块和模拟量输出模块,闭环中的变量均为浮点数。
因为是自动方式(MAN_ON为FALSE),不用设置手动输入值MAN。
输入端的选择开关PVPER_ON为默认值FALSE,采用浮点数格式的过程变量。过程变量不是来自外部设备(AI模块),不用设置PV_PER(外设输入过程值)。因为PID的输出不是送给AO模块,不用设置I/O格式的控制器输出LMN_PER。
在实际的语句表程序中,如果要给功能块的某个输入、输出参数添加注释,必须设置该变量的实参。下面是循环中断组织块OB35的程序。
程序段1:调用被控对象仿真程序FB100
程序段2:调用连续PID控制器FB41
4.仿真系统的程序与实际的PID程序的区别
对于工程实际应用,在例程“PID控制”的基础上,PID控制程序应作下列改动:
1)删除OB100和OB35中调用FB100(过程对象)的指令,以及OB1中产生方波给定信号的程序。
2)实际的PID控制程序一般使用来自AI模块的过程变量PV_PER,后者应设为实际使用的AI模块的通道地址。用来选择输入参数的PVPER_ON应设置为TRUE(使用外设变量),不用设置浮点数输入过程变量PV_IN的实参。
3)不用设置浮点数输出LMN的实参,LMN_PER(外设输出值)设为实际使用的模拟量输出模块的通道地址。
4)如果系统需要自动/手动两种工作模式的切换,FB41的参数MAN_ON应设置为切换自动/手动的BOOL变量。手动时该变量为1状态,参数MAN应为用于输入手动值的地址。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。