多軸運(yùn)動(dòng)控制系統(tǒng)上位機(jī)軟件開(kāi)發(fā)
引言
針對(duì)工業(yè)控制中多軸運(yùn)動(dòng)控制系統(tǒng)下位機(jī)軟件代碼繁瑣、軟件通用性差等特點(diǎn) ,開(kāi)發(fā)出能滿足當(dāng)前人們對(duì)個(gè)性化產(chǎn)品需求的上位機(jī)軟件控制系統(tǒng)成為一種必要 。本文基于研發(fā)的多軸運(yùn)動(dòng)控制系統(tǒng) ,開(kāi)發(fā)了對(duì)應(yīng)的上位機(jī)軟件來(lái)控制運(yùn)動(dòng)控制卡以及搭建人機(jī)交互界面。
1 總體設(shè)計(jì)方案
上位機(jī)的人機(jī)交互大致流程為:上位機(jī)軟件通過(guò)對(duì)運(yùn)動(dòng)控制卡的操作 ,從而間接操作軸的運(yùn)行控制來(lái)完成多軸運(yùn)動(dòng)控制系統(tǒng)的運(yùn)行。上位機(jī)是通過(guò)廠家提供的TrioPC.ocx控件與運(yùn)行控制卡完成通信。
上位機(jī)軟件設(shè)計(jì) ,主要分為四個(gè)大的功能:
一是上位機(jī)與運(yùn)動(dòng)控制卡之間的通信連接/斷開(kāi)、運(yùn)動(dòng)控制卡的參數(shù)配置下發(fā)等功能。
二是上位機(jī)與運(yùn)動(dòng)控制卡之間的軸運(yùn)動(dòng)控制操作 ,主要包括了搜尋原點(diǎn)、多軸協(xié)作下的直線運(yùn)動(dòng)、曲線運(yùn)動(dòng)控制等 ,以及對(duì)運(yùn)動(dòng)控制卡所保存程序的運(yùn)行。
三是上位機(jī)對(duì)畫(huà)圖數(shù)據(jù)的文件保存與打開(kāi) 、畫(huà)圖數(shù)據(jù)的編輯等 。可以通過(guò)該功能 ,對(duì)所畫(huà)出圖形的數(shù)據(jù)進(jìn)行保存 ,也可以打開(kāi)該數(shù)據(jù)文件進(jìn)行圖形的還原。
四是上位機(jī)軟件對(duì)所需要勾畫(huà)圖形數(shù)據(jù)的直觀顯示控制。通過(guò)對(duì)圖形數(shù)據(jù)的編輯操作 ,可以對(duì)所需要勾畫(huà)圖形進(jìn)行預(yù)覽。
2 軟件設(shè)計(jì)
2. 1 上位機(jī)初始化
上位機(jī)與運(yùn)動(dòng)控制卡之間的通信連接與斷開(kāi)功能 ,使用了TrioPC控件的open與Close方法 ,連接之前首先設(shè)置連接參數(shù) ,包括參數(shù)HostAddress ,為運(yùn)動(dòng)控制卡的通信IP地址 ,IP地址采用文本控件進(jìn)行輸入傳遞:參數(shù)PortType , 為上位機(jī)與運(yùn)動(dòng) 控制卡之間 的物理接 口 , 本系統(tǒng) 使 用 的Ethernet: 參 數(shù) PortMode,為上位機(jī)與運(yùn)動(dòng)控制卡之間的通信模式 ,本系統(tǒng)采用的是同步模式 ,值為0。
上位機(jī)與運(yùn)動(dòng)控制卡的連接建立 ,上位機(jī)通過(guò)PortType的接口 , 同步模式連接運(yùn)動(dòng)控制卡 ,具體代碼如下:
AxTrioPC1.open(PortType. intPortID)
上位機(jī)與運(yùn)動(dòng)控制卡的連接斷開(kāi) ,關(guān)閉同步模式的連接:
AxTrioPC1.Close(intPortID)
上位機(jī)與運(yùn)動(dòng)控制卡連接成功后 ,會(huì)返回一個(gè)True的值 ,表示連接成功 ,否則連接失敗 ,也可以通過(guò)Isopen進(jìn)行查詢連接狀態(tài) 。連接成功后 , 即可通過(guò)setAxisVariable函數(shù)對(duì)運(yùn)動(dòng)控制卡進(jìn)行參數(shù)設(shè)置 ,參數(shù)variable表示寫(xiě)入系統(tǒng)變量的名字 ,參數(shù)axis表示控制的軸參數(shù) , 參數(shù)value表示寫(xiě)入數(shù)據(jù)變量或數(shù)據(jù)值。
2 .2 上位機(jī)對(duì)運(yùn)動(dòng)控制卡的控制
上位機(jī)與運(yùn)動(dòng)控制卡成功連接后 ,可以開(kāi)始驅(qū)動(dòng)運(yùn)動(dòng)控制卡 ,進(jìn)行對(duì)多軸運(yùn)動(dòng)控制系統(tǒng)的操作 ,完成圖形的繪制[3]。本上位機(jī)軟件設(shè)計(jì)可繪制的圖形包括直線、三角形、圓形 、矩形和封閉多邊形等 ,其中直線、三角形、矩形和封閉多邊形的實(shí)質(zhì)均是直線操作 , 圓形的繪制涉及的是弧線操作。
直線類圖形繪制中 ,軟件首先使用Base函數(shù)設(shè)置運(yùn)動(dòng)軸的基本信息 。參數(shù)axes表示操作直線涉及到的運(yùn)動(dòng)軸的數(shù)量 ,參數(shù)order表示單一 的數(shù)值或者一 串代表軸序號(hào)的數(shù)值 ,它決定了接下來(lái)運(yùn)動(dòng)命令所對(duì)應(yīng)的軸的順序。
弧形類圖形的繪制中 , 也是首先使用Base函數(shù)設(shè)置軸運(yùn)動(dòng)的參數(shù)信息 ,然后使用MoveCirc函數(shù)控制軸運(yùn)動(dòng)繪制弧形 。參數(shù)finishBase表示基準(zhǔn)軸在結(jié)束運(yùn)動(dòng)時(shí)的位置距離 , 參數(shù) finishNext表示緊接著基準(zhǔn)軸序號(hào)的下一個(gè)軸在運(yùn)動(dòng)結(jié)束時(shí)的位置距離 ,參數(shù)centreBase表示基準(zhǔn)軸在圓心位置的距離 ,參數(shù) centreNext表示緊接著基準(zhǔn)軸序號(hào)的下一個(gè)軸在圓心位置的距離 ,參數(shù)direction表示旋轉(zhuǎn)方向的設(shè)定 , 1表示正半軸上順時(shí)針?lè)较?,0表示正半軸上逆時(shí)針?lè)较颉?
2.3 上位機(jī)軟件繪制圖形的預(yù)覽
該功能的開(kāi)發(fā)主要是為了在繪制圖形前對(duì)將要繪制的圖形進(jìn)行預(yù)覽、修訂 ,直到達(dá)到滿意的效果 ,然后才進(jìn)行圖形的打印繪制 ,方便用戶進(jìn)行操作。坐標(biāo)數(shù)據(jù)可以在圖形繪制板上進(jìn)行點(diǎn)擊輸入 ,也可以通過(guò)鍵盤(pán)輸入。
數(shù)據(jù)輸入完成后 ,可以對(duì)所繪制的圖形進(jìn)行預(yù)覽與修訂 。軟件可以對(duì)三角形、直線、矩形、封閉多邊形、圓形等基本圖形 進(jìn)行繪制和預(yù)覽。
3 運(yùn)行與調(diào)試
3. 1 圖形的繪制
當(dāng)需要繪制三角形圖形時(shí) ,首先在"圖型"下拉選項(xiàng)中選擇"三角形"類型 ,然后可以通過(guò)點(diǎn)擊畫(huà)圖板上的坐標(biāo) ,分別選擇所要勾畫(huà)三角形的三個(gè)頂點(diǎn)坐標(biāo) , 或者手動(dòng)輸入三角形的三個(gè)頂點(diǎn)坐標(biāo)。
坐標(biāo)數(shù)據(jù)選擇或輸入完成后 , 點(diǎn)擊"預(yù)覽"按鈕 ,可以對(duì)三角形進(jìn)行初步的預(yù)覽 ,觀察其效果是否滿足需求。
如果預(yù)覽效果不滿意 ,可以繼續(xù)選擇三角形的三個(gè)頂點(diǎn) ,直到滿意后再點(diǎn)擊"開(kāi)始打印"按鈕進(jìn)行圖形的繪制操作 。
3.2 文件導(dǎo)入繪制圖形
點(diǎn)擊上位機(jī)軟件界面上的"打開(kāi)文件"按鈕 ,選擇需要導(dǎo)入的數(shù)據(jù)文件 ,可以把數(shù)據(jù)文件中的數(shù)據(jù)導(dǎo)入到列表中 , 點(diǎn)擊預(yù)覽對(duì)圖形進(jìn)行預(yù)覽操作 。確定后點(diǎn)擊"開(kāi)始打印"按鈕進(jìn)行圖形的繪制操作 ,如圖l所示。
圖1 文件導(dǎo)入及圖形預(yù)覽
3.3 運(yùn)動(dòng)控制卡程序的運(yùn)行
首先點(diǎn)擊"ReadProgram"按鈕 ,從運(yùn)動(dòng)卡中讀取已經(jīng)編輯完成的程序。然后選中需要運(yùn)行的程序 ,點(diǎn)擊"RunProgram"按鈕 ,控制運(yùn)動(dòng)控制卡運(yùn)行該程序。點(diǎn)擊"stopProgram"按鈕可停止正在執(zhí)行的程序。
4 運(yùn)行結(jié)果及分析
該運(yùn)動(dòng)控制卡的核心功能 , 即手動(dòng)畫(huà)圖和文件畫(huà)圖 。以畫(huà)圓為例 ,在上位機(jī)軟件的畫(huà)布上任意點(diǎn)運(yùn) ,控制卡均會(huì)做出相應(yīng)的動(dòng)作進(jìn)行畫(huà)圓 ,在畫(huà)布上畫(huà)出任意一個(gè)圓形后 , 點(diǎn)擊"開(kāi)始打印"的按鈕 ,就會(huì)在平臺(tái)上打印出如圖2所示的圓形。
可以觀察到 , 由打印平臺(tái)打印出的圓弧軌跡趨近于借助工具手工繪圖的效果 ,所以該多軸運(yùn)動(dòng)控制卡的功能具備精確、高效的優(yōu)點(diǎn) ,整個(gè)系統(tǒng)實(shí)時(shí)同步迅速。