秦家正,黃炎,田斌,胡亦恒
(1.江蘇亞威機(jī)床股份有限公司,江蘇 揚州 225200;2.江蘇省金屬板材智能裝備重點實驗室,江蘇 揚州 225200)
工業(yè)自動化控制實時數(shù)據(jù)傳輸系統(tǒng)是目前工業(yè)智能化發(fā)展的一個重要領(lǐng)域。本系統(tǒng)基于RS485 串口通訊協(xié)議開發(fā),相較于傳統(tǒng)的RS232 標(biāo)準(zhǔn),具有傳輸速率高,抗噪聲干擾性好,以及傳輸距離長等優(yōu)點。此外,通訊數(shù)據(jù)幀基于ModBus 通訊數(shù)據(jù)幀進(jìn)行二次設(shè)計,幀功能性強,且配備數(shù)據(jù)校驗與出錯重發(fā)處理機(jī)制。因此本文在工業(yè)自動化設(shè)備的專用系統(tǒng)上,對實時數(shù)據(jù)傳輸技術(shù)進(jìn)行了深入研究和開發(fā),以能夠提供成熟的應(yīng)用解決方案。
本文基于TMS230F2812 型DSP 芯片開發(fā),針對機(jī)床數(shù)控系統(tǒng)的上下位通信實現(xiàn),進(jìn)行了一些探索和研究。
HMI 通過RS485 串口通信協(xié)議實現(xiàn)從機(jī)床運動控制系統(tǒng)獲取機(jī)床實時狀態(tài)信息,監(jiān)控機(jī)械結(jié)構(gòu)加工過程中軸位置以及運動狀態(tài)標(biāo)志位,控制各模擬量、數(shù)字量模塊的輸入輸出信號,以此來完成人機(jī)交互,響應(yīng)遠(yuǎn)端和近端的操作。
RS485 是一個定義平衡數(shù)字多點系統(tǒng)中的驅(qū)動器和接收器的電氣特性的標(biāo)準(zhǔn),使得連接本地網(wǎng)絡(luò)以及多支路通信鏈路的配置成為可能。本系統(tǒng)是以DSP 為核心的通用RS485 數(shù)據(jù)通信系統(tǒng),系統(tǒng)整體設(shè)計在保證了通訊穩(wěn)定性的前提下,具有實用面廣、通用性強以及可自由擴(kuò)展等優(yōu)點。整體RS485 通信系統(tǒng)結(jié)構(gòu)原理如圖1 所示。
圖1 RS485 通信結(jié)構(gòu)圖
Serial Communication Interface 簡稱“SCI”,即串行通信接口。SCI 是一個雙線的異步串口,具有接收和發(fā)送兩根信號線,一般可以看作是UART(通用異步接收/發(fā)送裝置)。TMS230F2812 的內(nèi)部具有兩個相同的SCI 模塊,SCIA 和SCIB。每一個模塊都各有一個接收器和發(fā)送器,SCI 模塊可以產(chǎn)生兩個中斷:SCIRXINT 和SCITIINT,即接收中斷和發(fā)送中斷。本系統(tǒng)使用SCIA 模塊以中斷方式實現(xiàn)數(shù)據(jù)收發(fā),具有系統(tǒng)占用內(nèi)存低、實現(xiàn)效率高等優(yōu)點。
在機(jī)床實際應(yīng)用中,DSP 將傳感器/編碼器反饋數(shù)據(jù)進(jìn)行處理后通過SCI 模塊將實時狀態(tài)信息發(fā)送給HMI,同樣以此來接收HMI 發(fā)送的運動控制與狀態(tài)信息處理指令,并傳達(dá)給最終的執(zhí)行機(jī)構(gòu)。
工業(yè)自動化機(jī)床通常需要通過對加工過程運動控制規(guī)劃進(jìn)行采樣,來監(jiān)控實際加工過程中機(jī)床運動狀況,以及HMI 需實時正確顯示機(jī)床必要加工狀態(tài)信息。因此此通信系統(tǒng)應(yīng)能夠解決以下幾點主要需求:①數(shù)據(jù)校驗功能:數(shù)據(jù)幀出錯檢驗與出錯處理重發(fā)機(jī)制;②數(shù)據(jù)接收/發(fā)送數(shù)據(jù)處理功能:對結(jié)構(gòu)體進(jìn)行數(shù)據(jù)處理,精簡傳輸信息,提高傳輸效率;③采樣數(shù)據(jù)存儲功能:對采樣數(shù)據(jù)進(jìn)行周期性存儲,用于繪制運動規(guī)劃曲線。
整體軟件控制方案包含三部分:①SCIA 數(shù)據(jù)接收/發(fā)送中斷模塊;②接收/發(fā)送數(shù)據(jù)處理模塊;③采樣數(shù)據(jù)處理模塊。
軟件架構(gòu)示意圖如圖2 所示。
圖2 軟件架構(gòu)示意圖
(1)數(shù)據(jù)接收:接收中斷收取到數(shù)據(jù)后,DSP 將接收到的數(shù)據(jù)從接收緩沖寄存器SCIRXBUF 中移出,經(jīng)由數(shù)據(jù)接收處理模塊處理后存放至專用數(shù)據(jù)輸入接口。
(2)數(shù)據(jù)發(fā)送:DSP 將HMI 所需數(shù)據(jù)通過數(shù)據(jù)發(fā)送處理模塊對數(shù)據(jù)輸出接口內(nèi)數(shù)據(jù)進(jìn)行處理,并通過發(fā)送中斷將數(shù)據(jù)發(fā)送。
大蔥采收晾干,葉子萎蔫,然后將蔥捆成捆,放在敞棚空屋或室外陰處干燥,選溫度變化小的地方用黃墑土埋住蔥白貯放。這種方法既防凍保暖,又通風(fēng)良好,不易腐爛變質(zhì),但貯量小,脫水嚴(yán)重,蔥白外層的蔥肉易干枯,皮層加厚,自然損耗量較大。
(3)采樣數(shù)據(jù)處理:為保證運動控制完整性,運動過程中無法進(jìn)行采樣數(shù)據(jù)傳輸。因此需開辟專用內(nèi)存區(qū)塊,周期性將采樣數(shù)據(jù)進(jìn)行保存,運動控制結(jié)束后將存儲數(shù)據(jù)發(fā)送給HMI 用于曲線繪制。
2.3.1 數(shù)據(jù)幀設(shè)計
采用類似ModBus 通訊的ASCII 消息幀格式,單幀數(shù)據(jù)組成如表1 所示。
表1 數(shù)據(jù)幀
(1)序號:本次數(shù)據(jù)幀序號,若發(fā)送一幀通訊未得到應(yīng)答后,則會對相同數(shù)據(jù)幀進(jìn)行再次發(fā)送,對應(yīng)序號加1。
(2)功能代碼:表示數(shù)據(jù)用途,或代表具體指令,詳細(xì)設(shè)計如表2 所示。
表2 功能代碼
(3)數(shù)據(jù)大小:占用2 個字節(jié),值表示數(shù)據(jù)段字節(jié)數(shù),因此單幀能夠傳輸?shù)臄?shù)據(jù)最多為65535 個字節(jié)。
(4)校驗位:占用2 個字節(jié),采用BCC 校驗(即數(shù)據(jù)位按位異或),存放校驗結(jié)果。
(5)結(jié)束位:占用兩個字節(jié),使用回車+換行(ASCII 碼0x0D,0x0A)表示數(shù)據(jù)幀傳輸結(jié)束;
DSP 從SCIARXBUF 寄存器中讀取數(shù)據(jù)后,進(jìn)行數(shù)據(jù)幀頭檢測,檢測到幀頭后對數(shù)據(jù)幀序號、功能代碼、數(shù)據(jù)大小和數(shù)據(jù)進(jìn)行獲取。數(shù)據(jù)獲取完成會進(jìn)行數(shù)據(jù)校驗,校驗未通過,則丟棄該次讀取的數(shù)據(jù),并且重新獲取,連續(xù)數(shù)據(jù)出錯3 次后報警并向HMI 進(jìn)行反饋。程序流程如圖3 所示。
圖3 數(shù)據(jù)接收流程圖
2.3.2 采樣數(shù)據(jù)處理
在機(jī)床運動過程中,為防止發(fā)送數(shù)據(jù)進(jìn)入中斷打斷主運動控制進(jìn)程,開辟專用內(nèi)存區(qū)塊用于存儲采樣數(shù)據(jù),機(jī)床運動結(jié)束后將采樣數(shù)據(jù)發(fā)送給HMI。為保證采樣精度,在接收到HMI 的采樣請求報文“0x00A1”后,DSP 會啟動采樣數(shù)據(jù)記錄函數(shù)每5ms往采樣數(shù)據(jù)存儲區(qū)域內(nèi)記一次數(shù)據(jù),采樣存儲區(qū)域設(shè)計為48KB。
采樣數(shù)據(jù)結(jié)構(gòu)體設(shè)計為8 個Uint16 變量,即每記一次數(shù)據(jù)便會占用16 個字節(jié)存儲空間。每5ms 采樣一次,15s 后即會占滿48KB 的存儲空間,因此本系統(tǒng)設(shè)計最大采樣時長即為15s。
機(jī)床運動結(jié)束或到達(dá)采樣最大時長15s 后,DSP會返回采樣結(jié)束標(biāo)志位,此時上位會下發(fā)請求采樣數(shù)據(jù)報文“0x00AB”。DSP 收到后使用采樣數(shù)據(jù)處理函數(shù)將存儲區(qū)域內(nèi)數(shù)據(jù)按位讀出并發(fā)送給上位。采樣流程如圖4 所示。
圖4 采樣流程圖
測試程序設(shè)置每1000ms 發(fā)送一次數(shù)據(jù),并將各參數(shù)打印出來。測試結(jié)果如圖5、6 所示。
圖5 第一次采樣數(shù)據(jù)
圖6 第二次采樣數(shù)據(jù)
對比可知,打印數(shù)據(jù)準(zhǔn)確無誤,且第二次成功接收到DSP 發(fā)送數(shù)據(jù)并打印距離第一次時差為1001ms,減去設(shè)置的1000ms 間隔,可知單次數(shù)據(jù)幀發(fā)送耗時為1ms。
連續(xù)運行一天再次采樣,數(shù)據(jù)如圖7、8 所示。
圖7 第三次采樣數(shù)據(jù)
圖8 第四次采樣數(shù)據(jù)
對比可知,連續(xù)運行一天后,數(shù)據(jù)打印仍準(zhǔn)確無誤,且數(shù)據(jù)幀發(fā)送耗時為1ms,系統(tǒng)穩(wěn)定性無問題。
本系統(tǒng)有效地將DSP 的高速處理能力和RS485通訊協(xié)議的高性能、高可靠性的優(yōu)點結(jié)合在一起,使DSP 能高效、準(zhǔn)確地將機(jī)床獲取到的各項數(shù)據(jù)信息實時發(fā)送到上位機(jī)HMI,以便用戶進(jìn)行狀態(tài)監(jiān)控與指令下達(dá)。
經(jīng)驗證,本方案對于工業(yè)自動化控制領(lǐng)域各應(yīng)用場合具有參考意義,并且通過移植和改進(jìn)調(diào)整,具有一定的實用價值。