APP下载

电梯平衡链冷定型盘绕设备无线数据采集系统的设计与实现①

2018-01-11史先传陈炜俊杭云龙

化工自动化及仪表 2017年12期
关键词:报文串口电梯

连 赛 史先传 陈炜俊 杭云龙

(常州大学机械工程学院)

电梯平衡链冷定型盘绕设备无线数据采集系统的设计与实现①

连 赛 史先传 陈炜俊 杭云龙

(常州大学机械工程学院)

针对电梯平衡链盘绕设备上的高度传感器与主控PLC之间的数据传输问题,提出了主从两片STM32单片机之间基于NRF24L01无线通信,从单片机与PLC基于Modbus协议采用RS-232接口串口通信的方案。设计了主从STM32单片机系统和硬件电路,给出了PLC主站和从站STM32相关的软件参数配置。测试结果表明:该方案实现了传感器与PLC之间的短距离实时无线数据传输,提高了电梯平衡链盘绕设备的自动化程度。

数据采集 NRF24L01 STM32 PLC Modbus

现阶段,国内外对电梯平衡链的冷却定型主要是采用人工盘绕的方式,成熟的电梯平衡链盘绕设备相对较少。在已投入生产运行的电梯平衡链冷定型盘绕设备[1]中,因为采用平面堆码方式的链条在重力的作用下会向下滑落,并且链条在换层处高度也会发生变化 ,而平衡链盘绕设备上间歇性旋转的盘绕装置[2]正常运行需要与最上面一层链条保持在一定高度范围内,这就造成了该设备运行中需要人工停机调整盘绕装置的高度。

传统的方法是使用电刷和电缆的组合将盘绕装置上的超声波测距等传感器数据传送给核心控制单元PLC来补偿盘绕装置逐层盘绕所需的高度,这样会大幅增加盘绕装置的重量。笔者基于电梯平衡链盘绕设备,设计了一种主从两片STM32单片机之间采用NRF24L01无线通信,从单片机与PLC基于Modbus协议采用RS-232接口串口通信方案。相较于传统的PLC与传感器之间的有线数据传输[3,4],这种通信方式具备以下优点:首先利用STM32单片机信息处理速度快的特点,提高了PLC控制的实时性;其次不受线缆的限制,传感器安装不受空间位置的约束。

1 整体设计方案

整体控制方案采用三菱FX3U系列PLC作为控制执行核心,用来实现对电梯平衡链盘绕的控制,如盘绕装置运动轨迹的控制、链条下放动作的控制、接收链条高度传感器的数据及盘绕装置的z轴方向上的调节等。数据采集处理传输部分的方案采用主从两片STM32单片机,从单片机采用Modnus协议通过RS-232接口与PLC的通信模块相连,其中PLC作为Modbus从站,从单片机作为Modbus主站。主单片机与传感器相连,主单片机将处理好的数据通过NRF24L01无线发送给从单片机,从而将超声波测距传感器和光电开关传感器采集的数据无线传输给核心控制单元PLC[5,6],主单片机需要从PLC中读取Pt100模块的数据,从而对超声波测距进行温度补偿,以提高测量精度。数据处理传输部分结构如图1所示。

系统选用的是STM32单片机。STM32系列是由STMicroelectronics(意法半导体集团)基于高性能、低成本、低功耗的嵌入式应用专门设计的ARM Cortex-M3内核控制器。其中STM32F101c8t6的工作频率高达36MHz,配备有丰富的外设和通信接口,如128KB的Flash、一个12位的ADC、3个16位通用定时器、3个UART接口、两个I2Cs及一个SPI接口等。其中SPI接口硬件连接NRF24L01,进行SPI通信。

图1 整体设计方案

系统选用Nordic公司研发的NRF24L01无线收发器。NRF24L01是一款工作频段在2.4~2.5GHz之间的无线收发器芯片。其中输出功率、频道选择和协议的配置通过SPI接口进行设置,能够自动重发,数据传输通道共6个,无线传输速率高达2Mbit/s。在没有功放的条件下传输距离约为30m,在规定距离范围内通信稳定。

2 数据传输电路设计

数据传输系统的硬件由主/从单片机通过NRF24L01实现无线数据传输,从单片机基于Modbus协议通过RS-232接口与 PLC实现数据传输。

由于STM32的USART和RS-232接口的电平不同,互不相容,因此需要对电平进行转换。MAX232是美信集团为RS-232标准串口专门设计的单一电源用于电平转换的芯片,从而实现TTL/COMS电平与和EIA电平的相互转换,实现STM32单片机与PLC通信,其电路原理如图2所示。

图2 STM32串口电平转换电

STM32单片机通过自带的SPI通信接口与NRF24L01通信模块相连,稳定可靠。图3 给出了STM32与NRF24L01的相应端口的电路连接图[7]。

图3 NRF24L01电路连接

3 软件参数的配置

3.1 PLC的参数设置

FX系列的三菱PLC与外部设备采用RS-232串口通信,通过GX Works2软件的参数对外部设备的传送规格、通信协议进行设置。当使用通信协议时,主站PLC和从站STM32的USART参数配置要保持一致,其串口波特率设为9 600Baud,数据位长度为8位,无奇偶校验位,一个停止位。

3.2 STM32单片机的Modbus协议

Modbus协议串行传输模式有两种:RTU和ASCII模式。本方案采用传输效率更高的RTU模式,在相同波特率的情况下该模式传输的字符密度高于ASCII模式。在RTU模式中,一个信息(字符帧)每个字节分成两个十六进制字符表示,其Modbus报文构成见表1[8]。

表1 Modbus报文构成

常用的4种功能码见表2。本系统需要从STM32向PLC传输盘绕装置上的两个开关量和测距传感器的数值并读取PLC中PT100模块的温度数据,因此需要使用03、05、06这3个功能码。对Modbus协议进行简化,规定数据域长度均为4个字节,依次为地址高8位、地址低8位、内容高8位、内容低8位。再加上地址域、功能码域和CRC16域,报文总长度为8Byte。由于报文的总长度固定,所以标准RTU模式的3.5个字符帧间间隔固定,从站Modbus驱动的接收模块避免了对帧间间隔时间进行判断并重新配置,节约了STM32的内部资源[9]。

表2 Modbus常用功能码

STM32的Modbus协议驱动主要由3部分构成:串口的初始化程序块、RS-232总线数据的采集程序块和Modbus报文的处理应答程序块。串口初始化程序块除需要对USART参数配置外,还需要通过相应的库函数使能USART中断,在“USART_IRQHandler(void)”中断服务函数中对接收和发送的数据进行检测和处理。

STM32串口通信流程如图4所示。STM32的USART使能RXNE和失能TXE,默认为接收状态。数据总线空闲状态为高电平,数据接收器检测下降沿时,移位寄存器将接收全部的字符帧,并且去掉其中的起始位和停止位再送入RDR(Receive Data Register),同时RxNE(Receive Data Register is not empty)标志位硬件置1,STM32进入串口中断服务函数迅速地将RDR里的数据读入到Modbus相应的报文接收数组RXBuffer[i]里,然后软件清除RxNE标志位并退出本次中断,直到填充满报文后,RxFinish被软件置1,变量i清零。RxFinish标志位没有被清零的情况下,总线上传输来的数据无法移入到RDR中。在主程序循环中,一旦发现RxFinish标志软件置1,就会进入Modbus报文处理应答程序块。

图4 STM32串口通信流程

在Modbus报文处理应答程序模块中,首先检测报文接收的第1个数据,若从站号不正确,则舍弃本报文,清零RxFinish标志位,RDR重新接收总线传输来的数据。如果从站号正确则进行CRC校验,通过CRC校验后,则进行数据处理,即根据不同的功能码来填充Modbus应答报文TxBuffer[i],并使能TXE(Transmit Register Enable)发送中断和软件清零RxFinish标志位。当TXE使能后,STM32立即进入串口中断服务函数,把TxBuffer[i]里的元素送入到TDR(Transmit Data Register),发送移位寄存器将数据传输到数据总线上,结束本次中断。直到应答报文发送完为止,失能TXE发送中断,并清零变量i和RxFinish标志位,串口接收器重新接收数据。当CRC校验不通过和或者功能码错误,则进入超时延时,然后清零RxFinish标志位,RDR重新接收Modbus报文。

3.3 NRF24L01的相关设置

NRF24L01通过SPI协议向其内部寄存器写配置参数来配置其工作模式、通信速率、数据宽度及自动应答等。本系统采用NRF24L01的Enhanced ShockBurst模式,数据传输更加可靠。发送方要求中断发送设备在接收数据后应答信号,以便检查发送方是否有数据丢失。若发现数据丢失,则通过重新发送功能发送丢失的数据。该模式同时控制应答和重发功能,从而减少了STM32的工作量。其中主STM32作为无线数据接收端, NRF24L01对应的配置代码如下:

SPI_Nrf_WriteBuffer(Nrf_WRITE_REG+RX_ADDR_P0,RX_ADDR,RX_ADR_Width);

/*指定RX的节点位置,选用接收通道0*/

SPI_Nrf_WriteRegister(Nrf_WRITE_REG+EN_AA,0x01;

/*使能第0通道的自动应答*/

SPI_Nrf_WriteRegister(Nrf_WRITE_REG+EN_RXADDR,0x01);

/*使能第0通道接收地址*/

SPI_Nrf_WriteRegister(Nrf_WRITE_REG+RF_CH,CHANAL);

/*写RF通信频率*/

SPI_Nrf_WriteRegister(Nrf_WRITE_REG+RX_PW_P0,RX_Pload_Width);

/*选择第0通道的有效数据长度*/

SPI_Nrf_WriteRegister(Nrf_WRITE_REG+RF_SETU P,0x0f);

/*选用RF参数为0db,2Mbps,使能低噪声增益*/

SPI_Nrf_WriteRegister(Nrf_WRITE_REG+CONFIG, 0x0f);

/*选用工作模式:POWER_UP,EN_CRC和16BIT_CRC,设置接收模式*/

4 通信测试

为了验证数据传输情况,编写了一组验证程序,在PLC相连的触摸屏上添加一个窗口以显示距离数据。和主STM32相连的高度传感器与障碍物的起始距离为20cm,然后改变两者之间的距离。

PLC触摸屏上窗口显示数据随着距离的改变而变化,距离数据准确。通信测试结果表明传感器与PLC之间短距离无线数据传输正常,具有良好的实时性。其中一组PLC发送的查询报文见表3,检测出从单片机应答的报文见表4,此时高度传感器与障碍物距离为30cm。

表3 PLC查询报文

表4 STM32应答报文

5 结束语

针对电梯平衡链冷定型盘绕设备对传感器数据传输的要求,设计了基于主从两个STM32单片机和NRF24L01无线收发器的短距离无线数据传输系统。该系统克服了空间布线的局限,主STM32可以直接将传感器采集的复杂数据处理后快速地无线传输给从STM32,从STM32通过RS-232接口再传输给核心控制单元PLC,对PLC与高精度传感器之间高速实时无线数据传输具有指导意义。

[1] Shi X C, Gao L, Qian L,et al.A Colling Robot for Elevator Compensation Chain[J].Industrial Robot, 2016, 43(4):403~408.

[2] 刘善淑,魏伟,胡爱萍,等.一种电梯平衡补偿链冷定型自动盘绕装备的Z向移动装置及其应用[P].中国:2014105063986,2015-01-21.

[3] 李生军, 李少蒙.单片机与PLC之间的串行通信实现[J].化工自动化及仪表, 2010, 37(2):78~80.

[4] 段红英.基于单片机的MODBUS总线协议实现技术研究[J].自动化与仪器仪表, 2015, (12):157~158.

[5] 张永宏,曹健,王丽华.基于51单片机与nRF24L01无线门禁控制系统设计[J].江苏科技大学学报(自然科学版), 2013, 27(1):64~69.

[6] 郭辉,傅成华,吴浩.基于nRF2401的PLC无线通信控制器[J].电子设计工程, 2010, 18 (3):113~115.

[7] 关学忠,李倩文.基于STM32的数据采集与网络发布系统[J].化工自动化及仪表, 2017, 44(2):187~190.

[8] 史运涛,孙德辉,李志军, 等. 基于Modbus协议的通讯集成技术研究[J].化工自动化及仪表, 2010, 37(4):67~72.

[9] 程明亚,史先传,钱磊,等.基于RS-485总线的触摸屏和多个STM32从站通信的研究与实现[J].化工自动化及仪表,2016,43(8):882~886.

DesignandImplementationofWirelessDataAcquisitionSystemforCoilingDeviceofElevatorBalancingChain

LIAN Sai, SHI Xian-chuan, CHEN Wei-jun, HANG Yun-long
(SchoolofMechanicalEngineering,ChangzhouUniversity)

Considering data transmission between coiling device’s height sensor and PLC of the elevator balancing chain, having communication between master and slave STM32 SCMs realized through NRF24L01 chip and having Modbus protocol and RS-232 bus based to implement interface serial communication between PLC and STM32 SCM were implemented, including the design of master and slave STM 32 SCM’s hardware circuits. The parameter configuration of PLC and STM32 SCMs was presented and tested to carry out short-distance and real-time wireless data transmission between the height sensor and the PLC so as to improve the degree of automation of the elevator balance chain’s coiling device.

data acquisition, NRF24L01 chip, STM32, PLC, Modbus

国家自然科学基金项目(NSFC51335002)。

连赛(1990-),硕士研究生,从事机械电子的研究,445750479@qq.com。

TH865

A

1000-3932(2017)12-1159-05

2017-08-03,

2017-11-01)

(Continued from Page 1138)

assembly to realize the purpose of mixed programming; and through making use the unique advantages of the two languages in software development, reducing difficulties in data processing algorithm development and greatly improving the quality of software were implemented. The software can realize COMTRADE record file parsing and management, monitoring information management, voltage/current analysis and visualization of processing results.

Keywordsmixed programming, power distribution network, line-broken monitoring, data processing algorithm, fault recorder

猜你喜欢

报文串口电梯
基于J1939 协议多包报文的时序研究及应用
浅谈AB PLC串口跟RFID传感器的通讯应用
CTCS-2级报文数据管理需求分析和实现
浅析反驳类报文要点
被困电梯以后
ATS与列车通信报文分析
电梯不吃人
USB接口的多串口数据并行接收方法探索
被困电梯,我不怕
基于蓝牙串口适配器的GPS接收机与AutoCAD的实时无线通信