如何实现
call functions and function blocks
以下为FB的变量声明部分:
*******************************************
FUNCTION_BLOCK FB_LM_Control
VAR_INPUT
LMEnable : BOOL; // rising edge 0->1: switch on Line Module; falling edge: switch off
LMQuitError : BOOL; // rising edge 0->1: reset error in Line Module
LM_SWord : WORD; // status word of Line Module
END_VAR
VAR_OUTPUT
LMOn : BOOL;
LMError : BOOL;
LM_CWord : WORD;
END_VAR
VAR
stateNumber : INT;
oldLMEnable : BOOL;
oldLMQuitError : BOOL;
LMEnable_off_delayed : TOF;
END_VAR
LMEnable_off_delayed(in:=LMEnable,pt:=T#10m); //请问这一句是什么,也是定义了一个变量么?
***************************************************
PROGRAM xLM
VAR
LineModule_FB_SYSTEM : FB_LM_Control;
END_VAR
LineModule_FB_SYSTEM(LMEnable :=LM_STDcIO.IN.Enable_xLM ,
LMQuitError :=XLM_STDcIO.IN.faultacknowledge_xLM , LM_SWord := slm_zsw );
//引用了FB并对FB的三个输入变量进行赋值
slm_stw:=LineModule_FB_SYSTEM.lm_cword;
//FB 输出的一个变量m_cword 给slm_stw, FB的三个输出变量其余的两个都是在主程序中直接引用了其名称,为什么可以这样,而不需象输入一样