胡清钟
摘 要:针对稀土萃取生产过程中所出现的故障现象、安全隐患,文中从物联网应用角度,使用Java语言,采用多线程、MVC开发模式开发了稀土萃取传动装置故障监测系统。采用“自下而上”“功能分层”“模块划分”的设计思路,从底层硬件组成、硬件工作原理、通信原理、网络拓扑结构、软件架构设计入手,提出了整体解决方案并成功实现,满足了工厂的实际需求。
关键词:物联网;萃取;传动装置;故障监测;模块划分;多线程;MVC
中图分类号:TP393文献标识码:A文章编号:2095-1302(2020)02-00-05
0 引 言
在稀土萃取生产过程中,通常由电机通过皮带传动驱动萃取槽内的搅拌器转动,实现稀土氧化物的提炼。当出现电机停止转动、皮带打滑或者断裂等故障时,搅拌器将停止搅拌槽内溶液,这将大大影响产品质量。同时由于从萃取槽两端不断进入的有机相和水相,导致溶液溢出萃取槽,引发事故进而严重影响整条生产线的正常作业。传统的检测方法是采用员工巡查来检测搅拌器运转情况,该方式存在两个问题:一是当皮带有轻微打滑时,巡查人员很难察觉;二是由于设备数量较多,当搅拌机发生故障时,巡查人员无法及时发现。这种检测搅拌器运转的方法严重影响了工作效率,所以对传动装置进行故障监测尤为重要[1]。
本文从硬件组成、网络拓扑结构、分机和主机工作原理、通信原理与通信协议、数据库设计、应用程序设计等方面提供了整体设计方案并予以实现。
1 总体方案设计
系统按照功能分为四个层次,从下到上依次分为数据采集层(分机)、数据汇聚层(主机)、数据存储层(上位机和服务器)和数据表现层,框架如图1所示。
系统的工作过程如下:
(1)分机负责皮带传动装置信息的采集,通过433无线通信协议把数据传送给主机;
(2)主机接收到数据后,对数据进行循环冗余CRC校验,把校验正确的数据通过CAN总线协议传输给上位机(本系统是一台工控机)[2];
(3)上位机收到数据后,按照接收帧格式提取数据,可选择将数据直接存储到MySQL数据库,以方便后期处理,如果企业对实时性要求较高,则可选择先处理数据,将结果在上位机或监控室大屏显示,然后再将数据存储到数据库;
(4)所有车间的PC机都运行有基于Java多线程与MVC设计模式[3]的客户端应用软件,通过局域网从MySQL数据库获取数据,从而实现同步监控本车间各槽位传感器状态信息的功能。
2 各分层结构设计说明
2.1 数据采集层
本层采用星型拓扑结构,在433无线通信协议中,把中心网络节点称为主机,其他节点称为分机。分机包含的主要硬件有CC1310无线通信芯片、霍尔传感器(Si7201)、外接天线、段码液晶屏、红外接收管、红外遥控器、干簧管,结构示意如图2所示。
由于分机是电池供电设备,所以要求降低功耗来延长电池寿命。分机采用定时(具体时间根据工厂需求设定)唤醒机制,当唤醒时刻到来时打开霍尔传感器,检测是否有磁场切割,同时设定一个时间段,只要在该時间段内检测到脉冲信号,则说明皮带传动装置工作正常,此时立刻关闭霍尔传感器,以减少电量消耗。如果未检测到脉冲,则连续检测3次,若均未检测到脉冲,则此时立即发送报警数据给主机,然后关闭霍尔传感器。分机处理流程如图3所示。
除此之外,分机还可以显示本身的MAC(物理)地址,当磁铁靠近干簧管时,段码屏亮起,分机MAC地址将高亮显示,如果无操作,几秒钟之后段码屏会自动变暗(或一段时间后自动隐藏)以节省电量。分机可以通过红外遥控器设置信道和发射功率以适应复杂的环境。
2.2 数据汇聚层
数据汇聚层的主要功能是收集并缓存工作在同一信道的分机发送来的数据,本系统设定每个主机最多可以管辖100个
分机。主机和分机采用星型拓扑结构,每个主机工作的信道不相同,所有主机通过CAN(控制器局域网)串行通信协议链接在一条总线上,主机和上位机自定义数据链路层帧交换数据。主机的结构比较简单,主要硬件包括STM32芯片[4]、CC1310无线通信芯片、外接天线和电源模块(交流供电),结构如图4所示。
2.3 数据处理层
这一层主要由上位机和MySQL数据库服务器组成。上位机通过数据链路层帧与主机进行数据通信。本系统自定义了2种帧格式,分别为发送帧和接收帧。发送帧总长7 B,各字段涵义见表1所列。
2.4 数据表现层
本层的主要作用是对数据进行可视化处理,结果在总监控室大屏和各车间显示屏展示。系统使用Java语言,MVC(Model,数据模型;View,用户界面;Control,控制器)开发模式设计构建。MVC是当今最流行的软件设计模式之一,可以极大地提高软件开发效率和代码重用率。使用MVC的目的是将M和V实现代码分离,从而使同一个程序可以使用不同的表现形式。
Model层主要包括的实体类有Gdrfs,Sensor,Slot和SlotCurrentState。
Control层主要实现程序的逻辑控制,比如基于数据库的增、删、改、查操作,用户需求相关功能实现等,都以接口(API函数)形式提供给View层。例如本系统最重要的一个接口getSensorsStateByDepartId(String departId),形参departId是一个指向某车间Id的字符串值,接口的功能是从数据库读取车间值为departId的所有传感器的当前状态值,返回一个Map
View层通过调用API函数完成每个槽位报警状态的动态显示。某车间所有槽位状态显示程序流程如图9所示。
3 关键技术实现
3.1 接收帧粘包和断帧
粘包指接收端接收帧时,原本发送端发送两帧数据被接收端当成一帧数据接收。相反,如若发送端只发送了一帧数据,而接收端却误认为是多个帧,这种现象被称为断帧。造成粘包的主要原因是接收端定时时间过长,而造成断帧的原因在于接收端定时时间过短。如果采用固定帧长,就可以很好地解决接收端时长难以确定的问题,比如本系统设定的接收帧固定长度为1 024 B,如果主机发给上位机的帧长度不足,则虚拟不存在的节点(物理地址为全0)将其他字段全部填充0,上位机在接收到此类MAC地址时需要过滤这些填充的0。分析帧的结构,发现每帧都是由数据头、长度、数据内容、CRC校验码组成,通过数据长度字段来读取每一帧数据也能够得到一个完整的数据帧。亦可采用CRC校验码过滤伪特征码数据(数据是以0xA55A开头的帧)。
3.2 上位机负荷过重
本项目实施企业共安装了780个分机,12个主机,上位机每隔200 ms对主机进行一次轮询,一个周期的时间为
2 400 ms,由此可算出每小时理论数据量为1 123 200条数据。但实际却比理论计算值少,因为分机使用电池供电,为了省电,只有在两种情况下分机才会发送数据,一是当分机检测到皮带传动装置异常,二是定时唤醒时刻,否则大部分时间都处于休眠状态。通过查看数据库,实际每小时数据量约为15 000条。但考虑到本项目中上位机使用的是一台普通的工控机,配置为酷睿Core i5处理器,内存8 GB,当数据量达到500万条以上时,CPU利用率几乎达到100%,严重影响数据表示层的时效性。因此采用如下方法解决上述问题:
(1)优化SQL查询语句,对经常查询的字段建立索引;
(2)将上位机与数据库服务器分离。
4 结 语
本系统从软硬件方面结合企业实际需求研究和设计了稀土生产线萃取传动装置故障监测方案,并予以实现。本系统具有很好的开放性、时效性、易维护性和易扩充性,符合企业需求,达到了预期目标,具有较高的实用价值和一定的推广示范性。
参 考 文 献
[1]胡振光,陈松岭.基于粗糙集和BP神经网络的稀土萃取传动装置故障监测及诊断方法[J].矿冶,2016,25(5):63-66.
[2]张光河.物联网概论[M].北京:人民邮电出版社,2014:5-50.
[3]赵晨时,马琪,竺红卫.一种基于多特征量的直流电弧故障检测方法[J].物联网技术,2018,8(2):27-29.
[4]王嘉俊.基于STM32的智能小车控制系统设计[J].电子制作, 2018(17):21-22.
[5]孟凡荣,闫秋艳.数据库原理与应用(MySQL版)[M].北京:清华大学出版社,2019.
[6]贾召喜.基于工业物联网的生产线远程监控系统研究[D].天津:河北工业大学,2015.
[7]白文荣,王晓燕.Java核心技术[M].北京:清华大学出版社,2018.
[8]陈恒,楼偶俊,巩庆志,等.Spring MVC开发技术指南[M].北京:清华大学出版社,2017.
[9]户晨飞.面向工业物联网的生产线远程数据传输系统研究[D].上海:东华大学,2018.
[10]林道志.萃取技术在稀土分离科学中的应用及前景[J].化工進展,1994(5):6-11.