劉培躍,張亞寒
(石家莊職業技術學院機電工程系,河北石家莊050081)
目前國內大部分企業對數控機床的運行狀態監控和動靜態數據采集管理仍然停留在單機在線或串口通信方式階段,無法實現集成管理,形成了信息化孤島。計算機網絡技術的發展尤其是現場總線以及工業以太網技術的發展,使企業數控設備集成監管成為了可能。為實現多臺數控機床的集中管理與控制,計算機必須能獲取各數控機床的運行數據,包括[1-3]:(1)機床的運行狀態:是處于加工運行還是待機;是否有報警;正在運行哪一個程序;是否結束了此次的加工任務等。(2)數控系統與機床的信息與數據,如CNC 存儲的加工程序、主軸上的刀具號、已加工的工件數、加工時間、程序的運行時間、CNC 參數、伺服參數、主軸參數、機床參數、PMC 參數、PMC的梯形圖、宏變量、報警號與信息等。就是說,計算機需能夠實時監視各數控機床的運行狀況,了解對機床進行維護的信息。另外,計算機還必須能夠做到[4]:(1)對各機床進行必要、實時的控制如機床的暫停、急停;(2)信息與數據的上傳與在線調試,如上傳加工程序、在線調試PMC 程序等。
文中以FANUC 系統為例介紹基于以太網的數控機床集成技術,使用Visual Basic 調用FOCAS 函數庫,并通過網絡傳輸與OpenCNC 連接,讀取和管理CNC數據,開發數控機床網絡化集成系統,實現在線監測機床狀態、評估運行趨勢、診斷機床故障等功能。
數控機床網絡化集成系統結構如圖1所示[5],計算機與配置快速以太網板(Fast Ethernet Board)和數據服務器板(Fast Data Server Board)的數控機床通過以太網連接,利用Visual Basic 開發機床機床應用程序,通過FOCAS(FANUCOpen CNC API Specifications)提供的動態鏈接庫FWLIB32.DLL 調用和上傳機床數據,并由專用數據庫管理機床數據。

圖1 系統構架
系統的主要功能包括[6-7]:
(1)數據管理。通過計算機對聯網機床的NC 程序、刀具偏移數據、刀具壽命管理數據、螺距誤差補償數據、用戶宏變量等集中管理上傳、下載、編輯等。
(2)運轉監視。顯示當前絕對軸實時坐標、加工進給率、主軸轉速、進給倍率、模式、機床狀態、主軸轉速、進給速度等NC 機床的運轉實況和機床通電時間、運轉時間、加工部件數、待機、暫停、手動時間分布等加工成績情況統計。
(3)維護維修。實現機床強制保養,機床維修用各種數據的備份/恢復,定期收集用于故障分析的CNC 履歷數據,梯形圖順序的監視器顯示和編輯,機床信號的狀態顯示、PMC 參數的顯示和更改設定等機床維修功能。
應用程序需要調用FOCAS 提供的動態鏈接庫FWLIB32.DLL,并通過TCP/IP 通信協議建立計算機與CNC 之間的連接。當連線成功時,控制器會回傳一數據類型為Integer(32)型的Handle 值,在離線時釋放。Handle 值將作為資料讀取時的鑰匙,利用此鑰匙才能正確使用其余功能語法來讀取相對應的資料。
Visual Basic 應用程序需調用基本連線功能函數cnc_allclibhndl3 來建立連接,并確定CNC 的IP 地址、部件號和連接時間。具體語法為:Declare Function cnc_allclibhndl3 Lib" FWLIB32.DLL"(ByVal Ipaddr As String,ByVal Port As Short,ByVal Timeout As Integer,ByRef FlibHandle As Integer)As Short。
其中:Ipaddr(String)是以字串方式指定欲連接的CNC 控制器的網絡位置(即IP 地址)或者主機名稱(Host Name),例如:" 192.168.0.1 " 或" CNC-1.FACTORY";Port(Short)為欲連接CNC控制器的部件號(Port Number);Timeout(Integer)代表指定連線時間,以s 為單位。上述調用的回傳值為EW_OK(0)時表示連線成功。
連接釋放時,調用cnc_freelibhndl 函數,只需輸入連接成功時所返回的Handle 值,具體語法為:Declare Function cnc_freelibhndl Lib " FWLIB32.DLL"(ByVal FlibHandl As Integer)As Short。FlibHandl 為連接時返回的Handle 值,當返回值為W_OK(0)時表示連接釋放成功。
上述操作是通過調用基本連線功能實現的。除此之外,FOCAS 共提供CNC 控制軸和控制主軸相關功能、CNC 程序相關功能、CNC 工件管理相關功能、CNC 歷史記錄相關功能、PMC 相關功能等18 類功能函數[2],借助這些函數可充分實現計算機與CNC 的交互,讀取或回傳所需數據。下面就該系統運轉監視模塊的坐標軸數據讀取和數據管理模塊的宏變量的讀寫詳述開發過程。
CNC 的伺服坐標軸表示方式分為機械、絕對和相對坐標3 種,同時也可以顯示各坐標軸的剩余位移量。讀取坐標軸位置方法有多種,例如:cnc_absolute 可以讀取絕對坐標,cnc_ relative 可以讀取相對坐標。文中使用功能較為全面的cnc_rdposition 來讀取各軸坐標信息。
cnc_rdposition 函數需輸入查詢的CNC 的Handle地址和欲查詢的坐標類型,回傳信息為ODBPOS 數據,坐標值讀取回傳狀態及錯誤信息?;貍鞯腛DBPOS 信息結構包括abs、mach、rel 和dist 四項,分別表示伺服軸的絕對、機械和相對坐標,以及各軸執行的剩余位移量。圖2 為CNC 坐標軸讀取流程。

圖2 讀取伺服軸坐標值流程
下面以該系統讀取各坐標軸功能為例簡述開發過程。GetPositionData 為存儲各坐標軸信息的變量,包含機械(Machine)、絕對(Absolute)、相對(Relative)坐標值,及程序剩余位移量(DistanceToGo)等資料。數據結構為Pos(Double)、Name(String)以及Unit(String),分別代表坐標值、軸名稱及使用單位。示例程序如下:
Spl_number=3//設置軸數;
Cnc_Handle="1111"http://設置連接Handle;
ReDimGetPositionData.Machine(spdl_number)
//重設GetPositionData.Machine(i)的大小;
Dim RefODBPOS As New ODBPOS//定義數據回傳存儲結構ODBPOS;
Cnc_rdposition(cncHandle,1,spdl_number,RefODBPOS)//調用cnc_rdposition 函數
For I As Integer=0 To spdl_number-1 Step 1
GetPositionData.Machine(i).Parameter=tODBPOS.Pos(i).mach.data/10(tODBPOS.Pos(i).mach.dec);//存儲坐標值進入GetPosition Data.Machine(i).Parameter 中;
GetPositionData_Machine(i).Name=(tODBPOS.Pos(i).mach.name).ToString;//存儲軸名稱進入Get-PositionData_Machine(i).Name;
SelectCasetODBPOS.Pos(i).mach.unit.ToString
Case”0”
GetPositionData.Machine(i).Unit=”mm”
Case”1”
GetPositionData.Machine(i).Unit=”inch”
Case”2”
GetPositionData.Machine(i).Unit=”degree”
Case Else
GetPositionData.Machine(i).Unit=””
End Select
Next//存儲坐標單位進入GetPositionData.Machine(i).Unit 中。
在FANUC CNC 數控系統中,宏變量分為局部變量、全局變量和系統變量3 種,前兩項為用戶編寫數控程序時指定,最后一項為系統狀態變量。FOCAS規定:局部變量只能讀取,全局變量和系統變量既可讀又可寫。宏變量操作分為單一和多重陣列讀寫兩類,宏變量單一讀寫較為簡單,因此下面以多重陣列變量的讀取為范例介紹開發過程,見圖3。

圖3 宏變量讀取流程
Cnc_rdmacror 為多重陣列讀取函數,只能用于局部和全局變量的讀取,系統變量不能使用。Cnc_rdmacror函數需要輸入查詢CNC 的(1)Handle 地址;(2)讀取范圍起始編號(s_number);(3)結束編號(e_number);(4)存儲回傳數據的IODBMR 資料結構;(5)IODBMR 資料大小等。若函數讀取成功,則開始回傳,依次讀出各變量編號數值,讀取DATA 資料結構中的變量數字(mcr_val)及小數點位數(dec_val),并根據回傳數字及小數點位數換算變量實際數值,公式為(mcr_val/10dec_val))。
FANUC 的以太網功能主要通過TCP/IP 協議實現,使用時需在數控系統上設定IP、TCP 和UDP 端口數據等信息。下面以內嵌式以太網為例說明設定方法[9]:首先修改20 號參數為5;按SYSTEM→公共鍵,出現IP 地址設定畫面,如圖4所示,當系統與多臺數控機床連接時,需要填寫路由器地址,如不需要,則不用填寫;然后按下FOCAS2 鍵,進行FOCAS2 的設置,如圖5所示,TCP 設定為8193,UDP一般設定為8192,時間間隔一般設定為10。

圖4 數控系統IP 地址設定

圖5 FOCAS2 設定
遠程網絡化制造是數控技術發展的趨勢,數控機床管理與使用走向網絡化、智能化已成為必然?;谝蕴W、TCP 協議和Socket 編程技術的數控系統網絡化集成系統可以實現一臺服務器聯網管理多臺數控機床并進行遠程監控,可以提高企業生產資源的生產效率和有效利用率,具有較高推廣和實用價值。
[1]張愛紅.數控機床網絡故障診斷系統的開發與應用[J].機床與液壓,2011,39(11):154-156.
[2]張允剛,常春,劉偉,等.基于Socket 和多線程的遠程監控系統[J].控制工程,2006,13(2):175-177.
[3]莊殿錚.數控機床Internet 遠程監控中提高實時性的方法[J].組合機床與自動化加工技術,2004(4):2-83.
[4]徐鳴鶴,冷春艷,熊鴻康.機床數控系統的組網與遠程監控的實現[J].機床與液壓,2011,39(12):85-88.
[5]尚德波.面向加工車間的網絡數控操作平臺研究與設計[J].制造業信息化,2009,31(9):108-110.
[6]陳賢清,黃河,古文偉,等.數控機群數據信息采集系統的研究與設計[J].機床與液壓,2011,39(10):99-106.
[7]鄒品軍,王宵,劉會霞.網絡監聽在FANUC 機床聯網上的應用[J].機床與液壓,2005(8):93-198.
[8]BEIJING FANUC 公司.FOCAS1_2 動態鏈接庫函數光盤(A02B-0207-J737#ZZ11)[CD].
[9]BEIJING FANUC 公司.以太網板/數據服務器板操作說明書(B-63354EN)[M].