為了計算終端設備的運行時間,您可以讀出CPU的當前數據和時間值并計算兩次時間的差值。
描述
圖1所示為計算終端設備運行時間的實例。為此,STEP7(TIAPortal)提供了兩個擴展指令"RD_SYS_T"(讀取時間)和"T_DIFF"(時間差).。計算后的時間輸出是所讀取的數據之間的差值,也就是設備的運行時間。
FC2程序:
該塊中"RD_SYS_T"指令被連續兩次帶條件調用。
- 當輸入參數"startTime"信號為"1",第一個條件就滿足,第一條指令"RD_SYS_T"就被執行。
- 當輸入參數"stopTime"信號為"1",第二個條件就滿足,第二條指令"RD_SYS_T"就被執行。
圖2所示是OB"Main"中調用FB"Timedifferent"的實例。
用于測量終端設備運行時間的指令:
步驟1:"start"="1"并且"stop"="1"
- 兩個“"RD_SYS_T”指令同時讀出CPU的當前日期和時間。這種情況下,“T_DIFF”指令計算所得的兩次時間值之差為0。
- “T_DIFF”的輸出參數"outTime"值被復位為0。
步驟2:開始時間測量:"startTime"="1"并且"stopTime"="0"
- 第一個"RD_SYS_T"指令不執行,從而停止了CPU時鐘讀取。所讀取的最后CPU時鐘值保存在靜態變量中。
- 第二個“RD_SYS_T”指令繼續執行并將當前數據存儲在第二個靜態變量中。
- 兩個靜態變量的時間值之差通過指令"T_DIFF"進行計算,并把結果存儲于輸出變量"outTime"中。
步驟3:時間測量結束:"start"="0"并且"stop"="0"
- 第一個"RD_SYS_T"指令繼續不執行。所讀取的最后CPU時鐘值仍然保存在靜態變量中。
- 第二個"RD_SYS_T"指令也不再執行,也一樣停止了CPU時鐘讀取。所讀取的最后CPU時鐘值仍然保存在靜態變量中。
- 兩個靜態變量的時間值之差通過指令"T_DIFF"進行計算。結果作為運行時間傳送到輸出參數"outTime"。
注意
在啟動新的時間測量之前,必須首先復位兩個參數"start"和"stop"為0。