連 賽 史先傳 陳煒俊 杭云龍
(常州大學機械工程學院)
電梯平衡鏈冷定型盤繞設備無線數(shù)據(jù)采集系統(tǒng)的設計與實現(xiàn)①
連 賽 史先傳 陳煒俊 杭云龍
(常州大學機械工程學院)
針對電梯平衡鏈盤繞設備上的高度傳感器與主控PLC之間的數(shù)據(jù)傳輸問題,提出了主從兩片STM32單片機之間基于NRF24L01無線通信,從單片機與PLC基于Modbus協(xié)議采用RS-232接口串口通信的方案。設計了主從STM32單片機系統(tǒng)和硬件電路,給出了PLC主站和從站STM32相關的軟件參數(shù)配置。測試結果表明:該方案實現(xiàn)了傳感器與PLC之間的短距離實時無線數(shù)據(jù)傳輸,提高了電梯平衡鏈盤繞設備的自動化程度。
數(shù)據(jù)采集 NRF24L01 STM32 PLC Modbus
現(xiàn)階段,國內(nèi)外對電梯平衡鏈的冷卻定型主要是采用人工盤繞的方式,成熟的電梯平衡鏈盤繞設備相對較少。在已投入生產(chǎn)運行的電梯平衡鏈冷定型盤繞設備[1]中,因為采用平面堆碼方式的鏈條在重力的作用下會向下滑落,并且鏈條在換層處高度也會發(fā)生變化 ,而平衡鏈盤繞設備上間歇性旋轉的盤繞裝置[2]正常運行需要與最上面一層鏈條保持在一定高度范圍內(nèi),這就造成了該設備運行中需要人工停機調(diào)整盤繞裝置的高度。
傳統(tǒng)的方法是使用電刷和電纜的組合將盤繞裝置上的超聲波測距等傳感器數(shù)據(jù)傳送給核心控制單元PLC來補償盤繞裝置逐層盤繞所需的高度,這樣會大幅增加盤繞裝置的重量。筆者基于電梯平衡鏈盤繞設備,設計了一種主從兩片STM32單片機之間采用NRF24L01無線通信,從單片機與PLC基于Modbus協(xié)議采用RS-232接口串口通信方案。相較于傳統(tǒng)的PLC與傳感器之間的有線數(shù)據(jù)傳輸[3,4],這種通信方式具備以下優(yōu)點:首先利用STM32單片機信息處理速度快的特點,提高了PLC控制的實時性;其次不受線纜的限制,傳感器安裝不受空間位置的約束。
整體控制方案采用三菱FX3U系列PLC作為控制執(zhí)行核心,用來實現(xiàn)對電梯平衡鏈盤繞的控制,如盤繞裝置運動軌跡的控制、鏈條下放動作的控制、接收鏈條高度傳感器的數(shù)據(jù)及盤繞裝置的z軸方向上的調(diào)節(jié)等。數(shù)據(jù)采集處理傳輸部分的方案采用主從兩片STM32單片機,從單片機采用Modnus協(xié)議通過RS-232接口與PLC的通信模塊相連,其中PLC作為Modbus從站,從單片機作為Modbus主站。主單片機與傳感器相連,主單片機將處理好的數(shù)據(jù)通過NRF24L01無線發(fā)送給從單片機,從而將超聲波測距傳感器和光電開關傳感器采集的數(shù)據(jù)無線傳輸給核心控制單元PLC[5,6],主單片機需要從PLC中讀取Pt100模塊的數(shù)據(jù),從而對超聲波測距進行溫度補償,以提高測量精度。數(shù)據(jù)處理傳輸部分結構如圖1所示。
系統(tǒng)選用的是STM32單片機。STM32系列是由STMicroelectronics(意法半導體集團)基于高性能、低成本、低功耗的嵌入式應用專門設計的ARM Cortex-M3內(nèi)核控制器。其中STM32F101c8t6的工作頻率高達36MHz,配備有豐富的外設和通信接口,如128KB的Flash、一個12位的ADC、3個16位通用定時器、3個UART接口、兩個I2Cs及一個SPI接口等。其中SPI接口硬件連接NRF24L01,進行SPI通信。
圖1 整體設計方案
系統(tǒng)選用Nordic公司研發(fā)的NRF24L01無線收發(fā)器。NRF24L01是一款工作頻段在2.4~2.5GHz之間的無線收發(fā)器芯片。其中輸出功率、頻道選擇和協(xié)議的配置通過SPI接口進行設置,能夠自動重發(fā),數(shù)據(jù)傳輸通道共6個,無線傳輸速率高達2Mbit/s。在沒有功放的條件下傳輸距離約為30m,在規(guī)定距離范圍內(nèi)通信穩(wěn)定。
數(shù)據(jù)傳輸系統(tǒng)的硬件由主/從單片機通過NRF24L01實現(xiàn)無線數(shù)據(jù)傳輸,從單片機基于Modbus協(xié)議通過RS-232接口與 PLC實現(xiàn)數(shù)據(jù)傳輸。
由于STM32的USART和RS-232接口的電平不同,互不相容,因此需要對電平進行轉換。MAX232是美信集團為RS-232標準串口專門設計的單一電源用于電平轉換的芯片,從而實現(xiàn)TTL/COMS電平與和EIA電平的相互轉換,實現(xiàn)STM32單片機與PLC通信,其電路原理如圖2所示。
圖2 STM32串口電平轉換電
STM32單片機通過自帶的SPI通信接口與NRF24L01通信模塊相連,穩(wěn)定可靠。圖3 給出了STM32與NRF24L01的相應端口的電路連接圖[7]。
圖3 NRF24L01電路連接
FX系列的三菱PLC與外部設備采用RS-232串口通信,通過GX Works2軟件的參數(shù)對外部設備的傳送規(guī)格、通信協(xié)議進行設置。當使用通信協(xié)議時,主站PLC和從站STM32的USART參數(shù)配置要保持一致,其串口波特率設為9 600Baud,數(shù)據(jù)位長度為8位,無奇偶校驗位,一個停止位。
Modbus協(xié)議串行傳輸模式有兩種:RTU和ASCII模式。本方案采用傳輸效率更高的RTU模式,在相同波特率的情況下該模式傳輸?shù)淖址芏雀哂贏SCII模式。在RTU模式中,一個信息(字符幀)每個字節(jié)分成兩個十六進制字符表示,其Modbus報文構成見表1[8]。
表1 Modbus報文構成
常用的4種功能碼見表2。本系統(tǒng)需要從STM32向PLC傳輸盤繞裝置上的兩個開關量和測距傳感器的數(shù)值并讀取PLC中PT100模塊的溫度數(shù)據(jù),因此需要使用03、05、06這3個功能碼。對Modbus協(xié)議進行簡化,規(guī)定數(shù)據(jù)域長度均為4個字節(jié),依次為地址高8位、地址低8位、內(nèi)容高8位、內(nèi)容低8位。再加上地址域、功能碼域和CRC16域,報文總長度為8Byte。由于報文的總長度固定,所以標準RTU模式的3.5個字符幀間間隔固定,從站Modbus驅(qū)動的接收模塊避免了對幀間間隔時間進行判斷并重新配置,節(jié)約了STM32的內(nèi)部資源[9]。
表2 Modbus常用功能碼
STM32的Modbus協(xié)議驅(qū)動主要由3部分構成:串口的初始化程序塊、RS-232總線數(shù)據(jù)的采集程序塊和Modbus報文的處理應答程序塊。串口初始化程序塊除需要對USART參數(shù)配置外,還需要通過相應的庫函數(shù)使能USART中斷,在“USART_IRQHandler(void)”中斷服務函數(shù)中對接收和發(fā)送的數(shù)據(jù)進行檢測和處理。
STM32串口通信流程如圖4所示。STM32的USART使能RXNE和失能TXE,默認為接收狀態(tài)。數(shù)據(jù)總線空閑狀態(tài)為高電平,數(shù)據(jù)接收器檢測下降沿時,移位寄存器將接收全部的字符幀,并且去掉其中的起始位和停止位再送入RDR(Receive Data Register),同時RxNE(Receive Data Register is not empty)標志位硬件置1,STM32進入串口中斷服務函數(shù)迅速地將RDR里的數(shù)據(jù)讀入到Modbus相應的報文接收數(shù)組RXBuffer[i]里,然后軟件清除RxNE標志位并退出本次中斷,直到填充滿報文后,RxFinish被軟件置1,變量i清零。RxFinish標志位沒有被清零的情況下,總線上傳輸來的數(shù)據(jù)無法移入到RDR中。在主程序循環(huán)中,一旦發(fā)現(xiàn)RxFinish標志軟件置1,就會進入Modbus報文處理應答程序塊。
圖4 STM32串口通信流程
在Modbus報文處理應答程序模塊中,首先檢測報文接收的第1個數(shù)據(jù),若從站號不正確,則舍棄本報文,清零RxFinish標志位,RDR重新接收總線傳輸來的數(shù)據(jù)。如果從站號正確則進行CRC校驗,通過CRC校驗后,則進行數(shù)據(jù)處理,即根據(jù)不同的功能碼來填充Modbus應答報文TxBuffer[i],并使能TXE(Transmit Register Enable)發(fā)送中斷和軟件清零RxFinish標志位。當TXE使能后,STM32立即進入串口中斷服務函數(shù),把TxBuffer[i]里的元素送入到TDR(Transmit Data Register),發(fā)送移位寄存器將數(shù)據(jù)傳輸?shù)綌?shù)據(jù)總線上,結束本次中斷。直到應答報文發(fā)送完為止,失能TXE發(fā)送中斷,并清零變量i和RxFinish標志位,串口接收器重新接收數(shù)據(jù)。當CRC校驗不通過和或者功能碼錯誤,則進入超時延時,然后清零RxFinish標志位,RDR重新接收Modbus報文。
NRF24L01通過SPI協(xié)議向其內(nèi)部寄存器寫配置參數(shù)來配置其工作模式、通信速率、數(shù)據(jù)寬度及自動應答等。本系統(tǒng)采用NRF24L01的Enhanced ShockBurst模式,數(shù)據(jù)傳輸更加可靠。發(fā)送方要求中斷發(fā)送設備在接收數(shù)據(jù)后應答信號,以便檢查發(fā)送方是否有數(shù)據(jù)丟失。若發(fā)現(xiàn)數(shù)據(jù)丟失,則通過重新發(fā)送功能發(fā)送丟失的數(shù)據(jù)。該模式同時控制應答和重發(fā)功能,從而減少了STM32的工作量。其中主STM32作為無線數(shù)據(jù)接收端, NRF24L01對應的配置代碼如下:
SPI_Nrf_WriteBuffer(Nrf_WRITE_REG+RX_ADDR_P0,RX_ADDR,RX_ADR_Width);
/*指定RX的節(jié)點位置,選用接收通道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通道的有效數(shù)據(jù)長度*/
SPI_Nrf_WriteRegister(Nrf_WRITE_REG+RF_SETU P,0x0f);
/*選用RF參數(shù)為0db,2Mbps,使能低噪聲增益*/
SPI_Nrf_WriteRegister(Nrf_WRITE_REG+CONFIG, 0x0f);
/*選用工作模式:POWER_UP,EN_CRC和16BIT_CRC,設置接收模式*/
為了驗證數(shù)據(jù)傳輸情況,編寫了一組驗證程序,在PLC相連的觸摸屏上添加一個窗口以顯示距離數(shù)據(jù)。和主STM32相連的高度傳感器與障礙物的起始距離為20cm,然后改變兩者之間的距離。
PLC觸摸屏上窗口顯示數(shù)據(jù)隨著距離的改變而變化,距離數(shù)據(jù)準確。通信測試結果表明傳感器與PLC之間短距離無線數(shù)據(jù)傳輸正常,具有良好的實時性。其中一組PLC發(fā)送的查詢報文見表3,檢測出從單片機應答的報文見表4,此時高度傳感器與障礙物距離為30cm。
表3 PLC查詢報文
表4 STM32應答報文
針對電梯平衡鏈冷定型盤繞設備對傳感器數(shù)據(jù)傳輸?shù)囊?,設計了基于主從兩個STM32單片機和NRF24L01無線收發(fā)器的短距離無線數(shù)據(jù)傳輸系統(tǒng)。該系統(tǒng)克服了空間布線的局限,主STM32可以直接將傳感器采集的復雜數(shù)據(jù)處理后快速地無線傳輸給從STM32,從STM32通過RS-232接口再傳輸給核心控制單元PLC,對PLC與高精度傳感器之間高速實時無線數(shù)據(jù)傳輸具有指導意義。
[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之間的串行通信實現(xiàn)[J].化工自動化及儀表, 2010, 37(2):78~80.
[4] 段紅英.基于單片機的MODBUS總線協(xié)議實現(xiàn)技術研究[J].自動化與儀器儀表, 2015, (12):157~158.
[5] 張永宏,曹健,王麗華.基于51單片機與nRF24L01無線門禁控制系統(tǒng)設計[J].江蘇科技大學學報(自然科學版), 2013, 27(1):64~69.
[6] 郭輝,傅成華,吳浩.基于nRF2401的PLC無線通信控制器[J].電子設計工程, 2010, 18 (3):113~115.
[7] 關學忠,李倩文.基于STM32的數(shù)據(jù)采集與網(wǎng)絡發(fā)布系統(tǒng)[J].化工自動化及儀表, 2017, 44(2):187~190.
[8] 史運濤,孫德輝,李志軍, 等. 基于Modbus協(xié)議的通訊集成技術研究[J].化工自動化及儀表, 2010, 37(4):67~72.
[9] 程明亞,史先傳,錢磊,等.基于RS-485總線的觸摸屏和多個STM32從站通信的研究與實現(xiàn)[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