基于Modbus协议的冷却系统控制研究
2015-04-07骆清国宁兴兴尹洪涛
骆清国, 宁兴兴, 尹洪涛
(装甲兵工程学院,北京100072)
基于Modbus协议的冷却系统控制研究
骆清国, 宁兴兴, 尹洪涛
(装甲兵工程学院,北京100072)
应用Modbus通信协议,通过传感器、控制器及MC9S12DP512单片机控制单元完成了对高低温双循环的冷却系统中各部件物理参数的采集及执行器的控制,实现了对冷却系统的精确控制.在装甲车辆热管理模拟试验台上的试验结果表明,可以将冷却液出口水温偏差控制在±1℃,在工况发生变化时,能够在短时间内达到新的平衡状态.
Modbus协议;冷却系统;单片机
随着新一代装甲车辆对机动性要求的不断提高,推进系统采用了更大的单位体积功率及更加紧凑的设计,使得推进系统内部形成了热部件多、目标温度范围宽、散热量与热流密度大的特点,再加上装甲车辆工作环境恶劣与动力舱结构紧凑等情况,使得推进系统的冷却问题变得更加突出,散热难度加大.
冷却系统工作性能的优劣,直接影响着动力系统的整体性能[1].传统装甲车辆冷却系统的冷却风扇和冷却水泵均由发动机曲轴驱动,不能实现自主调节转速,难以达到按需冷却的目的,并且能耗大.为了解决与日俱增的冷却难题,研究人员开始从不同的方面对此进行了研究,主要有冷却机制的优化、冷却系统结构的优化、新材料的使用及冷却系统的智能化控制等方案.
文中着重研究采用Modbus协议的冷却系统智能化控制问题.采用MC9S12DP512单片机作为控制单元、Modbus协议作为通信协议,使用电子水泵和电子风扇实现对冷却系统的智能化控制.
1 冷却系统组成及控制原理
1.1 冷却系统组成
研究的冷却系统主要由以下部件组成:高低温双循环冷却回路;电子水泵和电子风扇;控制单元;传感器及信号转换系统.如图1所示.
图1 冷却系统原理图
图1所示方案采用高低温双循环的冷却回路,分别将高温的柴油机和一级中冷器布置在同一冷却回路,由电子水泵、高温散热器、电子风扇、各类传感器等构成高温冷却回路;将低温的电机及其控制器、传动油换热器、二级中冷器、级间中冷器、机油换热器、低温散热器、电子水泵、电子风扇及各类传感器等构成低温冷却回路.该方案的优点是可以根据高低温冷却回路的不同冷却需求来进行冷却,有效降低了对低温部件过渡冷却造成的能源浪费和对高温部件冷却不足带来的损害.所采用的传感器型号及精度如表1所示.
表1 传感器类型及技术参数
MC9S12DP512是一个高度集成的16位微处理器,是Motorola公司HC9S12家族16位嵌入式单片机系列产品,常用于自动化和工业系统,特别适合用在汽车上.片上集成了4kB的片上存储器EEPROM、12 kB的片上存储器RAM和512kB的片上程序存储器FLASH,2个SCI模块、3个SPI模块、1个IIC模块、5个CAN2.0A/B模块、1个8通道ETC模块、2个8通道10位A/D转换模块、1个8通道PWM模块等[2].存储空间充足,足以进行控制程序的开发及存储,无需进行片外程序存储器的扩展,同时各存储单元采取统一编址,支持分页技术,给编程带来极大方便.
温度传感器主要用来检测发动机冷却液温度,冷却风道气温和机油温度,用以提供控制单元所需要的参数,选用铂热电阻温度传感器;压力传感器主要用来测量冷却液管路内压力随温度及冷却强度的变化情况,了解系统压力变化对冷却强度的影响,为进一步提高控制精度打下基础,选用耐高温航空插头型压力传感器;转速传感器主要用来采集水泵、风扇及发动机的转速信号,本文选择反射式光电转速传感器;流量传感器主要用来测量冷却液流量,通过计算获得流量数据,采用基于卡门漩涡理论制造的涡街流量计.
传感器对各物理参数进行采集,经过转换后变为不同的电信号进行传递,例如温度转变为热电阻信号,压力转变为4~20 mA信号,转速转变为脉冲信号等;而单片机进行内部运算处理的只能是数字信号,因此,需要将模拟信号转变为数字信号.同时,单片机向外界发送指令时,其发送的信号也是数字信号,而各类执行器处理的是模拟电信号,又需要将数字信号转变为模拟信号,这就需要有信号转换系统完成模/数和数/模转换,采用采集模块作为信号转换系统.采集模块将不同的信号转换为控制单元、传感器和执行器可识别的信号,采集模块采用Modbus协议,使用RTU模式进行通信.
1.2 冷却系统的控制原理
由于传统装甲车辆冷却系统为被动冷却系统,难以实现自主调节的目的,因此,大多数冷却系统在设计时按照最大冷却能力设计,这往往造成部分负荷工况容易产生过量冷却现象.为此,研究的冷却系统不得不采取按需冷却的思路,将水泵和风扇与发动机转速解耦,实现自主调节冷却强度的目的,根据柴油机进出口冷却液温度来调节冷却液流量(水泵转速)和冷却风量(风扇转速).
由各种传感器(温度、速度等传感器)监测车辆运行状态的变化,同时,把各类传感器信号转变为模拟信号,通过采集模块将模拟信号转换为控制单元可处理的数字信号,并通过RS-485总线将信号送入控制单元中,控制单元根据预定的控制策略,经过程序运算输出控制信号,再经过采集模块将控制命令输送到各执行器(电子水泵和电子风扇),实现对它们的控制,从而实现推进系统冷却液温度的稳定,使其工作在适宜的温度范围内.
1.3 冷却系统的控制策略
当发动机出口水温小于80 ℃(处于预热状态)时,控制单元仅检测各传感器采集的数据,不发出控制命令,即电子风扇和电子水泵均处于关闭状态.关闭电子水泵有利于减少冷却液散热损失以加快暖机速度,并节约水泵能耗.
当发动机出水口水温大于80 ℃时,控制单元根据预定的控制策略,认定暖机状态结束,启动电子水泵(此时电子风扇不启动),并让其以最低转速运转,维持冷却系统内冷却液的流动,避免局部过热.
当发动机出水口水温大于90 ℃时,控制单元认定进入行驶状态,其控制策略为启动电子风扇,电子风扇采用MAP前馈控制,电子水泵采用基于模糊算法的反馈控制.
发动机停机后,由于自身热容及热惯性的存在,仍有一定的散热需求[3].为避免由于冷却系统停止工作,造成的局部过热问题,当发动机停机时,控制单元认定进入后冷却状态.此时为达到冷却效果,同时节约能耗,采取的控制策略为电子风扇停止转动,仅电子水泵以最低转速运行2分钟,达到冷却效果.
2 Modbus协议
Modbus协议是由Modicon公司最先研制开发的,被施耐德电气公司最先倡导使用的一种通信协议,经过工业公司的实际应用,目前已成为工业控制领域一种流行的、标准的通信协议[4].该协议支持传统的通信设备,例如RS-232、RS-485和以太网设备.
2.1 主从通讯模式
Modbus协议在串行链路层通信时,采用的是主从式通信模式,即在同一时间,总线上只有一个主站和若干个(最多247个)从站,文中主站就是控制单元,从站就是各传感器和执行器.Modbus通信通常由主站发送请求,从站接收到主站请求后进行通信应答,从站未接收到主站的请求时,不会发送应答数据,各从站之间不能相互通信.文中采用主从式通信模式主要是因为该模式可以保证控制线路只有在主站需要通信时由主站启动特定的通信,避免各从站相互通信占用信道,而且各从站也没有相互通信的必要.
主站可以采用两种方式向从站发起请求:一种是单播模式,即主站寻址单个从站并发送Modbus请求,对应从站响应主站的请求,处理主站请求完毕后向主站返回一个应答报文;另一种是广播模式,即主站向所有从站发出请求,而从站无需对主站发送的广播请求进行应答返回,但只有写命令才可以用于广播请求.
2.2 Modbus帧
Modbus协议通过在协议数据单元(PDU)上增加一些附加字段完成Modbus协议到总线或网络的映射,启动Modbus事务处理的从站构造Modbus PDU,然后添加附加字段,以便构造相应的通信PDU,如图2所示.
图2 串行链路上的Modbus帧
地址字段指明寻址的从站地址;功能码字段为服务器要响应的操作类型;数据字段是请求或响应的内容参数;CRC(或LRC)字段是根据报文内容执行“冗余校验”计算的结果,用来校验报文是否在传输过程中出现差错.
Modbus有两种通信模式;一种是RTU模式;另一种是ASCII模式.文中侧重介绍RTU模式.当设备使用RTU(Remote Terminal Unit)模式在Modbus串行链路上通信时,报文中将每个8位的字节分为两个4位的十六进制字符.该模式保持了较高的字符密度,提高了数据吞吐量,为保持报文帧的完整,两个字符之间的空闲间隔不应大于1.5个字符时间,大于1.5个字符时间时,接收站将认为报文帧不完整,并丢弃该报文帧.RTU模式中以至少3.5个字符时间的空闲间隔作为区分不同报文帧的标志.RTU报文帧格式如表2所示.
表2 RTU报文帧
2.3 CRC校验
循环冗余校验(CRC)字段分为两个字节,是一个二进制的16位值.接收报文过程中,接收设备计算CRC值,并将其与发送设备附加在报文CRC字段中的实际值相互比较,如果这两个值不等,则说明报文传送错误,丢弃该报文并回复主站错误情况,由主站确定是否重新发送数据.
通过预装载一个全1的16位寄存器来启动CRC计算,每个8位字符与寄存器中的值进行异或运算,然后向最低有效位方向移动这个结果,用零填充最高有效位.判断最低有效位是否为1,为1则寄存器中的值与固定的预置值异或;为0则不进行异或运算.重复该过程直到执行完8次移位,完成第8次移位后,下一个8位字节与寄存器的当前值异或,然后重复上述过程8次.当计算完报文中所有字节后,寄存器中的值就是该报文的CRC值.文中编写了基于计算法(另外还有查表法)获取CRC校验码的程序,具体程序如下:
unsigned short CRC(unsigned char *pMsg,unsigned short N)
{
unsigned short CRC=0xffff; //预装CRC寄存器
unsigned short mul=0xA001; //设置固定的预置值
unsigned short txt=0x0000; //保存相关数据的中间变量
int i=0;
while(N--)
{
CRC=CRC^*pMsg++; //数据与CRC寄存器进行异或运算
for(i=0;i<8;i++)
{
txt=CRC; //将CRC值保存在txt中用于后续计算
txt=txt<<15; //获得CRC寄存器最后一位
if(txt==0x8000)
{//判断CRC寄存器最后一位是否为1,如果为1则右移一位,并与多项式进行异或
CRC=CRC>>1;
CRC=CRC^mul;
}
else //如果CRC寄存器最后一位不为1,则只将CRC寄存器右移一位,不进行异或运算
CRC=CRC>>1;
}
}
txt=CRC; //保存CRC寄存器值,用于下一步运算
return CRC<<8|txt>>8; //得到CRC校验码
}
3 基于Modbus协议的控制试验
3.1 RTU模式下的Modbus数据帧
Modbus功能码是Modbus请求/应答PDU的元素,功能码向服务器指示将执行哪种操作[5].文中用到4个功能码,03、04、06和10(均为十六进制数),功能码03指示服务器读取保持寄存器值;功能码04指示服务器读取输入寄存器值;功能码06指示服务器写单个寄存器;功能码10指示服务器写多个寄存器.
获取柴油机出口冷却液温度的RTU报文帧为01 04 01 06 00 01 20 19.其中,01为采集模块地址,04为Modbus功能码,01 06分别为要读取参数的起始地址高4位和低4位值,00 01分别表示要读取的输入寄存器数量的高4位和低4位值,20 19分别表示数据部分的CRC校验值的低4位和高4位值.
获取柴油机入口冷却液温度的RTU报文帧为01 04 01 04 00 01 81 D9,报文帧涵义可类比上例.获取高温散热器出入口冷却液温度的RTU报文帧分别为:02 04 01 06 00 01 20 19和02 04 01 04 00 01 81 D9.
设置冷却风扇转速为3 000 r/min的RTU报文帧为03 06 01 60 0B B5 C1 41.设置高低温循环水泵转速分别为1 200 r/min和700 r/min的RTU报文帧分别为03 06 01 64 06 9E C2 0F和03 06 01 66 03 DC E0 AE.
3.2 热管理模拟试验台试验
该控制系统在实车测试前需要先在热管理模拟试验台上进行测试,文中所使用的热管理模拟试验台如图3所示.图中用锅炉的加热量模拟装甲车辆推进系统的整体散热量,用3个并联的换热器模拟推进系统的不同热源,用球阀与换热器的串联阻力模拟不同管路的阻力.换热器1和换热器2分别用来模拟发动机本体和一级中冷器,位于高温回路;换热器3用来模拟电机及其控制器、传动油换热器、二级中冷器、级间中冷器、机油换热器等,位于低温循环回路.经过锅炉加热的导热油流经换热器同流经换热器的冷却液进行热量交换,通过电控阀控制各换热器的换热量,达到模拟推进系统换热过程的效果.
图3 热管理模拟试验台原理图
在热管理模拟试验台上,对基于Modbus协议的冷却系统控制问题进行实车试验前的验证,结果表明:在锅炉出口导热油120 ℃的情况下,分别设置高温循环回路水泵转速为1 800 r/min,低温循环回路水泵转速为800 r/min,在风扇转速3 000 r/min时稳定,此时柴油机冷却液出口水温在100 ℃左右,换热量在25.5 kW左右;当风扇转速由3 000 r/min提高到3 500 r/min时,其余条件不变,柴油机冷却液出口水温在约40秒后开始下降,约140秒后降至98.6 ℃左右,并在98.6 ℃上下浮动,对温度的控制精度在1 ℃以内;换热量在30秒后开始提高,在30秒内开始趋于稳定,在28 kW上下浮动,对换热量的控制精度在1 kW以内,如图4和图5所示.
图4 发动机出口冷却液温度与风扇转速图
图5 换热量与风扇转速图
4 结 论
在经过热管理模拟试验台验证的基于Modbus协议的冷却系统控制结果表明,采用Modbus协议能够将模拟柴油机本体的换热器冷却液出口水温控制在±1℃,在工况发生变化时能够在短时间内达到新的平衡状态,满足了系统要求,控制效果较好,可以进行下一步的实车试验.
[1] 成晓北,潘 立,鞠红玲.现代车用发动机冷却系统研究进展[J].车用发动机,2008(1):1-6.
[2] 胡建红.基于MC9S12DP512与CAN总线的电池管理系统研究与设计[D].上海:上海交通大学,2008.
[3] 韩 松.车用发动机智能冷却系统基础问题研究[D].杭州:浙江大学,2012.
[4] 冯向科,邓 莹.基于MODBUS RTU通信协议下的CRC算法实现[J].电脑知识与技术,2006(8):43,59.
[5] GB/T19582.1-2008.基于Modbus协议的工业自动化网络规范第1部分:Modbus应用协议[S].北京:中国标准出版社,2008:1-47.
Control of Cooling System based on Modbus Protocol
LUO Qing-guo, NING Xing-xing, YIN Hong-tao
(Academy of Armored Forces Engineering, Beijing 100072, China)
With the help of sensors, controllers, and a MC9S12DP512 microprocessor controlled unit (MCU), both the parameter collection of a high and low temperature dual circulation cooling system and the control of the actuators are accomplished according to Modbus protocol, realizing an accurate control of the system. The testing results from a thermal management simulation bench show that the deviation of the coolant outlet temperature can be controlled within ±1℃,and that the new equilibrium state can be achieved in a short time when the operating conditions change.
modbus protocol; cooling system; microprocessor controlled unit
1009-4687(2015)04-0002-05
2015-9-24
“二十五”装备预先研究项目(40402010103)
骆清国(1965-),男,教授,研究方向为军用车辆发动机.
464.138
A