時間相減 什麼是PLC系統執行時間?

2021-10-14 16:50:21 字數 1189 閱讀 6087

今天跟大家**下plc的 系統執行時間,我們以西門子s7-1200為例來說明下。

系統執行時間

s7-1200 cpu的迴圈掃瞄時間(看門狗時間)預設為150ms,最大可修改為6000ms,如圖1:

當程式設計結束後,需要了解程式的迴圈週期,可通過如下方法查詢。

子程式執行時間

使用s7-1200 cpu時,若需要了解某個子程式的執行時間,依據如下方法進行程式設計。

首先,設定plc系統時鐘,按圖3方法設定:

接著,建立資料塊db1,塊名稱為「time」,並建立變數,如圖4:

注:若選擇「已優化」db塊,則建立的db塊變數不顯示「偏移量」列,後續程式中變數則為符號定址。

注:關於db塊的使用,請檢視「s7-1200 資料塊的使用」。

然後,在ob1中程式設計,讀取子程式執行前、後的系統時間,再運用指令 t_diff 做時間相減。

如下例程中測試了「塊_1(fc1)」子程式的執行時間,如圖5:

最後,通過監控表檢視該子程式的執行時間,如圖6:

注:若需要測試中斷程式的執行時間,可將中斷程式拷貝到子程式「塊_1(fc1)」中進行測試。

常問問題

可能的原因:

1、程式過長,執行時間超過設定的最大迴圈時間;

2、程式中有死迴圈程式導致執行時間超過最大迴圈時間;

3、定時中斷程式的執行時間大於所設定的定時間隔時間,導致定時中斷事件緩衝區溢位而停機。

plc的cpu怎麼執行時間

取實時時鐘 todr 指令從硬體時鐘讀取當前時間和日期,並將其載入以位址t起始的8個位元組的時間緩衝區。設定實時時鐘 todw 指令將當前時間和日期寫入用t指定的在8個位元組的時間緩衝區開始的硬體時鐘。todr 設定eno 0的錯誤條件 0006 間接位址 000c 不存在時鐘盒todw 設定eno...

顯示系統執行時間

strcomputer set dtmconverteddate createobject wbemscripting.swbemdatetime set objwmiservice getobject winmgmts strcomputer root cimv2 set coloperating...

VC 獲取程式執行時間和系統執行時間

cstring str,str1 獲取程式執行時間 long t1 gettickcount 程式段開始前取得系統執行時間 ms sleep 500 afxmessagebox do something.long t2 gettickcount 程式段結束後取得系統執行時間 ms str.forma...