艾默生ec20系列plc在空壓機(jī)聯(lián)控中的應(yīng)用
三 控制程序
空壓機(jī)聯(lián)控系統(tǒng)主要是plc與單片機(jī)交換數(shù)據(jù)并確定每臺(tái)空壓機(jī)的運(yùn)行方式。
程序的編寫主體上分兩大部分:讀數(shù)據(jù)部分和寫數(shù)據(jù)部分,流程圖如下,
(一)讀取單片機(jī)的信息
根據(jù)空壓機(jī)控制器內(nèi)單片機(jī)的相關(guān)modbus通訊協(xié)議,編寫通訊“讀信息指令”的數(shù)據(jù)幀,以plc中的modbus通訊指令發(fā)給控制器內(nèi)的單片機(jī),單片機(jī)響應(yīng)后返回相應(yīng)的數(shù)據(jù)幀。通過返回幀的相應(yīng)字符串判斷與控制器相連的空壓機(jī)的各種故障狀態(tài)工作狀態(tài)以及空壓機(jī)的各種壓力溫度數(shù)據(jù),并將返回的各類數(shù)據(jù)存放在相應(yīng)的數(shù)據(jù)寄存器。
在該子程序的開始部分,執(zhí)行站地址加1的操作,即每進(jìn)入讀數(shù)據(jù)子程序就會(huì)讀取上次讀過的程序的下一臺(tái);靠站地址的不斷變化我們實(shí)現(xiàn)了讀取數(shù)據(jù)通訊的輪詢操作。
modbus指令只需要一次上升沿作為發(fā)送使能,第一周期sm124沒有開合的狀態(tài)變化即沒有上升沿,所以第一周期過后靠sm1的常閉上升沿作為modbus指令的發(fā)送使能。每次發(fā)送的同時(shí)靠發(fā)送使能的上升沿把sm135、sm136清位。sm135、sm136與通訊程序沒有任何直接關(guān)系,只是貫穿程序所必須的標(biāo)志位。
(二)向單片機(jī)中寫入相關(guān)信息
整個(gè)寫信息部分分下面三塊:
a.邏輯判斷運(yùn)算部分
供氣壓力是系統(tǒng)各種運(yùn)行狀態(tài)改變與保持的唯一指標(biāo)。壓力小于供氣壓力要求下限就要更多的供氣機(jī)組運(yùn)行以增加供氣量,壓力大于供氣壓力要求上限就要把當(dāng)前運(yùn)行供氣機(jī)組減少以減少供氣量。而處于上下限之間的壓力值時(shí)就保持當(dāng)前機(jī)組的運(yùn)行狀態(tài)不變。
按照工藝控制邏輯來構(gòu)成邏輯判斷運(yùn)算部分,并且機(jī)組按照先開后停的原則順序啟動(dòng)(1、2、3←→3、2、1)。
為保證數(shù)據(jù)的正確性,需要判斷讀信息子程序的站地址與寫信息程序?qū)?zhí)行控制操作的站地址是否一致,然后需要判斷相應(yīng)的故障信息寄存器是否為0,為0證明無故障或輕故障,不為0則不向該站發(fā)任何控制指令并馬上對(duì)下一臺(tái)操作。
由于我們對(duì)故障進(jìn)行了分類,所以可以根據(jù)不同類別的故障進(jìn)行不同的控制操作:
1類故障不讀不寫(相應(yīng)的故障信息寄存器為1)
2類故障只讀不寫(相應(yīng)的故障信息寄存器為2)
沒有故障紀(jì)錄(相應(yīng)的故障信息寄存器默認(rèn)值為0)
對(duì)故障分類的控制策略是很有價(jià)值的,在以后的控制過程根據(jù)故障類別或者可以作為運(yùn)行態(tài)的類別,進(jìn)行有所區(qū)分的控制。不管是通訊控制方式還是數(shù)字i/o控制方式,相信都可以在某種程度上采用這類簡便有效的方法。