1. 如何避免S7-300/400系統(tǒng)掃描時間過長而導(dǎo)致CPU停機?
如果用戶程序的執(zhí)行時間超出硬件組態(tài)中所設(shè)定CPU的掃描周期監(jiān)控時間,則CPU會因看門狗超時而停機,同時觸發(fā)定時錯誤OB80,診斷信息如圖1所示:
圖1 診斷信息
S7-300/400 CPU的循環(huán)掃描時間(看門狗時間)默認為150ms(zui大可修改為6000ms),用戶程序的執(zhí)行時間必須在設(shè)定的掃描周期監(jiān)控時間范圍內(nèi)。zui大掃描周期設(shè)置如圖2所示:
圖2 設(shè)置zui大掃描周期時間
2. 如何查看S7-300/400系統(tǒng)掃描循環(huán)時間?
如果工程師需要了解程序的掃描周期,可通過如下兩種方法查詢。
方法一、將程序下載到PLC后,進行在線連接,查看CPU信息,如圖3所示:
圖3 查看CPU“掃描循環(huán)時間”
方法二、通過將OB1相應(yīng)的臨時變量傳送到M區(qū),即可讀取CPU掃描循環(huán)時間,如圖4、圖5所示:
圖4 臨時變量傳送到M區(qū)
圖5 變量監(jiān)控
3. 如何查看S7-300/400中一個子程序的大約執(zhí)行時間?
使用S7-300/400 CPU時,如果工程師需要了解某個子程序的大約執(zhí)行時間,可在該子程序前、后分別讀取CPU系統(tǒng)時鐘,然后使用時鐘相減指令FC34進行編程計算,步驟如下:
1、設(shè)置PLC系統(tǒng)時鐘,按圖6所示的設(shè)置:
圖6 置PLC系統(tǒng)時鐘
2、創(chuàng)建一個塊符號名為“time”的數(shù)據(jù)塊(DB1),并創(chuàng)建如下變量,如圖7所示:
圖7 創(chuàng)建數(shù)據(jù)塊
3、在需要測試的子程序的*個網(wǎng)絡(luò)和zui后一個網(wǎng)絡(luò)讀取系統(tǒng)時鐘,然后運用時鐘相減指令FC34進行計算。
如下例程中測試了“FC1”子程序的執(zhí)行時間,如圖8所示:
圖8 “子程序執(zhí)行時間”例程
4、通過變量監(jiān)控表查看該子程序的大約執(zhí)行時間,如圖9所示: