《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 其他 > 設(shè)計(jì)應(yīng)用 > 數(shù)控軟件的設(shè)計(jì)開發(fā)
數(shù)控軟件的設(shè)計(jì)開發(fā)
摘要: 當(dāng)前,,開放型,、模塊化和集成化已成為數(shù)控技術(shù)發(fā)展的趨勢(shì)。為此,,世界各國都在抓緊研究制訂開放式高性能數(shù)控系統(tǒng)平臺(tái)的標(biāo)準(zhǔn)及其規(guī)范,,并進(jìn)行相關(guān)產(chǎn)品的開發(fā)
Abstract:
Key words :

  當(dāng)前,,開放型,、模塊化和集成化已成為數(shù)控技術(shù)發(fā)展的趨勢(shì),。為此,世界各國都在抓緊研究制訂開放式高性能數(shù)控系統(tǒng)平臺(tái)的標(biāo)準(zhǔn)及其規(guī)范,,并進(jìn)行相關(guān)產(chǎn)品的開發(fā),,如美國的NGC、OMAC項(xiàng)目,、歐洲的OSACA計(jì)劃及日本的OSEC計(jì)劃等。與此同時(shí),,世界上各大數(shù)控生產(chǎn)廠商也紛紛推出了基于開放式,、模塊化和集成化的高性能數(shù)控系統(tǒng)。
  關(guān)于開放式數(shù)控系統(tǒng)的特征通常認(rèn)為其包括硬件系統(tǒng)的開放性和軟件系統(tǒng)的開放性,,開放的硬件系統(tǒng)由微型機(jī)及模塊化的速度控制單元,、位置控制單元和內(nèi)置的PLC構(gòu)成;開放的軟件系統(tǒng)是指數(shù)控軟件系統(tǒng)的設(shè)計(jì)模塊化及模塊間的接口標(biāo)準(zhǔn)化,。目前,,開放式數(shù)控系統(tǒng)有3種實(shí)現(xiàn)途徑:一是PC機(jī) 數(shù)控專用模板;二是PC機(jī) 可編程運(yùn)動(dòng)控制器,;三是純PC機(jī)型,。
  這種基于開放式可編程運(yùn)動(dòng)控制器的系統(tǒng)結(jié)構(gòu)以通用微機(jī)為平臺(tái),以PC機(jī)標(biāo)準(zhǔn)插件形式的開放式可編程運(yùn)動(dòng)控制器為核心,。通用PC機(jī)負(fù)責(zé)如數(shù)控程序編輯,、人機(jī)界面管理等功能,運(yùn)動(dòng)控制器負(fù)責(zé)機(jī)床(http://www.jc80.com/ypnew_view.asp?id=1139)的運(yùn)動(dòng)控制和邏輯控制,。這種運(yùn)動(dòng)控制器以運(yùn)動(dòng)子程序的方式解釋執(zhí)行數(shù)控程序,,以PLC子程序方式實(shí)現(xiàn)機(jī)床邏輯控制,支持用戶的開發(fā)和擴(kuò)展,,具有上,、下兩級(jí)的開放性。美國DeltaTau公司的PMAC(ProgrammableMultiaxesController)是這種運(yùn)動(dòng)控制器的典型代表,,其擁有自身的CPU,,同時(shí)開放包括通信端口、存儲(chǔ)結(jié)構(gòu)在內(nèi)的大部分地址空間,,具有靈活性好,、功能穩(wěn)定、可共享計(jì)算機(jī)所有資源等特點(diǎn)。雖然國內(nèi)外許多學(xué)者在基于PMAC運(yùn)動(dòng)控制器的開放式數(shù)控系統(tǒng)方面作了大量的研究工作,,但都還處于研究階段,,用于生產(chǎn)或產(chǎn)品化還基本沒有實(shí)現(xiàn)。

1基于PMAC數(shù)控系統(tǒng)的軟件設(shè)計(jì) 1.1PMAC軟件的開放性 ?。?)支持各種高級(jí)語言,,用戶可以使用VB、VC,、Delphi等在Windows軟件平臺(tái)上定制用戶專用界面,。
  (2)在數(shù)控語言上對(duì)用戶開放,,不僅支持用戶直接調(diào)用現(xiàn)有的直線,、圓弧、樣條曲線的插補(bǔ)指令,,而且還允許用戶自定義G代碼,、M代碼、D代碼,、S代碼,,實(shí)現(xiàn)以往數(shù)控語言所不能完成的功能。
 ?。?)提供內(nèi)裝式軟件化的PLC,,可以編制64個(gè)異步PLC程序,通過一些指針變量,,用戶可以按位,、按字節(jié)進(jìn)行邏輯控制。
 ?。?)可共享PC微機(jī)豐富的各類支撐軟件和工具軟件,,方便地與各類網(wǎng)絡(luò)連接,與CAD/CAM系統(tǒng)連接,,便于遠(yuǎn)程診斷,、網(wǎng)絡(luò)制造和制造系統(tǒng)集成控制的實(shí)現(xiàn)。
  
1.2系統(tǒng)軟件結(jié)構(gòu)
  通過CNC系統(tǒng)應(yīng)用程序編程接口,,開發(fā)CNC系統(tǒng)的用戶界面可以選用各種能夠調(diào)用Windows動(dòng)態(tài)鏈接庫的編程語言,,如VB、VC,、Delphi等,,分別編制不同任務(wù)的前端用戶界面程序,具有很大的靈活性和開放性,。軟件開發(fā)人員通過CNC系統(tǒng)應(yīng)用程序接口的統(tǒng)一支持,,可以方便地構(gòu)造CNC系統(tǒng)的應(yīng)用軟件,,即構(gòu)造前端用戶操作界面。DeltaTau公司提供了Pcomm32應(yīng)用程序通訊驅(qū)動(dòng)器,,它包括了同PMAC通訊的各種方式,,而且將其主要函數(shù)進(jìn)行分類、封裝,,形成一種可根據(jù)用戶需要而調(diào)用的動(dòng)態(tài)鏈接庫,。
  通過這些函數(shù)可以完成PMAC與PC機(jī)之間的通訊功能,用戶不用直接對(duì)端口進(jìn)行操作就可以完成對(duì)PMAC硬件的操作,,并且程序設(shè)計(jì)靈活,、迅速及可移植性好。如OpenPmacDevice()函數(shù)用于與某一個(gè)PMAC設(shè)備建立通訊關(guān)系,;PmacGetResponseA()函數(shù)用于給PMAC發(fā)送指令并返回執(zhí)行結(jié)果,,等等。系統(tǒng)軟件結(jié)構(gòu)如所示,。
  2舉例在硬件系統(tǒng)方面,,設(shè)計(jì)了一套基于PMAC運(yùn)動(dòng)控制器的五軸數(shù)控系統(tǒng)試驗(yàn)平臺(tái),其中3個(gè)移動(dòng)分別由步進(jìn)電機(jī)直接驅(qū)動(dòng),,光柵尺和編碼器反饋,,兩個(gè)轉(zhuǎn)動(dòng)分別由步進(jìn)電機(jī)經(jīng)蝸輪蝸桿副減速傳動(dòng),,編碼器反饋,。運(yùn)動(dòng)控制器采用PMACPC104八軸卡,上位機(jī)采用工控機(jī)(IPC),,采用RS232串口通訊,。數(shù)控系統(tǒng)軟件是在Windows2000操作系統(tǒng)下,以VisualBasic60為開發(fā)工具,,采用面向?qū)ο蟮木幊谭椒?,充分利用PMAC的動(dòng)態(tài)鏈接庫中的函數(shù),實(shí)現(xiàn)了數(shù)控系統(tǒng)的基本功能,。系統(tǒng)軟件主界面如所示,。具體實(shí)現(xiàn)的功能包括:人機(jī)接口界面、系統(tǒng)初始化,、坐標(biāo)軸選擇,、手動(dòng)控制、坐標(biāo)位置實(shí)時(shí)顯示,、速度控制及G代碼的編輯,、下載等。

2.1系統(tǒng)初始化
  系統(tǒng)的初始化在系統(tǒng)軟件運(yùn)行過程中完成,,主要進(jìn)行PMAC的選擇和參數(shù)預(yù)置等功能,。初始化代碼如下:PrivateSubForm_Load()
DeviceNumber=PmacSelect(hWnd)選擇PMAC卡
If(DeviceNumber<0OrDeviceNumber>7)
Then
End
Else
return_value=OpenPmacDevice(DeviceNumber)啟動(dòng)PMAC卡
If(return_value)
ThenCallPmacGetResponseA(DeviceNumber,,response,255,,"100")初置電機(jī)速度
CallPmacSendLineA(DeviceNumber,,"1j/2j/3j/4j/5j/1hm2hm3hm 4hm 5hm")電機(jī)(電機(jī)控制系統(tǒng)的設(shè)計(jì)理念)閉環(huán)控制并返回零點(diǎn)
Else
End
End
If
EndSub

2.2手動(dòng)控制
  手動(dòng)控制有軸選擇、各軸的點(diǎn)動(dòng)進(jìn)給,、精確定位,、回零點(diǎn)和電機(jī)速度控制等功能。軸選擇通過一組單選按鈕OptionButton控件實(shí)現(xiàn),,使用Case語句觸發(fā)各選擇,,保證每次只能選擇一個(gè)軸,同時(shí)在手動(dòng)控制框下也可以選擇,,利用ListBox(或ComboBox)實(shí)現(xiàn),,二者是同步的,實(shí)現(xiàn)相同功能,?! ?br /> 2.2精確定位是通過在坐標(biāo)輸入文本框中輸入坐標(biāo)值,控制各軸電機(jī)運(yùn)動(dòng)的距離為給定坐標(biāo)值,,同時(shí)利用反饋來比較,,保證定位的精度。速度控制是通過改變PMAC的I變量來實(shí)現(xiàn)的,。所有手動(dòng)功能都是通過API函數(shù)PmacGetResponseA(DeviceNumber,,response,255,,"string")來實(shí)現(xiàn),,通過改變string給PMAC發(fā)送不同的指令。其中軸選擇的string為n,,點(diǎn)動(dòng)的string為nj 或nj-,,精確定位的string為nm172->L:$082B和nj^兩條語句來實(shí)現(xiàn)。
  
2.3坐標(biāo)位置實(shí)時(shí)顯示這里利用了Tmier定時(shí)器控件,,系統(tǒng)的狀態(tài)以及各種參數(shù)變量都存儲(chǔ)在PMAC內(nèi)存中,,分別用M變量去指向各狀態(tài)的地址,可通過操作M變量進(jìn)行狀態(tài)的讀取和參數(shù)的寫入以及完成I/O口的控制,。
  
2.4G代碼的編輯,、下載和編譯G代碼就是數(shù)控系統(tǒng)的運(yùn)動(dòng)程序,實(shí)際上也是坐標(biāo)軸的運(yùn)動(dòng)控制程序,,也就是加工程序,。PMAC的運(yùn)動(dòng)程序語言有它自己的特點(diǎn),采用類似于BASIC的高級(jí)語言編程,,以調(diào)用子程序的形式支持加工程序的G代碼編程,。
  PMAC的運(yùn)動(dòng)程序可以通過它的Pwin32終端窗口編寫,,程序送到緩沖區(qū)后,可以在終端窗口鍵入mBnR運(yùn)行程序,,其中m為坐標(biāo)系號(hào),,n為程序號(hào);如果是在文本編輯器中編寫的程序,,必須將其下載到PMAC中,,然后才能運(yùn)行。由于PMAC內(nèi)存有限,,幾百K以上的大程序不能一次下載運(yùn)行,,這就要用到循環(huán)運(yùn)動(dòng)程序緩沖區(qū)。循環(huán)運(yùn)動(dòng)程序緩沖區(qū)允許在程序執(zhí)行期間對(duì)程序進(jìn)行下載,,并覆蓋已經(jīng)執(zhí)行的程序行,,這就能夠連續(xù)執(zhí)行比PMAC的存儲(chǔ)空間大的程序,并且實(shí)時(shí)下載程序行,。
  數(shù)控程序中的G代碼和M,、T、D等功能指令由G代碼解釋程序,、M代碼解釋程序,、T代碼解釋程序和D代碼解釋程序分別進(jìn)行解釋。這4個(gè)解釋程序分別以運(yùn)動(dòng)程序PROG1000,、PROG1001,、PROG1002和PROG1003的形式存在,在系統(tǒng)調(diào)試時(shí)由PMAC可執(zhí)行程序?qū)⑺鼈兿螺d到PMAC的固定內(nèi)存中,,在實(shí)際加工中被PMAC自動(dòng)調(diào)用,。主界面中的調(diào)試按鈕即用于實(shí)現(xiàn)這一功能,,并在調(diào)試過程中發(fā)現(xiàn)錯(cuò)誤后通知編程者,,其程序代碼為:PrivateSubcmdtest_Click()CallPmacDownloadA(DeviceNumber,0,,0,,0,CommonDialog1FileName,,True,,True,1,,True)CommonDialog1Filter="LogFile|Log"CommonDialog1FileName=Left(logfile,,Len(logfile)-3) "log"txtresponseLoadFileCommonDialog1FileNametxtresponseSelStart=Len(txtresponseText)cmdrunEnabled=TrueExitSubEndSubPMAC將G、M,、T,、D代碼作為子程序來調(diào)用,,在解釋程序中,可以針對(duì)特定的機(jī)床定制代碼,。在運(yùn)動(dòng)程序中遇到G代碼時(shí),,將會(huì)調(diào)用解釋程序PROG1000,跳轉(zhuǎn)到解釋代碼行,,如G17將跳轉(zhuǎn)到PROG1000的N17000行,。
  
2.5PLC功能的實(shí)現(xiàn)PMAC內(nèi)置有PLC控制和編程功能,它是以循環(huán)邏輯順序來執(zhí)行命令,,但它的編程方式不是梯形圖編程,,而是采用類似于BASIC等高級(jí)語言的編程方式,不需要專用編程器,,執(zhí)行速度更快,。
  PMAC的內(nèi)置PLC與NC共用CPU,利用CPU的余力來發(fā)揮PLC的功能,,所以I/O點(diǎn)數(shù)較少,。通過PLC程序可以完全地對(duì)PMAC變量和I/O進(jìn)行操作,并且它具有非同步的特性,,因此它能有力地協(xié)助運(yùn)動(dòng)控制程序完成任務(wù),。
  
3結(jié)束語  開放式數(shù)控系統(tǒng)(ONC)是目前數(shù)控發(fā)展的趨勢(shì),而PC機(jī) 可編程運(yùn)動(dòng)控制器型開放式數(shù)控系統(tǒng)是發(fā)展的主流,。筆者開發(fā)的基于PMAC的五軸數(shù)控系統(tǒng)試驗(yàn)平臺(tái),,結(jié)構(gòu)簡單,數(shù)控系統(tǒng)軟件運(yùn)行良好,,用戶可根據(jù)自己的需要進(jìn)一步開發(fā),,真正實(shí)現(xiàn)了數(shù)控系統(tǒng)的開放性,達(dá)到了開放式數(shù)控系統(tǒng)的要求,。

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載。