數控通信的研究與開發
時間:2022-08-19 03:10:28
導語:數控通信的研究與開發一文來源于網友上傳,不代表本站觀點,若需要原創文章可咨詢客服老師,歡迎參考。
1上下位機通信的層次結構
由于Windows操作系統具有開發資源豐富、操作方便等優點;Linux和Dos操作系統都具有強實時性,通常數控系統的上位機(HMI端)采用Window平臺,下位機(NCU端)采用Linux和Dos平臺。因此,通信層次的劃分要合理,為上層應用軟件提供通用的通信服務接口,屏蔽底層平臺的差異、通信引擎的差異和操作系統的差異。本文中的上下位機間通信采用客戶端/服務器的模式[8]:其中上位機為客戶端,負責向服務器端發起通信請求;下位機為服務器端,提供數據的上傳和下載服務。服務器端分為4個層次:通信引擎層、通信抽象層、通信服務層、數控控制單元;客戶端分為通信引擎層、通信抽象層、通信服務層、通信接口層、NCAPI層、人機交互界面。通信服務結構層次如圖1所示。通信引擎層實現網絡通信、串口通信、總線通信三種通信方式,同時屏蔽操作系統的差異。不同的操作系統中,網絡通信、串口通信、總線通信程序的開發主要是相應功能的函數接口不同,因此通過條件編譯的方式,每一種通信方式的實現程序中包含多個操作系統中該通信方式實現的代碼程序。這樣就實現了通信引擎的跨平臺。通信抽象層主要管理網絡通信、串口通信、總線通信三種通信引擎。抽象出一系列統一的接口供上層使用,從而屏蔽通信引擎的差異,該層主要維護一個已注冊的通信引擎數組,保存每個通信引擎數據結構的指針。通信抽象層利用一個指針保存當前使用的通信引擎。每一個通信引擎的數據結構定義了該通信引擎的一些信息,比如說連接是否建立的判斷,以及發送數據接口、接收數據接口、初始化通信接口、退出通信接口的信息提示等。通信抽象層的實現過程如圖2所示。圖2通信抽象層的實現過程示意圖服務器端的通信服務層提供不同類型數據的通信服務,客戶端的通信接口層提供使用服務器端相應通信服務的接口。這兩層都是在通信抽象層之上的,因此它們不用關心操作系統和通信引擎的差異。客戶端NCAPI層通過調用通信接口層中相應的接口獲取數控系統中對應的數據供人機交互界面使用。
2通信服務層各功能實現
通信服務層是一種面向服務的應用接口,通過調用通信抽象層提供的接口實現通信服務,它不必關心操作系統的差異、通信引擎的差異。通信服務的內容主要包括變量服務、命令服務、文件服務、報警服務等內容。
2.1變量服務的設計及實現
數控系統中有些數據是需要在上下位機之間經常動態更新的,例如加工位置值、進給速度值、加工誤差值等,這一類數據對傳輸的可靠性沒有很高的要求,但是需要周期的上傳和下載。變量服務主要功能就是在服務器端(或NCU端)和客戶端(或HMI端)傳遞需要經常動態更新的數據。變量服務的原理如圖3所示,NCU端數據服務器監控變量存儲區的數據變化的情況,有變化就通過通信接口發送到HMI端;HMI端數據服務器監控服務端口,如果有數據就解析報文,并調用數據訪問接口向本地的變量鏡像區寫數據。因此在一個時間片內,總可以保證HMI端保留有NCU端數據的一個鏡像,這樣就能保證HMI端變量鏡像區和NCU端變量存儲區數據的一致性。HMI訪問數據只面對本地數據,而不用考慮數據從何而來。
2.2命令服務的設計及實現
數控系統中有些數據由HMI端發送給NCU端后,NCU端是需要作出相應動作響應的,例如數控系統中的手動功能。這類數據就是命令,它需要NCU給HMI返回響應,從而使HMI知道NCU端對命令的處理情況。命令服務就是上下位機之間實現數控系統的命令控制,由HMI端發起,NCU端響應。HMI端組裝命令數據報文,通過網絡發送到NCU端,NUC端接收到命令包后,進行相應的數據報文解析,根據數據報文解析的結果進行相應的命令操作,最后再向HMI端發送命令處理成功與否的響應消息數據報文。HMI端在設定的時間內進行超時檢查,確認是否收到成功的響應報文,命令服務的通信模式如圖4所示。
2.3報警服務的設計及實現
數控系統中的報警信息對于數控機床的維護和保證其加工的安全性至關重要,因此HMI端必須顯示數控系統的報警信息。上下位機的報警服務是將NCU端的提示、報警等信息傳遞給HMI端。在NCU端和HMI端,采用統一的消息管理器。在NCU端的報警服務器監控消息隊列,如果有新的消息,則通過報警服務端口將新報警信息發送到HMI端。HMI端監聽報警服務端口,如果有新的報警,則調用消息管理接口,并添加到HMI消息隊列中。報警服務的處理過程如圖5所示。
2.4文件服務的設計及實現
上下位機之間經常需要傳輸加工程序、參數文件和PLC程序等,因此文件服務必不可少。文件服務主要提供目錄的上傳、文件的上傳和下載。文件服務總是由HMI端提出請求,經NCU響應后進入具體的文件服務。在文件下載服務狀態,由HMI發送文件頭,分塊發送文件體和文件結束標識,NCU端接收文件頭、文件體,并將其儲存在文件中。在文件上傳服務狀態,由HMI發送文件頭,分塊接收文件體和文件結束標識,NCU端接收到文件頭后,發送相應的文件體,直至文件結束發送文件結束標識。在目錄服務狀態,將目錄轉換成文件進行傳輸。在傳輸過程中,如果超時或有與狀態不匹配的操作碼出現,則進入復位處理,文件服務重新進入空閑狀態。文件服務器的狀態機如圖6所示。
3實驗驗證
將通信模塊的客戶端和服務器端的程序分別集成到數控系統的上位機和下位機中進行網絡通信、串口通信和總線通信的測試。上下位機采用的都是基于ARMS3C2440的微處理器+FPGA的嵌入式數控系統,上位機主要負責人機交互界面,下位機主要負責運動控制。實驗結果表明,上下位機之間能夠高效、快速和穩定地完成文件、變量、命令和報警等信息的傳輸。上下位機之間以太網通信的測試現場如圖7所示,串口通信的測試現場如圖8所示,總線通信的測試現場如圖9所示。
4結語
本文給出的數控系統上下位機之間的通信服務設計不僅可以實現跨平臺,還可以根據具體的應用環境,選擇不同的通信介質。實驗驗證表明,所研制的通用上下位機通信模型,大大縮短了基于上下位機模式數控系統的開發周期,設計方案滿足實際要求,且簡便可行。
本文作者:吳棟棟周向東工作單位:華中科技大學國家數控系統工程技術研究中心