一、 導讀
(1)定時器的分類
在西門子S7-200SMART CPU中分別有接通延時定時器TON、保持型接通延時定時器TONR、關斷延時定時器TOF三種。但由于在 STEP 7 Micro/WIN SMART里定時器的調用總數限制在256,并且S7-200 SMART子程序多次調用時不能使用定時器;因此可以使用開始間隔時間指令(BGN_ITIME)和計算間隔時間指令CAL_ITIME兩條指令,可實現對位信號的計時功能;并且可以在子程序中進行多次調用。
(2)認識時間間隔定時器
圖1:時間間隔定時器(左側為開始間隔時間指令,右側為計算間隔時間指令)
①開始間隔時間指令:當指令EN端條件滿足時(需要使用沿脈沖信號)捕捉EN接通的時刻,讀取內置 1 毫秒計數器的當前值,并將該值存儲在 OUT 中;其數據類型為DWORD。
②計算間隔時間指令:計算當前時間與 IN 端地址中提供的時間差,然后將差值存儲在 OUT 中;其數據類型亦為DWORD。雙字毫秒值的最大計時間隔為2^32或 49.7 天。 根據 BGN_ITIM 指令的執(zhí)行時間,CAL_CITIM 指令會自動處理在最大間隔內發(fā)生的一毫秒定時器翻轉。
二、定時器應用
接下來我們通過一個簡單的應用程序來充分理解時間間隔指令;如圖2所示。
當程序段1中BGN_ITIM指令的EN導通一個掃描周期時,系統(tǒng)將會讀取該掃描周期內接通的具體時間,存放在OUT地址VD0中。同時程序段2中 CAL_CITIM指令會計算OUT中地址VD4和IN端地址VD0的差值,從而得到EN端接通的實際時間,并且該時間單位為毫秒。
圖2:LAD控制圖
三、定時器在子程序中的應用
在很多實際應用中會建立子程序用于多次調用,并且會用到定時器、計數器等指令。但由于200SMART系列PLC的定時器不能用于子程序的多次調用,此時就可以用到時間間隔指令了;具體操作我們可以參考以下示例程序。
(1) 打開STEP 7 Micro/WIN SMART軟件創(chuàng)建一個SBR_0的子程序,在子程序變量表中,建立變量,如圖3所示。
圖3:子程序變量表
(2) 在子程序程序編輯區(qū)調用BGN_ITIM 指令和CAL_CITIM 指令,如圖4所示。注意,在子程序中不能使用沿脈沖信號,因此需要在MAIN主程序中使用沿脈沖信號。
圖4:子程序
(3) 選擇MAIN主程序,打開項目樹中的“調用子程序”將建好的子程序SBR_0拖至MAIN主程序中,并給各形式參數分配實參,并且可以實現多次調用;執(zhí)行不同的條件,便可以實現對應的時間記錄如圖5所示。
圖5:MAIN主程序
該程序實現的功能是:
程序段1:V20.0 從接通到斷開這一過程的計時,計時結果(單位:毫秒)在VD4 中查看。
程序段2:V20.1 從接通到斷開這一過程的計時,計時結果(單位:毫秒)在VD12 中查看。
四、結語
時間間隔指令實際應用比較少,通過子程序進行時間的記錄,采用時間間隔指令是其中一種方法,在使用該方法時,需要注意兩點:一是在BGN_ITIM 指令的EN端需要使用脈脈沖信號觸發(fā),而在子程序中又不能使用沿脈沖信號,因此在主程序對該形式參數賦實參時,務必加沿脈沖指令,否則CAL_CITIM指令OUT將沒有值。二是CAL_CITIM指令OUT地址為DWORD數據類型,并且單位為毫秒,需要進行二次運算后才是我們實際需要的運行時間。
承擔因您的行為而導致的法律責任,
本站有權保留或刪除有爭議評論。
參與本評論即表明您已經閱讀并接受
上述條款。