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

時(shí)間:2022-03-12 09:59:00

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

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

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

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

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

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

2同步機(jī)制的實(shí)現(xiàn)

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

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

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

PrivateSubTimer1_Timer()

OnErrorResumeNext

IfList1.ListCount=0ThenExitSub

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

EndSub

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

Subsenditem(ByValitemAsInteger)

OnErrorResumeNext

DoEvents

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

DoEvents

EndSub

對(duì)于數(shù)據(jù)的接收方而言,其Socket始終處于監(jiān)聽狀態(tài),當(dāng)有數(shù)據(jù)到達(dá)時(shí)立即接收數(shù)據(jù)并進(jìn)行分類處理,如果是命令信息,如清除繪圖區(qū)命令,則會(huì)立即執(zhí)行,如果是繪圖信息(包括G代碼仿真)則進(jìn)一步解讀,然后在繪圖區(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

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

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é)議,能實(shí)現(xiàn)數(shù)控G代碼的遠(yuǎn)程同步仿真,以及對(duì)仿真結(jié)果進(jìn)行協(xié)同評(píng)注和文字交流,提升了計(jì)算機(jī)輔助制造的技術(shù)層次和應(yīng)用范圍,使異地協(xié)同設(shè)計(jì)和制造增加了技術(shù)支持。

參考文獻(xiàn)

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

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