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