如何編寫(xiě)一個(gè)高質(zhì)量的plc程序,首先要?jiǎng)?chuàng)建自己的編程框架或者程序分段,把整個(gè)程序分成幾個(gè)部分。比如我給一個(gè)設(shè)備寫(xiě)PLC程序的時(shí)候,我會(huì)把它分為五個(gè)部分:手動(dòng)部分、自動(dòng)部分、數(shù)據(jù)處理部分、通信部分和模/數(shù)轉(zhuǎn)換。我嘗試用結(jié)構(gòu)化編程的方法進(jìn)行編程,這樣程序可以分段,簡(jiǎn)單的工程和結(jié)構(gòu)化的功能都可以使用。
手動(dòng)部分的作用是機(jī)械設(shè)備單個(gè)動(dòng)作的控制一般用于測(cè)試和維護(hù),而自動(dòng)部分是編譯整個(gè)動(dòng)作的完整過(guò)程;數(shù)據(jù)處理是對(duì)人工和自動(dòng)使用的數(shù)據(jù)進(jìn)行傳輸、選擇和計(jì)算;通信部分是使用Modbus等通信控制組件編寫(xiě)的通信程序,如變頻器、伺服等設(shè)備;并且模擬/數(shù)字量是使用模擬控制組件的數(shù)模轉(zhuǎn)換程序或收集模擬數(shù)據(jù)的模數(shù)轉(zhuǎn)換程序。
一個(gè)高質(zhì)量的PLC程序應(yīng)該基本滿(mǎn)足簡(jiǎn)單易讀、穩(wěn)定易維護(hù)易擴(kuò)展的要求。為了控制動(dòng)作流程,應(yīng)盡量使用梯形圖編程。即使是非程序員也能清楚地看到動(dòng)作順序,大多采用結(jié)構(gòu)化編程。集中編程就是寫(xiě)哪個(gè)部分屬于上面提到的部分。盡量不要亂加亂改,讓人很容易查出來(lái)。實(shí)在不明白的朋友可以去看一套plc視頻教程,PLC的運(yùn)行也需要穩(wěn)定性,即調(diào)試時(shí)某些地方的bug可能會(huì)比較準(zhǔn)確。
在實(shí)踐中,參數(shù)和誤操作設(shè)置錯(cuò)誤,但沒(méi)有停止、報(bào)警或正常工作,能夠運(yùn)行一次。第二次和第三次不能成功進(jìn)行,只能在運(yùn)行前重啟。這些都屬于程序的穩(wěn)定性和可靠性。調(diào)試機(jī)器時(shí)盡量找出這些漏洞。第一個(gè)是程序的可維護(hù)性和可擴(kuò)展性,可以使標(biāo)注準(zhǔn)確,優(yōu)化程序結(jié)構(gòu),使維護(hù)人員能夠快速找到修改的地方,留有擴(kuò)展的余地,在整體框架中對(duì)一些動(dòng)作進(jìn)行修改和升級(jí)而不被破壞。
編程前,軟元件的選擇要準(zhǔn)確,斷電后保存,斷電后不保存,與輸入?yún)^(qū)分。高速計(jì)數(shù)的普通輸入應(yīng)盡量不占用高速輸入端子,高速輸出端子也是如此。定時(shí)器的選擇,如0.01毫秒、0.1毫秒、1毫秒、累計(jì)類(lèi)型等。,可以明確使用16位計(jì)數(shù)器、32位計(jì)數(shù)器、保持計(jì)數(shù)器和高速計(jì)數(shù)計(jì)數(shù)器的選擇,數(shù)據(jù)寄存器的選擇也可以分為16位寄存器、32位計(jì)數(shù)器和掉電保持計(jì)數(shù)器。
此外,指令的選擇應(yīng)根據(jù)數(shù)據(jù)類(lèi)型分為16位和32位,以免數(shù)據(jù)計(jì)算出錯(cuò)。這樣,PLC編寫(xiě)的程序可以減少bug,質(zhì)量會(huì)更高。
審核編輯:符乾江
評(píng)論