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