国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于VC6.0的數(shù)控仿真系統(tǒng)中數(shù)控代碼翻譯模塊研究

2013-08-11 07:12王賢虎安徽水利水電職業(yè)技術(shù)學(xué)院機(jī)械工程系安徽合肥231603
關(guān)鍵詞:程序段鏈表坐標(biāo)值

王賢虎,郭 微 (安徽水利水電職業(yè)技術(shù)學(xué)院機(jī)械工程系,安徽 合肥231603)

近十幾年來,數(shù)控技術(shù)的發(fā)展非常迅猛。利用計(jì)算機(jī)完成從產(chǎn)品設(shè)計(jì)、工藝設(shè)計(jì)、數(shù)控代碼 (NC代碼)仿真到加工裝配等所有環(huán)節(jié),不僅可以大大縮短產(chǎn)品研發(fā)周期,還大大降低了生產(chǎn)成本[1]。為此,筆者對數(shù)控仿真系統(tǒng)中NC代碼的處理問題進(jìn)行了研究,以便實(shí)現(xiàn)數(shù)控代碼的快速、高效翻譯過程。

1 數(shù)控代碼翻譯模塊總體設(shè)計(jì)

數(shù)控代碼翻譯模塊包括NC代碼讀入、分析和執(zhí)行3個子模塊。首先,將編輯好的數(shù)控程序讀入到仿真系統(tǒng)中,然后對代碼進(jìn)行分析,包括詞法分析、語義分析等,如果沒有發(fā)現(xiàn)代碼錯誤,則數(shù)控程序可以進(jìn)入實(shí)施階段。

機(jī)床加工過程中主要運(yùn)動形式包括直線運(yùn)動和圓弧運(yùn)動[2]。如果能得到刀具軌跡上各斷點(diǎn)的坐標(biāo)值,就能實(shí)現(xiàn)直線運(yùn)動或圓弧運(yùn)動。其中起始點(diǎn)的坐標(biāo)值在語義分析完成后就能夠得到,軌跡上其他點(diǎn)坐標(biāo)值需要通過插補(bǔ)運(yùn)算來得到。對于上述坐標(biāo)值可采用隊(duì)列的形式存儲。當(dāng)產(chǎn)生新的坐標(biāo)值時,在隊(duì)列尾部增加節(jié)點(diǎn)來存儲這些數(shù)據(jù)。當(dāng)然不是將整個程序所得到的坐標(biāo)值一起存儲在一個隊(duì)列中,而是按照程序段進(jìn)行存儲,一個程序段對應(yīng)一個隊(duì)列,若隊(duì)列中為空,意味著機(jī)床在此沒有產(chǎn)生運(yùn)動,可以繼續(xù)執(zhí)行后續(xù)的程序段,直至整個程序執(zhí)行完成。

在完成NC代碼的翻譯之后,將獲得的機(jī)床運(yùn)行相關(guān)信息輸出到運(yùn)動仿真模塊,從而驅(qū)動模型進(jìn)行數(shù)控加工過程的仿真。數(shù)控代碼處理過程如圖1所示。

圖1 數(shù)控代碼處理流程圖

2 數(shù)控代碼翻譯模塊設(shè)計(jì)

2.1 NC代碼讀入子模塊

數(shù)控程序采取逐行執(zhí)行的方式,也就是執(zhí)行完一行程序段再去執(zhí)行下行程序段,直至整個數(shù)控程序結(jié)束。為此選擇一個單向鏈表結(jié)構(gòu)來存儲數(shù)控代碼的各個程序段,鏈表中的一個節(jié)點(diǎn)對應(yīng)一行程序段。下面為一個列表的具體結(jié)構(gòu):

2.2 NC代碼分析子模塊

通過NC代碼讀入子模塊,可以將數(shù)控程序文件中的內(nèi)容存儲在一個單向鏈表中。其中,鏈表中的每一個字符串對應(yīng)數(shù)控程序的一行程序段。然后分析每個字符中的內(nèi)容,也就是要將每行程序段指令字后的數(shù)值單獨(dú)取出后為程序執(zhí)行階段所用。具體可以通過以下方式完成:

考慮到上述數(shù)據(jù)在程序執(zhí)行階段會被經(jīng)常使用,可以選擇雙向鏈表來存儲取出的指令字后的數(shù)值,具體內(nèi)容如下:

其中tool_center_x、tool_center_y、tool_center_z存儲每個程序段刀具中心位置坐標(biāo)。

2.3 NC代碼執(zhí)行子模塊

利用NC代碼分析子模塊可以得到存儲各指令字后數(shù)值的雙向鏈表line_data,但鏈表中并沒有存儲刀具軌跡路徑上其他斷點(diǎn)的坐標(biāo)值。要獲得相應(yīng)坐標(biāo)值,需要通過插補(bǔ)運(yùn)算的方法來獲得,具體過程如下:數(shù)控程序經(jīng)過讀入階段和分析階段后,可以得到每個程序段指令字、起始點(diǎn)坐標(biāo)值、刀具中心坐標(biāo)值等相關(guān)信息,從而能夠做出象限的判斷、終點(diǎn)判別等操作,并為后續(xù)的插補(bǔ)運(yùn)算提供所需信息。插補(bǔ)運(yùn)算的算法較多,筆者選擇了逐點(diǎn)比較法[3],其具體內(nèi)容如下:

以上定義的單向鏈表是用來存儲各個節(jié)點(diǎn)的插補(bǔ)指令、各節(jié)點(diǎn)的坐標(biāo)平面代碼值、當(dāng)前節(jié)點(diǎn)的象限值。其中2個聯(lián)合是為了實(shí)現(xiàn)終點(diǎn)判別和象限轉(zhuǎn)換。因?yàn)樵跀?shù)控加工過程中,各軸的進(jìn)給方向是根據(jù)后一點(diǎn)相對于當(dāng)前點(diǎn)所處的象限來確定的。由于空間中有很多象限,這樣在每個象限都需要進(jìn)行插補(bǔ)運(yùn)算判別,這樣較為繁瑣,同時效率不高。為此采用直線插補(bǔ)的方式建立如下函數(shù),并將函數(shù)值賦予變量quad[4]:

圖2 正在加工的數(shù)控仿真車床圖

其中x_start,y_start,x_end,y_end分別為前后程序段中的刀心的插補(bǔ)起、終點(diǎn)坐標(biāo)值。

3 仿真結(jié)果

以VC6.0編程軟件為基礎(chǔ),探討了數(shù)控仿真系統(tǒng)中NC代碼的處理問題并實(shí)現(xiàn)了數(shù)控加工過程的仿真 (見圖2)。由于數(shù)控仿真系統(tǒng)的應(yīng)用可以大大降低產(chǎn)品試制次數(shù),從而縮短產(chǎn)品上市周期。因此,對于數(shù)控仿真系統(tǒng)中的數(shù)控代碼翻譯模塊的研究具有重要的現(xiàn)實(shí)意義。

[1]王太勇 .基于動態(tài)四叉樹的數(shù)控銑削加工仿真的研究 [J].機(jī)床與液壓,2006(9):21-23.

[2]嚴(yán)蔚敏,吳偉民 .數(shù)據(jù)結(jié)構(gòu) [M].北京:清華大學(xué)出版社,1997.

[3]王賢虎 .數(shù)控車削仿真系統(tǒng)的研究 [D].合肥:合肥工業(yè)大學(xué),2006.

[4]張幸兒 .計(jì)算機(jī)編譯原理 [M].北京:科學(xué)出版社,1999.

猜你喜歡
程序段鏈表坐標(biāo)值
基于WinCC的物料小車控制系統(tǒng)設(shè)計(jì)與仿真
數(shù)控系統(tǒng)手輪回退功能的研究與實(shí)現(xiàn)*
基于二進(jìn)制鏈表的粗糙集屬性約簡
跟麥咭學(xué)編程
基于NC程序段的提高數(shù)控加工監(jiān)控閾值與信號同步的方法*
基于二分法迭代的凸模數(shù)控銑削加工編程*
基于鏈表多分支路徑樹的云存儲數(shù)據(jù)完整性驗(yàn)證機(jī)制
數(shù)控銑床FANUC 0i 系統(tǒng)刀具半徑補(bǔ)償系統(tǒng)參數(shù)設(shè)置解析
基于宏程序的數(shù)控車削加工應(yīng)用
鏈表方式集中器抄表的設(shè)計(jì)
斗六市| 高阳县| 安庆市| 永嘉县| 咸宁市| 民丰县| 巍山| 泸定县| 长武县| 德保县| 秦安县| 来安县| 青海省| 娱乐| 本溪市| 石台县| 福州市| 建阳市| 莲花县| 寿阳县| 黄龙县| 湘阴县| 汨罗市| 南乐县| 泌阳县| 繁峙县| 维西| 桑植县| 呼伦贝尔市| 塘沽区| 高陵县| 临江市| 修武县| 康乐县| 淮滨县| 基隆市| 辽源市| 抚州市| 永泰县| 新巴尔虎左旗| 嘉鱼县|