咨詢熱線

                18621916738

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

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

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

                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

                掃一掃 更多精彩

                微信二維碼

                網站二維碼

                国产人妖ts在线视频观看_亚洲国产精品网_免费播放观看视频大片_欧美黄色片免费观看

                              >