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