PLC結構化編程是對應於(yu) 典型的控製要求,將過程要求中的類似或相關(guan) 的任務歸類,在功能或功能塊中編寫(xie) 通用的程序塊,這些程序塊可以反複被調用,以控製不同的目標,形成通用的解決(jue) 方案。這些的通用的程序塊就稱為(wei) 結構,利用各種結構組成程序就稱為(wei) 結構化編程。可以通過不同的參數調用相同的功能或通過不同的背景數據塊調用相同的功能塊。結構化編程過程中通用的數據和代碼可以共享,其特點是,編寫(xie) 通用程序塊,對不同的控製任務代入不同的地址和數據,使更多的控製任務可以使用此通用程序塊,因此具有很高的編程和編程調試效率,並且編程結構清晰,適合於(yu) 複雜的控製任務。

在塊調用時,調用者可以是各種邏輯塊,包括用戶編寫(xie) 的組織塊(OB)、FB、FC和係統提供的SFB和SFC,被調用的塊是除OB1外的所有邏輯塊。調用功能塊時需要為(wei) 其指定一個(ge) 背景數據塊,背景數據塊在功能塊調用的同時被打開,在調用結束時被關(guan) 閉。
在給功能塊編程時使用的是形參,調用它時需要使用實參來為(wei) 形參賦值。在一個(ge) 項目中,可以多次調用同一個(ge) 塊,如在調用控製電動機的塊時,將不同的實參賦值給形參,就可以實現對類似但不完全相同的被控對象(如直流電動機和交流電動機)的控製。
塊及子程序的調用,可以嵌套調用,即被調用的塊同時還可以調用其他的塊。嵌套調用的嵌套深度與(yu) CPU的型號相關(guan) 。
嵌套調用的深度同時還與(yu) 局部數據堆棧(L堆棧)有關(guan) 。每個(ge) OB需要至少20 B的L內(nei) 存。當塊A調用塊B時,塊A的臨(lin) 時變量將被壓入L堆棧進行現場保護。
程序被分為(wei) 不同的邏輯塊,每個(ge) 塊包含了完成部分控製任務所需的邏輯指令。組織塊OB1(主程序)中的指令決(jue) 定在什麽(me) 情況下調用哪一個(ge) 塊,功能和功能塊(子程序)用來完成不同的過程任務。被調用的塊執行完後,返回到OB的調用點,繼續執行OB1。模塊化編程,將一個(ge) 較大的程序分成若幹塊,易於(yu) 實現多人同時對一個(ge) 項目編程。由於(yu) 隻在需要時執行相關(guan) 的指令,因此提高了CPU的執行效率。
線性化編程是將整個(ge) 係統的控製程序放在主循環控製組織塊OB1(主程序)中,每一次循環掃描都要不斷地順序執行OB1中的全部指令。這種方法的程序結構簡單,不涉及功能、功能塊、數據塊、局部變量和中斷等比較複雜的概念。
由於(yu) 所有的指令都集中在一個(ge) 塊中,即使程序中的某些部分在大多數時候都不需要執行,但每個(ge) 掃描周期都需要執行所有指令,CPU的執行效率比較低。此外如果需要多次執行相同或相似的程序就需要重複編寫(xie) 程序。因此,這種編程方法,一般隻在編寫(xie) 簡單的控製係統程序時使用。

模塊化程序的執行
模塊化編程中OB1起著主程序的作用,FC或FB控製著不同的過程任務,相當於(yu) 主循環程序的子程序。模塊化編程中被調用塊不向調用塊返回數據。
模塊化編程實例
1.模塊化編程實例1 - 液位監視
• 監視一個(ge) 慢變得過程不需要每次掃描都進行。如果過程每隔一定時間或根據需要進行處理,程序將更有效。• 在OB1循環掃描處理時,可以按照一定的周期對液位進行監視。
設計方法:
• 確定液位監視的組成部分和它們(men) 的關(guan) 係;
• 設計完成所要求控製任務的功能;
• 規劃從(cong) OB中調用塊完成功能的程序執行
過程;
• 對程序塊的每個(ge) 段加上文字注釋和標題。
解決(jue) 方案:
• 建立一個(ge) 功能FC,可以監視和控製任務;
• 建立一個(ge) OB,其中每隔一定時間調用塊
(功能)。
2.模塊化編程實例2
有兩(liang) 台電動機,控製模式是相同的,按下啟動按鈕(電動機1為(wei) I0.0,電動機2為(wei) I1.0),電動機起動運行(電動機1為(wei) Q4.0,電動機2為(wei) Q4.1);按下停止按鈕(電動機1為(wei) I0.1,電動機2為(wei) I1.1),電動機停止運行。
分析:
這是典型的起保停電路,采用模塊化編程的思想,分別在FC1和FC2中編寫(xie) 電機的控製程序,在主程序OB1中進行FC1和FC2的調用。

結構化編程
Ø 將複雜的任務分解成一些能夠反映過程的工藝、功能或可以反複使用的單獨解決(jue) 的小任務,這些任務由相應的程序塊來表示;
Ø 某些程序塊可以用來實現相同或相似的功能;
Ø 調用者可以是各種邏輯塊,包括用戶編寫(xie) 的OB、FB、FC和係統提供的SFB與(yu) SFC;
Ø 被調用的塊是OB之外的邏輯塊;
Ø 通用的數據和代碼可以共享。
結構化編程
結構化編程的優(you) 點:
1各單個(ge) 任務塊的創建和測試可以相互獨立地進行;
2通過使用參數,可將塊設計得十分靈活;
3塊可以根據需要在不同的地方以不同的參數數據記錄進行調用;
4在預先設計的庫中,能夠提供用於(yu) 特殊任務的“可重用”塊。
結構化編程實例-油漆調製
1選擇產(chan) 品添加劑,需要決(jue) 定哪個(ge) 罐的成分要加到混合罐內(nei) 。
2在選擇開關(guan) 的選擇基礎上,組織塊調用相應的程序塊,分配當前的參數,控製混合罐的流入量。
設計方法:
1. 確定哪些部件和操作可以應用於(yu) 所有的罐和相關(guan) 的控製;
2. 建立功能或功能塊,完成所要求的控製;
3. 建立塊的變量定義(yi) 表,以便於(yu) 對要操作的罐和控製進行地址分配;
4. 設計一個(ge) 程序來根據選擇開關(guan) 調用功能或功能塊。
解決(jue) 方案:
1. 建立一個(ge) 功能塊或功能控製罐的流出量;
2. 為(wei) 相關(guan) 的塊建立變量定義(yi) 表;
3. 建立一個(ge) OB塊來根據選擇開關(guan) 調用功能或功能塊。