當(dāng)前位置:機電之家首頁 >> PLC技術(shù)>> PLC文案資料 >> PLC論文 >> WinCC中定時器使用方法介紹
WinCC中定時器使用方法介紹

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

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

3.1整 點歸檔

    WinCC提供了變量歸檔,變量歸檔分為周期歸檔和非周期歸檔,不管是周期歸檔或非周期的歸檔,都又可以通過一些 變量或腳本返回值來控制歸檔, 比如:整點歸檔。下面的設(shè)置結(jié)合WinCC腳本,實現(xiàn)了在 整點開始?xì)w檔,歸檔五分種后停止歸檔,即每個小時僅歸檔前五分鐘的數(shù)據(jù)。
    軟件環(huán)境:bbbbbbs 7 Professional Service Pack1 , WinCC V7.0 SP3
    歸檔名稱:ProcessValueArchive
    歸檔變量:NewTag
    歸檔周期:1 分鐘
    歸檔控制變量  startarchive
    C腳本觸發(fā)周期:10秒
    腳本代碼:
#include "apdefap.h"
intgscbbbbbb( 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;
}
歸檔設(shè)置如圖2:

                     圖2   歸檔設(shè)置
    同理,在以上腳本的基礎(chǔ)上做修改,可以實現(xiàn)在某個指定的時間點打印報表,只要在滿足觸發(fā)條件時調(diào)用下列函數(shù):    
       RPTJobPrint(" Myprintjob");
      Myprintjob為 事先創(chuàng)建好的打印作業(yè)。 
       腳 本主要部分在于獲取系統(tǒng)當(dāng)前時間,下 面的腳本實現(xiàn)了獲取當(dāng)前時間并分別獲取年、月、日、時、分、秒、毫秒,星期幾的功能。
 
    Varname1 到 Varname8 為 WinCC 內(nèi)部變量。若在 WinCC畫面上顯示時,由于默認(rèn) I/O 域的 格式為999.99, 要把 Varname1 的顯示格式改為9999。 
  #include "apdefap.h"
intgscbbbbbb( 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;
}
    設(shè)置或讀取系統(tǒng)時間的函數(shù)如下: 
        SetSystemTime
        SetLocalTime
        GetSystemTime
        GetLocalTime 
    系統(tǒng)中本地計算機時間和格林威治時間是有區(qū)別的。函數(shù)“SetSystemTime / GetSystemTime”用于設(shè)置或讀取格林威治時間。
   函數(shù)“SetLocalTime / GetLocalTime”用于設(shè)置或讀取本地計算機時間。
  兩種時間會因地理的時區(qū)不同而改變。兩個函數(shù)使用方法相 同。
  3.2 WinCC 項目激活時避免腳本初次執(zhí)行及延遲執(zhí)行腳本
    全局腳本在項目激活時,是要執(zhí)行一次的,在有些情況下,需要避免腳本執(zhí)行,就采用在腳本中去判斷。比如 可以創(chuàng)建 WinCC 內(nèi)部布爾型變量 flag,腳本如下:
  #include "apdefap.h"
intgscbbbbbb( void )
{
      #pragma option(mbcs)
 
      if ( GetTagBit("flag")==1) 
              SetTagWord("NewTag",1);//根據(jù)自己的需求編寫對應(yīng)代碼.
     else
              SetTagBit("flag",1);    //Return-Type: BOOL
return0;
}
    除了避免項目運行激活時觸發(fā)腳本執(zhí)行,我們 還可以通過 Sleep() 延遲腳步功能執(zhí)行,比如開機后五分鐘開始執(zhí)行腳本具體功能,代碼如下:
  #include "apdefap.h"
intgscbbbbbb( void )
{
        #pragma option(mbcs)

        #pragma option(mbcs)
        #pragma code("Kernel32.dll");
        voidSleep(int milliseconds);
        #pragma code()
             Sleep(300000); //延遲300秒即五分鐘
          int temp;
      //根據(jù)自己的需求編寫對應(yīng)代碼. 
         temp=GetTagWord("NewTag");//Return-Type: WORD
         temp++;
         SetTagWord("NewTag",temp);
            return 0;

        不管是整點歸檔或者延遲執(zhí)行腳本,腳本中的參數(shù)都可以在運行期間通過 WinCC 的畫面動態(tài)設(shè)定。
注意事項
  應(yīng)用示例與所示電路、設(shè)備及任何可能結(jié)果沒有必然聯(lián)系,并不完全相關(guān)。應(yīng)用示例不表示客戶的具體解決方案。它們僅對典型應(yīng)用提供支持。用戶負(fù)責(zé)確保所述產(chǎn)品 的正確使用。這些應(yīng)用示例不能免除用戶在確保安全、專業(yè)使用、安裝、操作和維護設(shè)備方面的責(zé)任。當(dāng)使用這些應(yīng)用示例時,應(yīng)意識到西門子不對在所述責(zé)任條款 范圍之外的任何損壞/索賠承擔(dān)責(zé)任。我們保留隨時修改這些應(yīng)用示例的權(quán)利,恕不另行通知。如果這些應(yīng)用示例與其它西門子出版 物(例如,目錄)給出的建議不同,則以其它文檔的內(nèi)容為準(zhǔn)。

作者:未知 點擊:882次 [打印] [關(guān)閉] [返回頂部]
本文標(biāo)簽:WinCC中定時器使用方法介紹
* 由于無法獲得聯(lián)系方式等原因,本網(wǎng)使用的文字及圖片的作品報酬未能及時支付,在此深表歉意,請《WinCC中定時器使用方法介紹》相關(guān)權(quán)利人與機電之家網(wǎng)取得聯(lián)系。
電子樣本

SN系列樣冊
:鞏經(jīng)理
:13915946763
:南京塞姆泵業(yè)有限公司
個人求購

楊異乾 【求購】  電涌保護器  2025-11-28
趙焱 【求購】  電氣溫控閥  2025-11-28
張揚瓊 【求購】  ABB火檢...  2025-11-27
張雪根 【求購】  固體除垢劑  2025-11-26
趙經(jīng)理 【求購】  變壓器  2025-11-26
羅經(jīng)理 【求購】  巡邏車跟蹤...  2025-11-26
趙經(jīng)理 【求購】  柴油發(fā)電機  2025-11-26
沈雙 【求購】  柴油過濾紙  2025-11-26
VIP公司推薦