讀出s7-1500 cpu的運(yùn)行時(shí)間有多種方式,下面分別介紹這幾種方式。
1.通過ob1的啟動參數(shù)讀出運(yùn)行時(shí)間在非優(yōu)化的ob1啟動信息中帶有ob1的運(yùn)行時(shí)間,如圖1所示。
圖1.讀出非優(yōu)化的ob1中運(yùn)行時(shí)間
將啟動信息參數(shù)傳遞到全局變量中就可以讀出cpu的上次掃描、最小、最大掃描時(shí)間,編程非常方便。
2.調(diào)用rd_sinfo函數(shù)讀出運(yùn)行時(shí)間
如果使用優(yōu)化的ob1,啟動信息簡化而沒有這些運(yùn)行信息,如圖2所示,則必須調(diào)用函數(shù)讀出。
圖2優(yōu)化ob1的啟動信息
例如在ob1中調(diào)用rd_sinfo函數(shù)讀出運(yùn)行時(shí)間,程序如圖3所示。參數(shù)top_si為當(dāng)前ob1的啟動信息,數(shù)據(jù)類型為si_classic,需要手動鍵入,zi1為上次掃描時(shí)間,zi2_3包含最小、最大掃描時(shí)間,低字為最小掃描時(shí)間,高字為最大掃描時(shí)間,示例中分別傳送到mw10和mw12中。start_up_si為暖啟動ob的啟動信息,示例中沒有進(jìn)行引用。
圖3調(diào)用rd_sinfo函數(shù)
3.調(diào)用rt_info函數(shù)讀出運(yùn)行時(shí)間
通過函數(shù)rt_info也可以讀出cpu的運(yùn)行時(shí)間,示例程序如圖4所示。
圖4調(diào)用rt_info函數(shù)
通過模式1、2、3可以讀出cpu的上次掃描、最小、最大掃描時(shí)間,在這三種模式下,參數(shù)info的數(shù)據(jù)類型為ltime,可以直接讀出。也可以通過其他模式讀出運(yùn)行時(shí)間的百分比。
4.調(diào)用runtime指令讀出運(yùn)行時(shí)間
通過指令runtime可以從參數(shù)ret_val直接讀出cpu的運(yùn)行時(shí)間,單位為秒,mem為中間保存程序運(yùn)行的存儲器,兩個(gè)參數(shù)類型都是lreal,除此之外還可以讀出一段程序的運(yùn)行時(shí)間。如圖5所示。
圖5 runtime指令