6ES78062CD000YA0西門子PLC模塊6ES78062CD000YA0西門子PLC模塊
Contact:彭馨 Contact:彭馨
(): ():
商務在線(): 商務在線():
描述 使用 'RUNTIME' 指令測量運行時間 使用 'RUNTIME' 指令可以測量整個程序、單個塊或者命令序列的運行時間。該指令在 SCL (S7-1200/S7-1500) 語言和 STL (S7-1500) 語言中調用。下面的例子展示了如何測量一個程序塊的運行時間。 ......
描述
使用 "RUNTIME" 指令測量運行時間
使用 "RUNTIME" 指令可以測量整個程序、單個塊或者命令序列的運行時間。該指令在 SCL (S7-1200/S7-1500) 語言和 STL (S7-1500) 語言中調用。下面的例子展示了如何測量一個程序塊的運行時間。
例 1:在 S7-1500 中使用 STL 語言測量運行時間
*次調用指令(調用 RUNTIME)時設置時間測量的起始點。這個起始點信息緩存在 DB 數據塊的 "DB1".Mem 中,并作為第二次調用此命令的參考點。執行完 "TimeDelay" [FC2] 功能后,再次執行 "RUNTIME" 指令,然后計算出了功能的運行時間。結果存儲在 DB 變量的 "DB1".Res (輸出 "RET_VAL") 中。
圖 01
例 2:在 S7-1500 中使用 SCL 語言測量運行時間
- *次調用 "RUNTIME" 指令設置時間測量的起始點并且存儲在 "Memory" 中,并且作為第二次調用的參考點。
- 然后調用程序塊 "Module_FC"。
- 當程序塊執行完后,"RUNTIME" 指令被再次調用,此次調用計算出程序塊 "Module_FC" 的運行時間并將其作為結果輸出到 "RT_Measure" 中。
圖 02
關于此方法的詳細描述和示例,參考如下 STEP 7 (TIA 博途) 的在線幫助:
- 針對 SCL 語言的 "RUNTIME:測量程序運行時間 (S7-1200, S7-1500)"
- 針對 STL 語言的 "RUNTIME:測量程序運行時間 (S7-1500)"
例 3:使用主程序 [OB1] 的臨時變量測量循環時間
對于 S7-1500 的“程序循環 OB ”,可以將其從“優化的塊訪問”改成“標準兼容模式”。然后與在 STEP 7 V5.x 中類似,通過訪問臨時變量來得到測量出的循環時間。
- 右鍵單擊主程序 [OB1] ,在彈出的菜單中選擇“屬性...”。
- 進入“屬性”標簽并且取消“優化的塊訪問”屬性(去掉鉤選)。
- 點擊確定,然后在下一消息框中再點擊確定。
圖 03
現在,就像在 STEP 7 V5.x 中一樣,可以使用臨時變量得到系統信息,這些信息包括這個塊的進入系統時的起始時間數據、故障原因和故障點。可以在塊中評估這些數據。現在可以通過主程序 [OB1] 的臨時變量確定循環時間。
圖 04
改變塊的訪問方式后,這些參數已經被保存在聲明的臨時變量里了。這些 OB 塊的臨時變量名稱都可以被修改,但是其內容不會改變。下表給出了測量循環時間的編程例子。
循環時間 | 指令 |
輸出前一個循環時間:
| ![]() 圖 05 |
輸出小循環時間:
| ![]() 圖 06 |
輸出長循環時間:
| ![]() 圖 07 |
表 01
注意
如果沒有修改 S7-1500 的塊訪問方式(圖. 03),或者使用的是 S7-1200,那么上述方法是無法實現的。
在實際使用時,PLC及HMI系統是互相平行*獨立運行的兩個進程。當兩個系統同時嘗試向同一個變量進行寫入操作時,該數據可能在系統側被覆蓋掉。
描述
S7-1500與S7-300不同,數據通訊不是根據操作系統進行循環處理,而是在程序周期中固定的時間間隔中進行。具體請參考下例中的描述.
- 在S7-1500中,其他進程(Web服務器、HMI通訊或技術功能)到PLC間的訪問都是同時進行的,且訪問相同變量地址。
例如
DB變量在功能塊中作為輸出參數。則HMI系統在FC進程中,無法向該DB塊寫入數據。寫入的數據會丟失。
圖. 1
- 當優化數據與非優化數據進行交換時,使用輸入輸出參數會出現如下問題。
例如
當數據塊在優化訪問模式時,DB變量作為輸入輸出參數,對其進行訪問。
在此情況下,數據是用復制模式傳送的。運算數據復制后,即使數據未改變,也會在數據塊結尾處再次寫入回該數據。因此,在數據塊過程中HMI系統寫入的數據會丟失。
注意
根據傳送區域和參數數據類型的不同,STEP 7(TIA Portal)傳送數據同時支持支持指針模式和復制模式。詳細信息請參考 Entry ID 90885040
解決方法
根據系統特性的描述,*使用以下解決方法:
- 在平行進程中需要避免同時向同一變量寫入數據。
- 創建一個全局數據塊包括兩個*獨立的數據結構(使用PLC數據類型),分別用于HMI和PLC訪問。
- 其中一個數據結構僅用于進程一的寫入,如HMI。
- 另一個數據結構僅用于進程二的寫入,如PLC。
- 用戶可以同時使用兩個進程向兩個數據機構中讀取數據。
- 這樣可以避免平行進程中數據互相覆蓋。
- 訪問數據塊時,要避免優化和非優化區域的交換。S7-1200/S7-1500中有“優化塊訪問”的設置,但S7-300/S7-400中不支持。當使用S7-1500時,*將塊訪問設置為“優化”模式。用戶可以在“屬性”選項卡中修改塊訪問模式。
圖. 2