楊浩宇 朱永智
河南森源重工有限公司 河南省長葛市 461500
隨著交通運輸車輛尾氣、工業廢氣和城市民用生活爐灶及取暖鍋爐廢氣的排放加劇,空氣污染造成的環境問題日益凸顯。霧霾和沙塵現象也越來越成為政府及民眾關注的焦點。能夠通過噴灑抑塵固化劑等噴灑液實現抑制揚塵污染的特種車輛——抑塵車也應運而生。全部依靠液壓系統驅動的抑塵車,區別于傳統的發電機組驅動抑塵車,具有安全可靠、維護簡單等優點,成為抑塵車發展的趨勢。
本文討論的抑塵車,大致結構如圖1,由專用車底盤4、發動機全功率取力器5、主泵6、風機液壓馬達7、藥泵液壓馬達10、罐體8、噴霧裝置9、顯示器1、操作盒2、遙控系統3等組成。
考慮到整車的作業需求,噴霧量并非一成不變。在抑塵操作時,最大功率輸出,效果最好;但在進行樹木花草等植物的清洗、施藥操作時,則不可全功率輸出,避免對樹木花草造成不必要的傷害。此外,整車配有遙控系統,滿足特殊條件下的主要作業需求。

圖1
根據具體的整車作業工藝需求,可以整理出如下控制要求:
①整車作業工況并不復雜,只在幾種特定情況下作業,要求噴霧量能夠調整,最好是預設好幾個檔位,以便操作簡潔可靠。
②要求在駕駛室內操作盒上可進行噴霧量的調整,而遙控上可不作強制要求;
③需要滿足操作盒操作和遙控器操作時的獨立性,一個損壞另一個不受影響。
而針對噴霧量調整的具體的可行方案進行如下分析:
方案一:調節發動機功率
采用操作盒上加裝電位計的方式,將電壓信號接入控制器,控制器通過處理,發送CAN總線數據對底盤發動機進行功率調節,全功率取力器輸出軸的功率也會相應變化,達到調整霧炮噴霧量的目的。
方案二:調節比例閥開度
采用操作盒上加裝電位計的方式,將電壓信號接入控制器,控制器通過處理,調節控制霧炮噴霧量的比例閥電流值,從而調整閥組的開度,通過調整液壓系統的流量來達到調整噴霧量的目的。
方案三:調節噴圈開啟數量
將噴霧作業的兩組噴圈單獨控制,當全功率輸出時兩組噴圈同時工作,需要調節噴霧量時,相應的單獨打開內圈或者外圈噴圈,可以實現,三檔位切換。
方案一,調節底盤發動機的轉速、輸出功率就噴霧作業來說是可行的,但發動機轉速對底盤的正常行駛有很大的影響。僅僅為了滿足作業需求而降低車輛的駕駛體驗甚至有安全隱患的做法顯然不可取。
方案三,通過獨立控制的噴圈實現噴霧量切換,雖然簡單有效,但是液壓系統壓力變化小,整體上效率偏低。
經過多方對比,選擇方案二。
將方案二略作調整,選擇一款按鍵、顯示、旋鈕集成的CAN總線顯示操作盒,通過操作旋鈕,發送CAN總線數據,控制器讀取該數據,調整輸出至比例閥的電流值。相比傳統方案,該方案具有特種作業過程更加安全,整車線束更加整潔,控制系統更加穩定,顯示內容更加豐富,人機交互更加便捷和故障排查更加容易的特點。
Can總線顯示器上的旋鈕為相對位置旋鈕,有一格格的旋動操作,但無初始位置和結束位置。相應的,每順時針旋轉一格,會激活系統定義的Encoder_Up按鍵一次,逆時針則激活Encoder_Down按鍵。
出于更加人性化的設計思路,我們定義順時針旋轉為加,逆時針減,噴霧量8檔可調節。在CoDeSys3.5編程環境下易得:
PROGRAM Wind_Speed
VAR_GLOBAL (*定義全局變量*)
WindSpeed:int = 8;(*噴霧檔位初始值8*)
Wind_SpeedByte:byte;(*定義字節型變量,用于CAN總線傳輸*)
END_VAR
(*當順時針旋轉且噴霧量小于等于7檔時,每操作一次,檔位加一*)
IF Encoder_Up AND WindSpeed ≤ 7 THEN
WindSpeed :=WindSpeed + 1;END_IF
(*當逆時針旋轉且噴霧量大于等于2檔時,每操作一次,檔位減一*)
IF Encoder_Down AND WindSpeed ≥ 2 THEN
WindSpeed:=WindSpeed - 1;END_IF
(*數據進行格式轉換*)
Wind_SpeedByte:= INT_TO_BYTE(Wind_Speed);
CAN總線顯示器和控制器均支持CANOPEN協議,標準幀報文格式。
對顯示器地址進行如下分配:

名稱 NodeID 波特率顯示器 120 250bit/s
顯示器PDO配置:

PDO COBID BYTE(0~7) 數據 說明TPDO 16#180+NodeID 0Byte Wind_SpeedByte發送檔位給定值RPDO 16#200+NodeID 0~1Byte WindM_PWM_hmi接收反饋電流值
經過程序的編寫,顯示器顯示接收到的噴霧反饋電流值,這里不再贅述。
對控制器地址進行如下分配:

名稱 NodeID 波特率控制器 127 250bit/s
控制器采用CANCHANNEL1發送啟動指令并接收顯示器數據。
控制器在CoDeSys2.3編程環境下,使用系統功能塊CAN1_RECEIVE和CAN1_TRANSMIT易得:
PROGRAM CAN1_RECEIVE
VAR
init_1: BOOL:=TRUE;
CAN1_RV0: CAN1_RECEIVE;
CAN1_RV1 : CAN1_RECEIVE;
Can_Tx0 : CAN1_TRANSMIT;
HMI_Data_Rv1 : ARRAY [1..8] OF BYTE;
EN_CANOPEN: ARRAY [1..8] OF BYTE;
END_VAR
EN_CANOPEN[1] := 16#01;
EN_CANOPEN[2] := 16#00;
CAN1_RV0( CONFIG :=INIT_1, ( *prepare it once at initialisation *)
CLEAR:=FALSE,(*clear the buffer*)
ID:=16#778,(*CAN identifier*));
IF CAN1_RV0.AVAILABLE >0 AND CAN1_RV0.DATA[0]=0 THEN
Can_Tx0(ID:=16#0,(* CAN identifer *)
DLC:=2,(* Data length code *)
DATA:=EN_CANOPEN,
ENABLE:=TRUE);
END_IF
CAN1_RV1( CONFIG:=INIT_1, ( *prepare it once at initialisation *)
CLEAR:= FALSE,(* clear the buffer *)
ID :=16#1F8,(* CAN identifier *)
DATA=>HMI_Data_Rv1,(*message data *));
通過以上程序,可將Wind_SpeedByte 的數據存入HMI_Data_Rv1 [1]中。

圖2
EP-電氣比例控制
泵的輸出流量是在0至100%之間的無級變量,與為電磁鐵a或了供應的電流成比例。
電能轉換成作用在控制閥芯上的力。此控制閥芯隨后將控制液壓油導入和導出行程氣缸,以根據需要調節泵排量。連接至行程活塞的反饋手柄可將何何給定的電流的泵流量保持在控制范圍之內。

技術數據,電磁鐵 EP3 EP4電壓 12V(±20%)24V(±20%)控制起點為Vgo 400mA 200mA控制終止值(排量為Vgmax時) 1200mA 600mA限制電流 1.54A 0.77A公稱電阻(20℃時) 5.5Ω 22.7Ω抖頻 100Hz 100Hz啟動時間 100% 100%
比例閥參數如圖2:

啟動電磁鐵控制壓力流動方向工作壓力b X2 B至A MA a X1 A至B MB旋轉方向 逆時針順時針b X2 A至B MB a X1 B至A MA

根據整車電氣參數和液壓系統的設計要求,采用24VDC電壓控制,啟用控制電磁鐵b,控制壓力X2,流動方向B至A,開啟電流200mA,終止電流600mA。
結合設定的8個噴霧量檔位,經液壓系統設計人員計算,得出對應電流值,見表。

檔位 電流值1檔 240mA 2擋 290mA 3檔 340mA 4檔 390mA 5檔 440mA 6檔 490mA 7檔 530mA 8檔 580mA
當操作遙控器或顯示操作盒上開啟噴霧作業相關開關時,將讀取到的噴霧量檔位換算成電流值輸出至比例閥,并將此時的電流值循環發送給顯示器。當CAN通信顯示器異常,無法進行檔位發送時,默認為最大電流值。此時,遙控器可單獨使用。
控制器在CoDeSys2.3編程環境下,易得:
PROGRAM PWM_OUT
VAR
WindM_PWM: WORD;
Wind_Level: WORD := 8;
Can_Tx0 : CAN1_TRANSMIT ;
TON1 : ton;
ptr : POINTER TO BYTE;
ptr2 : POINTER TO BYTE;
WindM_PWM_hmi : ARRAY [1..8]OF BYTE;
END_VAR
Wind_Level := BYTE_TO_WORD(HMI_Data_Rv1 [1]) ;
IF Main_Program.bool_Q00_WindM THEN(*如果有噴霧開啟信號*)
IF CAN1_RECEIVE.CAN1_RV1.DATA[2]<>0 THEN (*如果有顯示器發送數據*)
WindM_PWM := (wind_level *50+ 190) * 22.7 / 27.8 ;
(*換算相應電流對應的千分之占空比*)ptr:=ADR(WindM_PWM);WindM_PWM_hmi[1] := ptr^;ptr2 = ptr + 1;
WindM_PWM_hmi [2] := WORD_TO_BYTE( ptr2^)
(*得到向顯示器發送相應電流值的高低字節*);
ELSIF CAN1_RECEIVE.CAN1_RV1.AVAILABLE =0 AND
CAN1_RECEIVE.CAN1_RV1.DATA[1]=0 THEN (*如果顯示器通訊異常*)
WindM_PWM := 580;(*默認噴霧量最大*)
END_IF ELSE
WindM_PWM := 0;WindM_PWM_hmi[1]:=0;WindM_PWM_hmi[2]:=0;END_IF
TON1(In:=NOT TON1.Q,pt:=T#100ms);(*定時100ms循環發送*)
IF TON1.Q THEN
Can_Tx0(ID:=16#278,(*CAN identifer *)
DLC:=8,(*Data length code *)
DATA:=WindM_PWM_hmi,
ENABLE:=TRUE;
END_IF
根據經驗判斷和初步的實驗數據,可知比例閥電流值逐步的增減,可減少液壓系統收到的沖擊,設定值由0~580mA,需要15000~20000mS,580~0mA,時間可縮短。
該工藝可通過功能塊RAMP_INT實現。
RAMP_INT輸入變量由三個INT值的OUT變量組成:IN,功能輸入以及ASCEND和DESCEND,每個間隔之間的最大增或減量,它又是被TIME類型中的TIMEBASE來定義的。將RESET設為TRUE會導致RAMP_INT被重新初始化。INT類型中的OUT輸出變量中含有上升和下降的有限功能值。把TIMEBASE設 為t#0s,ASCEND和DESCEND雖與時間間隔無關,但是卻能保持不變。
將PWM電流值輸出至比例閥時,可借用功能塊:PWM1000
FUNCTION_BLOCK PWM1000
VAR_INPUT
INIT : BOOL;
(* To initialize it, or when frequencies ar changed *)
FREQUENCY : WORD;
(* PWM frequency in Hz *)
CHANNEL : BYTE;
(* 0 .. 11 *)
VALUE : WORD;
(* Duty cycle per thousand *)
CHANGE : BOOL;
(* To change the duty cycle or dither value *)
DITHER_VALUE : WORD; (*Dither value per thousand *)
DITHER_FREQUENCY:WORD; (*Dither frequency in Hz *)
END_VAR
VAR_OUTPUT
END_VAR
匯總以上信息,設置RAMP_INT時間基準150ms,爬升最小單位5mA,斜落最小單位15mA,設置PWM1000輸出頻率100HZ,通道CHANNEL0,易得:
PROGRAM out1
VAR
PWM1: PWM1000;
RAMP_INT1: RAMP_INT;
init_1: BOOL:=TRUE;
END_VAR

雖然CAN的抗干擾性能很強,但仍需注意:
盡量采用屏蔽雙絞線,整個網絡距離最遠的兩端120Ω電阻不可少;
避免和強電磁波源并行或交叉,保證CAN負載率不能過大。
通過實際測試,該設計方案可滿足工藝需求。
經實踐論證,該應用于全液壓抑塵車的調速方式,有以下優勢:
A.不需要調節發動機轉速,對底盤正常行駛影響小;
B.CAN總線顯示操作盒與遙控器獨立使用,即使總線操作盒損壞也不會影響使用遙控器正常作業;
C.增加輸出斜坡,減少了因電流驟增驟降造成的液壓沖擊;
D.可直接通過顯示操作盒指示電流值,故障排查起來更加容易;
E.系統可塑性、穩定性增加。