淺談S7-200SMART 程序結構之功能塊河南
一、程序結構
SIEMNES S7-200SMART PLC中的程序結構分為三種:
(1)線性化編程
(2)功能塊化編程
(3)結構化編程
線性化編程:就是把所有的程序全寫在MAIN(主程序)中;不適合做程序的調試和修改,實際應用中我們不常用且不推薦
功能塊化編程:也稱之為子程序;在實際的程序編寫中,根據控制任務進行結構劃分,每個子程序完后一個功能(工藝要求),然后根據條件去調用相應的子程序來實現對應的功能運行;可讓程序結構清晰,明了;也方便調試和程序的修改。在實際應用中是我們常用的方式之一。
結構化編程:又稱為帶形式參數的子程序;在功能塊化編程的基礎上再一次優化,可生成庫指令調用,當功能指令賦予不同的實參反復使用,并且適合項目的移植。
二、程序特點
子程序可以把整個用戶程序按照功能進行結構化的組織。一個“好”的程序總是把全部的控制功能分為幾個符合工藝控制規律的子功能塊,每個子功能塊可以由一個或多個子程序組成。
這樣的結構也非常有利于分步調試,以免許多功能綜合在一起無法判斷問題的所在;而且,幾個類似的項目也只需要對同一個程序作簡單的修改就能使用
子程序特點如下:
1、更好的組織程序結構,便于調試和閱讀;
2、子程序在執行到末尾時自動返回,不必加返回指令;
3、子程序不能使用跳轉語句跳入、跳出;
4、S7-200 SMART CPU多可以調用128個子程序;
5、子程序可以嵌套調用,即子程序中再調用子程序,一共可以嵌套8層
6、子程序可以帶參數調用,在子程序的局部變量表中設置參數的類型
7、子程序分為帶參數的子程序和不帶參數的子程序
8、帶參數的子程序會使用局部存儲器L來建立變量
9、子程序在調用時,系統會給子程序分配想要的局部存儲器
10、子程序在調用結束后,局部存儲區會釋放出來,但不會對其進行初始化
三、子程序接口區定義
需要建立帶參數的子程序,則在編寫子程序時,需要在子程序的變量表里面編寫相應的形式參數變量,編寫完成后,在填寫程序時使用編寫的形式參數變量進行編程
輸入變量 (IN ):可讀變量(只能對它的數據進行讀取,不能修改它的狀態)用于外圍的數據或狀態傳入到子程序的對應形參中以便后續運算
輸入輸出變量 (IN/OUT):可讀可寫變量,子程序被調用時先把子程序的初始值傳入到子程序內部運算,運算完后,再把運算結果放回到該地址中存儲,以便下一次使用。
輸出變量(OUT ):運算結果就該變量輸出給外圍的實參變量
臨時變量(TEMP):用于暫存中間的運算結果,該變量若用于運算時,首先要知道其確定的值。
變量表的地址就是局部存儲區L,其根據符號和數據類型自動生成,無需手動添加;