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