S7-200在CPU單元上設有硬件電路(芯片等)處理高速數字量I/O,如高速計數器(輸入)、高速脈沖輸出。這些硬件電路在用戶程序的控制下工作,可以達到很高的頻率;但點數受到硬件資源的限制。
S7-200CPU按照以下機制循環工作:
讀取輸入點的狀態到輸入映像區
執行用戶程序,進行邏輯運算,得到輸出信號的新狀態
將輸出信號寫入到輸出映像區
只要CPU處于運行狀態,上述步驟就周而復始地執行。在第二步中,CPU也執行通訊、自檢等工作。
上述三個步驟是S7-200CPU的軟件處理過程,可以認為就是程序掃描時間。
實際上,S7-200對數字量的處理速度受到以下幾個因素的限制:
輸入硬件延時(從輸入信號狀態改變的那一刻開始,到CPU刷新輸入映像區時能夠識別其改變的時間)
CPU的內部處理時間,包括:
讀取輸入點的狀態到輸入映像區
執行用戶程序,進行邏輯運算,得到輸出信號的新狀態
將輸出信號寫入到輸出映像區
輸出硬件延時(從輸出緩沖區狀態改變到輸出點真實電平改變的時間)
上述A,B,C三段時間,就是限制PLC處理數字量響應速度的主要因素。
一個實際的系統可能還需要考慮輸入、輸出器件的延時,如輸出點外接的中間繼電器動作時間等
表1.輸入點硬件延時
以上數據都在《S7-200系統手冊》中標明,這里只是列表比較。CPU上的部分輸入點延時(濾波)時間可以在編程軟件Micro/WIN的“系統塊”中設置,其缺省的濾波時間是6.4ms。
如果把容易受到干擾的信號接到CPU上可改變濾波時間的DI點上,調整濾波時間可能改善信號檢測的質量。
支持高速計數器功能的輸入點在相應功能開通時不受此濾波時間約束。濾波設置對輸入映像區的刷新、開關量輸入中斷、脈沖捕捉功能同樣有效。
表2.CPU輸出硬件延時
有些輸出點要比其他點更快些,是因為它們可以用于高速輸出功能,在硬件上有特殊設計。沒有專門使用硬件高速輸出功能時,它們只是和普通點一樣處理
繼電器輸出開關頻率為1Hz。
表3.擴展模塊輸出硬件延時
程序掃描時間與用戶程序的大小成正比。
《S7-200系統手冊》中有每個指令所需執行時間的數據。實際上很難事先預先精確計算出程序掃描時間,特別是還沒有開始編程序時。
可以看出,常規的PLC處理模式不適合時間響應要求高的數字量信號。可能需要根據具體任務采用一些特別的方法。