回复:抢答器实现(逐个判断)第一部分

愿我能

西门子1847工业学习平台

  • 帖子

    3007
  • 精华

    7
  • 被关注

    283

论坛等级:至圣

注册时间:2009-11-06

白金 白金 如何晋级?

发布于 2016-12-27 22:06:53

1楼

展开查看
以下是引用柳叶飘飘在2016-12-27 21:57:46的发言 >楼主

//本程序未使用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编程的啊!

评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

DCS/SIMATIC PCS7

共有4387条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
X 图片
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。