西門子S7-1200PLC 的IEC格式的定時器屬於(yu) 功能塊。在插入定時器指令時,要求創建一個(ge) 16字節的IEC_Timer數據類型的DB結構(即背景數據塊),來保存有關(guan) 的數據。在功能塊中,可以事先創建一個(ge) IEC_Timer數據類型的靜態變量(多重背景),然後將它指定給定時器指令。
CPU沒有給任何特定的定時器指令分配專(zhuan) 門的資源。每個(ge) 定時器使用DB結構和一個(ge) 連續運行的內(nei) 部CPU定時器(我的理解是一個(ge) 硬件定時器)來執行定時。
在定時器指令的輸入IN的上升沿啟動定時器時,連續運行的內(nei) 部CPU定時器的值將被複製到為(wei) 該定時器指令分配的DB結構的元素START(起始值)中。
該起始值在定時器繼續運行期間將保持不變,以後將在每次更新定時器時使用。以下條件時將會(hui) 執行定時器更新:
1)執行定時器指令(TP、TON、TOF 或 TONR);
2)定時器結構的元素ELAPSED(經過的時間)或位輸出Q作為(wei) 其它指令的參數,該指令被執行。
更新定時器時,將從(cong) 內(nei) 部CPU定時器的當前值中減去上述起始值,得到經過的時間ELAPSED。再將ELAPSED與(yu) 預設值PT進行比較,以確定定時器的位輸出Q的狀態。然後更新該定時器的DB結構的元素ELAPSED和Q。達到預設值PT後,定時器不會(hui) 繼續累加經過的時間ELAPSED。
STEP 7 Basic的V11版與(yu) V10.5版相比,增加了類似於(yu) S7-300/400的定時器線圈指令。
從(cong) 上述的定時器內(nei) 部的定時機製可知,在使用定時器時,其定時精度與(yu) CPU的掃描周期有很大的關(guan) 係。在CPU兩(liang) 次更新定時器之間,定時器的輸入、輸出參數保持不變。
為(wei) 了驗證上述結論,在FB1中調用定時器指令TP,在OB1中用I0.1作為(wei) 調用條件,調用FB1。用監視表格監視定時器的輸出Q和經過的時間ET,用輸入IN的上升沿啟動定時器後,如果I0.1為(wei) 0狀態,沒有調用FB1和執行定時器指令,定時器的輸出Q和經過的時間ET保持不變。隻有在調用FB1,執行定時器指令時,ET的值才會(hui) 變化。