关键词:工业触摸屏;功能码;人机交互界面;MODBUS通讯协议
1 引言
随着国内城市化进程的不断推进以及人民生活水平的不断提高,使得人们对生活环境的要求也越来越高了,这就加剧了城市的环卫工作量[1]。对于路面街道有大型的环卫作业车;对于机场、大型商场和医院等公共场所,小型环卫车以低噪声和高灵活性的优越性得以在这些场合广范使用,但是这些小型环卫车的作业操作都是简单的电气连接来控制扫地和喷洒作业,不具有良好的人-机交互模式。本设计基于工业触摸屏和单片机将所有的作业操作按钮和检测数据显示在触摸屏上,通过触摸屏控制环卫车的扫地和喷洒作业。这样一套具有良好的人机的交互功能的系统,不仅能够提高人员的操作效率,也使得产品更能够被用户接受。
2 小型环卫车控制系统功能框架图
如图1所示,小型环卫车良好交互系主要包括电池温度测量电路、电池电压测量电路、洒水水泵和扫地电机的驱动电路。电池电压测量是通过A/D采集电路将电池的电压采集后交由微控制器通过触摸屏显示出来;电池温度测量是通过温度传感器将测量到的电池温度数值通过MODBUS通讯传输到触摸屏上显示,并且在触摸屏上设置温度报警阈值,温度超过设置的阈值就会进行报警。扫地电机和洒水水泵的控制是触摸屏通过MODBUS协议对单片机进行位操作,再由驱动电路根据单片机的控制指令分别实现对扫地电机和洒水水泵的导通与断开控制。
图1 小型环卫车控制系统功能框架图
3 系统的硬件电路设计
3.1 扫地电机和洒水水泵的驱动电路设计
扫地电机和洒水水泵的驱动芯片选择ULN2003,因为扫地电机和洒水水泵的额定电压为12V电流为5A,所以选择额定电压为12V额定电流为10A的两个继电器作为扫地电机和洒水水泵的开关。继电器的驱动使用继电器常用的驱动芯片ULN2003。ULN2003是高耐压、大电流达林顿陈列,由七个硅NPN达林顿管组成。工作电压高,工作电流大,灌电流可达500mA。扫地电机和洒水水泵的驱动电路如图2所示。
图2 扫地电机和洒水水泵的驱动电路
3.2 电压测量电路设计
环卫电动车蓄电池电量会随着车辆的运行而减少,电池电压采样电路主要是检测动力电池的实时电压,当电池电压过低时系统会做出报警提示,电量不足及时充电。该电路采用较为简单的分压取样电路,由于STC90C516RD+单片机内部没有A/D转化功能[2];采用PCF8591T A/D转换芯片来采集电池电压。取样电压不得高于模拟转换通道允许的输入电压5V,为防止采集电压过高,A/D转换芯片PCF8591T的AIN0端口前接1个二极管,二极管的反向端接Vcc(5V),具体电路如图3所示。
图3 电压测量电路
3.3 电池温度测量电路设计
蓄电池温度的检测是电池管理必要环节,因为电池在过度充电或放电时会发出大量的热能,如果不管理任电池温度升高,会引起电池爆炸。另外电路发生短路等状况时,蓄电池温度急剧升高引起爆炸。为此,将电池温度数值传递给上位机触摸屏,并在触摸屏上设置温度报警阀,当温度高于所设定阀值时触摸屏报警温度过高,提醒操作人员注意检查电池状况。
如图4所示为电池温度检测电路,选用DS18B20温度传感器,无需外围元器件测量温度在-55℃到+125℃,精度可达±0.5℃。温度传感器DS18B20的DQ端口通过5.1kΩ的电阻上拉到电源VCC,并与系统单片机的P23口连接。
图4 电池温度检查电路
4 系统软件设计
小型环卫车的良好交互系统软件设计分为两个部分。第一部分是下位机的嵌入式程序设计;第二部分是上位机触摸屏的界面设计。上位机触摸屏和下位机的从属关系是,触摸屏为主站,下位机是从站;二者之间通过MODBUS通讯协议进行数据的传输与控制[3]。触摸屏按照MODBUS的协议格式向下位机发送读取变量或者位操作的命令,下位机收到发送的数据后将要读取的数据再按照MODBUS的协议格式返回给触摸屏显示;如果下位机接收到的是位操作的命令则按照MODBUS的协议格式进行解码完成对下位机的位操作。
4.1 下位机软件设计
图5 下位机软件设计流程图
下位机的软件设计流程图如图5所示,首先进行串口通讯的初始化和A/D初始化,串口通信初始化是为了与上位机进行通讯[4]。在串口初始化时将波特率设置为9600bps,数据位为8位,停止位设置为1位。然后,对电压电路进行A/D值采集和电池温度的测量。通过RS-232标准串口接收上位机发来的数据,数据的格式是按照MODBUS的通讯协议来发送,接收完数据后进入串口中断将接收的数据放入数组中;然后根据MODBUS的协议来解析接收到的数组,解析过程是:先判断功能码是05功能码还是03功能码,05功能码是执行位操作强制对应位的通断状态。上位机按[设备地址] [命令号05] [需下置的寄存器地址高8位] [低8位] [下置的数据高8位] [低8位] [CRC校验的低8位] [CRC校验的高8位]格式向下位机发送命令,下位机收到数据后判断为05功能码,调用下位机中的05功能码处理程序处理,即按照命令对对应的开关进行操作,其中,需下置的寄存器地址高8位,低8位:表明了需要下置的开关的地址。下置的数据高8位,低8位:表明需要下置的开关量的状态。此处只可以是[FF][00]表示闭合[00][00]表示断开,其他数值非法。并且此命令一条只能下置一个开关量的状态。成功后把上位机发送的命令原样返回,否则不响应。以打开扫地电机为例,下位机接收到上位机传来的数据后,首先判定功能码为05,调用05功能码处理程序。进行数据校验,校验正确后根据收到的数据判断是要进行打开电机还是要关闭电机操作,即将单片机P0^0端口置1或者置0实现电机的打开与关闭,操作完后将命令原样返回给上位机。03功能码是值主站向从站读取多个寄存器数。上位机按[设备地址] [命令号03] [起始寄存器地址高8位] [低8位] [读取的寄存器数高8位] [低8位] [CRC校验的低8位] [CRC校验的高8位]格式向下位机发送读取寄存器的命令,下位机收到数据后解析为03功能码,调用03功能码处理程序处理,处理后下位机按照[设备地址] [命令号03] [返回的字节个数][数据1][数据2]...[数据n][CRC校验的低8位] [CRC校验的高8位]格式返回数据[5]。
串口初始化程序:
4.2 上位机界面设计
上位机触摸屏使用威纶通MT6070IH5触摸屏,其对应UI界面设计的开发平台是使用WEINVIEW HMI组态软件EasyBuilder8000。在进行上位机开发之前,要先对触摸屏的系统进行设置。触摸屏的站号设置为0,下位机的站号设置为1,这里设置的站号就是后面MODBUS通讯协议中的设备地址;下位机的设备类型选择MODBUS RTU;接口类型选择COM1波特率设置为9600bps,数据位设置为8位,停止位为1;通讯接口类型RS-232。
图6 显示元件属性设置
触摸屏上设置了扫地和喷洒两个按钮,开关类型设置为切换开关,并且将按钮的图片状态设置为两层状态,平时是一种颜色按下去后是一种颜色。电池电压显示元件的属性设置中的读取地址设置为6x1,其中6x表示威纶通触摸屏上的元件的地址类型,表示该元件类型是可读可写的类型,6x1中的1表示的是地址位,范围是1-65535对应着十六进制的0x01-0xFFFF。同样,电池温度的读取地址设置为6x2;并且对电池电压和电池温度设定报警的阀值,低于所设定的阀值之后触摸屏会发出报警的声音。除此之外还预留了一个车辆速度和电池的剩余电量的显示,地址分别为6x3和6x4。图6是显示元件的属性设置,最终的上位机界面设计结果如图7所示。
6 结束语
本文设计的小型环卫车交互系统实现了对下位机采集到的电压和温度的实时显示和对环卫车的扫地电机和洒水水泵的控制,具有良好的人-机互动功能,拥有一定的工程实践价值;但是本设计也还存在一些不足之处需要完善,如再通过安时法将电池的SOC值估算出来和通过速度传感器将车速值也测量出来,并分别显示在触摸屏上将会有更大的使用价值。
共0条 [查看全部] 网友评论