什么樣的PLC程序算是好的程序呢?好的PLC程序中有哪些特點(diǎn)呢?大體有如下幾個(gè)方面:
PLC程序首先一定要能正確地工作,滿足實(shí)際控制工藝要求。這是PLC程序的根本,若這一點(diǎn)做不到,其它一切沒(méi)有任何意義。
不僅要正確,還要可靠。不能三天兩頭時(shí)不時(shí)地出問(wèn)題。
可靠反映著PLC程序的長(zhǎng)期穩(wěn)定性,這也是對(duì)PLC程序的基本要求。有的PLC程序,在正常的工作條件下或合法操作時(shí)能正確工作,而出現(xiàn)非正常工作條件(如臨時(shí)停電,又很快再通電)或進(jìn)行非法操作(如一些按鈕不按順序按,或同時(shí)按若干按鈕或者連續(xù)按多次)后,程序就不能正常工作了。這種程序,就不太可靠,或說(shuō)不穩(wěn)定,就是不好的程序。
好的PLC程序?qū)Ψ钦9ぷ鳁l件的出現(xiàn),能予以識(shí)別,并能使其與正常條件銜接,可使程序適應(yīng)于多種情況,好的PLC程序?qū)Ψ欠ú僮髂苡枰跃芙^,且不留下“痕跡”。只接受合法操作,即預(yù)防性健壯編程。聯(lián)鎖是拒絕非法操作常用的手段,繼電電路常用這個(gè)方法,PLC及系統(tǒng)集成商也可繼承這個(gè)方法。
要求所設(shè)計(jì)的程序可讀性要好,便于理解,便于調(diào)試,也便于別人閱讀使用你的程序,便于維護(hù);必要時(shí),也可使程序作為標(biāo)準(zhǔn)模板而便于推廣。
要使程序可讀性好:
1)程序的設(shè)計(jì)脈絡(luò)就要盡可能清晰,結(jié)構(gòu)上有層次感;
2)功能層實(shí)現(xiàn)模塊化,或者使用面向?qū)ο蟮姆椒ㄟM(jìn)行設(shè)計(jì);
3)使用一些標(biāo)準(zhǔn)設(shè)計(jì)、通用性設(shè)計(jì);
4)變量層盡量使用符號(hào)名編程;
5)參數(shù)緊跟在使用它們之前再設(shè)定參數(shù)值(即設(shè)即用);
6)I/O地址分配要有規(guī)律性,便于記憶與理解;
7)內(nèi)部器件的使用也要講規(guī)律性,相同功能的地址分配要保有一定的不連續(xù)“斷層裕量”(如x功能地址分配使用到k,那么下一功能的地址分配就不要從k+1開(kāi)始,而要從k+n開(kāi)始),以防功能更改;
8)必要時(shí),還要做一些注釋工作;可讀性在程序設(shè)計(jì)開(kāi)始時(shí)就要注意。這不容易做到。因?yàn)樵诔绦蛘{(diào)試的過(guò)程中,指令的增減,內(nèi)部器件的使用變化,可能使原較清晰的程序,變
使PLC程序盡可能簡(jiǎn)短,也是應(yīng)追求的目標(biāo)。
簡(jiǎn)短的程序可以節(jié)省用戶存儲(chǔ)
從大的方面講,要注意程序結(jié)構(gòu),提取實(shí)現(xiàn)相同功能代碼段的共性,使用子程序、中斷等減少代碼量的方法;用流程控制指令簡(jiǎn)化程序,減少某時(shí)間點(diǎn)的工作量,不需要做的就不做,能盡量少做的就少做;
從小的方面講還要用多處理能力的強(qiáng)指令取代單處理能力的弱指令(使用大級(jí)別的數(shù)據(jù)代替小級(jí)別的數(shù)據(jù)或者數(shù)據(jù)結(jié)構(gòu),如用字節(jié)、字、雙字操作數(shù)代替位操作數(shù)的指令,故障字、狀態(tài)字、控制字、通訊字等;使用間接尋址代替連續(xù)地址存儲(chǔ)單元的相同操作;使用塊傳送指令代替多條字節(jié)、字、雙字傳送指令,這些可以總結(jié)為“批處理”類操作)以及注意指令的安排順序等,要注意兼顧程序的可讀性。
程序簡(jiǎn)短有可能會(huì)節(jié)省程序運(yùn)行時(shí)間,但簡(jiǎn)短與省時(shí)并不完全是一回事。
因?yàn)檫\(yùn)行程序時(shí)間雖與程序所
另外,由于使用了流程控制指令,在程序中,不是所有指令都要執(zhí)行等。所以,運(yùn)行程序的時(shí)間計(jì)算
要使程序易改,也就是要便于修改。
PLC的特點(diǎn)之一就是方便,可靈活地適用于各種情況。其辦法就是靠修改或重新設(shè)計(jì)程序。重新設(shè)計(jì)程序用于改變PLC工藝要求的情況,不僅程序重編,而且I/O也要重新分配。多數(shù)情況下不需要
1)參數(shù)設(shè)定盡量采用間接賦值的方法,常量參數(shù)值盡量使用符號(hào)名,做到見(jiàn)名知意;
2)控制盡量使用中間存儲(chǔ)器(如M、W)作為媒介、中間層,隔離I/O在邏輯上的直接耦合,便于更改邏輯;
3)盡量實(shí)現(xiàn)功能插件化模塊塊,使用戶可以“自由配置”,以實(shí)現(xiàn)即需即加、即加即用。