施耐德电气李工
一个功能块建立的案例
之所以建立功能块主要是为了在程序中重复使用,使编程效率提高。
比如,我们建立一个水塔水位的控制程序,这个程序只要是水塔水位控制都可以用,我们把这个程序定义成一个功能块,这样再遇到这种控制时,就不需要重复编程,直接调用这个功能块就可以了。
首先我们编这个控制程序。控制水塔,我们需要知道进水量i_diWaterIn, 我们还要知道设定的高水位 i_diSetHigh,和低水位 i_diSetLow, 然后我们测量出水塔水量 q_diValue和控制进水量的开关q_xOpenWaterIn。我们用一个开关K来代表用户打开水龙用水,这时水量会减少。我们设定这个水塔储水量为1000立方。初始水量为500,我们编一个增减程序来模拟水量增减。
这个程序如下:
IF k THEN
q_diValue:= q_diValue-2;
ELSE
q_diValue:= q_diValue+1;
END_IF
IF q_diValue>= i_diSetHigh THEN
q_diValue:= q_diValue-1;
END_IF
IF q_diValue >= i_diSetHigh THEN
q_xOpenWaterIn := FALSE;
ELSE
q_xOpenWaterIn := TRUE;
END_IF
IF q_diValue <= i_diSetLow THEN
q_xOpenWaterIn := TRUE;
ELSE
q_xOpenWaterIn := FALSE;
END_IF
IF q_xOpenWaterIn THEN
q_diValue:= q_diValue + 2;
ELSE
q_diValue:= q_diValue ;
END_IF
初始数据
仿真
我们做好了这个程序,我们就可以拿这个程序控制其它的水塔。我们把它做成功能块。
选择功能块
定义输入,输出,把程序拷贝进程序区
第二个水塔用功能块
调入功能块
填入数据
仿真情况