时间:2024-05-04
李响 秦猛 张恒 王英 陈培锋
摘 要:针对多路数控机床运行过程中难以实现实时监测和自动报警问题,提出一种基于STM32和云平台的同步监测方法,并对状态监测系统的硬件系统和软件流程进行设计。利用NB-IoT网络和MQTT即时通信协议连接云平台,使用SIM800C通信模块提供网络连接,实现数控机床状态监测数据和云平台的稳定连接和监测。该系统具有成本低、可二次开发、易维护等特点,可满足多线路监测、实时报警的工业物联网需求。
关键词:NB-IoT;STM32;数控机床;监测系统;实时报警;系统设计
中图分类号:TP39;TN06-34文献标识码:A文章编号:2095-1302(2020)04-00-04
0 引 言
物联网的概念最早于1999年由美国麻省理工学院首次提出[1]。工业物联网是通过工业资源的网络互联、数据互通和系统相互操作,实现制造过程的合理优化和制造环境的快速适应,达到资源的高效利用,从而构建服务驱动型的新工业生态体系[2]。
数控机床是一种典型的机电一体化产品,它较好地解决了精密、复杂、小批量的零件加工问题,作为现代工业基石的机床产业,是衡量一个国家工业水平的重要参照[3-4]。数控机床状态监测系统能够对机床工作异常及时报警,可以有效避免机床故障的发生。目前,大部分监测系统采用独立组网的形式,造成了人力资源的大量浪费。本文基于NB-IoT和OneNET物联网开放云平台的物联网技术,设计并实现了一种新型数控机床远程监测系统,能实时监测多路数控机床各关键位置的状态信息,预测并及时报警,大幅提高了监测管理效率,降低了安全隐患。
1 系统总体设计
1.1 系统框架
监测系统的框架如图1所示,按照物联網体系架构分为物联感知、网络传输和IoT云平台应用层,系统由传感器模块、数据传输模块、显示模块、电源模块、监测平台、Web客户端和移动APP等组成。
第一层是物联感知层,属于系统逻辑架构的底层,用于部署基础硬件设施,包括温度传感器、位移传感器、低功耗器件、电源、信号处理电路等。
第二层是网络传输层,负责数据流的传输控制。温度、位移等传感器被触发后会按照需求产生一定量的数据报警流,数据流通过NB-IoT网络传输到基站之后连接至云平台。
第三层是IoT云平台应用层,通过该平台获取物联感知层的数据信息,并对数据进行实时监测和存储,当超过报警阈值时,及时通知并报警。
1.2 系统概述
本监测系统采用低功耗的STM32单片机作为控制单元,与多个激光位移传感器和温度传感器组成监测单元。单片机将相关传感器信息通过NB-IoT网络,按照设定的传输协议(MQTT)定时上报到监测平台,Web客户端和移动端APP向IoT云平台请求获取相关服务。当探测器超过报警阈值时,通过SIM800C无线通信模块以短信和电话方式通知用户。
2 硬件选型
2.1 NB-IoT
窄带物联网(Narrow Band Internet of Things,NB-IoT)技术是基于全新空口设计的、运行在授权频谱上的物联网技术,其带宽为180 kHz,可灵活部署于带宽超过180 kHz的GSM,UMTS和LTE的空闲频带中,从而降低部署成本[5]。NB-IoT具有大容量、高覆盖、低功耗和低成本等优点[6]。本监测系统通过NB-IoT网络将各传感器获得的数控机床状态运行信息传送到物联网云平台,能耗较低,满足多路连接要求。
NB-IoT模块选用移远通信的BC35-G通信模块,模块采用5 V供电,每间隔3 s向外发送一次信号。NB-IoT模块通过UART接口接收主控模块发送的数据,并将其封装成MQTT消息发送至物联网云平台。主控单元通过串口与BC35-G通信模块相连,并通过NB-IoT模块控制数据发送频率;BC35-G通信模块与云平台相连,实现双向传输。NB-IoT模块接线端子如图2所示。通过控制STM32的PB0口,可以实现BC35-G通信模块的上电和断电。当拉高PB0口,BC35-G通信模块上电;当拉低PB0口,BC35-G模块断电。
2.2 STM32
STM32单片机基于要求高性能、低成本、低功耗的嵌入式应用设计的ARM Cortex-M内核,比市场上同种类的单片机功能强大、使用简单、开发方便[7]。本监测系统采用STM32L476RCT6单片机,其具有功耗低、抗干扰能力强等特点。
STM32单片机硬件设计如图3所示。STM32单片机通过串口连接采集模块和通信模块,收集机床工作状态信息。同时通过I/O口连接ST7735S显示模块,实时显示调试进程。利用单片机对采集到的数控机床关键部位温度、位移等信息处理后,将数据通过NB-IoT网络上传到云平台。
2.3 SIM800C
SIM800C是一款四频GSM/GPRS模块,为城堡孔封装,其性能稳定、体积小巧、性价比高,供电电压为5~20 V,工作频率为GSM/GPRS850/900/1 800/1 900 MHz,可实现低功耗语音、SMS和数据信息的传输。SIM800C模块上引出接口,包括VCC,GND,TXD,RXD。调试时采用AT指令设置通信参数,无线通信模块的TXD和RXD端分别接STM32的RXD引脚和TXD引脚。
2.4 采集终端
采集终端的温度传感器使用DALLAS公司推出的DS18B20。DS18B20是一款可组网数字式温度传感器,在本监测系统中通过编程实现12位温度读数,其温度分辨率为0.5 ℃。如图4所示,温度传感器与STM32通过I/O口连接,最多可连接8个DS18B20温度传感器。
监测系统对机床关键位置的振动通过位移传感器采集,位移传感器采用MyAntenna TW10S激光测距传感器,与微控制器的连线如图5所示。其中EN作为触发信号,CLK和SDA为串行数据信号,MCU采用边缘触发中断方式读取SDA数据,传感器采用两线串行通信方式,固定32位数据输出,高位在前MSB,包含测量距离信息或故障码。
3 系统软件设计
软件设计部分的主要目的是应用计算机编程语言设计应用程序对各类信号进行采集、处理、传输和分析,最终实现对数控机床的在线监测。本系统需要软硬件协同工作,实现对机床关键位置的监测,软件程序编写包括数据采集模块、通信模块、实时监测和报警模块以及云平台的连接。
3.1 数据采集
数据采集终端的工作流程如图6所示。DS18B20温度传感器共有6种信号类型,分别为复位脉冲、应答脉冲、写0、写1、读0和读1。6种信号中,除应答脉冲外,都由主控制器发出同步信号,所有发送的命令和数据都是字节的低位在前。数据采集过程如下。
(1)初始化:主机输出低电平,并保持低电平750 μs,以产生复位脉冲。主机释放总线,通过上拉电阻将单总线拉高,并延时15 μs,进入接收模式,等待采集终端回应。
(2)写时序:包括写0时序和写1时序。所有写时序至少需要60 μs,且在2次独立的写时序之间至少需要1 μs的恢复时间,两种写时序均起始于主机拉低总线。写1时序:主机输出低电平,延时2 μs,释放总线,最后延时60 μs;写0时序:主机输出低电平,延时60 μs,并释放总线,最后延时2 μs。
(3)读时序:在主机发出读数据命令后,立刻产生读时序,从机传输数据。
(4)数据转换:转化后得到的12位数据存储在DS18B20的随机存储器中,二进制中的前5位是符号位,如果测得的温度大于0,则这5位为0,将测到的数值乘以系数0.062 5得到实际温度;如果温度小于0,则符号位的5位为1,测得的数值需要取反加1再乘以系数0.062 5得到实际温度。
3.2 NB模塊
STM32和BC35-G通信模块之间通过AT指令交互,AT指令集是从终端设备或数据终端设备向终端适配器和数据电路终端设备发送的[8]。在本文的监测系统中,STM32使用串口通过AT命令控制BC35-G模块,主程序工作流程如下:
(1)STM32初始化:对串口、LCD、蜂鸣器和与LED连接的硬件接口进行初始化,设置NB-IoT模块上电后的LCD提示;
(2)STM32主动发起AT请求:命令以AT开头,“\r\n”(回车换行)结尾,每发起一个请求需等待模块响应,响应以“OK”或者“ERROR”结尾。如果是“OK”,表明命令已被正确执行,如果是“ERROR”,表示请求的命令错误,未被正确执行;
(3)NB-IoT模块返回AT主动码:NB模块状态改变时,从串口输出状态信息,包括SN序列号、CSQ信号强度和COPS运营商信息等;
(4)串口收到字符串,插入行后,读取一行并对数据进行解析,考虑是否达到最大值500,如果达到则换行。
3.3 实时监测和报警
系统通过SIM800C模块实现实时监测和报警,通过发送AT指令和编写SIM800C程序实现短信和电话报警功能。程序步骤如下:
(1)利用AT指令测试串口通信是否正常,用查询命令检测SIM卡、信号质量、注册网络和GPRS通信;
(2)利用AT指令设置回显,显示被叫号码,拨打被叫号码,实现电话报警;
(3)利用AT指令设置文本模式,使用Unicode编码将号码和短信内容转换为Unicode字符串并发送,实现短信报警;
(4)编写指令发送及接收函数:通过send_cmd函数控制发送AT指令,等待反馈。若返回指令得到有效数据,那么接收的数据将被保存在接收缓冲区中。当接收到应答后,判断接收的字符串中是否含有需要的数据;
(5)编写中断服务函数:每次接收数据后,将计数器清空,等待下一次接收,当等待时间超过10 ms时,在定时器中断中标记接收完成,外部函数读取缓冲区值并判断接收指令;
(6)利用自带的字符串发送函数vsprintf,通过串口发送数据。
3.4 云平台的连接
当前针对小设备最有前景的两种物联网通信协议分别是MQTT协议和CoAP协议。
(1)CoAP协议基于UDP,是一个点对点协议,用于在客户端与服务器之间传输状态信息。
(2)MQTT协议基于TCP,是多个客户端通过中央代理进行消息传递的多对多协议,相当于消息传递的实时通信总线[9-10]。
针对本监测系统实时报警和多路监测的功能需求,物联网云平台和NB-IoT模块之间基于MQTT协议通信。MQTT报文格式包括固定报头、可变报头和有效荷载(可变报头和有效荷载在部分报文中没有),固定报头的格式如图7所示。
利用MQTT协议连接OneNET云平台,代码编写的主要内容如下:
(1)编写OneNet_DevLink函数,创建TCP连接,连接MQTT服务器;
(2)依次打包产品ID、鉴权信息和设备ID数据,发送至MQTT服务器;
(3)编写NB_RxData解析函数,连接响应,取服务器数
据,其中解析取决于第一个字节的高4位,若为“是”,则判断第二个字节是否为“0”,若为“0”,则通过串口显示连接成功;
(4)编写MQTT_PKT_PUBLISH心跳包发布函数,在连接成功后,通过周期发送心跳包确认连接;
(5)连接成功后,调用函数onenet_mqtt_publish_topic发布消息,消息组包的发送需内部调用MQTT_PacketPublish函数;
(6)调用函数onenet_mqtt_subscribe_topic订阅主题,当设备订阅相关主题消息后,同一MQTT服务器下的其他设备发布相同主题的消息,由此订阅相同主题的设备就能收到该消息,此外,内部调用MQTT_PacketSubscribe函数来订阅消息组包。
4 系统测试
在实验室模拟环境中对机床工作温度(-10~100 ℃)进行测试。在测试过程中,各模块间通信正常,各路传感器工作正常,系统工作稳定。如图8所示,系统定时向云平台发送传感器信息,可通过监测界面实时监测。当振动或温度超过设定阈值时,通过电话和短信通知用户,及时报警。
5 结 语
本文利用物联网技术设计实现了实时监测、低成本和可二次开发的数控机床状态监测系统。通过设定报警阈值,利用GPRS远程通信解决传统数控机床监测系统部署难的问题;同时,硬件系统设计中利用激光位移传感器来探测数控机床关键位置的振动,最大限度降低探测器的硬件成本;支持主流物联网MQTT通信协议,可实时在线监测多路数控机床状态信息。通过物联网云平台,可在移动设备端和桌面端增强数据的可视化水平。当系统报警时,能够通过短信、电话通知用户及时处理,使监测系统报警更加智能化、人性化,具有较好的推广价值。
参考文献
[1]廖建尚.物联网&云平台高级应用开发[M].北京:电子工业出版社,2016:1-2.
[2]中商产业研究院.2019年中国工业物联网市场前景研究报告[J].电器工业,2019(10):42-44.
[3]张云峰,李春雷.数控机床几何误差测量及误差补偿技术的研究[J].科技传播,2016,8(5):179.
[4]高峰,郭为忠,宋清玉,等.重型制造装备国内外研究与发展[J].机械工程学报,2010,46(19):92-107.
[5]范展宏.NB-IoT窄带物联网的现状以及发展前景[J].数字通信世界,2018(10):110-111.
[6]蒋震,王筝,曹中強,等.基于NB-IoT的温湿度采集系统设计与实现[J].信息化研究,2018,44(6):63-69.
[7]谢桂辉,郑旭初,赵天明,等.基于STM32和FPGA的远程宽带幅频特性测试系统[J].现代电子技术,2019,42(9):132-136.
[8]燕丽红,王安斌,陈莲琴.智能居家养老健康助手系统设计[J].物联网技术,2019,9(9):47-48.
[9]于洪涛,吴迪,朱齐山,等.一种基于无线透传传感网络的分布式环境监测系统的设计[J].现代电子技术,2015,38(18):128-132.
[10]卢于辉,秦会斌.基于MQTT的智能家居系统的设计与实现[J].智能物联技术,2019,51(2):41-47.
作者简介:李 响(1996—),湖北武汉人,硕士研究生,主要研究方向为物联网技术、激光技术。
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!