CPU原則上運行兩個不同的程序:
? 操作系統
? 用戶程序。
操作系統
每個CPU都帶有集成的操作系統,組織與特定控制任務無關的所有 CPU功能和順序。操作系統任務包括下列各項:
? 處理重啟(熱啟動)和熱重啟。
? 更新輸入的過程映像表,并輸出輸出過程映像表
? 調用用戶程序
? 采集中斷信息,調用中斷 OB。
? 識別錯誤并進行錯誤處理
? 管理內存區域
? 與編程設備和其它通訊伙伴進行通訊
通過修改操作系統參數(操作系統默認設置),可以在某些區域影響CPU響應。
用戶程序
可以創建用戶程序,并將其下載到CPU中。它包含處理特定自動化任務所要求的所有功能。用戶程序任務包括:
? 確定CPU的重啟(熱啟動)和熱重啟條件(例如,用特定值初始化信號)
? 處理過程數據(例如,產生二進制信號的邏輯鏈接,獲取并評估模擬量信號,指定用于輸出的二進制信號,輸出模擬值)
? 響應中斷
? 處理正常程序周期中的干擾。
用戶程序中的塊
可以應用 STEP 7編程軟件構建用戶程序,也就是說,可以將程序分成單個、獨立的程序段。這具有下列優點:
? 大程序更易于理解。
? 可以標準化單個程序段。
? 簡化程序結構。
? 更易于修改程序。
? 可測試單個程序段,因而簡化調試。
? 系統調試變得更簡單。
工業混合過程實例闡述了將一個自動化過程分成單個任務的優點。結構化用戶程序的程序段,即程序塊對應于這些單個任務。
在S7用戶程序內可使用多種類型的塊:
組織塊(OB) | OB 確定用戶程序的結構。 |
系統功能塊(SFB) 和系統功能(SFC) | SFB 和SFC集成在S7 CPU 中,可以用來訪問一些重要的系統功能。 |
功能塊(FB) | FB 是帶有用戶可自行編程的“存儲器”的塊。 |
功能(FC) | FC 包含頻繁使用功能的例行程序。 |
實例數據塊 (背景DB) | 調用FB/SFB 時,實例DB與塊關聯。它們在編譯期間自動創建。 |
數據塊 (DB) | DB 是用于存儲用戶數據的數據區。除分配給功能塊的數據外,共享數據塊也可由任何一個塊來定義和使用。 |
組織塊和程序結構:
OB的啟動信息
每個組織塊都有20字節本地數據的啟動信息,在啟動OB時,由操作系統提供。啟動信息指定OB的啟動事件、OB啟動的日期和時間、所發生的錯誤以及診斷事件。例如,OB40是硬件中斷 OB,其啟動信息包含產生中斷的模塊地址。
取消選定中斷OB
如果將優先級為 0 或少于20字節的本地數據分配給優先級,則將取消選定相應的中斷OB。處理取消中斷 OB的限制條件如下:
? 處于運行模式時,這些中斷 OB不能復制或鏈接到用戶程序。
? 處于停止模式時,可以將它們復制或鏈接到用戶程序,但CPU執行重啟(熱啟動)時,它們停止啟動,并向診斷緩沖區輸入一個條目。
通過取消選定不需要的中斷 OB,可以增大可用的本地數據區容量,從而可以保存其它優先級的臨時數據。
循環程序處理
循環程序處理是可編程邏輯控制器上“正常”執行的程序類型,表示操作系統在程序循環(周期)中運行,在每次循環中,都會調用主程序中的組織塊 OB1 。即循環執行OB1 中的用戶程序。
事件驅動的程序處理
可由特定的事件(中斷)中斷循環程序處理。如果發生該類事件,將在命令邊界中斷當前執行的塊,然后調用分配給該特定事件的其它組織塊。該組織塊一旦執行,將在中斷點繼續執行循環程序。
這表示可以處理部分用戶程序,這些用戶程序只有在需要時才循環處理。用戶程序可分成一些“子程序”,分布在不同的組織塊中。如果用戶程序要對相對較少發生的重要信號(例如,限制值傳感器,用于測量容器中的液位,并在到達最高液位時報告) 作出響應,則當輸出該信號時需要處理的子程序可位于事件驅動處理型 OB上。
線性編程與結構化編程
可以在OB1中寫入整個用戶程序(線性編程)。只有在給S7-300 CPU 編寫簡單程序、并要求極少內存時才可行。
將復雜自動化任務分割成反映過程技術功能或可多次處理的小任務,可以更易于控制復雜任務。這些任務以相應的程序段表示,稱為塊(結構化編程)。
用戶程序中的調用體系
要使用戶程序正常運行,必須調用構成用戶程序的塊。這通過特殊的STEP 7 指令、塊調用來完成,而這些指令、塊調用只能在邏輯塊中編程和啟動。
次序和嵌套深度
塊調用的次序和嵌套稱為體系。可嵌套的塊數目(嵌套深度)取決于特定的 CPU。下圖闡述了一個掃描周期內塊調用的次序和嵌套深度。
創建塊的固定次序如下:
? 從上到下創建塊,因此可以從塊的頂行開始。
? 調用的每個塊必須已經存在,即在一行塊內,創建塊的次序為從右到左。
? 最后要創建的塊是 OB1 。
在圖中所示的實例中應用這些規則,則可以按下列順序創建塊:
FC1 > FB1 + 實例DB1 > DB1 > SFC1 > FB2 + 實例DB2 > OB1
塊調用
下圖顯示了在用戶程序內塊調用的順序。該程序調用第二個塊,然后完全執行該塊的指令。一旦執行第二個塊或調用塊后,在塊調用后的指令處繼續執行發出調用命令的中斷塊。
當執行冷重啟時,操作系統將 SFB3“TP”實例復位。如果在冷重啟后,初始化該SFB 的實例,那么必須通過 OB100以PT = 0 ms 調用 SFB 的相關實例。例如,可通過在包含該 SFB 實例的塊中執行初始化程序完成該操作。
責任編輯人:CC
-
西門子
+關注
關注
98文章
3129瀏覽量
117729 -
西門子PLC
+關注
關注
13文章
159瀏覽量
17552 -
PLC程序
+關注
關注
4文章
72瀏覽量
11495
原文標題:西門子PLC程序結構的基本原理
文章出處:【微信號:gh_a8b121171b08,微信公眾號:機器人及PLC自動化應用】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
西門子plc數據類型_西門子plc通訊方式

評論