甘蔗联合收割机作业远程信息平台设计与实现*

2022-10-27 04:02马志艳李江华章霞东莫建霖
中国农机化学报 2022年11期
关键词:收割机甘蔗车载

马志艳,李江华,章霞东,莫建霖

(1. 湖北工业大学农业机械工程研究设计院,武汉市,430068; 2. 广西农业机械研究院有限公司,南宁市,530007)

0 引言

随着物联网技术的快速发展,其在农业信息技术中的应用已是农业现代化发展的趋势[1]。MQTT协议(Message Queuing Telemetry Transport 消息队列遥测传输)作为物联网的重要通讯协议,已在智能家居行业广泛应用[2-4],其网络传输开销小,灵活的订阅方式等特性使其成为数据传输的利器[5-8]。目前,物联网技术在国内大型农机装备信息化方面的应用开始逐渐增多,但目前仍存在较多的利用嵌入式系统进行数据采集,再通过对存储卡的读取来获取对农机作业数据的传统方式[9-11]。林聪伟等[12]设计的物联网可视化系统利用物联网协议的三维可视化实现了对智能制造生产可视化监控。康云川等[13]设计的基于消息队列遥测传输协议的灌溉系统,利用队列消息实现了远程灌溉。李旭等[14]研究的基于云平台的综采设备群远程故障诊断系统,实现了井下作业设备的数据实时采集。在目前国内甘蔗收割机作业过程中,甘蔗收割机刀盘转速、行进速度、切段转速等作业参数与车辆工况参数对甘蔗的收割质量、车辆状态甚至是来年的甘蔗发芽率等都具有重要意义。设计了一种基于云平台技术的甘蔗收割机作业数据实时采集与远程传输系统,该系统采用MQTT传输协议和TCP/IP协议实现对甘蔗收割机工况数据的采集和远程传输,同时开发了基于JAVA的移动端和PC端程序,实现了远程访问甘蔗收割机实时数据的功能,可以让终端用户实时监测到甘蔗收割机的作业工况数据和车辆工况,为甘蔗收割机的智能化与信息化发展提供了重要的数据支持。

1 系统总体框架

系统总体上可分为数据感知层、数据采集层、网络传输层、云服务层和应用层,如图1所示。数据感知层由多个数据传感器组成,是甘蔗收割机实现数据采集的重要来源和方式,包含压力、温度、转速、流量等传感器;数据采集层主要是由PLC和CAN总线进行数据采集并且通过车载终端进行对感知层数据的采集然后进行处理;网络传输层利用车载终端和云服务器组成,采用物联网主流传输协议MQTT进行数据传输,该协议具有动态性和松散耦合性的特点,极大地满足了物联网技术的松散通讯的功能。车载终端通过MQTT协议以JSON格式将数据上传到企业云服务器。网络传输层是应用层和数据采集层的关键衔接层,实现了甘蔗收割机数据的上传、存储和发送功能;应用层由云服务端提供数据服务,最终用户通过Web或移动端程序实现对甘蔗收割机数据的实时监测,为甘蔗收割机的工作质量改进和信息化提供了重要的数据基础。

图1 甘蔗联合收割机作业远程信息平台框架图

数据传输采用MQTT通讯协议,MQTT通讯模型示意图如图2所示,该协议通过客户端和服务器端实现数据传输即发布者(Publish)、代理(Broker)(服务器)、订阅者(Subscribe)。其中,消息的发布者和订阅者都是客户端,消息代理是服务器,消息发布者可以同时是订阅者。MQTT会构建底层网络传输,将建立客户端到服务器的连接,提供两者之间的一个有序的、无损的、基于字节流的双向传输。其中一个MQTT数据包由:固定头(Fixed header)、可变头(Variable header)、消息体(payload)三部分构成。其中固定头(Fixed header),存在于所有MQTT数据包中,表示数据包类型及数据包的分组类标识,固定报头的第一个字节分为控制报文的类型(4bit),以及控制报文类型的标志位,固定报头的bit0-bit3为标志位,依照报文类型有不同的含义,第二个字节开始是剩余长度字段,是用于记录剩余报文长度的,具体格式如表3所示。可变头(Variable header),存在于部分MQTT数据包中位于固定的头和负载之间,数据包类型决定了可变头是否存在及其具体内容,较常的应用是作为包的标识,只有某些报文才拥有可变报头,具体格式如表4所示。消息体(Payload),存在于MQTT数据包的第三部分,包含CONNECT、SUBSCRIBE、SUBACK、UNSUBSCRIBE四种类型的消息。

图2 MQTT通讯模型示意图

bit76543210Byte1控制报文类型控制报文类型标志位Byte2剩余长度

bit76543210Byte1报文标识符MSBByte2报文标识符LSB

2 甘蔗收割机工作数据实时采集与传输系统设计

甘蔗收割机实时工作数据主要分为三类:发动机工作参数、车辆作业部件工况数据和车辆GPS位置数据。其中基于CAN总线采集的发动机工作参数主要有发动机转速、水温、燃油剩余等;基于PLC采集的车辆工作部件工况数据主要有风机压力、切断压力、行走压力、刀盘压力、刀盘转速、切段转速、风机转速、刀盘高度、液压油温、行走速度等;基于Modbus实现对甘蔗收割机的实时定位数据的采集。

2.1 基于CAN总线的发动机参数采集功能设计

CAN总线因其简单实用可靠等特点而广泛应用于工业自动化,选用CAN总线对甘蔗收割机的车载ECU(Electronic Control Unit,电子控制器单元)进行数据读取,从而获得发动机相关工作数据。CAN总线数据采集宏指令主要包括通讯设置、数据写入与读取以及通讯停止等功能。车载终端HMI通过调用相关宏指令实现对CAN通讯参数设置,同时通过调用相关宏指令实现对ECU的数据采集,CAN数据采集模块的变量地址分配表如表1所示,CAN通讯流程如图5所示。

表1 CAN数据采集模块的变量地址分配表Tab. 1 Variable address allocation table of CAN data acquisition module

图5 CAN通讯流程图

2.2 基于PLC的作业部件工况数据采集功能设计

收割机工作部件数据采集选用西门子S7-200 EM AE08模拟量输入模块,具有较好的稳定性。对于自动化系统中网络通信功能及单屏或多屏 HMI 交互的自动化系统,易于设计和实施,可快速搭建模拟量和数字量的采集系统。甘蔗收割机数据采集主要利用施耐德XSAV12373转速传感器、MPS拉绳式大型(7 000~15 000 mm)位移传感器和FTN的4K-205压力传感器实现数据检测并上传到PLC从而实现数据的采集,传感器的安装及车载PLC采集设备如图6所示。

(a) 转速传感器 (b) 压力传感器

按照甘蔗收割机作业工况采集需求来编写PLC程序,在程序中建立模拟量输入与变量地址之间的对应关系,实现模拟量信号的数据转换,从而完成对甘蔗收割机工况数据的实时采集。车载HMI程序通过对PLC内部变量地址的访问来获取甘蔗收割机作业部件传感器数据。PLC数据采集模块的 变量地址分配表如表2所示。

表2 PLC数据采集模块的变量地址分配表Tab. 2 Variable address allocation table of PLC data acquisition module

2.3 基于Modbus协议的车辆定位数据采集功能设计

定位模块选用HS6601,该型号是一款具有GPS定位和北斗定位的双模定位终端,可以快速、精确获取作业车辆位置。GPS/北斗定位模块支持标准Modbus通信协议,符合国家标准GBT 19582.1—2008《基于Modbus协议的工业自动化网络规范》。车载HMI终端采用Modbus RTU通讯协议,通过接收、解析数据总线上的帧数据,根据解析结果返回数据。Modbus帧格式如图7所示。

图7 Modbus 帧格式

根据定位模块功能说明,在车载终端与定位模块实现位置信息数据传输过程中,将所有的位置数据格式均设定为dddmm.mmmmm,其含义为:度度度分分.分分分分分分。在车载终端程序中通过对经纬度地址的设置,同时将相应的地址标签加入程序地址库,以类似PLC获取数据的方式,实现对甘蔗收割机实时定位数据的获取。

2.4 基于MQTT的车载终端数据发送程序设计

车载终端数据发送通过对MQTT宏指令程序的编写实现对甘蔗收割机工况数据的打包和发布。在MQTT宏指令中cJSON_Object对象的值如果是为JSON对象,则递归输出JSON格式数据,否则就直接显示键和值。对于从CAN、PLC和Modbus采集到的工况数据,需要在车载端HMI程序地址标签库中建立一个用于MQTT数据发送的变量列表,同时按照规定的MQTT宏指令发布格式进行发布,即可实现车载端MQTT数据的发送,车载端HMI程序地址标签库如图8所示。

图8 车载端HMI程序地址标签库

另一方面,在车载终端网络传输方式设置中,需要选择MQTT认证平台,通过对连接云服务器的网络参数进行设置,如MQTT认证参数host,port,clientid,username,password等,实现将车载终端地址标签库的变量数据通过4G数据卡进行远程无线发送,MQTT认证参数设置如图9所示。

图9 MQTT认证参数设置

3 云服务器部署

远程数据传输与云服务器主要包括基于MQTT的车载终端数据发送程序和云端服务器的搭建。在云服务器上需要搭建Apollo数据接收服务器、SQL Server数据库服务器和Web服务器。

3.1 MQTT服务器部署

本系统通过在企业服务器上安装Apollo服务器,创建并运行甘蔗收割机Broker文件,作为MQTT数据接收服务器来实现从车载端到云端的数据接收。在浏览器中对Apollo服务器配置文件apoll.xml中进行连接参数(如用户名和密码、IP地址等)的设置,在车载终端连接参数中与此保持一致,即可将采集到数据发送到企业服务器的Apollo数据接收服务器中。Apollo数据接收服务器设置成功后,可实时显示各客户端的连接情况与数据传输信息。

3.2 数据库服务器部署

在企业服务器上安装SQL Server2008数据库后,还需要编写MQTT客户端和数据库读写程序,订阅MQTT服务器数据并完成数据自动保存。程序数据接收保存流程图如图10所示。其功能是MQTT服务器的连接、数据订阅和数据库存储应用。通过Visual Studio2019 C#平台开发,调用了MQTT协议相应的依赖包,调用类方法实现MQTT Client的创建,同时设置MQTT中TCP网络连接的参数,即text Server IP、text Server Port、text User Name、text Password的设置,其分别对应MQTT服务器的地址、端口、用户名和密码,通过对MQTT客户端Client的创建,同时调用MQTT中TCP网络连接的参数可以实现对MQTT服务器的连接,MQTT客户端通过对内部程序文件JsonData程序的编写用来将获取到的数据进行解析,通过在客户端中对企业服务器的IP和端口号设置,同时输入对应的Apollo服务器的用户名和密码即可实现MQTT数据的订阅与解析。

图10 云平台数据接收流程图

SQLServer数据库的关键技术在于数据库的连接、表的自动创建、消息订阅和数据写入数据库。通过在C#中导入数据库相关的依赖包并且对SQL的程序进行编写,该过程的关键点在于开发者通过对连接字符串中Data Source、Initial Catalog、UID、PWD的设置从而实现对数据库的连接,通过对Sql Connection的调用实现对数据的表的自动创建。

MQTT消息订阅的关键点除了主题客户端中各项连接参数的设置还在于订阅肢体的设置,在主题订阅中使用多层通配符#号,以hbsnjy/#的形式实现对hbsnjy以下多层主题的订阅。在数据库的数据写入中如果对接收到的每一条消息都立刻存储到数据库中会导致数据库的频繁读写可能会使程序变得缓慢,为了避免高频访问数据库,采用一次性写入多条记录的方式完成数据存储。SQL Server数据库实时数据存储类型如图11所示。

图11 云端SQL Server数据库数据类型图

3.3 Web服务器

甘蔗联合收割机作业远程信息平台Web服务器的开发基于Spring MVC框架实现,负责实现企业服务器数据与前端网页的数据交互,其功能分为四大模块:农机地图、农机列表、实时数据和历史数据。在程序中农机地图模块使用JAVA百度地图API接口,将数据库中的经纬度地址以创建标注的形式将当前显示在地图中,用来实时显示甘蔗收割机的数量和位置。农机列表模块通过在程序中对deviceList.jsp的编写实现对甘蔗收割机设备ID、设备名称和车辆信息与工作参数等的显示。实时数据模块通过在deviceListData.jsp中以设备ID为组号进行编写用户通过对设备ID的选取可以实现对指定甘蔗收割机各项工况数据的实时读取。历史数据模块通过对deviceDataList.jsp实现以设备ID为组号,通过对机组和时间段的选取,历史数据将会以列表的形式展示。Web功能实现如12所示。

图12 Web端工况数据图

4 用户端程序设计

在用户端,用户可以通过移动端和PC端查看甘蔗收割机实时数据,PC端用户通过浏览器对甘蔗收割机的数据进行实时查看。在移动端的主要功能分为登录注册模块和历史数据监测模块。在网络正常状态下,系统经过初始化后,利用JDBC技术访问远程数据获取数据库中管理员的信息,同时将管理员信息导入本地SQLite数据库中,在管理员界面可以实现对普通用户的信息管理。普通用户通过注册界面对SQLite数据库的增删实现个人信息的注册和注销。移动端通过连接远程SQLserver数据库,实现对收割机的历史工况数据和最新的数据进行读取。软件系统流程图如13所示。

图13 移动端软件操作流程图

移动端的关键技术主要有JDBC连接远程数据库和LitePal数据库框架的应用。通过Java平台的JDBC的数据库程序接口可以实现对数据库的连接和数据查询。Android平台基于Java开发通过调用JavaAPI将复杂的SQL语句进行简洁化的操作,本系统采用SQL server数据库,通过对系统导入Microsoft JDBC Driver 4.0 for SQLServer依赖包,接着调用Class.forName驱动程序实现程序语句初始化,调用Connection conn =DriverManager.getConnection(url, user, password)从而实现与远程数据的连接。最后通过调用相应的SQL语句实现对数据的相关操作。

LitePal数据库框架关键技术基于Android的数据库框架,采用通过对象间关系的映射(ORM),将数据库功能进行封装,开发者通过JAVA语言免除编写SQL语句的语句便可实现对数据表的删减和增加。极大简化了程序的数据连接操作。

核心代码中表示数据库名字, 表示数据库版本号,当数据库表新添加时将value的值加1即可。标签用来表示指定的所有的映射类型的模型,其中每个映射模型用 来声明。

5 试验结果与分析

系统在广西省南宁市武鸣区锣圩镇广西农机院全程机械化示范基地进行了试验运行。试验车载终端HMI采用显控MG-070,甘蔗收割机型号4GQ-1C,功率97 kW。甘蔗收割机车载终端HMI如图14所示。

图14 甘蔗收割机车载终端HMI

试验采集了甘蔗收割机从13:00~16:00共3小时的工作数据,中间包括停机测试等间断性数据采集,数据以一秒钟采集一次的形式,其中包括发动机工作数据、工作部件工况数据以及定位数据。实际采集时间为1.52 h,该时间段内理论接收数据5 472条,实际收到甘蔗收割机实时传来数据5 465条,数据丢失7条,数据准确率为99.88%,丢失率为0.12%。经过测试该系统采集数据具较高的稳定性,能够满足甘蔗收割机数据采集的需求。

6 结论

为提高甘蔗收割机作业的信息化水平,本文基于MQTT和云平台等技术,设计了甘蔗联合收割机作业远程信息平台,实现了如下功能:实现了甘蔗收割机实时工作数据的采集;实现了甘蔗收割机实时数据的传输和云端存储;实现了通过移动端/PC端远程实时访问甘蔗收割机的数据。

为验证甘蔗联合收割机作业远程信息平台的可靠性进行了试验运行,在有效时间内对甘蔗联合收割机远程信息平台进行测试,实验结果表明远程信息平台准确率为99.88%,并且稳定性较高。结果表明该系统能实现对甘蔗收割机的工作数据实时采集与传输、云端存储和移动端的访问功能,达到了预期设计目标。

猜你喜欢
收割机甘蔗车载
一种车载可折叠宿营住房
收割机
收割机维修与保养的方法研究
捷豹I-PACE纯电动汽车高压蓄电池充电系统(三)
甘蔗的问题
奔驰S级48V车载电气系统(下)
甜甜的甘蔗
联合收割机常见故障排除
未来的收割机
黑熊吃甘蔗