PLC程序塊調(diào)用和線性化結(jié)構(gòu)化編程
發(fā)布于2022-12-20 10:56
60
2
標(biāo)簽:西門子PLC
STEP7的主程序結(jié)構(gòu)如圖3-3所示。從圖中可以看出,操作系統(tǒng)自動循環(huán)掃描OB1,OB1安排其他程序塊的調(diào)用條件和調(diào)用順序。FC和FB可以互相調(diào)用。功能塊FB1后面的陰影部分表示伴隨著FB的背景數(shù)據(jù)塊。程序塊的調(diào)用與計算機(jī)中子程序的調(diào)用情況相同。程序塊的調(diào)用情況如圖3-4所示。
線性化編程與結(jié)構(gòu)化編程
如果把整個用戶程序都寫在OB1中,操作系統(tǒng)會自動地按順序掃描處理OB1中的每一條指令并不斷地循環(huán),這種編程方式就稱為線性化編程。這種梯形圖程序如果打印出來,看起來就和繼電控制原理展開圖很像。這種編程方式簡單明了,適合比較簡單的控制任務(wù),是許多小型PLC常采用的編程方式。
但是,這種編程方式存在若干原理性的缺陷。首先,這種編程方式浪費(fèi)了CPU的一些資源。因為,在這種編程方式下,CPU在每個掃描周期都要處理程序中的全部指令,而實際上許多指令并不需要每個掃描周期都去處理。例如,在機(jī)器手動操作的時候,與自動操作相對應(yīng)的程序就不需要處理;反之亦然。其次,它不利于在比較復(fù)雜的程序編制時的分工合作,最主要的是它不利于程序的結(jié)構(gòu)化。
所謂結(jié)構(gòu)化編程,是對應(yīng)于一些典型的控制要求編寫通用的程序塊,這些程序塊可以反復(fù)被調(diào)用以控制不同的目標(biāo)。這些通用的程序塊就稱為結(jié)構(gòu),利用各種結(jié)構(gòu)來組成程序就稱為結(jié)構(gòu)化編程。要實現(xiàn)結(jié)構(gòu)化編程有兩個必要條件:一是程序能夠分割;二是能夠?qū)崿F(xiàn)參數(shù)賦值。S7程序是由塊組成的,程序塊也可以實現(xiàn)參數(shù)賦值,所以可以實現(xiàn)結(jié)構(gòu)化。結(jié)構(gòu)化編程除了可以避免上述缺點(diǎn)外,還有許多優(yōu)點(diǎn)。它使程序通用化、標(biāo)準(zhǔn)化,縮短了程序的長度,減少編程工作量。