西門子PLC程序的結構形式
發(fā)布于2022-04-27 11:38
246
2
標簽:西門子PLC
1.plc程序的結構體系
無論PLC控制系統有多么復雜,歸根到底,PLC用戶程序都是由大量基本編程指令所組成的集合。
設計者可以根據控制對象各部分的不同要求,通過對要求的分解,運用基本指令編制出相應的程序網絡(Network)或由幾個網絡組成的簡單“功能程序段”。在此基礎上,只要將這些程序網絡或功能程序段,按照控制系統的動作要求,以S7程序規(guī)定的格式進行排列與組合,就可以組成完整的PLC程序。
所謂PLC的程序結構,就是組成PLC程序的各種網絡(Network)或“功能程序段”在PLC內部的組織、管理形式。
在PLC上,從CPU操作系統對程序執(zhí)行管理的角度看,PLC程序可以分為“線性化結構”與“分塊式結構”兩種不同的結構體系,每一體系又可以分若干不同的結構形式。
(1)線性化結構體系
采用線性化結構體系的PLC用戶程序不分塊,全部指令都集中在同一個程序塊中。執(zhí)行PLC程序時,CPU的每次循環(huán)掃描都是按照從上至下的次序,行PLC用戶程序的所有指令。
線性化結構體系是一種控制對象相對較簡單的小型PLC系統常用的結構體系。
(2)分塊式結構體系
分塊式結構體系的PLC用戶程序由多個不同的“程序塊”所組成,執(zhí)行PLC程序時,需要根據外部輸入條件與程序中規(guī)定的控制要求,由負責管理的主程序通過對不同程序塊的調用與選擇,決定每次循環(huán)掃描實際需要執(zhí)行的程序塊。
對于控制復雜、程序容量大的大中型PLC系統,出于方便設計、檢查、調試等方面的考慮,通常采用分塊式結構。
PLC用戶程序的兩種結構體系各有其特點,實際使用時采用何種程序結構體系,一方面決定于PLC所具備的功能,另一方面取決于程序設計者的選擇。
2.線性化結構
按照線性化結構體系設計時,程序常見的形式有“普通線性化結構”與“分時管理線性化結構”兩種。
(1)普通線性化結構
普通的線性結構程序最為簡單,設計者只需要將由基本指令組成的全部網絡與功能程序段,進行逐網絡、逐段排列即可。
只要程序中沒有特定的次序要求(如為了產生邊沿脈沖的需要等),組成程序的各網絡與功能程序段就可以在PLC程序中任意排列,其位置與程序的執(zhí)行結果無關。
CPU執(zhí)行普通的線性結構程序時,總是對全部程序指令按照輸入采樣、執(zhí)行程序、輸出刷新三個階段不斷循環(huán),全部輸入、輸出信號的采樣與刷新時間統一,每次處理的時間(循環(huán)掃描時間)固定。
在S7-200/300/400系列PLC中,如果將全部PLC用戶程序都編制在組織塊OB1中,即屬于此結構。
(2)分時管理線性化結構
在部分PLC中,為了滿足控制系統中需要高速處理的信號特殊控制要求,線性結構的程序也可以采用“分時管理線性化結構”的結構形式(見圖11-1.1)。
采用“分時管理線性化結構”時,設計者可以根據控制系統的需要,將線性化結構的PLC用戶程序劃分為“高速掃描循環(huán)”與“普通掃描循環(huán)”兩部分。
程序中的高速掃描部分可以由設計者定義掃描時間間隔,在執(zhí)行過程中這一時間間隔保持固定不變。即:對于高速掃描程序段,設計者可以人為地規(guī)定程序的執(zhí)行時間,CPU必須在規(guī)定的時間內完成高速掃描程序段的輸入采樣、執(zhí)行程序、輸出刷新循環(huán)過程,因此,PLC對“高速掃描循環(huán)”程序中輸入/輸出信號的處理速度,可以遠遠高于正常PLC循環(huán)程序中對輸入/輸出信號的處理速度。
程序中的其他部分為普通掃描部分,執(zhí)行正常速度的掃描。在程序的執(zhí)行過程中,如果普通掃描部分的程序執(zhí)行時間已經到達高速掃描時時間間隔,CPU立即中斷普通掃描,保存執(zhí)行狀態(tài),并轉入對高速程序段的掃描:等到高速段程序執(zhí)行結束后,再繼續(xù)恢復對普通程序的掃描(見圖11-1.1)。這樣的過程在整個PLC程序執(zhí)行中需要進行多次。由于高速掃描的多次中斷,普通PLC程序段的掃描時間將比正常執(zhí)行的情況更長。
采用這種方式的特點是:在線性結構體系的程序可以處理PLC的高速輸入/輸出信號,以滿足特殊的控制要求。當然,根據實際系統的需要,程序中也可以沒有高速掃描的程序段,但是,不可以將全部程序都作為高速程序。
3.分塊式結構
分塊式結構體系的PLC程序由多個程序塊組成,由統一的程序“組織塊”對各程序塊進行組織與調度,“組織塊”根據規(guī)定的條件與順序依次調用各程序塊。
采用了分塊式結構體系的PLC程序,在實際處理過程中可以根據不同的外部輸入條件與控制要求,每次循環(huán)掃描可以跳過某些程序塊,僅對需要處理的程序塊進行掃描,從而加快PLC程序的執(zhí)行速度,縮短掃描時間。
根據PLC的不同,分塊式結構體系的PLC程序可以采用主、子程序結構、功能調用式結構與結構化編程等形式實現。
(1)主、子程序結構
采用主、子程序結構的PLC用戶程序,一般可以由主程序、子程序、中斷程序等不同的程序塊所組成,并且按照規(guī)定的順序排列(如在S7-200中,程序塊按照主程序、子程序、中斷程序的順序依次排列)。
在主、子程序結構程序中,主程序為PLC每次掃描都必須執(zhí)行的程序塊,必須予以編制;而子程序、中斷程序可以根據實際需要進行編寫與調用。
主、子程序結構的PLC程序與線性化結構相類似,如果程序中沒有編制子程序、中斷程序,它便成了線性結構的程序。
(2)功能調用式結構
功能調用式結構的PLC程序執(zhí)行過程與主、子程序結構類似,但組成程序的各邏輯塊按照不同的功能進行編排,無主、子之分。組成功能調用式結構的每一程序塊都代表著控制對象的一組相對獨立動作,邏輯塊由特定的“塊”進行統一的管理與調用。
在S7-300/400系列PLC中,以上用于管理與調用的程序塊稱為組織塊(OBl),其余邏輯塊分別稱程序塊(FC)、功能塊(FB)、數據塊(DB)等。
一般而言,功能調用式PLC程序在CPU的一個掃描周期內,對同一程序塊的調用次數不會超過一次;當超過一次時則稱為“結構化編程”。
(3)結構化編程
結構化編程的程序結構形式與調用式完全相同,程序同樣由多個程序塊組成,并通過“組織塊”對其進行組織與管理,但它采用了“參數化編程”的方法。
采用結構化編程的程序,在同- PLC掃描周期內可以多次重復調用程序中的同一程序塊,因此,對于動作相同或相似的程序,可以通過在PLC程序中編寫一個“公用程序塊”,利用重復調用來實現。
為了保證“公用程序塊”能控制不同的對象,必須將組成程序的各種操作數進行“參數化”,即:
①“公用程序塊”中的所有信號的地址必須是可以變化的,即“公用程序塊”中一般不能使用“絕對地址”,而應采用“程序變量”(形式參數)進行編程。
②調用“公用程序塊”前,為了使得程序中的所有信號有明確的含義,必須對“程序變量”(形式參數)進行賦值,即將“程序變量”定義成有明確含義的絕對地址。因此,CPU必須劃分一個專門的存儲器區(qū)域用于存儲這些賦值參數。S7-300/400中的“局部變量堆棧L”與“即時數據塊DI”就是為了實現這一目的而專門設定的存儲區(qū)域。
結構化編程的程序簡潔,所占用的內存容量小,但需要涉及程序塊、功能塊、數據塊、局部變量等概念,對編程人員的要求高。
以上就是西門子PLC程序的結構形式的相關信息,你學會了嗎?還有很多優(yōu)質的PLC編程入門視頻教程,有興趣可以去看看。學PLC,到技成培訓網!