很多人對(duì)學(xué)習(xí)PLC理解上有一個(gè)誤區(qū),那就是以為會(huì)寫(xiě)程序能實(shí)現(xiàn)功能就可以了。所以學(xué)習(xí)過(guò)程中只注重PLC編程軟件的應(yīng)用。其實(shí)要想學(xué)會(huì)做一個(gè)PLC項(xiàng)目,寫(xiě)程序只是其中一個(gè)環(huán)節(jié)。除此之外,系統(tǒng)配置、控制柜成套、規(guī)范的程序思路、現(xiàn)場(chǎng)調(diào)試、系統(tǒng)維護(hù)等等都要有所了解。我們以控制器為核心沒(méi)有問(wèn)題,關(guān)鍵是抓住這個(gè)核心的同時(shí)還需要對(duì)系統(tǒng)的整體有所掌握,這樣才能勝任技術(shù)工程師的工作。今天分享PLC程序設(shè)計(jì)的相關(guān)規(guī)范和對(duì)程序開(kāi)發(fā)的幾點(diǎn)建議,對(duì)照一下,你的程序?qū)懙煤脝幔?/span>
1 PLC程序設(shè)計(jì)規(guī)范
1、選擇合適的PLC型號(hào)及I/O點(diǎn)數(shù),有特殊功能需求時(shí)選擇特殊功能模塊。
2、熟悉所選擇的PLC編程指令及編譯軟件。
3、進(jìn)行軟元件規(guī)劃,包括內(nèi)部繼電器、保持繼電器、數(shù)據(jù)寄存器、定時(shí)器、計(jì)數(shù)器等。
4、進(jìn)行程序規(guī)劃,一般以故障提取、故障處理、手動(dòng)處理、自動(dòng)處理、輸出處理這樣的順序進(jìn)行編程。比較大型的工程或設(shè)備按功能單元分段、分塊進(jìn)行處理,如一條自動(dòng)化生產(chǎn)線中有提升機(jī)、移行、頂起旋轉(zhuǎn)裝置等,則應(yīng)按上述單元分段分塊編程。
5、在分段分塊編寫(xiě)的程序前應(yīng)加上簡(jiǎn)短的段注釋?zhuān)f(shuō)明此段程序的功能,如有必要可以注明相應(yīng)的工藝流程。分塊或分段的程序再總體程序的位置順序應(yīng)基本上按工藝流程順序排列,便于程序的可讀性。
6、在程序設(shè)計(jì)之前,應(yīng)對(duì)設(shè)備進(jìn)行抽象,對(duì)如停止、急停、過(guò)載、超限、超時(shí)、安全光幕、碰停、門(mén)開(kāi)關(guān)等共用因子進(jìn)行提取,放在啟動(dòng)回路或啟動(dòng)主控、連鎖回路,作為整個(gè)程序結(jié)構(gòu)的大前提,在此基礎(chǔ)下,再將程序分為自動(dòng)、手動(dòng)兩大功能區(qū)。
7、將程序結(jié)構(gòu)手動(dòng)功能區(qū)共用因子,如手動(dòng)、危及設(shè)備人身安全等因數(shù)因子進(jìn)行提取,放在手動(dòng)主控、連鎖回路,對(duì)手動(dòng)控制進(jìn)行保護(hù)、屏蔽、報(bào)警。
8、將程序結(jié)構(gòu)自動(dòng)功能區(qū)共用因子,如自動(dòng)、超限、超時(shí)等因數(shù)因子進(jìn)行提取,放在自動(dòng)主控、連鎖回路,對(duì)自動(dòng)控制下設(shè)備進(jìn)行保護(hù)、屏蔽、報(bào)警。一個(gè)總的原則就是,在確保安全的前提下,嚴(yán)格限制設(shè)備的進(jìn),寬松限制設(shè)備的出。
9、程序設(shè)計(jì)時(shí)應(yīng)設(shè)計(jì)程序總復(fù)位功能,便于使用者在設(shè)備出現(xiàn)故障情況下,可以方便盡快恢復(fù)設(shè)備正常工作??倧?fù)位應(yīng)充分考慮在復(fù)位過(guò)程中設(shè)備和人員的安全。
10、自動(dòng)模式切換到手動(dòng)模式時(shí),程序應(yīng)清除自動(dòng)模式下的輸出和中間狀態(tài)。特別是在自動(dòng)模式使用SET指令時(shí),必須在手動(dòng)模式用RESET指令予以清除。
11、嚴(yán)禁在編制程序中使用雙輸出,即同一條輸出語(yǔ)句或同一個(gè)輸出線圈在程序中出現(xiàn)2次及以上。在不同模式條件下的對(duì)同一輸出點(diǎn)的輸出使用中間繼電器進(jìn)行中轉(zhuǎn),最后集中到一起并列到輸出點(diǎn)。
12、使用觸摸屏?xí)r,對(duì)觸摸屏和PLC公用的控制區(qū)和狀態(tài)區(qū),不得做其他功能方面的編程使用。
13、對(duì)PLC的特殊模塊,在使用之前,應(yīng)先查明其控制區(qū)和狀態(tài)區(qū)是否占用工作字,若占用,不得將這些工作字做其他方面的編程。
14、PLC的輸入、輸出、中間繼電器、定時(shí)器、計(jì)數(shù)器、數(shù)據(jù)寄存器等都要加中文注釋。輸入、輸出還要有元器件名稱(chēng)位號(hào)。對(duì)應(yīng)的輸入點(diǎn),一般情況下默認(rèn)為外圍開(kāi)關(guān)連接的是NO觸點(diǎn),對(duì)于需要接NC觸點(diǎn)的須在注釋中標(biāo)明。所有注釋?xiě)?yīng)當(dāng)清晰明了,不易產(chǎn)生誤解,盡量少使用泛指。
15、工程調(diào)試完成后,系統(tǒng)必須保留最終軟件程序,保存的文件名應(yīng)包含項(xiàng)目編號(hào)/作者/日期信息/版本號(hào)等。
16、關(guān)于程序加密:對(duì)于加密程序的密碼必須有專(zhuān)門(mén)的文件予以保存,并注明相應(yīng)的用戶(hù)名+密碼+權(quán)限,分發(fā)給至少兩個(gè)人以上了解密碼,防止密碼丟失帶來(lái)無(wú)法打開(kāi)程序的情況。
2 編程建議
1、PLC和上位機(jī)(或觸摸屏)組成監(jiān)控系統(tǒng)時(shí),在畫(huà)面上很多時(shí)候需要有“手動(dòng)”、“自動(dòng)”等控制模式(一般都是多個(gè)只能一個(gè)時(shí))。在程序里面可以用“MOV”指令。如:當(dāng)選擇“手動(dòng)”就將常數(shù)1 MOV到一個(gè)寄存器VB10里面,當(dāng)選擇“自動(dòng)”就將2 MOV到同一寄存器VB10。只要判斷寄存器的數(shù)據(jù)是多少,就知道系統(tǒng)是那種控制方式。這樣的思路好處是容易理解,不需要互鎖之類(lèi)的麻煩程序。
2、程序有模擬量控制時(shí),如果讀取的模擬量基本上沒(méi)誤差,可以采取時(shí)間濾波的方式,延時(shí)一段時(shí)間。如果讀取的數(shù)據(jù)誤差很大,就需要采取其它的濾波方式,如算平均值等??梢圆殚喯嚓P(guān)的資料。
3、在程序調(diào)試過(guò)程中(特別是設(shè)備改造時(shí),你的程序是加入到原來(lái)設(shè)備的程序中時(shí)),當(dāng)程序語(yǔ)句中出現(xiàn)條件滿足,而輸出線圈不接通時(shí),可以檢查你的這段程序是否是在這樣的語(yǔ)句之間,如JUMPgo to等語(yǔ)句。還有一種可能就是在中斷程序之后,條件滿足而沒(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)等)實(shí)用常閉(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)行滿24小時(shí)必須進(jìn)行輪換,且必須有運(yùn)行時(shí)間累計(jì),如果由上位機(jī)設(shè)定啟/停順序除外,操作人員自行設(shè)定。
-
繼電器
+關(guān)注
關(guān)注
132文章
5314瀏覽量
148352 -
plc
+關(guān)注
關(guān)注
5006文章
13107瀏覽量
461447 -
定時(shí)器
+關(guān)注
關(guān)注
23文章
3231瀏覽量
114326
原文標(biāo)題:PLC程序設(shè)計(jì)的相關(guān)規(guī)范和對(duì)程序開(kāi)發(fā)的幾點(diǎn)建議
文章出處:【微信號(hào):xue_PLC,微信公眾號(hào):PLC技術(shù)圈】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論