回覆列表
  • 1 # 跟我動手學電氣

    為了計算終端裝置的執行時間,您可以讀出 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。

  • 2 # 西家工控阿威

    對於該問題,處理方法如下:

    1、首先取到電機執行的反饋訊號(接觸器的輔助觸點或驅動器的狀態字),用該變數的上升沿作為觸發脈衝,給到計數器或者定時器。

    2、透過定時器的值,做簡單的運算,即可正常計算電機裝置的執行時間

    3、若防止記錄的資料丟失,可儲存在保持性資料區中

    希望以上回答可以幫到你!

  • 中秋節和大豐收的關聯?
  • 美女變成全職媽媽,生活會不會很糟糕?