回覆列表
-
1 # 跟我動手學電氣
-
2 # 西家工控阿威
對於該問題,處理方法如下:
1、首先取到電機執行的反饋訊號(接觸器的輔助觸點或驅動器的狀態字),用該變數的上升沿作為觸發脈衝,給到計數器或者定時器。
2、透過定時器的值,做簡單的運算,即可正常計算電機裝置的執行時間
3、若防止記錄的資料丟失,可儲存在保持性資料區中
希望以上回答可以幫到你!
對於該問題,處理方法如下:
1、首先取到電機執行的反饋訊號(接觸器的輔助觸點或驅動器的狀態字),用該變數的上升沿作為觸發脈衝,給到計數器或者定時器。
2、透過定時器的值,做簡單的運算,即可正常計算電機裝置的執行時間
3、若防止記錄的資料丟失,可儲存在保持性資料區中
希望以上回答可以幫到你!
為了計算終端裝置的執行時間,您可以讀出 CPU 的當前資料和時間值並計算兩次時間的差值。
描述
圖 1 所示為計算終端裝置執行時間的例項。 為此,STEP 7 (TIA Portal) 提供了兩個擴充套件指令"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。