數控機床遠程監控平臺開(kāi)發(fā)和實(shí)現
時(shí)間:2015-01-13 1 引言
數控系統的網(wǎng)絡(luò )監控,通常以網(wǎng)絡(luò )為媒介,實(shí)現數控系統與系統外的其它控制系統或計算機的通訊。計算機等上位機通過(guò)網(wǎng)絡(luò )來(lái)實(shí)現對數控設備的遠程控制和無(wú)人化操作、遠程加工程序的傳輸、遠程診斷和遠程維修服務(wù)、技術(shù)服務(wù)。
網(wǎng)絡(luò )化數控裝備是近年來(lái)的一個(gè)新亮點(diǎn)。國外的一些著(zhù)名數控機床和數控系統制造公司推出了相關(guān)的概念和樣機,例如德國西門(mén)子(Siemens)公司展出的Open Manufacturing Environment(開(kāi)放制造環(huán)境,簡(jiǎn)稱(chēng)OME),日本山崎馬扎克(Mazak)公司展出的“Cyber Production Center”(智能生產(chǎn)控制中心,簡(jiǎn)稱(chēng)CPC)等,反映了數控機床加工向網(wǎng)絡(luò )化方向發(fā)展的動(dòng)向。國內在網(wǎng)絡(luò )化數控裝備方面的研究也取得了一定的進(jìn)展。武漢華中數控股份有限公司研制開(kāi)發(fā)的華中世紀星(HNC-21M)銑削數控裝置就是具有網(wǎng)絡(luò )功能的數控產(chǎn)品,可以利用以太網(wǎng)實(shí)現網(wǎng)絡(luò )通信。
本文主要設計了一款遠程監控平臺,實(shí)現PC 機與DNC-11數控系統間的網(wǎng)絡(luò )通訊,實(shí)現機床加工狀態(tài)、機床參數及故障診斷等多信息交互和融合,使操作人員能通過(guò)PC機上的人機界面監控數控機床的運行狀態(tài),查閱其加工歷史信息或進(jìn)行相關(guān)故障診斷,為未來(lái)數控機床網(wǎng)絡(luò )化管理、物聯(lián)網(wǎng)建設等提供良好的平臺服務(wù)。
2 監控平臺總體結構設計
遠程監控平臺是由一臺PC機、一個(gè)集線(xiàn)器、若干個(gè)DNC-11數控系統連接機床而成,形成一個(gè)星形的拓撲結構。遠程監控平臺的總體結構如圖1所示。
本平臺是客戶(hù)機/服務(wù)器模式,即C/S模式。特殊之處在于客戶(hù)端與服務(wù)器之間是一對多的關(guān)系,即一個(gè)客戶(hù)端可與多個(gè)服務(wù)器之間進(jìn)行通訊。
PC 機作為客戶(hù)端,用戶(hù)通過(guò)操作HMI(即人機界面)向服務(wù)器端發(fā)起通訊請求和服務(wù)請求,并通過(guò)自定義的數據包格式完成機床狀態(tài)信息和控制信息的交互,最終圖形化、數字化地顯示在HMI上。DNC-11為服務(wù)器端,在接到客戶(hù)端請求后提供相應的服務(wù)。DNC-11是帶有網(wǎng)絡(luò )功能的數控系統,能夠提供基于TCP/IP協(xié)議的網(wǎng)絡(luò )通訊服務(wù),可以將數控系統的運行狀態(tài)數據采集后周期上傳,也可以接收控制指令進(jìn)行相關(guān)的控制動(dòng)作。
本平臺采用上下位機的結構,將實(shí)時(shí)性要求高的任務(wù)分配給下位機,將實(shí)時(shí)性要求不高的任務(wù)分配給上位機PC。PC端運行監控平臺應用程序,通過(guò)通訊服務(wù)接口與DNC-11等進(jìn)行網(wǎng)絡(luò )通訊,實(shí)現顯示監測結果、圖形及機床加工軌跡,遠程發(fā)送控制指令,修改設置機床參數等功能。
3 監控平臺應用軟件的設計
遠程監控平臺應用程序的總體結構包括設備層、數據通訊服務(wù)層、核心功能層和應用訪(fǎng)問(wèn)層。軟件分層結構如圖2所示。軟件的開(kāi)發(fā)實(shí)現主要集中在數據通訊服務(wù)層和核心功能層。
數據通訊服務(wù)層主要提供參數服務(wù)、命令服務(wù)和文件服務(wù)等。參數服務(wù)是為上層提供讀取/修改DNC-11 的參數數據的服務(wù)。命令服務(wù)是為上層提供遠程控制的服務(wù),將命令組裝成相應命令報文,通過(guò)以太網(wǎng)向DNC-11傳輸,DNC-11會(huì )根據解析報文后得到的操作命令來(lái)執行用戶(hù)需要的控制操作。文件服務(wù)是向上層提供加工程序的傳輸,加工程序目錄的選擇,系統文件的卸載及加載,加工程序的選擇等服務(wù)。
核心功能層將具體實(shí)現的功能劃分為三類(lèi):設備管理、實(shí)時(shí)監測和在線(xiàn)測試。設備管理具體包括數控機床的參數管理,數控機床的遠程控制,數控機床的加工程序管理,數控機床設備信息管理等。實(shí)時(shí)監測主要指數控機床運行狀態(tài)監測,各軸狀態(tài)監測,PLC狀態(tài)監測,以及數控機床關(guān)鍵部位監測等。在線(xiàn)測試包括數控機床故障模擬測試等。
4 網(wǎng)絡(luò )通訊接口的設計
在本文設計的監控平臺中,網(wǎng)絡(luò )通信作為數據傳輸唯一通道,是整個(gè)監控平臺的信息支撐。監控平臺對通訊接口設計的功能需求主要有:通訊資源的初始化和釋放;網(wǎng)絡(luò )連接的處理;網(wǎng)絡(luò )狀態(tài)的判斷;數據的接收和發(fā)送。
遠程監控平臺是基于TCP/IP網(wǎng)絡(luò )協(xié)議開(kāi)發(fā)的。在TCP/IP的四層模型中,傳輸層定義了兩個(gè)端到端協(xié)議:傳輸控制協(xié)議TCP和用戶(hù)數據報協(xié)議UDP。在數據完整性和準確性要求較高的場(chǎng)合,采用TCP協(xié)議;在實(shí)時(shí)性要求較高且數據完整性要求較低的場(chǎng)合,采用UDP協(xié)議。UDP通信不需要建立連接,并且沒(méi)有數據確認和重傳機制,因此實(shí)時(shí)性較高。但在數控機床遠程監控平臺的通訊中,各功能模塊對數據完整性的要求較高,因而采用TCP傳輸協(xié)議開(kāi)發(fā)。
Windows Sockets是從Berkeley Sockets擴展而來(lái)的,定義了TCP/IP網(wǎng)絡(luò )最為通用的API,以動(dòng)態(tài)鏈接庫的形式提供給用戶(hù)使用。Socket的出現,使用戶(hù)可以很方便的訪(fǎng)問(wèn)TCP /IP,從而開(kāi)發(fā)各種網(wǎng)絡(luò )應用程序。Windows Sockets與協(xié)議無(wú)關(guān)并向下兼容,可以使用任何底層傳輸協(xié)議提供的通信能力,來(lái)為上層應用程序完成網(wǎng)絡(luò )數據通信,而不必關(guān)心底層網(wǎng)絡(luò )鏈路的通信情況,能真正實(shí)現底層網(wǎng)絡(luò )通信對應用程序的透明。
Windows Sockets主要支持三種套接字類(lèi)型,分別為:流式套接字(SOCK_STREAM)、數據報式套接字(SOCK_DGRAM)、原始式套接字(SOCK_RAM)。
根據采用的通訊協(xié)議,并考慮到對通信可靠性和正確性的要求較高,本監控平臺選用流式套接字來(lái)實(shí)現網(wǎng)絡(luò )通訊?;贑lient /Server模式的流式套接字通訊過(guò)程如圖3 所示。
InitializeEngine是通訊資源初始化接口,Uninitialize Engine是通訊資源釋放接口。通訊資源的初始化和釋放主要是通訊端口分配釋放、IP地址和遠端IP 地址的賦值、變量的初始化、套接字的加載和緩沖區的分配等。
StateLoop是網(wǎng)絡(luò )連接處理接口。網(wǎng)絡(luò )的連接狀態(tài)有三種:未連接、等待連接和正在連接。網(wǎng)絡(luò )連接處理是根據不同的連接狀態(tài),客戶(hù)端和服務(wù)器端執行相應的操作。
IsConnected是網(wǎng)絡(luò )連接狀態(tài)判斷接口。連接狀態(tài)的判斷就是通過(guò)變量的當前值返回網(wǎng)絡(luò )連接的狀態(tài)。
Send 和Receive是發(fā)送/接收數據接口。數據的收發(fā)就是調用socket API來(lái)接收和發(fā)送數據??蛻?hù)端是一對多的,要將接收的數據根據不同的設備號存入不同的緩沖區;服務(wù)器端超過(guò)設定的時(shí)間未發(fā)送成功則進(jìn)行重發(fā)。
平臺中作為客戶(hù)端的PC機能夠同時(shí)與多臺在線(xiàn)服務(wù)器端進(jìn)行網(wǎng)絡(luò )連接,因而采用多線(xiàn)程技術(shù),對每臺設備開(kāi)一條獨立的通信線(xiàn)程。通信線(xiàn)程中調用相應的通訊接口,通過(guò)檢測標識位,滿(mǎn)足條件時(shí)發(fā)送緩存中已寫(xiě)入的數據,并當接收到的數據包長(cháng)度大于零時(shí),調用數據包的解析函數,將解析出來(lái)的有效數據傳遞給HMI 或者存儲到相應數據緩存區。在成功完成通訊的基礎上,實(shí)現參數的發(fā)送和接收需要考慮的是參數信息的存取、維護,以及數據包的組包和解析。
5 HMI功能實(shí)現
根據對數據通訊服務(wù)層和核心功能層的分析,遠程監控平臺人機界面要實(shí)現的功能有參數服務(wù)功能、命令服務(wù)功能、文件服務(wù)功能等。各功能實(shí)現的流程類(lèi)似,采用的具體方法存在差異,本文主要介紹參數服務(wù)功能的實(shí)現。
運行應用程序,進(jìn)入監控平臺,添加數控設備后初始化的界面如圖4所示。
一對多的客戶(hù)端,能同時(shí)顯示和操作多個(gè)數控設備的監控界面,雙擊需要監控的數控設備,即能彈出對應數控設備的監控界面,如圖5所示。
每臺數控設備的參數管理界面主要顯示的是參數號、參數名和參數值等,其中參數號與參數名不支持用戶(hù)修改,參數值為用戶(hù)的編輯項,因而參數的顯示可使用兩個(gè)靜態(tài)文本控件和一個(gè)編輯框控件。但由于上述顯示方式中存在問(wèn)題及不足,在人機界面的開(kāi)發(fā)中,使用繼承自CListCtrl類(lèi)的CReportCtrl類(lèi),在列表控件已有的功能基礎上封裝數據項的編輯功能,并提供一些操作的函數接口。使用列表控件顯示參數的界面如圖6所示。
從圖中可以看出,使用列表形式顯示的參數可以方便的添加、刪除等,并且能盡可能多的顯示參數信息,界面的美觀(guān)性也得到提高。
CReportCtrl 類(lèi)中的SetEditable 函數,可以改變進(jìn)行修改操作的布爾型標志變量的值,能方便的實(shí)現編輯操作只對參數值對應列有效。CReportCtrl類(lèi)中在編輯功能完成時(shí),會(huì )向列表控件所在的父窗口發(fā)送一條消息,代碼如下:
GetParent()- > SendMessage(WM_EDIT_COMMITTED,
(WPARAM)m_ptEdittingx,(LPARAM)m_ptEdittingy);
在父窗口中捕獲WM_EDIT_COMMITTED消息,在對應的響應函數中編寫(xiě)代碼,將編輯的參數值寫(xiě)到緩存中,等待發(fā)送。在響應函數中可以編寫(xiě)任意參數值的寫(xiě)緩存操作,因此在代碼量上有縮減,代碼重復率下降。
6 結束語(yǔ)
本文介紹的機床遠程監控平臺采用windows環(huán)境PC上位機,通過(guò)socket流式套接字與linux環(huán)境的下位機進(jìn)行網(wǎng)絡(luò )數據交互,圖形化、數字化地處理和顯示數控系統的參數及狀態(tài)等信息,實(shí)現了遠程控制和遠程監測等功能,解決了數控機床狀態(tài)以及故障等信息的遠程傳輸問(wèn)題,為實(shí)現數控機床的無(wú)人化操作與監控提供了基礎。