<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

EtherCAT運動控制器在ROS上的應用開發案例(下)

伺服與運動控制 ? 來源:正運動小助手 ? 2024-03-17 11:11 ? 次閱讀

本篇文章我們主要介紹正運動技術動態鏈接庫環境配置以及EtherCAT運動控制器ROS下的單軸運動。

在正式學習之前,我們先了解一下正運動技術的EtherCAT運動控制器ZMC432和ZMC408CE。這兩款產品分別是32軸,8軸EtherCAT運動控制器。

ZMC432功能簡介

ZMC432是正運動推出的一款多軸高性能EtherCAT總線運動控制器,具有EtherCAT、EtherNET、RS232、CAN和U盤等通訊接口,ZMC系列運動控制器可應用于各種需要脫機或聯機運行的場合。

cd6d200a-e330-11ee-a297-92fbcf53809c.jpg

ZMC432最多可支持32軸運動控制,支持直線插補、任意圓弧插補、空間圓弧、螺旋插補、電子凸輪、電子齒輪、同步跟隨等功能。

ZMC432支持32軸脈沖輸入與編碼器反饋,通用IO包含24路輸入口和12個輸出口;2路AD,2路DA;其中特定輸出口支持高速PWM控制。

ZMC432通過EtherCAT和CAN總線進行硬件資源擴展,可擴展至4096路輸入和4096路輸出。

cd729f1c-e330-11ee-a297-92fbcf53809c.png

ZMC408CE功能簡介

ZMC408CE是正運動推出的一款多軸高性能EtherCAT總線運動控制器,具有EtherCAT、EtherNET、RS232、CAN和U盤等通訊接口,ZMC系列運動控制器可應用于各種需要脫機或聯機運行的場合。

cd852cf4-e330-11ee-a297-92fbcf53809c.jpg

ZMC408CE支持8軸運動控制,最多可擴展至32軸,支持直線插補、任意圓弧插補、空間圓弧、螺旋插補、電子凸輪、電子齒輪、同步跟隨等功能。

ZMC408CE支持8軸運動控制,可采用脈沖軸(帶編碼器反饋)或EtherCAT總線軸,通用IO包含24路輸入口和16路輸出口,部分IO為高速IO,模擬量AD/DA各兩路,EtherCAT最快125us的刷新周期。

ZMC408CE支持8個通道的硬件比較輸出、硬件定時器、運動中精準輸出,還支持8通道PWM輸出,對應的輸出口為OUT0-7,支持8個通道同時觸發硬件比較輸出。

ZMC408CE可靈活進行硬件資源擴展,通過CAN或EtherCAT總線可擴展至4096個輸入和4096個輸出。

cd88e7f4-e330-11ee-a297-92fbcf53809c.png

→ZMC432,ZMC408CE均使用同一套API函數,均支持C、C++、C#、LabVIEW、Python、Delphi等開發語言,支持VC6.0、VB6.0、Qt、.Net等平臺,支持Windows、Linux、WinCE、iMac操作系統。

上節課程中,我們介紹了ROS應用背景和Ubuntu18.04安裝ROS Melodic詳細過程,并且通過ROS編程案例“消息發布和訂閱”來詳細說明正運動技術EtherCAT運動控制器ROS的應用開發。

01 配置正運動技術動態鏈接庫環境

1.添加動態鏈接庫

在程序包目錄zmotion(catkin_ws/src/zmotion/)下新建文件夾lib,存放動態鏈接庫libzmotion.so。

cda2d6be-e330-11ee-a297-92fbcf53809c.png

cdad1d2c-e330-11ee-a297-92fbcf53809c.png

在CMakeLists.txt中添加第三方庫路徑(build下):

link_directories(
  lib
  ${catkin_LIB_DIRS}
)
并在CMakeLists.txt文件中鏈接動態鏈接庫(調用鏈接庫時文件名去掉lib和.so):

target_link_libraries(talker ${catkin_LIBRARIES} zmotion)
2.添加庫函數zmcaux.cpp、zmotion.h、zmcaux.h

添加zmcaux.cpp文件到catkin_ws/src/zmotion/src目錄下:

cdb12714-e330-11ee-a297-92fbcf53809c.png

添加頭文件zmotion.h、zmcaux.h到catkin_ws/src/zmotion/include/ zmotion目錄下:

cdbbbb48-e330-11ee-a297-92fbcf53809c.png

并在CMakeLists.txt中添加這三個庫文件:

add_executable(talker 
src/talker.cpp
src/zmcaux.cpp
include/zmotion/zmotion.h
include/zmotion/zmcaux.h
)

修改頭文件引用,如下圖所示(要填include文件的相對地址,zmotion為程序包名):

#include "zmotion/zmotion.h"
#include "zmotion/zmcaux.h"
cdbfd552-e330-11ee-a297-92fbcf53809c.png ? ?

02 正運動控制器在ROS下的單軸運動

talker節點實現軸0的運動,并將其位置實時發送給listener節點,修改talker.cpp如下:

1.添加句柄和頭文件

#include "zmotion/zmotion.h"
#include "zmotion/zmcaux.h"
ZMC_HANDLE g_handle=NULL;

2.通過EtherNET鏈接運動控制器

ZMC_LinuxLibInit();
//以太網(Ethernet)鏈接
char ipaddr[16] = {"192.168.0.11"};
int x =ZAux_OpenEth(ipaddr,&g_handle); //***ZMC
ROS_INFO("以太網鏈接控制器:%d",x);//返回0則連接成功

3.實現單軸運動

ZAux_Direct_SetSpeed(g_handle, 0, 200); //設置軸0運動速度為200units/s
ZAux_Direct_SetAccel(g_handle, 0, 2000); //設置軸0加速度為2000units/s/s
ZAux_Direct_SetDecel(g_handle, 0, 2000); //設置軸0減速度為2000units/s/s
ZAux_Direct_SetSramp(g_handle, 0, 100); //設置軸0 S曲線時間100ms
ZAux_Direct_Single_Move(g_handle, 0, 300); //軸0 相對與當前位置運動100 units

4.將實時位置發送給listener節點

float piValue;
while (ros::ok())
{
  std_msgs::Float64 msg;
  ZAux_Direct_GetMpos(g_handle, 0, & piValue);//獲取時候
  msg.data = piValue;
    //輸出,用來替代prinf/cout
    ROS_INFO("Position is: %f", msg.data); 
  chatter_pub.publish(msg);
  ros::spinOnce();
    //休眠,來使發布頻率為10Hz
    loop_rate.sleep();
}
5.編譯
cd ~/catkin_ws/
catkin_make

6.運行程序

//打開一個新終端
roscore
//打開另一個新終端
cd ~/catkin_ws/
rosrun zmotion talker
//打開另一個新終端
cd ~/catkin_ws/
rosrun zmotion listener
運行效果如下,實時輸出位置:

cdc530ce-e330-11ee-a297-92fbcf53809c.png

此外,我們在上位機上的示波器上可以看見,軸0做S曲線運動:

cdde651c-e330-11ee-a297-92fbcf53809c.png

本次,正運動技術EtherCAT運動控制器在ROS上的應用(下),就分享到這里。




審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 示波器
    +關注

    關注

    111

    文章

    5829

    瀏覽量

    182015
  • 運動控制器
    +關注

    關注

    2

    文章

    345

    瀏覽量

    24404
  • 上位機
    +關注

    關注

    26

    文章

    863

    瀏覽量

    54147
  • ethercat
    +關注

    關注

    18

    文章

    448

    瀏覽量

    37760
  • ROS
    ROS
    +關注

    關注

    1

    文章

    273

    瀏覽量

    16732

原文標題:EtherCAT運動控制器在ROS上的應用(下)

文章出處:【微信號:伺服與運動控制,微信公眾號:伺服與運動控制】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    EtherCAT運動控制器ROS上的應用(上)

    本文以正運動技術EtherCAT運動控制器ZMC432和ZMC408CE為例,介紹正運動技術運動
    的頭像 發表于 03-06 11:47 ?750次閱讀
    <b class='flag-5'>EtherCAT</b><b class='flag-5'>運動</b><b class='flag-5'>控制器</b>在<b class='flag-5'>ROS</b>上的應用(上)

    EtherCAT運動控制器ROS上的應用開發案例(上)

    本文以正運動技術EtherCAT運動控制器ZMC432和ZMC408CE為例,介紹正運動技術運動
    的頭像 發表于 03-17 11:06 ?607次閱讀
    <b class='flag-5'>EtherCAT</b><b class='flag-5'>運動</b><b class='flag-5'>控制器</b>在<b class='flag-5'>ROS</b>上的應用<b class='flag-5'>開發案</b>例(上)

    EtherCAT總線運動控制器硬件是如何進行接線的?

    EtherCAT總線運動控制器硬件是如何進行接線的?EtherCAT總線運動控制器有哪些參數設置
    發表于 07-15 13:02

    基于TI Sitara處理EtherCAT主站開發案

    直觀的用戶界面確保了用戶EtherCAT網絡診斷和配置方面獲得流暢的體驗。圖 3圖 41 EtherCAT主站開發案例測試請通過網線將伺服驅動
    發表于 07-30 09:25

    EtherCAT運動控制器的PLC編程(一) 直線插補 精選資料推薦

    、ZPlC編程語言,以及可以使用正運動技術ZHMI界面編程的EtherCAT運動控制器。正式學習直線插補之前...
    發表于 09-01 08:44

    EtherCat控制器

    EtherCat控制器,我能找到的最大軸數能支持到128軸,部署時,幾千軸的控制要分成若干組,每組128軸或者64軸。能達到64軸的有上面PCI卡式的,也有獨立可接網絡連接式的,正運動
    發表于 09-01 08:50

    運動技術運動控制器EtherCAT總線快速入門

    、EtherCAT 總線的使用、示波器的應用、多任務運行的特點、運動控制器中斷的應用、U盤接口的使用、ZDevelop 編程軟件的使用、運動控制器
    發表于 09-07 06:59

    運動技術運動控制器EtherCAT總線的基礎使用

    EtherCAT總線擴展模塊包含哪些?怎樣去使用正運動技術運動控制器EtherCAT總線?
    發表于 09-27 08:34

    小白求助,求大佬詳細介紹一EtherCAT運動控制器的PLC編程

    小白求助,求大佬詳細介紹一EtherCAT運動控制器的PLC編程
    發表于 10-29 07:24

    EtherCAT總線運動控制的優勢主要體現在哪?

    自由切換;f、方便上位機遠程診斷與遠程維護電氣系統,預測性維護也更方便。5、沒有實際的運動控制器也能仿真與調試運動控制系統:虛擬仿真與調試日漸成為工業自動化行業的剛需,一是可以
    發表于 02-20 10:20

    經濟型EtherCAT運動控制器EtherCAT總線快速入門

    本文主要介紹XPLC006E多軸經濟型EtherCAT總線運動控制器控制EtherCAT總線驅動
    發表于 05-11 09:49

    EtherCAT運動控制器進行自定義API封裝例程

    本節課程我們主要講解一運動API函數封裝原理以及自定義API封裝例程。 正運動技術運動控制器均使用統一的API接口 所有的
    發表于 10-26 15:11

    EtherCAT總線運動控制的優勢主要體現在哪?

    )/CSV(周期速度)/CST(周期轉矩)可以自由切換; f、方便上位機遠程診斷與遠程維護電氣系統,預測性維護也更方便。 5、沒有實際的運動控制器也能仿真與調試運動控制系統: 虛擬仿真
    發表于 12-13 11:37

    EtherCAT總線運動控制器應用進階一

    EtherCAT總線運動控制器應用進階一
    的頭像 發表于 09-22 17:03 ?3163次閱讀
    <b class='flag-5'>EtherCAT</b>總線<b class='flag-5'>運動</b><b class='flag-5'>控制器</b>應用進階一

    EtherCAT運動控制器的MATLAB開發

    以正運動ZMC408CE運動控制器為例,講解MATLAB進行運動控制應用開發。
    的頭像 發表于 04-17 10:54 ?140次閱讀
    <b class='flag-5'>EtherCAT</b><b class='flag-5'>運動</b><b class='flag-5'>控制器</b>的MATLAB<b class='flag-5'>開發</b>
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>