技術(shù)文章
基于正則表達式的串并聯(lián)加工中心運動控制G代碼解釋器研究
閱讀:112 發(fā)布時間:2020-8-11文章預(yù)覽:
“pc +運動控制卡"作為行業(yè)中低成本、高性能、開發(fā)方法靈活、適應(yīng)能力強的一種控制方式,廣泛應(yīng)用于各種數(shù)控領(lǐng)域中[12]。但隨之也產(chǎn)生了許多問題,不同廠商的運動控制卡均集成了自己的運動控制指令,這些運動指令往往應(yīng)用于運動控制系統(tǒng)的底層開發(fā)環(huán)境中,只有開發(fā)人員能夠熟知并掌握,這就給之后使用該控制系統(tǒng)的操作人員帶來了諸多不便[3]。該問題同樣存在于目前所研制的3-PRS-XY串并聯(lián)加工中心中,加工中心使用固高運動控制卡進行運動控制,由于控制語言不具有通用性,不利于加工中心的應(yīng)用與推廣。為了解決這種問題,就需要一套行業(yè)內(nèi)*的通用運動指令幫助操作人員實現(xiàn)對數(shù)控加工中心的控制。G代碼作為數(shù)控行業(yè)內(nèi)被廣泛使用的語言,能夠編寫出簡潔、高效的數(shù)控指令,實現(xiàn)豐富的數(shù)控加工中心運動控制[4_6]。
本文基于正則表達式,在VC++軟件開發(fā)平臺中,利用正則庫的語法設(shè)計出能夠應(yīng)用于G代碼和固高運動控制卡運動指令之間的代碼解釋轉(zhuǎn)換算法,通過實現(xiàn)語句語法檢查、數(shù)據(jù)提取轉(zhuǎn)換、運動指令調(diào)用等功能,實現(xiàn)通過輸人G代碼完成對數(shù)控加工中心的控制,研究內(nèi)容對3-PRS-XY串并聯(lián)加工中心的數(shù)控系統(tǒng)開發(fā)提供理論指導(dǎo)。
1并聯(lián)加工中心制系統(tǒng)
目前所研制的3-PRS-XY型串并聯(lián)加工中心的控制系統(tǒng)采用“PC +運動控制卡"模式,該結(jié)構(gòu)利用PC上的串口連接外部的運動控制卡,通過編程調(diào)用封裝在運動控制卡內(nèi)的各種運動指令,并通過連接在運動卡另一側(cè)的PCI總線控制伺服電機控制器和步進電機控制器,利用控制器完成對電機的控制,從而帶動機構(gòu)各部件運動。根據(jù)所描述的運動控制原理可知,在PC與運動控制卡的通訊之間,建立一套G代碼與控制卡運動指令的轉(zhuǎn)換機制,即可實現(xiàn)通過G代碼控制整個機構(gòu)運動。如圖1所示為3-PRS-XY型串并聯(lián)加工中心的運動控制系統(tǒng)控制原理。
2 正則表達式
正則表達式通過建立一個“字符串"作為描述語句的規(guī)則來驗證另一個“字符串"是否符合該語句所制定的規(guī)則,例如表達式“ab + "所描述的語法規(guī)范為一個“a"和任意個“b"所組成的一條字符串,若所給出的字符串符合該規(guī)則,則編譯通過;若不符合則可進行報錯處理[7 8]。根據(jù)正則表達式的這一特性,對G代碼編譯器的檢查糾錯功能進行設(shè)計,在此基礎(chǔ)上對整個編譯過程進行開發(fā)。
本文采用來自于Boost擴展庫下的regex正則庫進行正則表達式相關(guān)功能的開發(fā)。Boost庫具有豐富的外接擴展類,且能夠很好兼容C++各種開發(fā)環(huán)境。將boost文件夾下生成的regex動態(tài)鏈接庫和靜態(tài)鏈接庫分別添加至VC6目錄下,然后在所建工程中調(diào)用“<boost/regex, hpp > "頭文件便可在工程中利用regex庫進行相關(guān)編程。
備注:為保證文章的完整度,本文核心內(nèi)容都PDF格式顯示,如未有顯示請刷新或轉(zhuǎn)換瀏覽器嘗試!
結(jié)束語:
根據(jù)已有的3-PRS-XY型串并聯(lián)加工中心控制系統(tǒng)硬件構(gòu)成與所支持的軟件開發(fā)機制,結(jié)合VC ++ 6. 0開發(fā)環(huán)境下的MFC、Boost擴展庫下的Regex正則表達式庫、固高運動控制卡內(nèi)封裝的運動控制函數(shù)、Teechart類的圖表繪制函數(shù),對數(shù)控G代碼解釋器進行了設(shè)計與開發(fā)。經(jīng)過試驗驗證,本文設(shè)計開發(fā)的G代碼解釋器能夠?qū)C構(gòu)進行運動有效控制,對基于工控機和運動控制卡的開放式數(shù)控系統(tǒng)開發(fā)具有一定實用價值。