CNC On-machine Measurement Quality Service Provider
完美的PLC程序需滿足的設(shè)計要求
一套完整的PLC程序,并不僅僅是使系統(tǒng)能夠運行起來這么簡單,它也需要完整的注釋、精良的架構(gòu)、良好的可擴展性、完備的報警保護系統(tǒng)、運行前的模擬系統(tǒng)。
1. 簡單性
2. 可讀性
3. 正確性
4. 可靠性
5. 易改性
6. 擴展性
7. 完備報警系統(tǒng)
8. 程序模擬
PLC程序設(shè)計規(guī)范
1、選擇合適的PLC型號及I/O點數(shù),有特殊功能需求時選擇特殊功能模塊。
2、熟悉所選擇的PLC編程指令及編譯軟件。
3、進行軟元件規(guī)劃,包括內(nèi)部繼電器、保持繼電器、數(shù)據(jù)寄存器、定時器、計數(shù)器等。
4、進行程序規(guī)劃,一般以故障提取、故障處理、手動處理、自動處理、輸出處理這樣的順序進行編程。比較大型的工程或設(shè)備按功能單元分段、分塊進行處理,如一條自動化生產(chǎn)線中有提升機、移行、頂起旋轉(zhuǎn)裝置等,則應(yīng)按上述單元分段分塊編程。
5、在分段分塊編寫的程序前應(yīng)加上簡短的段注釋,說明此段程序的功能,如有必要可以注明相應(yīng)的工藝流程。分塊或分段的程序再總體程序的位置順序應(yīng)基本上按工藝流程順序排列,便于程序的可讀性。6、在程序設(shè)計之前,應(yīng)對設(shè)備進行抽象,對如停止、急停、過載、超限、超時、安全光幕、碰停、門開關(guān)等共用因子進行提取,放在啟動回路或啟動主控、連鎖回路,作為整個程序結(jié)構(gòu)的大前提,在此基礎(chǔ)下,再將程序分為自動、手動兩大功能區(qū)。
7、將程序結(jié)構(gòu)手動功能區(qū)共用因子,如手動、危及設(shè)備人身安全等因數(shù)因子進行提取,放在手動主控、連鎖回路,對手動控制進行保護、屏蔽、報警。
8、將程序結(jié)構(gòu)自動功能區(qū)共用因子,如自動、超限、超時等因數(shù)因子進行提取,放在自動主控、連鎖回路,對自動控制下設(shè)備進行保護、屏蔽、報警。一個總的原則就是,在確保安全的前提下,嚴(yán)格限制設(shè)備的進,寬松限制設(shè)備的出。
9、程序設(shè)計時應(yīng)設(shè)計程序總復(fù)位功能,便于使用者在設(shè)備出現(xiàn)故障情況下,可以方便盡快恢復(fù)設(shè)備正常工作??倧?fù)位應(yīng)充分考慮在復(fù)位過程中設(shè)備和人員的安全。
10、自動模式切換到手動模式時,程序應(yīng)清除自動模式下的輸出和中間狀態(tài)。特別是在自動模式使用SET指令時,必須在手動模式用RESET指令予以清除。
11、嚴(yán)禁在編制程序中使用雙輸出,即同一條輸出語句或同一個輸出線圈在程序中出現(xiàn)2次及以上。在不同模式條件下的對同一輸出點的輸出使用中間繼電器進行中轉(zhuǎn),最后集中到一起并列到輸出點。
12、使用觸摸屏?xí)r,對觸摸屏和PLC公用的控制區(qū)和狀態(tài)區(qū),不得做其他功能方面的編程使用。
13、對PLC的特殊模塊,在使用之前,應(yīng)先查明其控制區(qū)和狀態(tài)區(qū)是否占用工作字,若占用,不得將這些工作字做其他方面的編程。
14、PLC的輸入、輸出、中間繼電器、定時器、計數(shù)器、數(shù)據(jù)寄存器等都要加中文注釋。輸入、輸出還要有元器件名稱位號。對應(yīng)的輸入點,一般情況下默認(rèn)為外圍開關(guān)連接的是NO觸點,對于需要接NC觸點的須在注釋中標(biāo)明。所有注釋應(yīng)當(dāng)清晰明了,不易產(chǎn)生誤解,盡量少使用泛指。
15、工程調(diào)試完成后,系統(tǒng)必須保留最終軟件程序,保存的文件名應(yīng)包含項目編號/作者/日期信息/版本號等。
16、關(guān)于程序加密:對于加密程序的密碼必須有專門的文件予以保存,并注明相應(yīng)的用戶名+密碼+權(quán)限,分發(fā)給至少兩個人以上了解密碼,防止密碼丟失帶來無法打開程序的情況。編程建議
1、PLC和上位機(或觸摸屏)組成監(jiān)控系統(tǒng)時,在畫面上很多時候需要有“手動”、“自動”等控制模式(一般都是多個只能一個時)。在程序里面可以用“MOV”指令。如:當(dāng)選擇“手動”就將常數(shù)1 MOV到一個寄存器VB10里面,當(dāng)選擇“自動”就將2 MOV到同一寄存器VB10。只要判斷寄存器的數(shù)據(jù)是多少,就知道系統(tǒng)是那種控制方式。這樣的思路好處是容易理解,不需要互鎖之類的麻煩程序。
2、程序有模擬量控制時,如果讀取的模擬量基本上沒誤差,可以采取時間濾波的方式,延時一段時間。如果讀取的數(shù)據(jù)誤差很大,就需要采取其它的濾波方式,如算平均值等??梢圆殚喯嚓P(guān)的資料。
3、在程序調(diào)試過程中(特別是設(shè)備改造時,你的程序是加入到原來設(shè)備的程序中時),當(dāng)程序語句中出現(xiàn)條件滿足,而輸出線圈不接通時,可以檢查你的這段程序是否是在這樣的語句之間,如JUMP\go to\等語句。還有一種可能就是在中斷程序之后,條件滿足而沒輸出不接通,一般都是這段的程序不被掃描。
4、在順序控制程序時,即一個動作完成后,進入到下一個動作,等類似的順序控制,采用+10+10控制模式,本人覺得很方便。其思路是:預(yù)置一個寄存器,在初始化時值為0,當(dāng)系統(tǒng)啟動后,對它+10,此時寄存器為10,寄存器等于10時可以做第一個動作;第一個動作完成后,再對寄存器+10,此時寄存器等于20,可以做第二個動作,第二個動作完成后又+10,此時寄存器等于30,這樣只要判斷寄存器里面數(shù)據(jù)為多少,就知道要完成那個動作。當(dāng)需要跳躍動作時,可以不再+10,可以加+20\+30....,看實際的需要而定。為什么加10而不是加1,因為加10之后,如果插入一段,只要在這10個空余的地方隨便選擇一個位置就可以了。
5、在設(shè)計程序的時候,當(dāng)出現(xiàn)工藝上的故障(非控制系統(tǒng)控制),最好將故障現(xiàn)象保持,并有燈光聲音報警。直到操作工復(fù)位,以讓其知道系統(tǒng)出現(xiàn)了故障。不然停機了,別人還認(rèn)為你的程序問題。一般都是在設(shè)計一個新系統(tǒng)時,要注意到這些。
6、對于經(jīng)常調(diào)用的子程序,可以做成子模塊,頻繁調(diào)用。
7、由于生產(chǎn)機械在工作循環(huán)中的各工步運動在執(zhí)行時需要一定的時間,且這些時間都有一定的限度,因此可以以這些時間為參考,在要檢測的工步動作開始的同時,起動一個定時器,定時器的時間設(shè)定值比正常情況下該動作要持續(xù)的時間長20%~30%,而定時器的輸出信號可以用于報警或自動停機裝置。當(dāng)生產(chǎn)機械某工步動作的時間超過規(guī)定時間,達到對應(yīng)的定時器預(yù)置時間,還未轉(zhuǎn)入下一工步動作時定時器發(fā)出故障信號,該信號停止正常工作循環(huán)程序,起動報警或停機程序,這就是我們常說的超節(jié)拍保護。
8、一些安全用檢測開關(guān)(如急停按鈕、安全光幕、極限開關(guān)等)實用常閉(NC)輸入。
9、為安全、節(jié)能考慮,盡量將輸出設(shè)計成需要動作時才動作,一旦到位就停止輸出,而不要設(shè)計成平時一直輸出,需要停止時才讓輸出斷開。
10、執(zhí)行元件的動作原則應(yīng)當(dāng)是寧可不動,也不要亂動!
11、單臺設(shè)備控制:單臺設(shè)備必須有軟手操/自動切換以及軟手操時可以啟/停功能,由自動切換到軟手操時,設(shè)備不能停機;由軟手操切換到自動時,設(shè)備啟/停取決于自動程序。
12、單臺設(shè)備(泵、風(fēng)機及其它大型設(shè)備)運行滿24小時