怎樣讀S7-1500 CPU的運行時間

讀出S7-1500 CPU的運行時間有多種方式,下面分別介紹這幾種方式。

1 通過OB1的啟動參數讀出運行時間 在非優化的OB1啟動信息中帶有OB1的運行時間,如圖1所示。

怎樣讀S7-1500 CPU的運行時間

圖1.讀出非優化的OB1中運行時間將啟動信息參數傳遞到全局變量中就可以讀出CPU的上次掃描、最小、最大掃描時間,編程非常方便。

2調用RD_SINFO函數讀出運行時間

如果使用優化的OB1,啟動信息簡化而沒有這些運行信息,如圖2所示,則必須調用函數讀出。

怎樣讀S7-1500 CPU的運行時間

圖2優化OB1的啟動信息

例如在OB1中調用RD_SINFO函數讀出運行時間,程序如圖3所示。參數TOP_SI為當前OB1的啟動信息,

數據類型為SI_classic,需要手動鍵入,ZI1為上次掃描時間,ZI2_3包含最小、最大掃描時間,低字為最小掃描時間,

高字為最大掃描時間,示例中分別傳送到MW10和MW12中。START_UP_SI為暖啟動OB的啟動信息,

示例中沒有進行引用。

怎樣讀S7-1500 CPU的運行時間

圖3調用RD_SINFO函數

3調用RT_INFO函數讀出運行時間

通過函數RT_INFO也可以讀出CPU的運行時間,示例程序如圖4所示。

怎樣讀S7-1500 CPU的運行時間

圖4調用RT_INFO函數

通過模式1、2、3可以讀出CPU的上次掃描、最小、最大掃描時間,在這三種模式下,參數INFO的數據類型為LTIME,可以直接讀出。也可以通過其他模式讀出運行時間的百分比。

4調用RUNTIME指令讀出運行時間

通過指令RUNTIME可以從參數RET_Val直接讀出CPU的運行時間,單位為秒,MEM為中間保存程序運行的存儲器,兩個參數類型都是LREAL,除此之外還可以讀出一段程序的運行時間。如圖5所示。

怎樣讀S7-1500 CPU的運行時間

圖5 RUNTIME指令


分享到:


相關文章: