面向Web的3D打印装备物联接入方法及通信协议研究

2021-01-13 12:17蔚晟楠赵圆圆谭跃刚
装备制造技术 2020年10期
关键词:控制指令物联固件

蔚晟楠 ,赵圆圆 ,张 帆 *,谭跃刚,方 涛

(1.武汉理工大学机电工程学院,武汉430070;2.湖北嘉一三维高科股份有限公司,武汉430070)

区别于传统的加工方式,3D打印是一种将材料进行累加制造的技术,十分适合于单件或小批量的快速制造[1],在医学、建筑、制造业等领域得到较为广泛的应用[2],因而3D打印设备的保有量迅速上升。物联网技术可以通过泛在物联的方式为3D打印行业赋能,其通过传感器采集数据并将数据统一到云端进行分析和计算,从而组建若干相互联系的映射网络,这不仅方便了3D打印智能车间大量设备节点的远程管理,还为企业加工任务变更、加工路径规划等问题提供即时解决策略,有效降低了3D打印生产过程中的故障造成的经济损失,促使设备之间进行信息交互,进而完成设备制造信息的集成管控[3]。

但是在当前物联网环境下,由于不同3D打印设备所使用的固件种类不同,如Sprinter、Reprap和Marlin等,其解码方案各不相同,导致通信协议不能完全统一[4],这使得3D打印设备传来的数据很难通过统一的方式进行处理和解析;同时,设备实时状态的有效的远程监控需要可靠的应用层传输协议。因而,需要设计一种物联网环境下的3D打印设备通信协议适配策略来实现3D打印设备有效的物联网接入。

针对上述问题,国内外学者开展了不少研究。陈文艺和田创[5]提出了设计不同模块控制协议解析的集成化策略,在协议适配层,它使用node.js中的net模块构建TCP客户端并对设备模型数据进行封装。叶青[6]设计出一种面向配置的协议解析方法,但对于超出调研范围的协议无法处理,需要人工自行配置。赵凯和张景峰[7]提出了面向接口的通过三种XML配置文件进行协议适配的方法,对于一类协议无需重复编写配置文件。王永娜和赵奎等人[8]与赵凯均使用XML文件表现协议格式和内容,但有所区别的是,王永娜等人创新性地基于状态机原理通过自定义协议解析规则完成对应功能,最终形成标准协议。石荣和蔡乐等人[9]提出了基于关联规则挖掘进行识别的方法,通过提取特征库中的频繁集、对匹配字符串的位置进行记录,将关联关系作为协议识别的另一个特征,最终达到识别协议的目的。但其局限性体现在:这些适配策略未充分利用3D打印设备通信协议的特点,适配过程复杂。基于上述局限性不难看出,它们无法满足针对3D打印领域的物联接入系统协议自动化适配的需求。

因此,为满足不同3D打印设备适配接入的需求,本文提出一种基于字符串分割排序与二分查找的3D打印通信协议适配策略,该策略通过字符串分割、排序、二分查找及计算相似度等操作,能够有效地对不同的通信协议进行识别、匹配与解析。同时,制定了一套用于3D打印设备物联接入的可靠通信协议,并进行了软硬件设计及测试。经实际环境测试所设计的系统能够正常运行,安全可靠。

1 通用集成策略

1.13 D打印物联系统需求及框架

3D打印物联接入系统由3D打印设备、3D打印物联接入装置和云端服务器组成,系统连接图如图1所示。3D打印物联接入装置通过串口接收设备运行状态信息和向打印设备发送控制指令,通过网口和Wi-Fi接收云端发送的控制指令、将各项数据发送到平台及接受和发送心跳包。用户可以登录物联云服务平台进行监控、管理和数据分析等操作。在这一工作流程中,网络通信部分需要可靠性协议的支撑,而物联接入的全过程均需通过协议适配操作来实现其不同阶段的功能。

图13 D打印物联接入系统连接图

1.2 3D打印物联数据协议

数据协议是指通信过程中规定的数据格式和交互过程。通过研究许多3D打印数据协议后可以将3D打印数据协议如表1进行表示。标识符在每个协议中都有不同的体现,代表该协议的特殊性,数据开始标志则从一定程度上体现了数据的类型,如温度、挤料和位置数据等。

表1 数据协议的一般表示形式

(1)不同固件的数据协议

当向Marlin固件类型的3D打印设备发送M105指令时,设备返回数据协议如下:

Ok T:15.00/25.00 B:20.00/30.00@:0.00 B@:0.00数据,其中Ok就是该固件特有的标识符,T表示喷头温度数据开始的标志,15.00即为所需要的数据,B:20.00亦然。而向Reprap固件类型的3D打印设备发送M105指令时,设备返回数据协议如下:

Ok T:15 B:20

数据。其他固件与之类似,均采用相同的表达方式。

(2)同一固件的不同数据协议

当请求Marlin固件类型的3D打印设备温度数据时,设备将返回

Ok T:15.00/25.00 B:20.00/30.00@:0.00 B@:0.00

数据,而当向该固件类型的3D打印设备位置数据时,设备将返回

X:100.00 Y:0.00 Z:0.00 E:0.00 Count X:8000 Y:0 Z:0

数据,在这一回显内容中,无标识符,直接以数据开始标志开头并加以数据表示,其他固件亦然。

由此可见,不同固件类型的协议及请求不同数据的协议所返回的信息均不同。因此,论文拟将上述区别作为解决不同固件或同固件不同数据识别适配问题的出发点,进而完成不同数据协议的适配。

1.3 协议适配策略

(1)固件适配

协议适配策略包括固件类型匹配和协议内容匹配两方面,其业务逻辑如图2所示。

图2 固件类型适配流程

固件类型适配可以分为已知协议适配及人工干预层组成,已知协议的适配环节由消息接收层、适配决策层和协议封装层构成,人工干预层主要包括不同的接口及封装操作组成。对于不同协议,其基本结构类似,不同主要体现在标识符的不同和数据开始的标志不同。因此,当串口获取到某一条通信协议后,系统将按照统一的方式把该信息送至消息接收层,该层将对长字符串进行分割并按照英文字母顺序进行排序,这样能够有效减少数据匹配过程所花费的时间,提高了匹配的效率。二分查找算法在一定程度上能够加快数据查找的速度,但其查找条件为不可变字符,同时库中协议信息也可能因为时效性较差而有一定偏差或大小写拼写有错误,因此需要在保证一定可信度的前提下,根据协议字符数的多少按80%比例确定二分查找的完成条件。基于此,还要对剩下的字符计算相似程度,取最大者为匹配确定的协议。随后将通过数据协议的适配过程考量其符合程度,若无法正确解析,将返回协议适配阶段重新匹配或进行人工干预。

在物联接入系统中,协议以

形式存在。任何对协议内容的操作完成后都需将该协议置于字典顶,进而减少适配时间。

(2)数据协议适配

除不同固件类型外,适配问题仍然要处理同一设备不同类型数据协议异构的问题。针对这一问题,采取如下适配方法,工作流程为:物联接入装置向3D打印设备请求温度和位置数据,随后将从串口处获取打印设备发来的状态信息,之后接入装置将通过特定字符串正则的方法将数据信息提取,同时检查提取的信息是否为数据或合理字符,若检查成功则将所有数据放进数组并加以运用,若不成功则会反复正则多次,直至超时后返回协议适配环节,具体实现流程图如图3所示。

图3 数据协议适配流程图

1.4 3D打印通信协议

为了有效地进行3D打印设备在线上平台的接入,在3D打印物联接入系统中设计了4种通信协议:3D打印设备平台认证通信协议、3D打印设备状态数据封装协议、3D打印平台远程控制指令协议和心跳检测通信检测协议。在3D打印物联接入系统中,为了实现3D打印物联服务平台的设备认证,本文设计了3D打印设备平台认证通信协议。在数据通讯的过程中,心跳检测通信协议可以用于保证长连接的存活与可靠性,而3D打印设备状态数据封装协议和3D打印平台远程控制指令协议则分别用于数据上传平台和向设备发送指令的通信场景。

(1)3D打印设备平台认证通信协议

该协议用于授权的3D打印设备接入线上平台的认证过程。其认证流程如图4所示。

图43 D打印设备接入平台认证过程

其主要包括设备平台注册、设备线下激活、设备平台认证三个环节。在注册环节中,用户在平台设置密码,并生成设备的唯一标识码,用户在线下激活环节将密码和标识码导入物联设备,最后在设备第一次接入平台后进行认证比对。通过认证协议,平台可以对设备进行授权管理。

(2)3D打印设备状态数据封装协议

该协议用于将不同型号的3D打印数据识别后进行统一的封装,接入线上平台后便于统一解析。封装的格式采用了基于键值对的JSON格式。状态数据主要包括设备的通用信息(设备标识码和IP)、传感器数据(温度数据)、打印数据(X,Y,Z轴的位置数据以及挤料)、打印进度等实时数据。

(3)3D打印平台远程控制指令协议

该协议主要用于平台远程控制3D打印,发送控制指令。设计了多次交互流程,保证指令的正确发送和接收。

首先,用户点击按钮将使云平台向物联接入装置发送了数据格式 {EID:***,I:***}END的DATA2数据。然后,装置接收到指令信息后将接收的数据以{EID:***,RI:***}END 的数据格式将 DATA22 回显使平台进行确认,若一致,平台将发送{EID:***,IDE:OK}END的确认信息DATA222返回物联接入装置。接着,装置收到确认消息后会控制串口给终端设备发送DATA3,设备执行完毕后将返回DATA33信息,其格式体现为{I:***,IS:***}。最后,物联接入装置将DATA33加入设备编号信息形成DATA333发送回平台,至此一次通信完成。

(4)心跳检测

心跳检测通信协议主要完成空包“{}”的发送使通信另一方识别到该信号用以确认状态。当平台向物联接入装置发送“{}”数据时,数据接收模块将识别到这一特定信息并将标志位置位,每隔1 min系统将查看一次标志位的状态,若标志位置位,则将之前计数清零并复位标志位,否则计数增一。如图5所示,当计数达到三时,认为平台与物联接入装置通信已经断开,则会重新启动来建立新的 socket连接。

图5 3D打印物联接入系统数据交互过程及数据协议

2 系统实现及测试

如图6所示,3D打印物联服务平台采用分布式存储技术和MQTT协议相结合的方式完成多个节点的接入、大量实时状态数据的处理与解析及控制指令的发送。

图63 D打印物联服务平台

本文采用Orange Pi Zero硬件并基于Armbian系统搭建物联接入系统。

图7为本系统数据处理模块的单元测试展示图。网络连接模块基于flask框架完成网络接入功能。本物联接入系统在Armbian中移除了network manager并对interfaces文件进行修改,仅在文件中规定了IP的类型和标识符,通过编写bash脚本控制系统网络初始化过程和IP获取逻辑,降低了初始化时间。

图7 物联接入系统软件

终端连接模块完成串口寻找和波特率的设置工作,其遍历全部可用端口并开启多线程,避免数据堵塞甚至工作流程的崩溃。数据处理模块则首先向3D打印设备确认串口状态,随后即可按照收一条数据后再发一条数据的方式获取3D打印设备运行状态数据及发送设备控制指令。数据发送模块主要是通过建立socket连接并依靠心跳检测包保证通信链路的正常工作,增强了通信过程的可靠性与完整性。

本系统经过测试,能够稳定完成既定功能,主要测试参数如表2所示。

表2 主要测试参数

图8和图9分别为两种不同固件类型的3D打印设备接入实物展示及其物联平台接入数据展示界面。其中,图8所示的3D打印设备内嵌Marlin类型的固件,图9所示的3D打印设备内嵌Reprap类型的固件。图8测试时间为15 min,分别显示了热床打印过程中实时喷头温度及XYZ三轴坐标数据。如图所示,喷头温度无明显波动,在打印过程中保持在40°上下,三轴坐标可以根据3D打印设备的运动及时显示出来;图9表示测试开始前10 s的喷头温度及XY轴坐标曲线,在打印过程开始时,3D打印接入装置能够迅速将传感器获取的数据传输至平台,温度保持200°左右,喷头温度无明显数据缺失,右上角图线平缓,表明此时X轴无运动。上述实验都验证了利用设计的接入协议,能够通过物联网平台远程有效地对不同固件的打印机进行监控。

图8 物联接入系统测试(a)

图9 物联接入系统测试(b)

3 结论

针对目前3D打印设备物联接入系统仍存在通信协议不统一导致无法实现不同3D打印设备有效接入的问题,本文提出了一种基于知识库的3D打印设备物联适配接入策略,通过长字符串分割排序、二分查找和相似度计算、协议重排等操作极大地减少了协议匹配的时间;制定了用于可靠数据传输和状态检测的通信协议。分别将Marlin固件类型、Reprap固件类型的3D打印设备分别接入3D打印物联服务平台,证实了方案的可行性。本文所作工作解决了不同固件类型的3D打印设备的适配接入问题,方便了3D打印设备资源的调度,同时通过物联网将数据发送至物联服务平台可以为数字孪生等上层应用提供便利。

猜你喜欢
控制指令物联固件
《智能物联技术》征稿启事
蘑菇物联技术(深圳)有限公司
城轨车辆控制指令试验装置研制
王永岗:改造物联服务链助力现代农业
宏指令控制的多轴系统研究及实现
创享物联时代新风潮
基于固件的远程身份认证
高速公路隧道通风、照明联动控制方案探讨
谷歌公司推出计算机固件分析工具帮助用户阻止恶意软件入侵
英特尔发布免费固件引擎