咨詢熱線

      18621916738

      當前位置:首頁  >  技術文章  >  SCL編寫模擬量監視功能塊,用于S7-300

      SCL編寫模擬量監視功能塊,用于S7-300

      更新時間:2016-09-19      點擊次數:4556

      SCL編寫模擬量監視功能塊,用于S7-300

      MonAnS.jpg

       

      //編譯選項

      //Compile options 

      {

      Scl_OverwriteBlocks:=           'y' ;

      Scl_CreateObjectCode:=          'y' ;

      Scl_OptimizeObjectCode:=        'y' ; 

      Scl_MonitorArrayLimits:=        'y' ;

      Scl_CreateDebugInfo :=          'y'  

      }

       

      FUNCTION_BLOCK MonAn

      TITLE='Analog Monitoring'

      NAME:MonAn

      FAMILY:MyLib

      AUTHOR:NC

      VERSION:'1.0'

      // KNOW_HOW_PROTECT

      VAR_INPUT

          

          PV   : REAL := 0.0;    //Process Value

          PV_Unit  : INT:=1001 ;  // Unit 單位

          SimOn: BOOL := FALSE;  //Simalation On 仿真打開

          SimPV  : REAL := 0.0;   // Simulation Value 仿真值

          PVHR  : REAL := 100.0; // high range 過程值量程上限

          PVLR  : REAL := 0.0;   // low range過程值量程下限

          HHA    : REAL := 95.0;  // H limit Alarm 高高報警

          HW    : REAL := 90.0;  // H limit Warning 高警告

          LW    : REAL := 10.0;  // L limit Warning 低警告

          LLA    : REAL := 5.0;   // L Limit Alarm 低低報警

          HHA_EN : BOOL := TRUE;  // H Alarm Message Enable 高高報警消息使能

          HW_EN  : BOOL := TRUE;  // H Warning Message Enable 高警告消息使能

          LW_EN  : BOOL := TRUE;  // L Warning Message Enable 低警告消息使能

          LLA_EN : BOOL := TRUE;  // L Alarm Message Enable 低低報警消息使能

          Hys        : REAL:=0.0;    // Hysterese value 滯后

          Deadband  : REAL:=0.0 ;   // Width of Dead band 零點死區

          ADCT  : REAL:=0.0;      // Alarm delay coming time 報警延遲到達時間

          WDCT  : REAL:=0.0;      // Warning delay coming time警告延遲到達時間

          ADGT  : REAL:=0.0;      // Alarm delay going time警告延遲離開時間

          WDGT  : REAL:=0.0;      // Warning delay going time報警延遲離開時間

          SAMPLE_T : REAL := 0.2; // Sampletime采樣時間

          PULSE    : BOOL;//脈沖輸入

      //消息事件ID號

          MsgEvID1    :DWORD:=DW#16#0; 

          MsgEvID2    :DWORD:=DW#16#0;

          MsgEvID3    :DWORD:=DW#16#0;

          MsgEvID4    :DWORD:=DW#16#0;

          SD1 :ANY;

          SD2 :ANY;

          SD3 :ANY;

          SD4 :ANY;

          END_VAR

       

      VAR_IN_OUT

          OP_dwCmd   : DWORD :=16#0;   // control word wincc操作命令

      END_VAR

       

      VAR_OUTPUT

          QdwState   : DWORD:=0;             // Status WinCC狀態字

          QabyState AT QdwState : ARRAY [0..3] OF BYTE;    // look at state byte-wise

          QdwPerm   : DWORD :=16#FFFFFFFF;   // Permssion word wincc權限字

          QabyPerm AT QdwPerm: ARRAY [0..3] OF BYTE; 

          PV_OUT : REAL := 0.0; // Process Value out

          QHHA    : BOOL := FALSE;  // H Alarm is Active //高高報警到達

          QHW     : BOOL := FALSE;  // H Warning is Active//高警告到達

          QLW     : BOOL := FALSE;  // L Warning is Active//低警告到達

          QLLA    : BOOL := FALSE;  // L Alarm is Active//低低警告到達

          QHys    : REAL := 0.0;   //滯后值                            

       

      END_VAR

       

      VAR 

          //操作命令高低字節交換需要,以及AT指令拆分DWORD為32個BOOL變量 

          OPdwCmdHMI : DWORD := 16#0;                       // Operator Commands in HMI format

          OPabyCmdHMI AT OPdwCmdHMI : ARRAY [0..3] OF BYTE;  // look at HMI command byte-wise

          OPdwCmdPLC : DWORD := 16#0;                       // Operator Commands in PLC format

          OPabyCmdPLC AT OPdwCmdPLC : ARRAY [0..3] OF BYTE;  // look at plc command byte-wise

          OPabCmdPLC AT OPdwCmdPLC  : ARRAY [0..31] OF BOOL;

       

          //狀態字AT指令拆分DWORD為32個BOOL變量 

          QdwStatePLC : DWORD := 16#0;                         // State word in PLC format

          QabyStatePLC AT QdwStatePLC : ARRAY [0..3] OF BYTE; // look at state byte-wise

          QabStatePLC AT QdwStatePLC : ARRAY [0..31] OF BOOL; // look at state bit-wise

       

          //權限字AT指令拆分DWORD為32個BOOL變量 

          QdwPermPLC : DWORD := 16#FFFFFFFF;  

          QabyPermPLC AT QdwPermPLC : ARRAY [0..3] OF BYTE;   // look at state byte-wise

          QabPermPLC AT QdwPermPLC : ARRAY [0..31] OF BOOL;   // look at state bit-wise 

          //警告及報警延時到達或離開計時器

          ADCT1 : REAL:= 0.0;  // Alarm delay coming time

          WDCT1 : REAL:= 0.0;  // Warning delay coming time

          ADGT1 : REAL:= 0.0;  // Alarm delay going time

          WDGT1 : REAL:= 0.0;  // Warning delay going time

          FP_Pulse:BOOL; //脈沖上升沿

          FP_1,FP_2,FP_3,FP_4:BOOL;

          HHLLA_C,HHLLA_G,HLW_G,HLW_C:BOOL;

          // First scan

          FstScan : BOOL := TRUE; //掃描

          RunUpCyc: INT  := 5; //運行周期預設值

          //Message

          MsgEffOld:BYTE:=B#16#0; //消息字節狀態存儲

          MsgEff:BYTE:=B#16#0; //當前消息字節

          MsgEff1 AT MsgEff :ARRAY[0..7]OF BOOL;

      END_VAR

       

      VAR_TEMP

          iRet1,iRet2,iRet3,iRet4:INT; 

      END_VAR  

      聯系我們

      上海翰粵自動化系統有限公司 公司地址:上海市松江區思賢路2399弄137號   技術支持:化工儀器網
      • 聯系人:黃政武
      • QQ:76868608
      • 公司傳真:021-57657276
      • 郵箱:76868608@qq.com

      掃一掃 更多精彩

      微信二維碼

      網站二維碼

      亚洲裸男gv网站| 亚洲精品国产精品乱码不卡| 亚洲国产精品无码一线岛国 | 亚洲 另类 无码 在线| 国产精品亚洲综合久久| 亚洲免费中文字幕| 亚洲av无码专区在线| 亚洲www在线观看| 亚洲 日韩 色 图网站| 亚洲色中文字幕在线播放| 国产亚洲玖玖玖在线观看| 亚洲一区二区无码偷拍| 亚洲色大18成人网站WWW在线播放 亚洲色大成WWW亚洲女子 | 亚洲精品无码成人片久久不卡 | 亚洲国产成a人v在线观看| 亚洲AV无码成人专区| 国产成人精品日本亚洲专区6| 亚洲一区精彩视频| 亚洲AV噜噜一区二区三区| 最新亚洲人成无码网站| 亚洲国产精品自产在线播放| 亚洲性久久久影院| 亚洲桃色AV无码| 亚洲av无码乱码国产精品| 久久久久亚洲AV无码网站| 亚洲春色在线观看| 国产亚洲漂亮白嫩美女在线| 亚洲AV无码成H人在线观看| 亚洲国产精品自在拍在线播放| 久久亚洲欧洲国产综合| 久久九九亚洲精品| 亚洲精品视频在线| 亚洲噜噜噜噜噜影院在线播放| 亚洲人成电影院在线观看| 亚洲色无码国产精品网站可下载| 国产精品亚洲专区无码唯爱网| 亚洲午夜无码AV毛片久久| 久久精品国产亚洲AV麻豆~| 亚洲狠狠狠一区二区三区| 亚洲日韩精品国产3区| 亚洲av无码成人精品区|