999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于正則表達(dá)式的譯碼方法研究

2022-09-02 03:23:46趙慶志王宏甲王嘉琦
制造業(yè)自動化 2022年8期
關(guān)鍵詞:定義

劉 洋,趙慶志,王宏甲,王嘉琦

(山東理工大學(xué) 機(jī)械工程學(xué)院,淄博 255000)

0 引言

數(shù)控加工是現(xiàn)在使用較為廣泛的一種自動化加工方式,數(shù)控系統(tǒng)作為數(shù)控加工設(shè)備的核心部分,起到了存儲、計算、控制的作用,通過數(shù)字、字母、符號組成的標(biāo)準(zhǔn)代碼對數(shù)控設(shè)備進(jìn)行驅(qū)動,在數(shù)控系統(tǒng)中,譯碼模塊是傳遞加工信息的核心部分,是人與數(shù)控設(shè)備交流的媒介[1~3]。所以高效而準(zhǔn)確的譯碼模塊是數(shù)控系統(tǒng)的必備部分。

逐字比較法在傳統(tǒng)數(shù)控系統(tǒng)中的應(yīng)用較為廣泛,基于逐字比較法的譯碼模塊開發(fā)代碼行數(shù)較多,且代碼繁瑣,對于多種類組合線段的加工軌跡加工效率較低。現(xiàn)階段對于基于正則表達(dá)式的譯碼方法開發(fā)仍有很大的完善空間。

QT是一個基于C++的跨平臺圖形用戶界面程序開發(fā)框架,本文采用C++作為編程語言,基于QT平臺,通過Qstring類對NC代碼進(jìn)行定義,QregularExpression類對NC代碼進(jìn)行詞語法匹配,結(jié)合正則表達(dá)式類對NC代碼的譯碼模塊進(jìn)行優(yōu)化設(shè)計,實現(xiàn)高效準(zhǔn)確的譯碼模塊開發(fā)。

1 正則表達(dá)式

1.1 正則表達(dá)式簡介

正則表達(dá)式又稱為規(guī)則表達(dá)式,可預(yù)先將普通字符串以及特殊字符進(jìn)行組合完成一組邏輯公式,根據(jù)組合完成的邏輯公式可以對Qstring類數(shù)據(jù)進(jìn)行分析處理,判斷輸入的字符串?dāng)?shù)據(jù)是否符合預(yù)先設(shè)定的表達(dá)式的特征,然后對接收字符串?dāng)?shù)據(jù)進(jìn)行查找、匹配、替換、分割等操作。正則表達(dá)式高效的檢索效率非常適合對已經(jīng)規(guī)范的NC代碼進(jìn)行分析和處理,可在QT平臺基于正則表達(dá)式類開發(fā)數(shù)控系統(tǒng)的譯碼模塊[4,5]。

1.2 正則表達(dá)式基本語法規(guī)則

正則表達(dá)式的字符分為普通字符和特殊字符,特殊字符又稱為元字符,主要使用元字符對字符串模板進(jìn)行設(shè)置。

Perl語言是在unix環(huán)境下運行的一種編程語言,Perl對字符有著很強(qiáng)的處理能力,通用表達(dá)式、量詞、斷言等是Perl語言的元字符的主要組成部分,通用表達(dá)式的作用是對有特殊意義的字符進(jìn)行表達(dá),量詞對通用表達(dá)式的表達(dá)次數(shù)進(jìn)行記錄,文本的聲明則需要斷言來進(jìn)行。正則表達(dá)式的元字符和其對應(yīng)的功能如表1所示。

表1 常用正則表達(dá)式元字符功能說明

1.3 正則表達(dá)式在QT中的實現(xiàn)

譯碼模塊開發(fā)環(huán)境選擇QT5.7社區(qū)版,此版本封裝的QregularExpression類以Perl語言的正則表達(dá)為基礎(chǔ),優(yōu)化且兼容Perl的正則表達(dá)式。

定義的QregularExpression類包括模式選項和模式字符串,兩者構(gòu)成它的正則表達(dá)式。模式字符串通過給構(gòu)造函數(shù)賦值定義正則表達(dá)式的格式,配合模式選項可以進(jìn)一步更改模式字符串的代表含義。

完成正則表達(dá)式的類定義后,QregularExpression內(nèi)的匹配函數(shù)match()返回數(shù)據(jù)類型仍然為QregularExpression類。反回類內(nèi)封裝了hasMatch()函數(shù)可以判斷正則表達(dá)式的匹配情況,hasMatch()函數(shù)反回數(shù)據(jù)類型內(nèi)封裝了capture()函數(shù),capture()反回的數(shù)據(jù)類型最終為QString字符串。例如若捕捉字符X即函數(shù)可賦值capture(”X”),即為按照定義的正則表達(dá)式匹配后捕獲的字符串。

以此為根據(jù),可以根據(jù)設(shè)定的正則表達(dá)式來匹配捕獲NC代碼中的坐標(biāo)信息,可以通過正則表達(dá)式來對坐標(biāo)字符串X?Y?內(nèi)的坐標(biāo)信息進(jìn)行提取且匹配到X以及Y軸方向。編寫的捕獲實驗程序如圖1所示:

圖1 正則表達(dá)式示例程序

2 譯碼模塊的總體框架設(shè)計

譯碼模塊需要從標(biāo)準(zhǔn)的NC代碼中提取加工信息,包括加工軌跡線段類型、主軸轉(zhuǎn)速、進(jìn)給速度、加工坐標(biāo)等[6~8]。NC代碼預(yù)先寫到txt的文本中,通過編寫的上位機(jī)對txt文件進(jìn)行訪問,經(jīng)過正則表達(dá)式對文件內(nèi)容中的有用加工信息匹配和提取,譯碼流程如圖2所示:

圖2 譯碼模塊流程圖

3 譯碼模塊的功能設(shè)計

3.1 代碼預(yù)處理

NC代碼主要包括標(biāo)準(zhǔn)G代碼和M代碼,同時較為常用的有刀具功能T、進(jìn)給速度F、以及主軸轉(zhuǎn)速S和坐標(biāo)XYZ[9,10]。譯碼模塊將對以上的字母和數(shù)字組合而成的NC代碼進(jìn)行處理分析并且提取信息,定義的NC代碼編寫以FANUC數(shù)控系統(tǒng)的代碼格式為標(biāo)準(zhǔn)。

當(dāng)上位機(jī)載入NC代碼文件后,開始逐行對內(nèi)容進(jìn)行讀取,去除文件中的無用信息,調(diào)用正則類中的preprocess()函數(shù),此函數(shù)的形參為Qstring類,可對應(yīng)上位機(jī)識別代碼文件后創(chuàng)建生成的字符串類。

對于空格以及換行符的去除,調(diào)用Qsting::remove()函數(shù)可直接完成。正則表達(dá)式QregularExpression類則用來去除注釋,由于注釋一般用“\”來與代碼內(nèi)容進(jìn)行分隔,因此用來匹配的正則表達(dá)式為QregularExpression char_reg(“\.*”)。

“.”作為正則表達(dá)式中的元字符可匹配任意字符,“*”表示可多次匹配前導(dǎo)字符,通過此正則表達(dá)式可以完成對注釋內(nèi)容的過濾。

3.2 代碼詞語法分析

完成NC代碼的預(yù)處理后,接下來的詞法分析的作用是對NC代碼的指令字母與坐標(biāo)字母后的參數(shù)組合進(jìn)行分析,判斷加工代碼中的組合是否符合規(guī)范標(biāo)準(zhǔn),然后在操作界面上做出反饋。舉例與代碼行數(shù)字母N匹配的正則表達(dá)式如下所示,可對NC代碼行數(shù)N進(jìn)行詞法分析匹配。

其它參數(shù)字母的正則表達(dá)式可按此方法定義。

當(dāng)NC代碼中的字母全部為合法字符后,下一步需要匹配其語法是否符合規(guī)范。NC代碼的語法匹配就是確保指令G代碼以及功能M代碼不重復(fù)或者錯序出現(xiàn),防止加工順序產(chǎn)生沖突[11~13],當(dāng)檢測出錯誤時也可以產(chǎn)生反饋,語法匹配的流程圖如圖3所示:

圖3 語法匹配流程圖

本課題在應(yīng)對語法匹配時對每一行代碼通過正則表達(dá)式進(jìn)行匹配,保證單行代碼中的指令代碼和輔助代碼只出現(xiàn)一次,提取代碼數(shù)據(jù)采用匹配刪除法,以G代碼為例利用G代碼的正則表達(dá)式對指令代碼進(jìn)行提取儲存后刪除匹配過的代碼,同時對創(chuàng)建的全局變量賦值,防止數(shù)據(jù)的重復(fù)定義。

4 譯碼模塊的實際加工測試

4.1 基于QT的上位機(jī)開發(fā)

譯碼模塊和整個數(shù)控系統(tǒng)的開發(fā)平臺都為QT5,譯碼模塊編寫完成后檢測其是否可以正確識別NC代碼,在開發(fā)的上位機(jī)中加入了圖形仿真模塊可以直接顯示譯碼后的加工路徑,通過對加工路徑的模擬判斷譯碼是否成功。NC代碼和模擬加工路徑仿真結(jié)果如圖4所示。

圖4 上位機(jī)界面仿真

4.2 基于STM32的下位機(jī)開發(fā)

將PC機(jī)作為上位機(jī),下位機(jī)的控制板選擇基于ARM架構(gòu)的STM32F4系列單片機(jī)。運行通過POWERMILL軟件生成的組合線段的加工代碼來進(jìn)行測試實驗。加工軌跡是直線和圓、雙曲線、拋物線的組合線段,加工效果如圖5所示。

圖5 加工測試

在加工過程中,雕刻機(jī)運行較為平穩(wěn),沒有明顯的震動,雕刻加工軌跡平滑,實驗表明,本文提出的基于正則表達(dá)式的譯碼方式在QT平臺上可行。

5 結(jié)語

本課題實現(xiàn)了基于正則表達(dá)式的譯碼模塊在QT5平臺上的開發(fā),同時在QT5平臺開發(fā)了數(shù)控系統(tǒng)進(jìn)行實際的加工測試,實驗結(jié)果表明,QT5的正則表達(dá)式QregularExpression類開發(fā)的譯碼模塊效率和精度較好,可以用作譯碼模塊的開發(fā)。

猜你喜歡
定義
以愛之名,定義成長
活用定義巧解統(tǒng)計概率解答題
例談橢圓的定義及其應(yīng)用
題在書外 根在書中——圓錐曲線第三定義在教材和高考中的滲透
永遠(yuǎn)不要用“起點”定義自己
海峽姐妹(2020年9期)2021-01-04 01:35:44
嚴(yán)昊:不定義終點 一直在路上
華人時刊(2020年13期)2020-09-25 08:21:32
定義“風(fēng)格”
成功的定義
山東青年(2016年1期)2016-02-28 14:25:25
有壹手——重新定義快修連鎖
修辭學(xué)的重大定義
主站蜘蛛池模板: 亚洲视频影院| 日韩福利在线观看| 亚洲成人精品久久| 欧美精品一区在线看| 国产成人成人一区二区| 另类重口100页在线播放| 丝袜久久剧情精品国产| 国产亚洲美日韩AV中文字幕无码成人 | 亚洲自偷自拍另类小说| 视频二区亚洲精品| 久久精品66| 婷婷色中文| 国产精品成人第一区| 亚洲天堂免费| 日韩123欧美字幕| 啊嗯不日本网站| 亚洲欧美成aⅴ人在线观看| 一边摸一边做爽的视频17国产| 国产成人精品高清不卡在线 | 97视频免费在线观看| 色偷偷一区| 国产精品视频白浆免费视频| 无码国产偷倩在线播放老年人| 国产噜噜在线视频观看| 萌白酱国产一区二区| 色有码无码视频| 四虎国产成人免费观看| 亚亚洲乱码一二三四区| 国产精品一老牛影视频| 亚洲第一综合天堂另类专| 亚洲,国产,日韩,综合一区 | 国产成a人片在线播放| 国产99视频在线| 亚洲欧洲日产无码AV| 欧美区在线播放| 国产成人无码综合亚洲日韩不卡| 欧美三级视频在线播放| 日本欧美午夜| 亚洲精品va| 免费一看一级毛片| 成人福利在线免费观看| 久久精品人人做人人综合试看| 亚洲AⅤ无码国产精品| 欧美一级一级做性视频| 国产第一页第二页| 好吊色国产欧美日韩免费观看| 欧美日韩免费| 免费精品一区二区h| 四虎影视国产精品| 狠狠色婷婷丁香综合久久韩国| 久久久久免费精品国产| 欧美色图第一页| 国产成人福利在线| 日韩欧美国产成人| 国产精品浪潮Av| 日韩精品免费一线在线观看 | 一区二区三区四区在线| 18黑白丝水手服自慰喷水网站| 欧美曰批视频免费播放免费| 国产福利微拍精品一区二区| 亚洲视频一区在线| 日韩视频福利| 精品91自产拍在线| 国产杨幂丝袜av在线播放| 真人高潮娇喘嗯啊在线观看| 国产性精品| 凹凸精品免费精品视频| 亚洲天堂久久久| 国产日韩欧美一区二区三区在线| 91小视频在线观看| www成人国产在线观看网站| 91福利国产成人精品导航| 91成人在线免费视频| 看国产毛片| 中文纯内无码H| 欧美 亚洲 日韩 国产| 婷婷色狠狠干| 综合久久五月天| 亚洲无码A视频在线| 国产成人精品午夜视频'| 欧美精品影院| 狠狠ⅴ日韩v欧美v天堂|