下面我們就請(qǐng)前方的技術(shù)工程師來(lái)給我們介紹一下什么樣的PLC程序算是好的程序呢?好的PLC程序中有哪些特點(diǎn)呢?大體有如下幾個(gè)方面:
1、正確性(調(diào)試成本低)
PLC程序首先要能正確地工作,滿(mǎn)足實(shí)際控制工藝要求。這是PLC程序的根本,若這一點(diǎn)做不到,其它意義。
2、可靠性(維護(hù)成本低)
不僅要正確,還要可靠。不能三天兩頭時(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)集成商也可繼承。
3、可讀性(學(xué)習(xí)成本低)
要求所設(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)部器件的使用變化,可能使原較清晰的程序,變的有些亂。所以在設(shè)計(jì)時(shí)就對(duì)調(diào)試增減留有的余地,然后調(diào)試完畢后再做一下整理,這樣所設(shè)計(jì)的程序具有更高的質(zhì)量。

4、簡(jiǎn)短性(存儲(chǔ)成本低)
使PLC程序盡可能簡(jiǎn)短,也是應(yīng)追求的目標(biāo)。
簡(jiǎn)短的程序可以節(jié)省用戶(hù)存儲(chǔ)區(qū);多數(shù)情況下也可節(jié)省執(zhí)行時(shí)提高對(duì)輸入的響應(yīng)速度,還可提高程序的可讀性。程序是否簡(jiǎn)短,一般可用程序所用的指令條數(shù)衡量,用的條數(shù)少,程序自然就簡(jiǎn)短。從大的方面講,要注意程序結(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é)為“批處理”類(lèi)操作)以及注意指令的安排順序等,要注意兼顧程序的可讀性。
5、省時(shí)性(運(yùn)行成本低)
http://m.level7mm.com/diyachengtaokaiguangui/jxfdiyapeidiangui.html
程序簡(jiǎn)短有可能會(huì)節(jié)省程序運(yùn)行時(shí)間,但簡(jiǎn)短與省時(shí)并不是一回事。
因?yàn)檫\(yùn)行程序時(shí)間雖與程序所擁有指令條數(shù)有關(guān),而且還與所使用的是什么指令有關(guān),也就是與程序算法相關(guān)。PLC算法不同,執(zhí)行的時(shí)間也不同。而且,有的指令,在邏輯條件ON時(shí)執(zhí)行與在OFF時(shí)執(zhí)行其時(shí)間也不同。另外,由于使用了流程控制指令,在程序中,不是所有指令都要執(zhí)行等。所以,運(yùn)行程序的時(shí)間計(jì)算是較復(fù)雜的。但要求其平均時(shí)間少,大時(shí)間也不太長(zhǎng)是的。這樣可提高北京天拓四方科技有限公司是西門(mén)子工業(yè)自動(dòng)化和驅(qū)動(dòng)集團(tuán)核心分銷(xiāo)商(一級(jí)代理商)及系統(tǒng)集成商PLC的響應(yīng)速度。省時(shí)的關(guān)鍵是用好流程控制指令。按情況確定一些執(zhí)行的指令,作部分,其余的可依程序進(jìn)行,有選擇地執(zhí)行,或作些分時(shí)工作的設(shè)計(jì),避免大時(shí)間太長(zhǎng)等。
6、易改性(變動(dòng)成本低)
要使程序易改,也就是要便于修改。
PLC的特點(diǎn)之一就是方便,可靈活地適用于各種情況。其辦法就是靠修改或重新設(shè)計(jì)程序。重新設(shè)計(jì)程序用于改變PLC工藝要求的情況,不僅程序重編,而且I/O也要重新分配。多數(shù)情況下不需要重編程序,做一些修改就可以了。這就要求程序具有易改性,便于修改。易改也就是彈性,要求只要作很少的改動(dòng),即可達(dá)到改變參數(shù)或更改動(dòng)作的目的。1)參數(shù)設(shè)定盡量采用間接賦值的方法,常量參數(shù)值盡量使用符號(hào)名,做到見(jiàn)名知意;2)控制盡量使用中間存儲(chǔ)器(如M、W)作為媒介、中間層,隔離I/O在邏輯上的直接耦合,便于更改邏輯;3)盡量實(shí)現(xiàn)功能插件化模塊塊,使用戶(hù)可以“自由配置”,以實(shí)現(xiàn)即需即加、即加即用。在設(shè)計(jì)PLC程序的過(guò)程中,對(duì)于上述要求要同時(shí)兼顧和平衡,不能顧此失彼,得不償失。
關(guān)于PLC編程,老工程師的12點(diǎn)建議:1、PLC和上位機(jī)(或觸摸屏)組成監(jiān)控系統(tǒng)時(shí),在畫(huà)面上很多時(shí)候需要有“手動(dòng)”、“自動(dòng)”等控制模式(一般都是多個(gè)只能一個(gè)時(shí))。在程序里面可以用“MOV”指令。如:當(dāng)選擇“手動(dòng)”就將常數(shù)1MOV到一個(gè)寄存器VB10里面,當(dāng)選擇“自動(dòng)”就將2MOV到同一寄存器VB10。只要判斷寄存器的數(shù)據(jù)是多少,就知道系統(tǒng)是那種控制方式。這樣的思路好處是容易理解,不需要互鎖之類(lèi)的麻煩程序。
2、程序有模擬量控制時(shí),如果讀取的模擬量基本上沒(méi)誤差,可以采取時(shí)間濾波的方式,一段時(shí)間。如果讀取的數(shù)據(jù)誤差很大,就需要采取其它的濾波方式,如算平均值等??梢圆殚喯嚓P(guān)的資料。
3、在程序調(diào)試過(guò)程中(特別是設(shè)備改造時(shí),你的程序是加入到原來(lái)設(shè)備的程序中時(shí)),當(dāng)程序語(yǔ)句中出現(xiàn)條件滿(mǎn)足,而輸出線(xiàn)圈不接通時(shí),可以檢查你的這段程序是否是在這樣的語(yǔ)句之間,如JUMPgoto等語(yǔ)句。還有一種可能就是在中斷程序之后,條件滿(mǎn)足而沒(méi)輸出不接通,一般都是這段的程序不被掃描。4、在順序控制程序時(shí),即一個(gè)動(dòng)作完成后,進(jìn)入到下一個(gè)動(dòng)作,等類(lèi)似的順序控制,采用+10+10控制模式,本人覺(jué)得很方便。其思路是:預(yù)置一個(gè)寄存器,在初始化時(shí)值為0,當(dāng)系統(tǒng)啟動(dòng)后,對(duì)它+10,此時(shí)寄存器為10,寄存器等于10時(shí)可以做個(gè)動(dòng)作;個(gè)動(dòng)作完成后,再對(duì)寄存器+10,此時(shí)寄存器等于20,可以做個(gè)動(dòng)作,個(gè)動(dòng)作完成后又+10,此時(shí)寄存器等于30,這樣只要判斷寄存器里面數(shù)據(jù)為多少,就知道要完成那個(gè)動(dòng)作。當(dāng)需要跳躍動(dòng)作時(shí),可以不再+10,可以加+20+30....,看實(shí)際的需要而定。為什么加10而不是加1,因?yàn)榧?0之后,如果插入一段,只要在這10個(gè)空余的地方隨便選擇一個(gè)位置就可以了。
5、在設(shè)計(jì)程序的時(shí)候,當(dāng)出現(xiàn)工藝上的故障(非控制系統(tǒng)控制),好將故障現(xiàn)象保持,并有燈光聲音報(bào)警。直到操作工復(fù)位,以讓其知道系統(tǒng)出現(xiàn)了故障。不然停機(jī)了,別人還認(rèn)為你的程序出問(wèn)題了,一般在設(shè)計(jì)一個(gè)新系統(tǒng)時(shí)是要注意到這些。
6、對(duì)于經(jīng)常調(diào)用的子程序,可以做成子模塊,頻繁調(diào)用。
7、由于生產(chǎn)機(jī)械在工作循環(huán)中的各工步運(yùn)動(dòng)在執(zhí)行時(shí)需要的時(shí)間,且這些時(shí)間都有的限度,因此可以以這些時(shí)間為參考,在要檢測(cè)的工步動(dòng)作開(kāi)始的同時(shí),起動(dòng)一個(gè)定時(shí)器,定時(shí)器的時(shí)間設(shè)定值比正常情況下該動(dòng)作要持續(xù)的時(shí)間長(zhǎng)20%~30%,而定時(shí)器的輸出信號(hào)可以用于報(bào)警或自動(dòng)停機(jī)裝置。當(dāng)生產(chǎn)機(jī)械某工步動(dòng)作的時(shí)間超過(guò)規(guī)定時(shí)間,達(dá)到對(duì)應(yīng)的定時(shí)器預(yù)置時(shí)間,還未轉(zhuǎn)入下一工步動(dòng)作時(shí)定時(shí)器發(fā)出故障信號(hào),該信號(hào)停止正常工作循環(huán)程序,起動(dòng)報(bào)警或停機(jī)程序,這就是我們常說(shuō)的超節(jié)拍保護(hù)。
8、一些用檢測(cè)開(kāi)關(guān)(如急停按鈕、光幕、限開(kāi)關(guān)等)使用常閉(NC)輸入。
9、為、節(jié)能考慮,盡量將輸出設(shè)計(jì)成需要?jiǎng)幼鲿r(shí)才動(dòng)作,一旦到位就停止輸出,而不要設(shè)計(jì)成平時(shí)一直輸出,需要停止時(shí)才讓輸出斷開(kāi)。
10、執(zhí)行元件的動(dòng)作原則應(yīng)當(dāng)是寧可不動(dòng),也不要亂動(dòng)!
11、單臺(tái)設(shè)備控制:?jiǎn)闻_(tái)設(shè)備有軟手操/自動(dòng)切換以及軟手操時(shí)可以啟/停功能,由自動(dòng)切換到軟手操時(shí),設(shè)備不能停機(jī);由軟手操切換到自動(dòng)時(shí),設(shè)備啟/停取決于自動(dòng)程序。
12、單臺(tái)設(shè)備(泵、風(fēng)機(jī)及其它大型設(shè)備)運(yùn)行滿(mǎn)24小時(shí)進(jìn)行輪換,且有運(yùn)行時(shí)間累計(jì),如果由上位機(jī)設(shè)定啟/停順序除外,操作人員自行設(shè)定。


你所在的位置: