S7-300/400進階筆記1:PLC程序的循環處理方式及其相關內容簡介

前言

學習S7-300/400,不能僅僅侷限於閱讀或編寫一段程序,更要從本質上認識PLC,方能更好的駕馭它。

一、PLC的循環處理過程

CPU中的程序分為操作系統用戶程序

操作系統用來處理PLC的起動、刷新輸入/輸出過程映像區、調用用戶程序、處理中斷和錯誤、管理存儲區和通信等任務。

用戶程序由用戶根據需求自己編寫,以完成特定的控制任務。STEP7將用戶編寫的程序和數據維護在"塊"中,如功能塊FB、功能FC和數據塊DB等。

PLC採用循環掃描的方式執行用戶程序,即掃描工作方式。

S7-300/400進階筆記1:PLC程序的循環處理方式及其相關內容簡介

圖1 PLC的掃描工作方式

1. PLC得電或由STOP模式切換到RUN模式時,CPU起動,同時清除沒有保持功能的位存儲器、定時器、計數器,清除中斷堆棧和塊堆棧的內容,復位保存的硬件中斷等。

2. 執行"系統起動組織塊"OB100,該組織塊可以自定義編程,實現一些初始化的工作;

3. 系統進入週期掃描,並起動循環時間監控;

4. CPU將輸出過程映像區的數據寫入輸出模塊;

5. 讀取輸入模塊的狀態,並寫入輸入過程映像區;

6. CPU調用OB1,執行用戶程序,期間,根據需要可調用其他邏輯塊(FB、SFB、FC及SFC),來實現控制任務;

7. 在循環結束時,操作系統執行所有掛起的任務,例如下載和刪除塊、接收和發送全局數據等;

8. CPU返回"第3步",重新啟動循環時間監控。

9、在執行用戶程序的過程中,如果有中斷事件發生,當前執行的塊將暫停執行,轉而執行相應的組織塊,來響應中斷。該組織塊執行完成後,之前被暫停的塊將從中斷的地方繼續開始執行。OB1具有很低的優先級,除了OB90外,所有的組織塊都能中斷OB1。


二、過程映像區

PLC的存儲器中,特別設置了一片區域用來存放輸入信號和輸出信號的狀態,分別稱之為輸入過程映像區和輸出過程映像區。在循環程序處理過程中,CPU不會直接訪問I/O模塊,而是訪問CPU內部的過程映像區。

如圖1所示,在整個掃描週期內,CPU會分配一段時間集中將輸出過程映像區的狀態傳送給輸出模塊。同樣,輸入模塊的狀態/數據也是集中、統一讀入輸入過程映像區。在程序的執行階段,CPU只和輸入/輸出過程映像區做數據交互,這樣做的好處是,即使外部輸入信號的狀態發生變化,輸入過程映像區的狀態也暫時不變,可防止程序執行時發生"紊亂";而給到輸出模塊的數據是"同時"的,也可有效避免執行機構的動作序列的不同步。

對過程映像區的訪問可以以位、字節、字以及雙字的方式進行。

S7-300/400進階筆記1:PLC程序的循環處理方式及其相關內容簡介

圖2 過程映像區直接尋址

如圖2所示,假設其為輸入過程映像區的一部分:

  • · I1.3即可訪問到粉色部分的內容,即尋址一個位;
  • · IB0即可訪問綠色部分的內容,即尋址一個字節;
  • · IW2:即可訪問藍色部分的內容,即尋址一個字;
  • · ID4即可訪問橙色部分的內容,即尋址雙字;

三、掃描循環時間

掃描循環時間是指圖1中相鄰兩次"循環時間監控"之間的時間,它與用戶程序的複雜程度及CPU執行指令的速度有關。如下為315和416兩款CPU的指令執行速度,相比315,CPU416的執行速度快很多。

CPU 315-2DP:0.3ms/1000條指令;

CPU416-2DP:0.08ms/1000條指令

掃描循環時間不是一成不變的,以下事件都會延長循環時間:

  • · 中斷
  • · 診斷和故障處理
  • · 測試和調試功能
  • · 通訊
  • · 傳送和刪除塊
  • · 壓縮用戶程序存儲器
  • · 讀/寫MMC卡
S7-300/400進階筆記1:PLC程序的循環處理方式及其相關內容簡介

圖3 最大循環時間與最小循環時間

如圖3所示,在硬件組態中,可以修改最大循環時間,默認150ms。如果實際的循環時間超出設置的最大時間,CPU會調用組織塊OB80,在其中響應這個故障。如果OB80中未編寫程序,CPU將轉入STOP模式。

400的CPU中還可以設置最小掃描週期,當用戶程序較為簡單,使得循環時間太短時,過程映像區會太過頻繁的刷新,設置最小掃描週期可以避免這種情況。


四、系統的響應時間

PLC的外部輸入信號發生變化的時刻到它所控制的外部輸出信號發生變化的時刻之間的時間間隔,稱之為系統的響應時間。它由以下三部分組成:

1、輸入電路的濾波時間

輸入模塊通過RC濾波電路來過濾輸入端引入的干擾,並消除因外接輸入觸點的動作時產生的抖動而引起的不良影響,濾波電路的時間常數決定了輸入濾波時間的長短,一般為10ms左右。

2、輸出電路的滯後時間

輸出模塊的滯後時間與模塊的類型有關,

· 繼電器型輸出電路的滯後時間一般在10ms左右;

· 雙向晶閘管型輸出電路在負載通電時的滯後時間約為1ms,負載由通電到斷電時的最大滯後時間為10ms;

· 晶體管型輸出電路的滯後時間一般在1ms以下。

3、CPU掃描循環工作方式帶來的滯後時間

由掃描工作方式引起的滯後時間最壞的情況下,可達2-3個掃描週期。

PLC總的響應延遲時間一般只有幾毫秒到幾十毫秒,對於一般的系統是無關緊要的。在一些特殊應用場合,要求輸入、輸出信號之間的滯後時間儘可能短的時候,可以選用掃描速度更快的PLC或採取中斷等措施。


分享到:


相關文章: