如何編寫出質(zhì)量較高的PLC程序
PLC是現(xiàn)代工業(yè)的三大支柱之一,是可靠性高、應(yīng)用非常廣泛的工業(yè)控制產(chǎn)品。在中大型模塊化的PLC產(chǎn)品中,CPU模塊(中央處理器)是PLC的中心。一些重大的工業(yè)生產(chǎn)線往往要求連續(xù)運(yùn)行不能停頓,而可靠性再高的PLC也不能保證故障為零,因此,雙CPU的冗余控制是一種滿足連續(xù)生產(chǎn)要求、提高系統(tǒng)可用性的有效手段。
PLC程序最好的評(píng)價(jià)標(biāo)準(zhǔn)是實(shí)踐??闯绦蚰芊襁_(dá)到預(yù)期的目的。但這還不夠。因?yàn)槟苓_(dá)到目的的程序還有好與不好之分。到底什么樣的程序才算好的程序呢?
如何編寫出質(zhì)量較高的plc程序,首先我們得創(chuàng)建一個(gè)屬于自己的編程構(gòu)架或者是程序分段,把整個(gè)程序分成幾部分,比如我自己在寫一個(gè)設(shè)備的PLC程序時(shí)會(huì)分成5部分:手動(dòng)部分、自動(dòng)部分、數(shù)據(jù)處理、通信部分、模擬量/數(shù)字量轉(zhuǎn)換,盡量編程采用結(jié)構(gòu)化編程的方法,這樣能對(duì)程序進(jìn)行分段處理,無論是簡單工程還是結(jié)構(gòu)化功能都可以采用。手動(dòng)部分的作用是機(jī)械設(shè)備單個(gè)動(dòng)作的控制一般用于測試以及維修方面,自動(dòng)部分則是整個(gè)動(dòng)作完整的流程編寫,數(shù)據(jù)處理則是對(duì)手動(dòng)、自動(dòng)用到的數(shù)據(jù)進(jìn)行傳送、選擇、計(jì)算等操作,通信部分是用到例如Modbus等通信控制元器件如變頻器、伺服等裝置編寫的通信程序,模擬量/數(shù)字量則是采用模擬量控制元器件進(jìn)行的DA轉(zhuǎn)換程序或者采集模擬量數(shù)據(jù)進(jìn)行的AD轉(zhuǎn)換程序。
一個(gè)質(zhì)量較高的PLC程序應(yīng)基本滿足簡單可讀性、穩(wěn)定性、具有易于維護(hù)和擴(kuò)展的功能,對(duì)于控制動(dòng)作流程的盡量采用梯形圖進(jìn)行編程,即使是非編程人員也可清晰看清楚其動(dòng)作順序,多采用結(jié)構(gòu)化編程,程序做到集中化就是上面說的屬于哪部分就寫在哪部分,盡量不要亂地方補(bǔ)充、亂地方修改,讓人便于查看。PLC運(yùn)行還需要穩(wěn)定性,就是指的是某些地方的bug,可能在調(diào)試的時(shí)候都準(zhǔn)確無誤,在實(shí)際中誤設(shè)置了參數(shù)、誤動(dòng)作,它卻沒有停止、報(bào)警或者不能正常工作,以及能夠進(jìn)行一次完成的運(yùn)行,第二次、第三次就不能順利進(jìn)行了只能重啟再開始運(yùn)行,這些都屬于程序的穩(wěn)定可靠性,盡量把這些漏洞在調(diào)試試機(jī)時(shí)候找出來。在一個(gè)就是程序的維護(hù)性和擴(kuò)展性,做到注釋準(zhǔn)確、程序結(jié)構(gòu)優(yōu)化,能夠使維修人員迅速找到修改的地方,留有擴(kuò)展的空間,對(duì)某些動(dòng)作的修改、升級(jí)能夠在整體構(gòu)架中完成而不破壞。
在編程前對(duì)軟元件的選擇要準(zhǔn)確,哪些是掉電保存的、掉電不保存的、對(duì)輸入有區(qū)分,有高速計(jì)數(shù)的普通輸入盡量不要占用高速輸入端子、同理高速輸出端子也一樣。對(duì)定時(shí)器的選擇如0.01ms的、0.1ms、1ms的、累計(jì)型的等選擇,計(jì)數(shù)器的選擇16位的、32位的、保持用的、高速計(jì)數(shù)用的都得分清楚使用,數(shù)據(jù)寄存器的選擇也有16、32位、掉電保持的之分。另外指令的選擇要根據(jù)數(shù)據(jù)的類型選擇是16、32位的,避免到時(shí)候數(shù)據(jù)計(jì)算出錯(cuò)。這樣PLC編寫出的程序就能減少bug,質(zhì)量會(huì)高一些。