恭喜,你发布的帖子
发布于 2016-12-27 22:06:53
1楼
//本程序未使用FOR循环而是采用逐个判断方式去实现,下次做的时候再优化哈
//###################################
//用于锅炉MFT亦可作为一般抢答器使用
//####################################
FUNCTION_BLOCK MFT
TITLE = 'MFT'
{ // List of system attributes
//S7_tasklist:= 'OB80,OB100'; // Block is called if there is a time error and at a warm restart
S7_m_c:= 'true'; // Block can be controlled and monitored
S7_alarm_ui:= '1' // Setting for PCS 7 message dialog ('0'=standard message dialog)
}
VERSION: '1.0'
AUTHOR: EBC_LW
NAME: MFT
FAMILY: EBC
// Block Parameters
VAR_INPUT
EV_ID {
S7_visible:='false';
S7_link:='false';
S7_param :='false'; // Parameter cannot be set in CFC
S7_server:='alarm_archiv'; // Message no. assigned by server
S7_a_type:='alarm_8p' // Block signals with ALARM_8P
}:DWORD := 0; // 消息 ID
IN1
{
S7_m_c:='true';S7_xstring_0:='VALUE,CLOSE;';S7_xstring_1:='VALUE,OPEN;';S7_xm_c := 'VALUE,true;ST,true;' ;S7_dynamic:= 'true'
} : STRUCT
VALUE: BOOL;
ST : BYTE:=16#80;
END_STRUCT;//IN1输入
IN2
{
S7_m_c:='true';S7_xstring_0:='VALUE,CLOSE;';S7_xstring_1:='VALUE,OPEN;';S7_xm_c := 'VALUE,true;ST,true;' ;S7_dynamic:= 'true'
} : STRUCT
VALUE: BOOL;
ST : BYTE:=16#80;
END_STRUCT;//IN2输入
IN3
{
S7_m_c:='true';S7_xstring_0:='VALUE,CLOSE;';S7_xstring_1:='VALUE,OPEN;';S7_xm_c := 'VALUE,true;ST,true;' ;S7_dynamic:= 'true'
} : STRUCT
VALUE: BOOL;
ST : BYTE:=16#80;
END_STRUCT;//IN3输入
IN4
{
S7_m_c:='true';S7_xstring_0:='VALUE,CLOSE;';S7_xstring_1:='VALUE,OPEN;';S7_xm_c := 'VALUE,true;ST,true;' ;S7_dynamic:= 'true'
} : STRUCT
VALUE: BOOL;
ST : BYTE:=16#80;
END_STRUCT;//IN4输入
IN5
{
S7_m_c:='true';S7_xstring_0:='VALUE,CLOSE;';S7_xstring_1:='VALUE,OPEN;';S7_xm_c := 'VALUE,true;ST,true;' ;S7_dynamic:= 'true'
} : STRUCT
VALUE: BOOL;
ST : BYTE:=16#80;
END_STRUCT;//IN5输入
IN6
{
S7_m_c:='true';S7_xstring_0:='VALUE,CLOSE;';S7_xstring_1:='VALUE,OPEN;';S7_xm_c := 'VALUE,true;ST,true;' ;S7_dynamic:= 'true'
} : STRUCT
VALUE: BOOL;
ST : BYTE:=16#80;
END_STRUCT;//IN6输入
IN7
{
S7_m_c:='true';S7_xstring_0:='VALUE,CLOSE;';S7_xstring_1:='VALUE,OPEN;';S7_xm_c := 'VALUE,true;ST,true;' ;S7_dynamic:= 'true'
} : STRUCT
VALUE: BOOL;
ST : BYTE:=16#80;
END_STRUCT;//IN7输入
IN8
{
S7_m_c:='true';S7_xstring_0:='VALUE,CLOSE;';S7_xstring_1:='VALUE,OPEN;';S7_xm_c := 'VALUE,true;ST,true;' ;S7_dynamic:= 'true'
} : STRUCT
VALUE: BOOL;
ST : BYTE:=16#80;
END_STRUCT;//IN8输入
RST
{
S7_m_c:='true';S7_xstring_0:='VALUE,CLOSE;';S7_xstring_1:='VALUE,OPEN;';S7_xm_c := 'VALUE,true;ST,true;' ;S7_dynamic:= 'true'
} : STRUCT
VALUE: BOOL;
ST : BYTE:=16#80;
END_STRUCT;//复位
IN1_EN
{
S7_m_c:='true';S7_xstring_0:='VALUE,CLOSE;';S7_xstring_1:='VALUE,OPEN;';S7_xm_c := 'VALUE,true;ST,true;' ;S7_dynamic:= 'true' ;S7_visible := 'false'
} : STRUCT
VALUE: BOOL:=TRUE;
ST : BYTE:=16#80;
END_STRUCT;//IN1输入投切
IN2_EN
{
S7_m_c:='true';S7_xstring_0:='VALUE,CLOSE;';S7_xstring_1:='VALUE,OPEN;';S7_xm_c := 'VALUE,true;ST,true;' ;S7_dynamic:= 'true' ;S7_visible := 'false'
} : STRUCT
VALUE: BOOL:=TRUE;
ST : BYTE:=16#80;
END_STRUCT;//IN2输入投切
IN3_EN
{
S7_m_c:='true';S7_xstring_0:='VALUE,CLOSE;';S7_xstring_1:='VALUE,OPEN;';S7_xm_c := 'VALUE,true;ST,true;' ;S7_dynamic:= 'true' ;S7_visible := 'false'
} : STRUCT
VALUE: BOOL:=TRUE;
ST : BYTE:=16#80;
END_STRUCT;//IN3输入投切
IN4_EN
{
S7_m_c:='true';S7_xstring_0:='VALUE,CLOSE;';S7_xstring_1:='VALUE,OPEN;';S7_xm_c := 'VALUE,true;ST,true;' ;S7_dynamic:= 'true' ;S7_visible := 'false'
} : STRUCT
VALUE: BOOL:=TRUE;
ST : BYTE:=16#80;
END_STRUCT;//IN4输入投切
IN5_EN
{
S7_m_c:='true';S7_xstring_0:='VALUE,CLOSE;';S7_xstring_1:='VALUE,OPEN;';S7_xm_c := 'VALUE,true;ST,true;' ;S7_dynamic:= 'true' ;S7_visible := 'false'
} : STRUCT
VALUE: BOOL:=TRUE;
ST : BYTE:=16#80;
END_STRUCT;//IN5输入投切
IN6_EN
{
S7_m_c:='true';S7_xstring_0:='VALUE,CLOSE;';S7_xstring_1:='VALUE,OPEN;';S7_xm_c := 'VALUE,true;ST,true;' ;S7_dynamic:= 'true' ;S7_visible := 'false'
} : STRUCT
VALUE: BOOL:=TRUE;
ST : BYTE:=16#80;
END_STRUCT;//IN6输入投切
IN7_EN
{
S7_m_c:='true';S7_xstring_0:='VALUE,CLOSE;';S7_xstring_1:='VALUE,OPEN;';S7_xm_c := 'VALUE,true;ST,true;' ;S7_dynamic:= 'true' ;S7_visible := 'false'
} : STRUCT
VALUE: BOOL:=TRUE;
ST : BYTE:=16#80;
END_STRUCT;//IN7输入投切
IN8_EN
{
S7_m_c:='true';S7_xstring_0:='VALUE,CLOSE;';S7_xstring_1:='VALUE,OPEN;';S7_xm_c := 'VALUE,true;ST,true;' ;S7_dynamic:= 'true' ;S7_visible := 'false'
} : STRUCT
VALUE: BOOL:=TRUE;
ST : BYTE:=16#80;
END_STRUCT;//IN8输入投切
END_VAR
VAR_IN_OUT
// Freely assignable auxiliary values of ALARM_8P
AUX_PR01 {S7_visible := 'false'} : ANY; // Auxiliary value 1
AUX_PR02 {S7_visible := 'false'} : ANY; // Auxiliary value 2
AUX_PR03 {S7_visible := 'false'} : ANY; // Auxiliary value 3
AUX_PR04 {S7_visible := 'false'} : ANY; // Auxiliary value 4
AUX_PR05 {S7_visible := 'false'} : ANY; // Auxiliary value 5
AUX_PR06 {S7_visible := 'false'} : ANY; // Auxiliary value 6
AUX_PR07 {S7_visible := 'false'} : ANY; // Auxiliary value 7
AUX_PR08 {S7_visible := 'false'} : ANY; // Auxiliary value 8
AUX_PR09 {S7_visible := 'false'} : ANY; // Auxiliary value 9
AUX_PR10 {S7_visible := 'false'} : ANY; // Auxiliary value 10
END_VAR
VAR_OUTPUT
OUT
{
S7_m_c:='true';S7_xstring_0:='VALUE,CLOSE;';S7_xstring_1:='VALUE,OPEN;';S7_xm_c := 'VALUE,true;ST,true;' ;S7_dynamic:= 'true'
} : STRUCT
VALUE: BOOL;
ST : BYTE:=16#80;
END_STRUCT;//输出
FirstIn
{
S7_m_c:='true';S7_dynamic:= 'true'
} :BYTE;//输出
FirstInBits AT FirstIn: ARRAY[0..7] OF BOOL;
QMSG_ERR {
S7_visible:='false';
S7_dynamic:='true'} : BOOL := 0; // ALARM_8P: Error output
MSG_STAT {
S7_visible:='false';
S7_dynamic:='true'} : WORD := 0; // Message: STATUS output
MSG_ACK {
S7_visible:='false';
S7_dynamic:='true'} : WORD := 0; // Message: ACK_STATE output
END_VAR
//未完请看第二部分
楼主来推广SCL编程的啊!
请填写推广理由:
分享
只看
楼主