如何編寫出質(zhì)量較高的程序,首先我們得創(chuàng)建一個屬于自己的編程構(gòu)架或者是程序分段,把整個程序分成幾部分,比如我自己在寫一個設(shè)備的PLC程序時會分成5部分:手動部分、自動部分、數(shù)據(jù)處理、通信部分、模擬量/數(shù)字量轉(zhuǎn)換,盡量編程采用結(jié)構(gòu)化編程的方法,這樣能對程序進(jìn)行分段處理,無論是簡單工程還是結(jié)構(gòu)化功能都可以采用。手動部分的作用是機械設(shè)備單個動作的控制一般用于測試以及維修方面,自動部分則是整個動作完整的流程編寫,數(shù)據(jù)處理則是對手動、自動用到的數(shù)據(jù)進(jìn)行傳送、選擇、計算等操作,通信部分是用到例如Modbus等通信控制元器件如變頻器、伺服等裝置編寫的通信程序,模擬量/數(shù)字量則是采用模擬量控制元器件進(jìn)行的DA轉(zhuǎn)換程序或者采集模擬量數(shù)據(jù)進(jìn)行的AD轉(zhuǎn)換程序。
一個質(zhì)量較高的PLC程序應(yīng)基本滿足簡單可讀性、穩(wěn)定性、具有易于維護和擴展的功能,對于控制動作流程的盡量采用梯形圖進(jìn)行編程,即使是非編程人員也可清晰看清楚其動作順序,多采用結(jié)構(gòu)化編程,程序做到集中化就是上面說的屬于哪部分就寫在哪部分,盡量不要亂地方補充、亂地方修改,讓人便于查看。PLC運行還需要穩(wěn)定性,就是指的是某些地方的bug,可能在調(diào)試的時候都準(zhǔn)確無誤,在實際中誤設(shè)置了參數(shù)、誤動作,它卻沒有停止、報警或者不能正常工作,以及能夠進(jìn)行一次完成的運行,第二次、第三次就不能順利進(jìn)行了只能重啟再開始運行,這些都屬于程序的穩(wěn)定可靠性,盡量把這些漏洞在調(diào)試試機時候找出來。在一個就是程序的維護性和擴展性,做到注釋準(zhǔn)確、程序結(jié)構(gòu)優(yōu)化,能夠使維修人員迅速找到修改的地方,留有擴展的空間,對某些動作的修改、升級能夠在整體構(gòu)架中完成而不破壞。
在編程前對軟元件的選擇要準(zhǔn)確,哪些是掉電保存的、掉電不保存的、對輸入有區(qū)分,有高速計數(shù)的普通輸入盡量不要占用高速輸入端子、同理高速輸出端子也一樣。對定時器的選擇如0.01ms的、0.1ms、1ms的、累計型的等選擇,計數(shù)器的選擇16位的、32位的、保持用的、高速計數(shù)用的都得分清楚使用,數(shù)據(jù)寄存器的選擇也有16、32位、掉電保持的之分。另外指令的選擇要根據(jù)數(shù)據(jù)的類型選擇是16、32位的,避免到時候數(shù)據(jù)計算出錯。這樣PLC編寫出的程序就能減少bug,質(zhì)量會高一些。
|