咨詢熱線

      18621916738

      當前位置:首頁  >  技術文章  >  西門子WinCC中定時器使用方法介紹

      西門子WinCC中定時器使用方法介紹

      更新時間:2015-10-29      點擊次數:2058

      西門子WinCC中定時器使用方法介紹

      1、定時器功能介紹
      2、腳本中定時器介紹
      3、使用腳本實現更多定時器功能
      3.1 整點歸檔
      3.2 WinCC 項目激活時避免腳本初次執行及延遲執行腳本1 定時器功能介紹
          WinCC 中定時器的使用可以使 WinCC按照的周期或者時間點去執行任務,比如周期執行變量歸檔、在的時間點執行全局腳本或條件滿足時打印報表。WinCC 已經提供了一些簡單的定時器,可以滿足大部分定時功能。但是在有些情況下,WinCC 提供的定時器不能滿足我們需求,這時我們就可以通過 WinCC 提供的腳本接口通過編程的方式實現定時的功能,因為腳本本身既可以直接 調用 WinCC其他功能,比如報表打印,也可以通過中間變量來控制其他功能的執行,比如通過置位/復位歸檔控制變量來觸發變量記錄的執行。WinCC 提供了 C 腳本和 VBS 腳 本,本文主要以全局 C 腳本編程為例介紹定時功能的實現。
      2 腳本中定時器介紹     既然在全局腳本中可以編程控制其他功能的執行,那么首先看看全局腳本的觸發:


      1

                               圖1   腳本觸發器分類 如圖1所示: 腳本觸發器分為使用定時器和使用變量, 定時器又分為周期執行和非周期執行一次,比如每分鐘執行一次腳本屬于周期執行,2012年10月1日執行一次屬于非周期執行。 使用變量觸發腳本,即在變量發生變化時,腳本就執行一次, 而變量的采集可以根據周期循環采集,或者根據變化采集,根據變化實際是1秒 鐘采集變量一次。
      3使用腳本實現更多定時器功能
         利用腳本自身的定時器, 可以通過在腳本中編程的方式實現更多其它定時功能。

      3.1整 點歸檔

          WinCC提供了變量歸檔,變量歸檔分為周期歸檔和非周期歸檔,不管是周期歸檔或非周期的歸檔,都又可以通過一些 變量或腳本返回值來控制歸檔, 比如:整點歸檔。下面的設置結合WinCC腳本,實現了在 整點開始歸檔,歸檔五分種后停止歸檔,即每個小時僅歸檔前五分鐘的數據。
          軟件環境:Windows 7 Professional Service Pack1 , WinCC V7.0 SP3
          歸檔名稱:ProcessValueArchive
          歸檔變量:NewTag
          歸檔周期:1 分鐘
          歸檔控制變量  startarchive
          C腳本觸發周期:10秒
          腳本代碼:
      #Include "apdefap.h"
      intgscAction( void )
      {
          #pragma option(mbcs)
          #pragma code ("kernel32.dll"); 
          void GetLocalTime (SYSTEMTIME* lpst); 
          #pragma code(); 
            SYSTEMTIME time;
            int  t1; 
            GetLocalTime(&time); 
            t1=time.wMinute; 
      if(t1==00) 
            { 
                        SetTagBit("startarchive",1);  
             } 
           if(t1==05) 
            { 
                        SetTagBit("startarchive",0);    
       } 
      return0;
      }
      歸檔設置如圖2:

                           圖2   歸檔設置
          同理,在以上腳本的基礎上做修改,可以實現在某個的時間點打印報表,只要在滿足觸發條件時調用下列函數:    
             RPTJobPrint(" Myprintjob");
            Myprintjob為 事先創建好的打印作業。 
             腳 本主要部分在于獲取系統當前時間,下 面的腳本實現了獲取當前時間并分別獲取年、月、日、時、分、秒、毫秒,星期幾的功能。
       
          Varname1 到 Varname8 為 WinCC 內部變量。若在 WinCC畫面上顯示時,由于默認 I/O 域的 格式為999.99, 要把 Varname1 的顯示格式改為9999。 
        #Include "apdefap.h"
      intgscAction( void )
      {
                #pragma option(mbcs)
       
                #pragma code ("kernel32.dll"); 
                   void GetLocalTime (SYSTEMTIME* lpst); 
               #pragma code(); 
               SYSTEMTIME time;
                  GetLocalTime(&time); 
                   SetTagWord("Varname1",time.wYear);
                 SetTagWord("Varname2",time.wMonth);
                 SetTagWord("Varname3",time.wDayOfWeek);
                 SetTagWord("Varname4",time.wDay);
                 SetTagWord("Varname5",time.wHour);
                 SetTagWord("Varname6",time.wMinute);
                 SetTagWord("Varname7",time.wSecond);
                 SetTagWord("Varname8",time.wMilliseconds);
        return 0;
      }
          設置或讀取系統時間的函數如下: 
              SetSystemTime
              SetLocalTime
              GetSystemTime
              GetLocalTime 
          系統中本地計算機時間和格林威治時間是有區別的。函數“SetSystemTime / GetSystemTime"用于設置或讀取格林威治時間。
         函數“SetLocalTime / GetLocalTime"用于設置或讀取本地計算機時間。
        兩種時間會因地理的時區不同而改變。兩個函數使用方法相 同。
        3.2 WinCC 項目激活時避免腳本初次執行及延遲執行腳本
          全局腳本在項目激活時,是要執行一次的,在有些情況下,需要避免腳本執行,就采用在腳本中去判斷。比如 可以創建 WinCC 內部布爾型變量 flag,腳本如下:
        #Include "apdefap.h"
      intgscAction( void )
      {
            #pragma option(mbcs)
       
            if ( GetTagBit("flag")==1) 
                    SetTagWord("NewTag",1);//根據自己的需求編寫對應代碼.
           else
                    SetTagBit("flag",1);    //Return-Type: BOOL
      return0;
      }
          除了避免項目運行激活時觸發腳本執行,我們 還可以通過 Sleep() 延遲腳步功能執行,比如開機后五分鐘開始執行腳本具體功能,代碼如下:
        #Include "apdefap.h"
      intgscAction( void )

      聯系我們

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

      掃一掃 更多精彩

      微信二維碼

      網站二維碼

      婷婷亚洲久悠悠色悠在线播放| 久久精品国产亚洲AV蜜臀色欲| 亚洲日韩国产精品乱-久| 亚洲黄色在线网站| 久久亚洲精品成人av无码网站| 亚洲中文字幕久久精品无码APP| 久久精品国产精品亚洲艾草网美妙| 亚洲人成影院在线观看| 亚洲国产av一区二区三区| 亚洲人成人无码网www国产| 国产成人精品曰本亚洲79ren| 亚洲欧洲精品成人久久奇米网 | 亚洲精品美女在线观看播放| 亚洲国产精品不卡在线电影| 在线观看亚洲一区二区| 亚洲性色成人av天堂| 亚洲一区二区三区久久| 亚洲 日韩 色 图网站| 亚洲熟妇无码AV| 国产成人亚洲精品蜜芽影院| 亚洲精品动漫人成3d在线| 亚洲综合色成在线播放| 精品久久香蕉国产线看观看亚洲| 亚洲自偷自偷在线制服| 亚洲狠狠综合久久| 亚洲国产精品久久人人爱| 亚洲字幕AV一区二区三区四区| 亚洲AV日韩AV无码污污网站| 亚洲av无码成人精品区| 亚洲无人区一区二区三区| 亚洲日本中文字幕区| 亚洲一区二区三区久久| 亚洲AV无码成人精品区日韩| 亚洲国产av无码精品| 亚洲成A人片在线观看无码不卡 | 337p日本欧洲亚洲大胆人人 | 亚洲国产成a人v在线| 亚洲熟伦熟女专区hd高清| 男人的天堂亚洲一区二区三区 | 亚洲综合色区在线观看| 久久青草亚洲AV无码麻豆|