用戶程序結構簡介
S7-1200與S7-300/400的用戶程序結構基本上相同。
模塊化編程
模塊化編程將復雜的自動化任務劃分為對應于生產過程的技術功能的較小的子任務,每個子任務對應于一個稱為“塊”的子程序,可以通過塊與塊之間的相互調用來組織程序。
這樣的程序易于修改、查錯和調試。塊結構顯著地增加了PLC程序的組織透明性、可理解性和易維護性。其中的OB、FB、FC都包含程序,統稱為代碼(code)塊。
代碼塊的個數沒有限制,但是受到存儲器容量的限制。
被調用的代碼塊又可以調用別的代碼塊,這種調用稱為嵌套調用。
從程序循環OB或啟動OB開始,S7-1200的嵌套深度為16;從中斷OB開始,S7-1200的嵌套深度為6。
在塊調用中,調用者可以是各種代碼塊,被調用的塊是OB之外的代碼塊。調用函數塊時需要為它指定一個背景數據塊。
組織塊
組織塊(organization blook,OB)是操作系統與用產根序的接口,由操作系統調用,用于報制掃指第環和中斷程字的執行、PLC的啟動和錯誤處理等。
每個組織塊必須有一個唯一的OB編號,123之前的某些編號是保留的,其他OB的編號應大于等于123。
CPU中特定的事件觸發組織塊的執行,OB不能相互調用,也不能被FC和FB調用。只有啟動事件(例如診斷中斷事件或周期性中斷事件)可以啟動OB的執行。
1、程序循環組織塊。OB1是用戶程序中的主程序,CPU循環執行操作系統程序,在每一次循環中,操作系統程序調用一次OB1。
因此OB1中的程序也是循環執行的。允許有多個程序循環OB,默認的是OB1,其他程序循環OB的編號應大于等于123。
2、啟動組織塊。當CPU的操作模式從STOP切換到RUN時,執行一次啟動(STARTUP)組織塊,來初始化程序循環OB中的某些變量。
執行完啟動OB后,開始執行程序循環OB。可以有多個啟動OB,默認的為OB100,其他啟動OB的編號應大于等于123。
3、中斷組織塊。中斷處理用來實現對特殊內部事件或外部事件的快速響應。如果沒有中斷事件出現,CPU循環執行OB1和它調用的塊。
如果出現中斷事件,例如診斷中斷和時間延遲中斷等,因為OB1的中斷優先級Zui低,操作系統在執行完當前程序的當前指令(即斷點處)后,立即響應中斷。
CPU暫停正在執行的程序塊,自動調用一個分配給該事件的組織塊(即中斷程序)來處理中斷事件。
執行完中斷組織塊后,返回被中斷的程序的斷點處繼續執行原來的程序。
這意味著部分用戶程序不必在每次循環中處理,而是在需要時才被及時地處理。處理中斷事件的程序放在該事件驅動的OB中。
函數
函數(function)是用戶編寫的子程序,簡稱為FC,STEP7V5.5將其稱為功能。它包含完成特定任務的代碼和參數。
FC和FB(函數塊)有與調用它的塊共享的輸入參數和輸出參數。執行完FC和FB后,返回調用它的代碼塊。
函數是快速執行的代碼塊,可用于完成標準的和可重復使用的操作,例如算術運算。或完成技術功能,例如使用位邏輯運算的控制。
可以在程序的不同位置多次調用同一個FC和FB,這樣可以簡化重復執行的任務的編程。函數沒有固定的存儲區,函數執行結束后,其臨時變量中的數據就丟失了。
函數塊
函數塊(function block)是用戶編寫的子程序,簡稱為FB,STEP7V5.5將其稱為功能塊。
調用函數塊時,需要指定背景數據塊,后者是函數塊專用的存儲區。CPU執行FB中的程序代碼,將塊的輸入、輸出參數和局部靜態變量保存在背景數據塊中,以便在后面的掃描周期訪問它們。
FB的典型應用是執行不能在一個掃描周期完成的操作。在調用FB時,自動打開對應的背景數據塊,后者的變量可以供其他代碼塊使用。
調用同一個函數塊時使用不同的背景數據塊,可以控制不同的對象。
S7-1200的某些指令(例如符合IEC標準的定時器和計數器指令)實際上是函數塊,在調用它們時需要指定配套的背景數據塊。
- 三菱PLC實現電動機正反轉控制 2024-12-28
- 西門子S7-1200PLC:PID參數的手動整定方法 2024-12-28
- 學習單片機原理與應用,動手做個月球車 2024-12-28
- 電動與電氣控制技術,驅動未來 2024-12-28
- 機電專業的Zui終目的:實現電機與電氣控制 2024-12-28
- 全球Zuizhuming的一款高端三維設計軟件:CATIA 2024-12-28
- 用戶Zui多、應用Zui廣:AutoCAD 機械制圖 2024-12-28
- 伺服電機全知道 2024-12-28
- PLC工程師必知的3種伺服電機的控制方式!! 2024-12-28
- 這篇文章告訴你如何選擇合適的伺服電機! 2024-12-28
- 變頻電機與工頻電機的區別是什么 2024-12-28
- 伺服驅動器與運動控制器之間的區別是什么??? 2024-12-28
- 直流伺服電機和交流伺服電機的區別? 2024-12-28
- 什么是變頻器? 2024-12-28
- 伺服驅動器與運動控制器之間的區別是什么?? 2024-12-28
聯系方式
- 電 話:18126392341
- 聯系人:梁濤
- 手 機:15267534595
- 微 信:15267534595