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