摘 要:文章以美國Delta Tau Data System 公司推出的基于PCI總線的PMAC PCI Lite型運動控制卡為核心。將VS2008作為開發(fā)平臺,應用C#語言開發(fā)具有操作簡潔人機界面的直角坐標機器人控制系統(tǒng)。該系統(tǒng)可控制機器人完成在笛卡爾坐標系中的直線和曲線插補運動并向數(shù)據(jù)庫中存入機器人的相關(guān)位姿信息。
關(guān)鍵詞:PCI總線運動控制卡;C#語言;VS2008;直角坐標機器人
前言
在如今這個飛速發(fā)展的工業(yè)自動化時代中,人力資源漸漸的已經(jīng)不能滿足工廠的生產(chǎn)加工需要,加之人工成本的不斷上升,某些特定環(huán)境下人工無法完成的工作,需要自動化程度更高的機械設(shè)備去完成,直角坐標機器人由此誕生。同時,基于“PC+運動控制器”的控制系統(tǒng)組合憑借其軟件開發(fā)成本低、兼容性好、可靠性高等優(yōu)點已然成為目前機器人行業(yè)的主流發(fā)展趨勢。
1 系統(tǒng)硬件選擇
PMAC是美國Delta Tau Data System 公司推出的基于PC 機平臺上的運動控制器,兼容C#程序設(shè)計語言。它采用了Motorala公司的高性能信號數(shù)字處理器DSP5600作為主處理器CPU,具有點位,直線,圓弧,樣條和PVT插補功能。速度、分辨率、帶寬等指標遠優(yōu)于一般的控制器。由于在機器人的動作過程中要考慮實時性因素和快速響應的要求,這就需要使用速度控制方法控制交流伺服電機。綜合以上情況,我們選用PCI總線形式的4軸控制卡PMAC PCI Lite。
系統(tǒng)硬件電路原理圖如圖1。
圖1中用戶通過操作PC中的人機界面,設(shè)置機器人的位移參數(shù),這些數(shù)據(jù)通過PCI總線傳入PMAC PCI Lite運動控制卡。運動控制卡經(jīng)過數(shù)據(jù)解析后發(fā)出連續(xù)的、高頻率的脈沖串,通過改變發(fā)出脈沖的頻率來控制電機的速度,改變發(fā)出脈沖的數(shù)量來控制電機的位置,它的脈沖輸出模式包括脈沖/方向、脈沖/脈沖方式。脈沖計數(shù)可用于編碼器的位置反饋,提供機器準確的位置,糾正傳動過程中產(chǎn)生的誤差。伺服電機驅(qū)動機器人運動到理想位置在這期間將運動信息存入Oracle數(shù)據(jù)庫中,在PC端,用戶可用PL/SQL Developer查看機器人運動數(shù)據(jù)表單做一個簡單監(jiān)視。數(shù)字輸入/輸出點可用于限位開關(guān)。
2 系統(tǒng)軟件選擇
由于本控制系統(tǒng)運行于PC上,考慮到最佳兼容性的問題,我們選用Windows XP操作系統(tǒng)。
Visual Studio 2008是微軟公司發(fā)布的高級開發(fā)工具,面向.NET Framework3.5版本。它提供了調(diào)試功能、數(shù)據(jù)庫功能和創(chuàng)新功能,幫助在各種平臺上快速創(chuàng)建當前最先進的應用程序。支持C#程序設(shè)計語言。C#語言是一種面向?qū)ο蟮摹⑦\行于.NET Framework之上的高級程序設(shè)計語言。它在繼承C和C++強大功能的同時去掉了一些它們的復雜特性(例如沒有宏以及不允許多重繼承),它綜合了VB簡單的可視化操作和C++的高運行效率,這就提高了編程效率,降低了代碼出錯的概率,節(jié)省時間。除此之外,我們選用Oracle 11G和PL/SQL Developer用于信息的采集和檢索。
3 程序設(shè)計
首先在PL/SQL Developer中建立機器人位姿信息表以便數(shù)據(jù)傳入,程序如下。
create table Robotinfo
(
X axis displacement nvarchar2(20),
Y axis displacement nvarchar2(20),
Z axis displacement nvarchar2(20),
Speed nvarchar2(20),
Acceleration nvarchar2(20),
Starting point X nvarchar2(20),
Starting point Y nvarchar2(20),
Starting point Z nvarchar2(20),
Ending point X nvarchar2(20),
Ending point Y nvarchar2(20),
Ending point Z nvarchar2(20),
X-axis limit nvarchar2(20),
X axis origin nvarchar2(20),
X-axis nlimit nvarchar2(20),
Y-axis limit nvarchar2(20),
Y axis origin nvarchar2(20),
Y-axis nlimit nvarchar2(20),
Z-axis limit nvarchar2(20),
Z axis origin nvarchar2(20),
Z-axis nlimit nvarchar2(20)
);
而后本著程序的開放性和可移植性,在VS2008平臺下建立類庫為以后的程序改進提供便利。
創(chuàng)建一個抽象IndustrialRobot類(不能實例化),該類中囊括了所有工業(yè)機器人的方法、字段以及屬性,該類下的其中一個派生類為直角坐標機器人CartesianCoordinate Robot類。該類封裝了機器人一系列動作方法以及所有的屬性及字段。之前的Robotinfo表得到的數(shù)據(jù)就在該類的方法中產(chǎn)生。本次使用的PMAC PCILite型運動控制卡派生于運動控制卡類Motion Control Card。如若以后更換控制卡只需在Motion Control Card類中新建一個類庫即可省去了復雜的程序改寫步驟。
運行應用程序時,PC首先需要加載Delta Tau Data System 公司提供的pcomm32.dll動態(tài)鏈接庫文件。C#進行平臺互調(diào)用時函數(shù)需要提前聲明,調(diào)用PMAC運動控制卡中的pcomm32.dll時用到的常用函數(shù)聲明的數(shù)據(jù)類型轉(zhuǎn)換后的形式如下:
其中PMAC類中的Public static extern bool Open PMAC Device(uint dwDevice)方法用來打開PMAC卡驅(qū)動程序通道,Public static extern bool Close PMAC Device(uint dwDevice)方法用來關(guān)閉PMAC驅(qū)動程序通道,public static extern int PMAC Select(uint hWnd)用來提供一種方法選擇和配置當前設(shè)備的安裝,public static extern void PMAC Send CommandA(uintdw Device,string command)方法用來發(fā)送一個字符串緩沖區(qū)到PMAC卡和中斷PMAC卡的任何響應。
之后程序通過調(diào)用pcomm32.dll動態(tài)鏈接庫中的方法控制交流伺服電機和編碼器采集信號發(fā)送至數(shù)據(jù)庫,同時機器人完成規(guī)定動作,程序結(jié)束時通過析構(gòu)函數(shù)釋放類庫占用的內(nèi)存。
4 結(jié)束語
文章針對當代工業(yè)機器人編程的開放性和可移植性的要求,運用C#程序設(shè)計語言設(shè)計了直角坐標機器人的控制系統(tǒng)。整個系統(tǒng)基于PC平臺以PMAC運動控制卡為核心,處處考慮系統(tǒng)的可擴展性和編程的快捷性,保證整個控制系統(tǒng)的開放性。為了驗證程序規(guī)劃軌跡準確與否,在機器人的執(zhí)行機構(gòu)上加裝了一個雕刻機主軸,通過實際操作發(fā)現(xiàn)機器人較好的完成了程序所規(guī)劃的軌跡運動。因此基于C#設(shè)計的直角坐標機器人控制系統(tǒng)在工業(yè)上具有良好的前景。
參考文獻
[1]胡鵬.基于PMAC的開放式機器人控制系統(tǒng)[J].機器人技術(shù),2006(4):150-180.
[2]文懷興,柳建華,白路,等.基于Trio 運動控制器的直角坐標機器人控制系統(tǒng)[J].輕工機械,2009,27(3):40-70.
[3]馬瓊雄,吳向磊,李琳.基于IPC的開放式工業(yè)機器人控制系統(tǒng)研究[J].機電產(chǎn)品開發(fā)與創(chuàng)新,2007,21(1):13-31.
[4]John Craig.Robot and Automation Simulation:Past,present.and future[J].Robotics World,1999(6).
[5]Karli Waston,Christian Nagel.C#入門經(jīng)典[M].清華大學出版社,2010,12.
[6]劉秋香,張永勝.C#下利用ADO.NET訪問SQL Server技術(shù)[J].計算機應用,2004,11.