網(wǎng)絡(luò)化數(shù)控仿真研究論文

時間:2022-03-12 09:59:00

導(dǎo)語:網(wǎng)絡(luò)化數(shù)控仿真研究論文一文來源于網(wǎng)友上傳,不代表本站觀點,若需要原創(chuàng)文章可咨詢客服老師,歡迎參考。

網(wǎng)絡(luò)化數(shù)控仿真研究論文

摘要目前在數(shù)控編程軟件中,無法進行遠程協(xié)同仿真和評注,本文所設(shè)計的網(wǎng)絡(luò)化數(shù)控仿真環(huán)境基于Socket技術(shù)實現(xiàn)遠程同步仿真和評注,以及聊天室的交流工具,使身處異地的設(shè)計人員能夠通過網(wǎng)絡(luò)來對數(shù)控程序進行遠程的同步仿真和交流溝通,從而實現(xiàn)網(wǎng)絡(luò)化的虛擬制造。

關(guān)鍵詞數(shù)控仿真;同步;G代碼

隨著信息化和網(wǎng)絡(luò)化社會的到來,在經(jīng)濟全球化的趨勢下,大型企業(yè)的不同分部之間,以及不同國家和地域的企業(yè)之間在設(shè)計、制造方面需要大量的分工協(xié)作,而飛速發(fā)展的互聯(lián)網(wǎng)為這種實際工作的需要提供了良好的平臺。而目前的通用的數(shù)控仿真軟件多為本地運行,難以進行遠程協(xié)同操作。因此基于網(wǎng)絡(luò)的數(shù)控仿真環(huán)境有許多優(yōu)勢,如不受時空限制等,能夠進行實時的協(xié)同操作,針對數(shù)控G代碼中的問題進行交流。另一方面,本系統(tǒng)對于數(shù)控技術(shù)的教學也就有重要的作用。通過該軟件,使學生可以直觀地掌握數(shù)控插補的原理,達到較好的教學效果。

1系統(tǒng)總體結(jié)構(gòu)

圖1網(wǎng)絡(luò)化數(shù)控仿真環(huán)境系統(tǒng)結(jié)構(gòu)

網(wǎng)絡(luò)化數(shù)控仿真環(huán)境的系統(tǒng)結(jié)構(gòu)如圖1所示,首先登錄的一方自動成為服務(wù)器端,并等待其他用戶的登錄請求,一旦有其他用戶登錄,雙方通過Socket技術(shù)建立起基于TCP/IP的網(wǎng)絡(luò)通信。其中一方讀入數(shù)控G代碼后首先通過內(nèi)嵌的解釋器進行解釋,然后在繪圖區(qū)中繪制出仿真效果。與此同時,解釋出來的G代碼參數(shù)被傳遞給同步信息處理模塊,按照系統(tǒng)定義的應(yīng)用層協(xié)議生成基于TCP/IP協(xié)議的同步信息,然后由Socket通信控件發(fā)送給客戶端并由客戶端的繪圖程序在繪圖區(qū)中繪制出來。雙方對G代碼的仿真結(jié)果進行討論時,通過協(xié)同評注工具如圓圈、直線等方式做出標記,然后用文字在聊天室中進行交流,其信息也通過基于Socket技術(shù)的同步信息來進行傳遞。

2同步機制的實現(xiàn)

網(wǎng)絡(luò)化數(shù)控仿真環(huán)境的主界面如圖2所示,其中的同步包括三個方面:①G代碼仿真過程的同步;②協(xié)同評注的同步;③文字聊天內(nèi)容的同步。其中關(guān)于文字聊天內(nèi)容的同步現(xiàn)在技術(shù)資料上已經(jīng)很多,不再贅述。以下主要說明G代碼的同步仿真和協(xié)同評注的同步過程。

圖2網(wǎng)絡(luò)化數(shù)控仿真環(huán)境主界面

首先在界面上增添定時器控件Timer和列表框控件List。同步信息的傳遞是由定時器控件Timer來控制的,為了保證仿真過程的連續(xù)性與合適的網(wǎng)絡(luò)數(shù)據(jù)量,要恰當?shù)脑O(shè)置定時器的時間間隔,此處設(shè)置為50毫秒。每當時間間隔到時便啟動相應(yīng)的消息事件向外發(fā)送消息,代碼如下:

PrivateSubTimer1_Timer()

OnErrorResumeNext

IfList1.ListCount=0ThenExitSub

senditem0‘發(fā)送數(shù)據(jù)

EndSub

發(fā)送數(shù)據(jù)是通過Socket控件中的SendData方法來實現(xiàn)的,數(shù)控G代碼經(jīng)過解釋器解釋后所獲得的參數(shù)被送入同步信息處理模塊,然后被轉(zhuǎn)換為格式化的數(shù)據(jù)存放在列表框List1中,Socket控件依次取出其中的元素然后進行發(fā)送,代碼如下:

Subsenditem(ByValitemAsInteger)

OnErrorResumeNext

DoEvents

Socket1.SendData"|"&List1.List(item)&"^"

DoEvents

EndSub

對于數(shù)據(jù)的接收方而言,其Socket始終處于監(jiān)聽狀態(tài),當有數(shù)據(jù)到達時立即接收數(shù)據(jù)并進行分類處理,如果是命令信息,如清除繪圖區(qū)命令,則會立即執(zhí)行,如果是繪圖信息(包括G代碼仿真)則進一步解讀,然后在繪圖區(qū)中由繪圖程序來執(zhí)行,代碼如下:

PrivateSubSocket2_DataArrival(ByValbytesTotalAsLong)

OnErrorResumeNext

DimdatAsString

DimtempchrAsString

Socket2.GetDatadat‘接收數(shù)據(jù)

Forn=1ToLen(dat)

tempchr=tempchr&"^"

e=e+1

Nextn

Forn=1Toe

Ifdat="cls^"ThenPicture1.Cls‘清屏指令

Ifdat=""Then

Forn=0ToList2.ListCount-1

decodeList2.List(0)‘解讀繪圖信息

List2.RemoveItem0

Nextn

整個同步過程中的繪圖信息包括直線、圓弧、圓和徒手繪幾種形式,首先根據(jù)得到繪圖信息進行分類,然后調(diào)用相應(yīng)的繪圖函數(shù)進行繪圖,其代碼如下:

Subdecode(ByValdatAsString)

…‘變量定義

Forn=1ToLen(dat)

tempchr=Mid(dat,n,1)‘提取字段

SelectCasetempchr

Case","

x1=xx1:cur="y1"

Case"<"

y1=yy1:cur="x2"

…‘解讀第一字段

SelectCasecur

Case"x1"

xx1=xx1&tempchr

Case"y1"

yy1=yy1&tempchr

…‘解讀第二字段

EndSelect

EndSelect

Nextn

…‘繪制直線

Picture1.Line(x1,y1)-(x2,y2),vbBlue

…‘繪制圓弧或圓

Picture1.Circle((x+XCent)+(LstZ/ZAsp),(y-YCent)-(LstZ/ZAsp)),RAD,RGB(Col1,Col2,Col3),Angle*2*PI/360,Angle2*2*PI/360

3結(jié)束語

基于網(wǎng)絡(luò)的數(shù)控仿真完全基于現(xiàn)有的Socket技術(shù)和TCP/IP協(xié)議,能實現(xiàn)數(shù)控G代碼的遠程同步仿真,以及對仿真結(jié)果進行協(xié)同評注和文字交流,提升了計算機輔助制造的技術(shù)層次和應(yīng)用范圍,使異地協(xié)同設(shè)計和制造增加了技術(shù)支持。

參考文獻

[1]周自強,沈連婠等,面向用戶的產(chǎn)品虛擬模型協(xié)同討論環(huán)境的實現(xiàn),2005(3):5-10

[2]周自強,沈連婠等,基于Web的虛擬設(shè)計中VRML實時模型的可交互處理方法,計算機輔助設(shè)計與圖形學學報,2005.17(6):1371-1377