小型PLC中宏的適用及相關(guān)系統(tǒng)軟件改進(jìn)設(shè)想
[摘要] 本文介紹了富士N系列PLC中的宏命令,并從應(yīng)用角度指出了它的局限性。為更好地解決PLC重復(fù)程序段的設(shè)計(jì)問題,就相關(guān)系統(tǒng)軟件的改進(jìn)提出了自己的設(shè)想。
一.引言
宏在軟件編程中非常重要。宏是由一段程序組成的命令,向子程序一樣,在一些場合它用來代替在編程過程中經(jīng)常出現(xiàn)的重復(fù)程序段。可編程序控制器(PLC)的工作方式一般為周期性循環(huán)掃描梯形圖,集中采樣輸入,集中驅(qū)動(dòng)輸出。它的應(yīng)用領(lǐng)域一般為以開關(guān)量為主的順控系統(tǒng),但隨著PLC的不斷發(fā)展,其功能越來越強(qiáng)大,使用場合也越來越多,PLC廠商提供的軟件功能也越來越強(qiáng),這使得在PLC編程過程中使用宏或子程序成為可能。使用宏或子程序可以完成某些應(yīng)用指令中部存在的復(fù)雜處理,也可以是重復(fù)形式或同意處理的程序標(biāo)準(zhǔn)化,既減少了程序的長度,也使編程變的容易,提高了編程效率。目前在小型PLC中筆者還未見到可以使用子程序的產(chǎn)品,但富士電機(jī)的N系列PLC可以使用宏命令編程,下面就其使用情況和在使用中出現(xiàn)的問題作一些討論。
二.N系列PLC中宏的使用及其局限性討論
1.宏的使用簡介
富士電機(jī)提供的宏命令分兩類,一類是它為用戶制作好的標(biāo)準(zhǔn)宏命令集,使用該宏命令及可以完成應(yīng)用指令中沒有的某些復(fù)雜功能的處理任務(wù);另一類就是用戶自己制作宏命令,用戶宏命令有調(diào)用部和執(zhí)行部組成,如圖1、圖2 所示。用戶宏命令和主程序的關(guān)系如圖3 所示。
由此可見在PLC中使用宏命令時(shí),參數(shù)交換非常重要,也必不可少。富士電機(jī)為用戶提供了幾組字信息和位信息交換所使用的數(shù)據(jù)寄存器和輔助繼電器,其中每組字信息和位信息的入口參數(shù)和出口參數(shù)各有16個(gè),富士電機(jī)還就參數(shù)交換順序、個(gè)數(shù)、使用指令以及在宏命令中使用定時(shí)器、微分指令等作了規(guī)定,編程順序必須符合圖1要求。
2.局限性探討
由上面的使用簡介可以看出,在PLC中使用宏有許多限制和不便,筆者在一次較大規(guī)模的軟件設(shè)計(jì)中深有體會(huì),具體體現(xiàn)在以下幾點(diǎn):
(1)使用繁瑣。使用宏調(diào)用指令CALL后,還要進(jìn)行參數(shù)交換工作以及宏的啟動(dòng)、結(jié)束工作,且編程順序和使用指令有嚴(yán)格限制。當(dāng)宏程序參數(shù)較多時(shí),參數(shù)交換時(shí)宏的調(diào)用部程序變的很長,顯然起不到使用宏可以縮短程序長度,容易編程的作用。
(2)使PLC的程序掃描時(shí)間變長。如果要多次使用宏程序,必然要多次使用宏調(diào)用部,CALL(宏命令調(diào)用)、UMEND(宏命令結(jié)束)等是必須用到的三條指令。在N系列P型機(jī)中,這三條指令都是長執(zhí)行時(shí)間指令,多次使用會(huì)大大增加程序掃描時(shí)間。在新推出的N系列U型機(jī)中,這三條指令已改為短執(zhí)行時(shí)間指令,這個(gè)問題以不十分突出。但過長的包括參數(shù)交換在內(nèi)的宏調(diào)用部肯定會(huì)增加程序掃描時(shí)間,使程序的實(shí)時(shí)性降低。
(3)參數(shù)個(gè)數(shù)限制。若宏程序的功能復(fù)雜或長度較長,則使用的參數(shù)(位參數(shù)或字參數(shù))個(gè)數(shù)可能會(huì)超過16個(gè),這時(shí)的宏功能就不能使用了。
三.相關(guān)系統(tǒng)軟件改進(jìn)設(shè)想
雖然PLC的一般應(yīng)用場合不需要編制復(fù)雜的程序,但在某些特殊的系統(tǒng)或中型以上系統(tǒng)中處理復(fù)雜重復(fù)的動(dòng)作就可能用到宏或子程序功能,隨意方便的重復(fù)程序設(shè)計(jì)功能在PLC的高級(jí)應(yīng)用中時(shí)十分必要的。這就要求PLC廠商對(duì)PLC的系統(tǒng)軟件進(jìn)行改進(jìn),增強(qiáng)其功能。一般來說,條件循環(huán)結(jié)構(gòu)能很好地解決重復(fù)程序段的編程問題,具備該功能的PLC必須做到:
1.設(shè)置有參數(shù)寄存器。如I、J等,可對(duì)其進(jìn)行賦值,并有相應(yīng)的計(jì)算功能。
2.PLC中元器件的地址設(shè)置可以事變參數(shù)的。入當(dāng)參數(shù)I從0到n變化時(shí),M(I)(或X(I)、Y(I)、T(I)等)相應(yīng)地就從M(0)(或X(0)、Y(0)、T(0)等)變化到M(n)(或X(n)、Y(n)、T(n)等),而且進(jìn)位時(shí)最好符合PLC中元器件地址進(jìn)位的要求。在處理重復(fù)程序段時(shí),宏命令或子程序中可以使用定參數(shù)的元器件,也可以使用變參數(shù)的元器件,它們所使用的元器件狀態(tài)隨時(shí)到相應(yīng)的元器件映像寄存器中去取,而所計(jì)算出的結(jié)果隨時(shí)存儲(chǔ)到相應(yīng)的元器件映像寄存器中,徹底省掉參數(shù)交換環(huán)節(jié)。這樣可解決多次調(diào)用宏所造成的程序過長和增加掃描時(shí)間的問題,而且不受參數(shù)交換順序、個(gè)數(shù)等閑置。
3.引入逆跳設(shè)計(jì)。大多數(shù)小型PLC的調(diào)轉(zhuǎn)時(shí)不能逆跳的,在循環(huán)結(jié)構(gòu)中,則必須使用逆跳功能。N系列PLC可以逆跳,但在設(shè)計(jì)程序中,必須注意要使用條件跳轉(zhuǎn)指令,保證不能出現(xiàn)死循環(huán),且整個(gè)程序的掃描時(shí)間不能大于用戶監(jiān)視定時(shí)器(WDT)所設(shè)置的時(shí)間。
四.結(jié)束語
小型PLC中簡單、方便、有效的重復(fù)程序段設(shè)計(jì)功能肯定會(huì)實(shí)現(xiàn),盡管富士N系列PLC中的宏命令有一些使用上不便,但筆者認(rèn)為它認(rèn)為目前功能最強(qiáng)大的小型PLC。本人愿和有興趣的同行就PLC深入的使用問題進(jìn)行多方面的探討。
文章版權(quán)歸西部工控xbgk所有,未經(jīng)許可不得轉(zhuǎn)載。