杨浩宇 朱永智
河南森源重工有限公司 河南省长葛市 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.系统可塑性、稳定性增加。