數(shù)控機(jī)床的網(wǎng)絡(luò)控制系統(tǒng)的實(shí)現(xiàn)
隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,網(wǎng)絡(luò)控制技術(shù)越來(lái)越引起大家的重視。網(wǎng)絡(luò)控制系統(tǒng)是將計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)和自動(dòng)化控制技術(shù)結(jié)合起來(lái),從而實(shí)現(xiàn)網(wǎng)絡(luò)控制。網(wǎng)絡(luò)控制系統(tǒng)集機(jī)床技術(shù)、控制技術(shù)、通信技術(shù)、檢測(cè)技術(shù)、圖像技術(shù)、計(jì)算機(jī)軟件技術(shù)、網(wǎng)絡(luò)技術(shù)等于一體,通過(guò)Internet/ Intranet 對(duì)機(jī)床進(jìn)行遠(yuǎn)程監(jiān)控,可以使機(jī)床具有更大的柔性和可控性。國(guó)內(nèi)外許多學(xué)者已經(jīng)對(duì)網(wǎng)絡(luò)控制系統(tǒng)進(jìn)行了研究和開(kāi)發(fā) ,有的基于Web通訊平臺(tái) ,有的以Windows為開(kāi)發(fā)平臺(tái),用VC++工具,采用Windows Sockets技術(shù) ,還有的基于CORBA中間件技術(shù)等等。
本文采用Java Sockets技術(shù)來(lái)實(shí)現(xiàn)通過(guò)網(wǎng)絡(luò)對(duì)機(jī)床的實(shí)時(shí)監(jiān)控功能。
1、 Java簡(jiǎn)介
對(duì)于通用網(wǎng)絡(luò)編程語(yǔ)言來(lái)說(shuō),三個(gè)必要的支柱是:可移植性、速度和安全性。圖1表示了Java和其他語(yǔ)言進(jìn)行比較的結(jié)果。
JAVA和其他語(yǔ)言比較
Java語(yǔ)言在各方面表現(xiàn)都比較均衡的,通過(guò)以上的比較和分析得知無(wú)論是從長(zhǎng)遠(yuǎn)的發(fā)展和目前的需求來(lái)看,使用Java語(yǔ)言都是一個(gè)正確的選擇。網(wǎng)絡(luò)控制系統(tǒng)作為一個(gè)在網(wǎng)絡(luò)環(huán)境下開(kāi)發(fā)和使用的程序,它必須具有良好的通用性、跨平臺(tái)性、穩(wěn)定性和安全性。使用Java語(yǔ)言來(lái)實(shí)現(xiàn)網(wǎng)絡(luò)編程,能夠滿足其在各個(gè)方面的需要。
Java提供了兩種功能強(qiáng)大的網(wǎng)絡(luò)支持機(jī)制:URL訪問(wèn)網(wǎng)絡(luò)資源的類和用Socket通訊的類,來(lái)滿足不同的要求。一是URL用于訪問(wèn)Internet網(wǎng)上資源的應(yīng)用;另一種是針對(duì)client/server(客戶端/服務(wù)器)模式的應(yīng)用以及實(shí)現(xiàn)某些特殊的協(xié)議的應(yīng)用,它的通訊過(guò)程是基于TCP/IP協(xié)議中傳輸層接口socket實(shí)現(xiàn)的。
1.1 TCP/IP協(xié)議
所謂TCP/IP只是一個(gè)簡(jiǎn)稱,分別指網(wǎng)絡(luò)協(xié)議IP(Internet Protocol)及傳輸控制協(xié)議TCP(Transmission Control Protocol),是國(guó)際互聯(lián)網(wǎng)技術(shù)中兩個(gè)非常重要的通信協(xié)議,適用于任何一組互聯(lián)網(wǎng)絡(luò)上的通訊。并且組建以TCP/IP為網(wǎng)絡(luò)的成本相對(duì)較少,以TCP/IP組建的網(wǎng)絡(luò)也較為彈性。TCP/IP體系結(jié)構(gòu)是專門用來(lái)描述TCP/IP 協(xié)議族的,TCP/ IP 的結(jié)構(gòu)將網(wǎng)絡(luò)分成四個(gè)層次,分別是應(yīng)用層、傳輸層、網(wǎng)絡(luò)層和數(shù)據(jù)鏈路層。
1.2 Java sockets簡(jiǎn)介
套接字( socket )是一種通用的網(wǎng)絡(luò)編程接口,它是對(duì)通信端點(diǎn)的一種抽象,提供了一種發(fā)送和接收數(shù)據(jù)的機(jī)制。套接字目前有兩種: 數(shù)據(jù)報(bào)套接字( Datagram Sockets) 和流式套接字(Stream Sockets) 。我們采用流式套接字,因?yàn)榱魇教捉幼挚梢詫?shù)據(jù)按順序無(wú)重復(fù)地發(fā)送到目的地,它提供的是一種可靠的面向連接的數(shù)據(jù)傳輸方式。
1.2.1 流式套接字的使用方法
流式套接字的使用方法是基于連接的協(xié)議,在傳輸、接收數(shù)據(jù)之前必須先建立連接,然后才能從數(shù)據(jù)流中讀出數(shù)據(jù)。首先服務(wù)器要?jiǎng)?chuàng)建一個(gè)用于偵聽(tīng)的套接字,為該套接字分配地址之后,調(diào)用listen ( ) 函數(shù)使它處于偵聽(tīng)狀態(tài); 客戶機(jī)在創(chuàng)建套接字完畢后,為套接字分配地址,然后調(diào)用connect () 函數(shù),請(qǐng)求與服務(wù)器套接字連接; 服務(wù)器套接字在收到客戶機(jī)的連接請(qǐng)求后,調(diào)用accept () 函數(shù),該函數(shù)創(chuàng)建一個(gè)用于連接的套接字。應(yīng)用該套接字和客戶機(jī)上的連接套接字,就可以在服務(wù)器和客戶機(jī)之間進(jìn)行數(shù)據(jù)傳輸了。在結(jié)束傳輸之后,雙方調(diào)用closesocket ( ) 函數(shù)關(guān)閉套接字。
Java Stream Sockets 的通信流程圖
2、網(wǎng)絡(luò)控制系統(tǒng)的實(shí)現(xiàn)
2.1 網(wǎng)絡(luò)控制系統(tǒng)原理
網(wǎng)絡(luò)控制系統(tǒng)軟件運(yùn)行在客戶機(jī)上,客戶機(jī)通過(guò)Intranet/Internet和服務(wù)器連接。機(jī)床的數(shù)控系統(tǒng)在服務(wù)器中運(yùn)行,首先啟動(dòng)服務(wù)器的本機(jī)數(shù)控系統(tǒng),進(jìn)行初始設(shè)置后,進(jìn)入網(wǎng)絡(luò)控制狀態(tài),打開(kāi)偵聽(tīng)套節(jié)字,等待客戶機(jī)的連接請(qǐng)求,待收到客戶機(jī)的連接請(qǐng)求后,對(duì)聯(lián)機(jī)信息進(jìn)行驗(yàn)證,如果符合聯(lián)機(jī)條件,則和客戶機(jī)建立連接,雙方可以互相發(fā)送和接收信息或指令。服務(wù)器的數(shù)控系統(tǒng)在網(wǎng)絡(luò)控制狀態(tài)下可以利用攝像頭實(shí)時(shí)采集機(jī)床加工狀態(tài)圖像和參數(shù),將圖像以位圖格式保存并定時(shí)發(fā)送到客戶機(jī)顯示加工狀態(tài),將狀態(tài)參數(shù)實(shí)時(shí)發(fā)送到客戶機(jī);服務(wù)器和客戶機(jī)之間也可以通過(guò)超級(jí)語(yǔ)音或網(wǎng)絡(luò)對(duì)講機(jī)進(jìn)行語(yǔ)音交流。在客戶機(jī)的遠(yuǎn)程控制系統(tǒng)軟件中可以編輯數(shù)控加工代碼,然后將數(shù)控代碼傳遞到服務(wù)器中,并下載到PMAC 上等待控制指令。從客戶機(jī)向服務(wù)器發(fā)送機(jī)床加工控制指令,控制機(jī)床運(yùn)轉(zhuǎn),同時(shí)接收服務(wù)器發(fā)送的信息,動(dòng)態(tài)監(jiān)視機(jī)床加工情況。通過(guò)遠(yuǎn)程控制程序,客戶機(jī)還可在線修改機(jī)床加工參數(shù),并能調(diào)試機(jī)床。
2.2 網(wǎng)絡(luò)控制系統(tǒng)硬件結(jié)構(gòu)
本文設(shè)計(jì)了一套NC嵌入PC 型的開(kāi)放式數(shù)控系統(tǒng)。系統(tǒng)的控制軸數(shù)為3軸,聯(lián)動(dòng)軸數(shù)為2軸,本系統(tǒng)以工業(yè)PC作為主機(jī),CNC的內(nèi)核采用美國(guó)DELTATAU公司推出PMAC-LITE型可編程多軸運(yùn)動(dòng)控制器,PC 上的CPU與PMAC卡的CPU構(gòu)成主從式雙微處理器結(jié)構(gòu),兩個(gè)CPU各自實(shí)現(xiàn)相應(yīng)的功能,其中PMAC完成插補(bǔ)運(yùn)算、位置控制、刀補(bǔ)、速度處理以及PLC等實(shí)時(shí)控制;PC則通過(guò)調(diào)用Pcomm32包函數(shù)庫(kù)里的相應(yīng)功能函數(shù),實(shí)現(xiàn)數(shù)控系統(tǒng)的基本功能。為了實(shí)現(xiàn)PMAC多軸運(yùn)動(dòng)控制的功能,還需在PMAC板上擴(kuò)展相應(yīng)的I/O板、伺服驅(qū)動(dòng)單元、伺服電機(jī)、編碼器等,最終形成一個(gè)完整的控制系統(tǒng)。網(wǎng)絡(luò)系統(tǒng)采用"服務(wù)器+ 客戶機(jī)"方式,數(shù)控系統(tǒng)運(yùn)行在服務(wù)器上,網(wǎng)絡(luò)控制軟件運(yùn)行在客戶機(jī)上,服務(wù)器和客戶機(jī)通過(guò)網(wǎng)卡和通信電纜連接在Intranet/ Internet 上,數(shù)控機(jī)床上安裝CCD 攝像頭,用來(lái)監(jiān)視機(jī)床加工情況,并通過(guò)圖像采集卡,將機(jī)床的運(yùn)轉(zhuǎn)情況實(shí)時(shí)采集保存;服務(wù)器和客戶機(jī)PC上均設(shè)置語(yǔ)音功能,以便二者通過(guò)對(duì)話能更好的交流。
網(wǎng)絡(luò)控制系統(tǒng)硬件結(jié)構(gòu)圖
2.3 網(wǎng)絡(luò)控制系統(tǒng)軟件設(shè)計(jì)
友好的人機(jī)界面對(duì)于任何控制系統(tǒng)是不可缺少的。本系統(tǒng)界面設(shè)計(jì)采用Windows 編程中的分隔視技術(shù),將數(shù)控系統(tǒng)人機(jī)界面分成二個(gè)子窗口。左邊的窗口為圖像顯示窗口,實(shí)現(xiàn)機(jī)床加工過(guò)程的圖像監(jiān)視;右邊的窗口為網(wǎng)絡(luò)控制窗口,實(shí)現(xiàn)網(wǎng)絡(luò)聯(lián)機(jī)與斷開(kāi)、加工代碼編輯及發(fā)送、機(jī)床加工狀態(tài)參數(shù)顯示、機(jī)床在線網(wǎng)絡(luò)調(diào)試等功能。
軟件設(shè)計(jì)的關(guān)鍵是數(shù)據(jù)的網(wǎng)絡(luò)傳遞,為了保證數(shù)據(jù)及時(shí)傳遞,在軟件設(shè)計(jì)中采用了多線程技術(shù),專門建立一個(gè)線程對(duì)采集的機(jī)床數(shù)據(jù)進(jìn)行網(wǎng)絡(luò)傳遞。該系統(tǒng)的流程圖如圖4 所示。數(shù)控代碼在客戶機(jī)上編輯好之后,可以一次性傳遞給服務(wù)器,服務(wù)器將數(shù)控代碼保存到內(nèi)存中,然后在編譯執(zhí)行數(shù)控代碼??刂浦噶畹膫鬟f可以隨時(shí)從客戶機(jī)傳遞到服務(wù)器,服務(wù)器接到指令后立即執(zhí)行。對(duì)于機(jī)床加工圖像和狀態(tài)參數(shù)的傳遞則要復(fù)雜一些。在服務(wù)器上,數(shù)控系統(tǒng)通過(guò)CCD攝像頭實(shí)時(shí)采集加工圖像,利用定時(shí)器在每一個(gè)周期內(nèi)將圖像保存為位圖文件,然后將位圖文件通過(guò)網(wǎng)絡(luò)傳遞到客戶機(jī)上,客戶機(jī)在接收完每一個(gè)位圖文件后,用定時(shí)器在每一個(gè)周期在圖像顯示窗口進(jìn)行刷新顯示,使加工圖像保持連續(xù)性。同時(shí)服務(wù)器上的數(shù)控系統(tǒng)實(shí)時(shí)采集機(jī)床狀態(tài)參數(shù),利用定時(shí)器每一個(gè)周期將以一定格式的數(shù)據(jù)傳遞到客戶機(jī),客戶機(jī)對(duì)數(shù)據(jù)進(jìn)行接收后分析,再用定時(shí)器在一個(gè)周期內(nèi)對(duì)狀態(tài)參數(shù)進(jìn)行更新顯示。
為了避免位圖數(shù)據(jù)和參數(shù)數(shù)據(jù)在傳遞時(shí)的混亂現(xiàn)象,在服務(wù)器端采用中斷方法,在傳遞圖像數(shù)據(jù)時(shí)中斷參數(shù)數(shù)據(jù)的傳遞,等圖像數(shù)據(jù)傳遞完之后再傳遞參數(shù)數(shù)據(jù),這樣就很好的解決了在數(shù)據(jù)傳遞過(guò)程中的占用通道的矛盾問(wèn)題。軟件在運(yùn)行過(guò)程中圖像顯示和參數(shù)更新會(huì)存在一定的滯后性,這與網(wǎng)絡(luò)傳遞的速度以及數(shù)據(jù)量的大小有一定關(guān)系。
3、網(wǎng)絡(luò)安全策略
遠(yuǎn)程控制的安全性是非常關(guān)鍵而又復(fù)雜的問(wèn)題,主要包括信息的完整、保密和可用等因素。采用加密性網(wǎng)絡(luò)安全技術(shù)可以提供網(wǎng)絡(luò)通信的端到端的安全保障。防火墻技術(shù)也能提高服務(wù)器端的安全等級(jí),此外,漏洞掃描和入侵檢測(cè)技術(shù)對(duì)提高系統(tǒng)安全性能也帶來(lái)好處。
網(wǎng)絡(luò)控制系統(tǒng)軟件流程圖
4、總結(jié)
本文具體介紹了一套應(yīng)用于數(shù)控機(jī)床的網(wǎng)絡(luò)控制系統(tǒng),基于TCP/ IP 通訊協(xié)議,利用Java Sockets (套接字) ,建立服務(wù)器/ 客戶機(jī)模式,裝有數(shù)控系統(tǒng)的主機(jī)作為服務(wù)器,網(wǎng)絡(luò)控制端作為客戶機(jī)。通過(guò)客戶機(jī)對(duì)數(shù)控機(jī)床進(jìn)行網(wǎng)絡(luò)控制和調(diào)試,可以使機(jī)床具有更大的柔性和可控性。該系統(tǒng)可以異地實(shí)時(shí)操作機(jī)床,基本達(dá)到動(dòng)態(tài)調(diào)試和監(jiān)控機(jī)床運(yùn)轉(zhuǎn)情況的目的,為機(jī)床控制和調(diào)試技術(shù)提供了高效的途徑,具有一定的實(shí)用性和價(jià)值。
本文相關(guān)信息
- [新聞資訊] 數(shù)控機(jī)床的故障診斷及F編程
- [新聞資訊] 數(shù)控機(jī)床的故障診斷及維修實(shí)例
- [新聞資訊] 數(shù)控機(jī)床的安全隱患應(yīng)該注意
- [新聞資訊] 數(shù)控機(jī)床的安裝方法介紹
- [新聞資訊] 數(shù)控機(jī)床的發(fā)展趨勢(shì)及國(guó)內(nèi)發(fā)展現(xiàn)狀
- [新聞資訊] 數(shù)控機(jī)床的四大領(lǐng)域設(shè)備需求
- [新聞資訊] 數(shù)控機(jī)床的四大領(lǐng)域設(shè)備需求數(shù)控機(jī)床
- [新聞資訊] 數(shù)控機(jī)床的伺服系統(tǒng)性能探究
- [有關(guān)專業(yè)] 數(shù)控機(jī)床核心技術(shù)九成靠進(jìn)口 形勢(shì)不樂(lè)觀
- [新聞資訊] 數(shù)控機(jī)床回參考點(diǎn)故障排除方法