《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 模擬設(shè)計 > 設(shè)計應(yīng)用 > 基于PMAC的開放式工業(yè)機器人運動控制數(shù)據(jù)實時采集研究
基于PMAC的開放式工業(yè)機器人運動控制數(shù)據(jù)實時采集研究
2015年微型機與應(yīng)用第20期
王進華1,,2
1.華南理工大學(xué) 計算機科學(xué)與工程學(xué)院,,廣東 廣州 510006; 2.羅定職業(yè)技術(shù)學(xué)院 電子信息系,,廣東 云浮 527200
摘要: 實時數(shù)據(jù)采集與通信子系統(tǒng)是工業(yè)機器人運動控制系統(tǒng)的基本環(huán)節(jié),,PMAC卡作為底層控制器在工業(yè)機器人運動控制中廣泛應(yīng)用,。根據(jù)數(shù)據(jù)采集源,、與上位機通信模式,對基于PMAC的數(shù)據(jù)采集方法進行分析,,確定在線指令方式進行數(shù)據(jù)采集,,定制了基于網(wǎng)口的開放通信模塊。在實現(xiàn)過程中采用了軟件模塊化,、多線程,、定時器、雙緩存等技術(shù)實現(xiàn)指令編碼,、數(shù)據(jù)采集與解碼,。測試結(jié)果證明了通信與采集子系統(tǒng)的穩(wěn)定性和實時性。
Abstract:
Key words :

  摘  要: 實時數(shù)據(jù)采集與通信子系統(tǒng)是工業(yè)機器人運動控制系統(tǒng)的基本環(huán)節(jié),,PMAC卡作為底層控制器在工業(yè)機器人運動控制中廣泛應(yīng)用,。根據(jù)數(shù)據(jù)采集源、與上位機通信模式,,對基于PMAC的數(shù)據(jù)采集方法進行分析,,確定在線指令方式進行數(shù)據(jù)采集,定制了基于網(wǎng)口的開放通信模塊,。在實現(xiàn)過程中采用了軟件模塊化,、多線程、定時器,、雙緩存等技術(shù)實現(xiàn)指令編碼,、數(shù)據(jù)采集與解碼。測試結(jié)果證明了通信與采集子系統(tǒng)的穩(wěn)定性和實時性,。

  關(guān)鍵詞: PMAC,;開放控制;數(shù)據(jù)采集,;實時性,;機器人

0 引言

  在工業(yè)控制領(lǐng)域,實時數(shù)據(jù)采集是一個基本而且重要的環(huán)節(jié),,如何提高數(shù)據(jù)采集的實時性一直是工控技術(shù)人員所關(guān)心的問題[1],。多軸運動控制卡(Programmable Multi-Axis Controller,PMAC)集執(zhí)行程序(運動程序和PLC程序),、數(shù)據(jù)采集,、伺服環(huán)更新、資源管理等多個模塊一起協(xié)同工作,,在工業(yè)機器人的運動控制中得到廣泛應(yīng)用[2],。

1 基于PMAC的數(shù)據(jù)采集分析

  PMAC通過對機器人關(guān)節(jié)的4路數(shù)字信號解碼得到該關(guān)節(jié)的位置、速度,、加速度等數(shù)據(jù)源,,上位機采集這些數(shù)據(jù)進行運動學(xué)和動力學(xué)運算得到機器人實時的位置和運動信息。數(shù)據(jù)采集涉及數(shù)據(jù)采集源,、通信模式,、采集方法、數(shù)據(jù)解碼,、人機交互[3]等,。

  數(shù)據(jù)采集源指被采集的數(shù)據(jù)在卡上存儲的對象,主要有PMAC緩沖區(qū),、寄存器,、雙端口RAM。

  PMAC主卡與上位機之間的通信模式有104總線接口,、USB2.0以太網(wǎng)口,、RS232串口等。

  結(jié)合通信模式和數(shù)據(jù)采集源,,基于PMAC數(shù)據(jù)采集有雙端口RAM,、Gather功能寄存器、PLC程序M變量,、在線指令等采集方法,。基于雙端口的數(shù)據(jù)采集從雙端口RAM中采集數(shù)據(jù),,不需要經(jīng)過通信口發(fā)送命令和等待響應(yīng)時間,,實時性較好?;贕ather功能的數(shù)據(jù)采集從緩沖區(qū)采集數(shù)據(jù),,需要使用PMAC的通信驅(qū)動和Gather類函數(shù),適合于大量信息進行數(shù)據(jù)采集[4],?;赑LC程序和在線指令的數(shù)據(jù)采集從I/O及運動寄存器獲取數(shù)據(jù),需要使用PMAC的通信驅(qū)動和軟件定時器,?;谠诰€指令的數(shù)據(jù)采集可以實時單點采集,也可以循環(huán)采集,,而且可以基于以太網(wǎng)口定義開放式通信接口,,獨立于PMAC驅(qū)動程序。

2 基于多線程技術(shù)和在線指令的實時數(shù)據(jù)采集

  2.1 多線程技術(shù)

  多線程編程技術(shù)應(yīng)用于機器人控制,,可在收發(fā)數(shù)據(jù)的同時進行數(shù)據(jù)的處理,、狀態(tài)切換,、屏幕刷新等任務(wù),提高程序的實時性和軟件的整體性能[5],。本控制系統(tǒng)采用多線程技術(shù)實現(xiàn),,提高了數(shù)據(jù)采集的實時性,系統(tǒng)程序結(jié)構(gòu)如圖1所示,。

Image 001.png

  2.2 數(shù)據(jù)采集的編碼實現(xiàn)

  本文基于在線指令進行數(shù)據(jù)采集,,自定義通信接口。

  2.2.1 開放式通訊接口

  目前所見的基于PMAC的機器人開放式運動控制器都利用了Delta Tau公司提供的PComm32PRO通信驅(qū)動程序,,限制了控制器的開放性,。為了支持嵌入式實時操作系統(tǒng)的應(yīng)用開發(fā),采用C++設(shè)計了PMAC開放式網(wǎng)口通信服務(wù),,供上層服務(wù)通過socket調(diào)用,,數(shù)據(jù)規(guī)范如下:

  typedef struct tagEthernetCmd

  {

  BYTE RequestType;

  BYTE Request,;

  WORD wValue,;

  WORD wIndex;

  WORD wLength,;

  BYTE bData[1492],;

  }ETHERNETCMD,*PETHERNETCMD,;

  PMAC卡IP地址是:192.6.94.5:1025,。

  2.2.2 數(shù)據(jù)采集的編碼實現(xiàn)

  PMAC指令以及回傳的運動參數(shù)都是字符串,需要進行指令編碼和數(shù)據(jù)譯碼,。

  struct PMACFPV

  //定義循環(huán)采集的速度和位置

  {

  double FP1,;

  double FP2;

  double FV1,;

  double FV2,;

  };

  struct PMACFPV PMACPVF()

  //周期采集

  {

  struct PMACFPV PV,;

  char AV1[255],,AP1[255];

  long NV1,,NP1,;

  char AV2[255],AP2[255],;

  long NV2,,NP2;

  NV1=PmacGetResponseA(0,AV1,,255,,"#1V");

  PV.FV1=atof(AV1)/20,;//速度譯碼

  NP1=PmacGetResponseA(0,,AP1,255,,"#1P");

  PV.FP1=atof(AP1)/20,;//角度譯碼

  cout<<NV1<<endl,;

  cout<<AV1<<endl;

  cout<<PV.FV1<<endl,;

  cout<<NP1<<endl,;

  cout<<AP1<<endl;

  cout<<PV.FP1<<endl,;

  NV2=PmacGetResponseA(0,,AV2,255,,"#2V"),;

  PV.FV2=atof(AV2)/20;//速度譯碼

  NP2=PmacGetResponseA(0,,AP2,,255,"#2P"),;

  PV.FP2=atof(AP2)/20,;//角度譯碼

  cout<<<<NV2<<endl;

  cout<<AV2<<endl,;

  cout<<PV.FV2<<endl,;

  cout<<NP2<<endl;

  cout<<AP2<<endl,;

  cout<<PV.FP2<<endl,;

  return PV;

  }

  char*PMACITOAP(double P1,,double P2)

  //關(guān)節(jié)位置譯碼

  {

  double IP1=0,,IP2=0;

  IP1=P1*20,;

  IP2=P2*20,;

  char*AP1=(char*)malloc(30*sizeof(char));

  char*AP2=(char*)malloc(30*sizeof(char)),;

  gcvt(IP1,,15,,AP1);

  gcvt(IP2,,15,,AP2);

  char*PAP1=(char*)malloc(sizeof(char)*100),;

  char*PAP2=(char*)malloc(sizeof(char)*50),;

  strcpy(PAP1,"X"),;

  strcat_s(PAP1,,100,AP1),;

  strcpy(PAP2,,"Y");

  strcat_s(PAP2,,50,,AP2);

  strcat_s(PAP1,,100,,PAP2);

  printf("關(guān)節(jié)的位置譯碼結(jié)果是%s\n",,PAP1),;

  //輸出拼接結(jié)果

  return PAP1;

  free(AP1),;//

  free(AP2),;//

  free(PAP1);//

  free(PAP2),;//

  }

  在嵌入式應(yīng)用環(huán)境中進行數(shù)據(jù)循環(huán)采集需要預(yù)防產(chǎn)生內(nèi)存泄露的情況發(fā)生,,優(yōu)化內(nèi)存資源。

  2.3 控制系統(tǒng)平臺構(gòu)建與軌跡跟隨測試

  2.3.1 控制系統(tǒng)平臺構(gòu)建

  MOTOMAN,、SEIKO等均把基于PC的機器人控制器作為發(fā)展方向[6],,主要形式有:

  43F.tmp.jpg工控機+接口卡。接口卡不帶處理器,,將各關(guān)節(jié)運動數(shù)據(jù)送入工控機,,經(jīng)伺服程序計算得到伺服電機的控制量[7],這種方式構(gòu)建的系統(tǒng)具有很高的靈活性和擴展性,,但開發(fā)難度比較大,。

 43F.tmp.jpg工控機+運動控制卡。以DSP為核心的運動控制卡可以集多軸實時伺服運動控制于一卡,并有函數(shù)庫供用戶在工控機上構(gòu)建所需的控制系統(tǒng),,工控機主要完成系統(tǒng)管理,、狀態(tài)監(jiān)控、運動規(guī)劃等上層任務(wù)[8],。

  本文采用工控機+多軸運動控制卡(PMAC)作為機器人控制器,,硬件原型如圖2所示。

Image 002.png

  為了滿足機器人控制實時性要求,,工控機需要運行實時操作系統(tǒng),,如Windows CE等,或采用通用Windows操作系統(tǒng)+實時擴展環(huán)境RTX,,可以利用Windows操作系統(tǒng)完備的軟件開發(fā)環(huán)境和豐富的軟件資源[6],。本控制器硬件采用研祥EC3-1711CLDNA工控機,其CPU是Genuine Intel(R)processor 600 MHz,,內(nèi)存為480 MB,存取速率為599 MHz,,硬盤為80 GB,,操作系統(tǒng)采用Windows XP+RTX。

  2.3.2 系統(tǒng)測試

  為驗證控制平臺和數(shù)據(jù)采集的有效性,,采用兩關(guān)節(jié)模擬工業(yè)機器人和靜態(tài)PID進行測試,。軌跡跟隨測試的軟件流程和測試結(jié)果如圖3和圖4所示,關(guān)節(jié)實時跟隨位置如表1和2所示,。

Image 003.png

Image 004.png

3 結(jié)論

  本文從數(shù)據(jù)采集源,、通信模式、采集方法等對基于PMAC的開放式數(shù)據(jù)采集系統(tǒng)進行對比分析,,完成通信接口,、指令編碼數(shù)據(jù)解碼等的模塊化設(shè)計和封裝,采用多線程技術(shù)優(yōu)化性能,。硬件平臺的兩關(guān)節(jié)機器人軌跡跟隨測試的關(guān)節(jié)空間和笛卡爾運動空間的試驗數(shù)據(jù)驗證了控制系統(tǒng)及數(shù)據(jù)采集子系統(tǒng)的有效性,。

參考文獻

  [1] 林延昌,魚洋,,沈躍.基于PMAC控制卡的機器人控制軟件設(shè)計[J].計算機測量與控制,,2005,13(8):854-857.

  [2] 張東衡,,徐秀林,,張佳鳴.人工心臟瓣膜體外檢測裝置軟件開發(fā)[J].計算機測量與控制,2008,,16(8):1197-1198.

  [3] 王進華,,曾凌峰,張勤利.數(shù)字電視機頂盒人機交互組件的設(shè)計與實現(xiàn)[J].微型機與應(yīng)用,2011,,30(20):96-98.

  [4] 鄭存紅,,胡榮強,趙瑞峰,,等.用Visual C++實現(xiàn)實時數(shù)據(jù)采集[J].計算機應(yīng)用研究,,2002,19(4):103-108.

  [5] 曾欣.多線程機器人控制軟件的設(shè)計[J].科技廣場,,2011(11):100-103.

  [6] DELTA TAU Data Systems,, Inc. PComm32PRO installation and troubleshooting procedures, Versions 10.45(PRO Suite 2.0)and later[S].

  [7] 張廣立,,付瑩,,楊汝清,等.基于Windows NT的開放式機器人實時控制系統(tǒng)[J].上海交通大學(xué)學(xué)報,,2003,,37(5):724-728.

  [8] 馬瓊雄,吳向磊,,李琳,,等.基于IPC的開放式工業(yè)機器人控制系統(tǒng)研究[J].機電產(chǎn)品開發(fā)與創(chuàng)新,2008,,21(1):15-17.


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