1.结构化文本编程语言编写函数WEIGH
以2.2.3节的WEIGH函数为例,说明用结构化文本编程语言的编程方法。该函数的变量声明如上述。用结构化文本编程语言编写的函数本体程序如下:
IF START1 THEN
WEIGH:=INT_TO_BCD(BCD_TO_INT(GROSS_WEIGHT)-TARE_WEIGHT);
END_IF;
示例显示用ST编程语言编写的函数本体程序十分简单。它由选择语句和赋值语句组成。其中,调用标准数据类型转换函数和进行减法运算。IEC61131-3第三版更允许用隐式数据类型转换函数,直接编写。
2.结构化文本编程语言编写功能块HYSTERESIS
功能块HYSTERESIS用于滞环过程。图2-9所示滞环过程中,输出Q为1时,只有当输入信号IN1小于IN2-EPS时,输出才切换到0;输出Q为0时,只有当输入信号IN1大于IN2+EPS时,输出才切换到1。
图2-9 滞环过程
(1)功能块的变量声明
功能块HYSTERESIS有三个输入信号,输入信号送IN1,比较信号送IN2,滞后值送EPS。有一个输出变量Q,用于表示输出信号是否切换。功能块HYSTERESIS的变量声明如下:
功能块HYSTERESIS的图形描述如图2-10所示。
图2-10 功能块HYSTERESIS的图形描述
(2)功能块的本体程序
功能块本体程序用于判别输入信号与HL的差,以确定输出。
(3)功能块的应用
HYSTERESIS功能块可用于过程的位式控制。其中,IN1连接过程被控变量PV,IN2连接过程设定变量SP,EPS连接所需的控制偏差EPS。
程序P1的程序如下:
3.结构化文本编程语言编写功能块DELAY(www.xing528.com)
时滞功能块DELAY与滞后功能块HYSTERESIS不同。输出信号在时间上滞后输入信号的时间称为时滞。生产过程的被控对象常用一阶滤波环节加时滞描述,它是时滞功能块与惯性环节功能块的串联。
时滞环节的传递函数是
Y(s)=e−sτX(s) (2-1)
离散化后,得
Y(k)=X(k−N) (2-2)
式中,X是时滞环节的输入信号;Y是时滞环节的输出信号。设离散化所采用的采样周期是Ts,则时滞τ与采样周期Ts之比称为滞后拍数N。
(1)功能块的变量声明
采用存储器存储输入信号,存储器各单元的内容存储不同时刻的采样数据,即第一单元存储时刻1×Ts的采样值,第n单元存储时刻n×Ts的采样值。时滞时间τ与采样周期Ts之比的整数值是N。因此,如果某时刻,输入信号存储在第N单元,则经时滞的输出信号应从第1存储单元输出。
时滞功能块DELAY的变量声明如下:
(2)功能块本体程序
用结构化文本编程语言编写的功能块本体程序如下:
功能块本体采用两个下标窗口来管理输入和输出信号的存取和输出。输入信号数据存放在数组X的IXIN下标地址,初始值等于滞后拍数。输出信号在数组X的IXOUT下标地址,输出初始值等于0。采用模除的方法确定每次的存放和输出的地址,并在每次执行操作后,将原地址加1。保证下次执行操作时,存放该次的输入数据和将前N次输入信号作为该次输出。
存储器单元的数量与时滞大小和采样周期有关。当时滞越大,采样周期越小时,所需的存储器单元越多。一般可根据应用的大小使滞后拍数N大于存储器单元总数即可。
示例中,要求滞后拍数N小于2000(存储单元有2048个)。此外,数组的存储器单元从0地址开始,实际应用从地址0开始。图2-11显示输入窗口和输出窗口的关系。
图2-11 输入窗口和输出窗口的关系
使用该功能块程序时的注意事项如下:
1)该功能块图程序使用数组数据类型,应在具有数组数据类型的软件系统中实现。
2)滞后拍数N与时滞、采样周期有关,程序中用运行状态切换到自动状态的信号作为初始值设定的脉冲信号。
3)由于采用高级编程语句(例如,选择和循环语句等),通常,结构化文本编程语言编写的程序较难转换为低级的编程语言,例如梯形图和指令表编程语言。
4)该功能块可与一阶滤波(惯性)环节组合,用于模拟生产过程,进行控制系统仿真研究。此外,应采用周期性的任务实现。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。