女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

EtherCAT驅動器回零與控制器回零:EtherCAT超高速實時運動控制卡XPCIE1032H上位機C#開發(九)

正運動技術 ? 來源:正運動技術 ? 作者:正運動技術 ? 2024-01-11 10:27 ? 次閱讀

XPCIE1032H功能簡介

XPCIE1032H是一款基于PCI Express的EtherCAT總線運動控制卡,可選6-64軸運動控制,支持多路高速數字輸入輸出,可輕松實現多軸同步控制和高速數據傳輸。

XPCIE1032H集成了強大的運動控制功能,結合MotionRT7運動控制實時軟核,解決了高速高精應用中,PC Windows開發的非實時痛點,指令交互速度比傳統的PCI/PCIe快10倍。

wKgZomVfDAyAFMr3AAkZwl5y9mw590.png

XPCIE1032H支持PWM,PSO功能,板載16進16出通用IO口,其中輸出口全部為高速輸出口,可配置為4路PWM輸出口或者16路高速PSO硬件比較輸出口。輸入口含有8路高速輸入口,可配置為4路高速色標鎖存或兩路編碼器輸入。

XPCIE1032H搭配MotionRT7實時內核,使用本地LOCAL接口連接,通過高速的核內交互,可以做到更快速的指令交互,單條指令與多條指令一次性交互時間可以達到3-5us左右。

wKgaomVfDamAezYKAAMg97tWgj8671.png

?XPCIE1032H與MotionRT7實時內核的配合具有以下優勢:

wKgaomVfDbWAXMEnAAD8mJdADkQ556.png

1.支持多種上位機語言開發,所有系列產品均可調用同一套API函數庫;

2.借助核內交互,可以快速調用運動指令,響應時間快至微秒級,比傳統PCI/PCIe快10倍;

3.解決傳統PCI/PCIe運動控制卡在Windows環境下控制系統的非實時性問題;

4.支持一維/二維/三維PSO(高速硬件位置比較輸出),適用于視覺飛拍、精密點膠和激光能量控制等應用;

5.提供高速輸入接口,便于實現位置鎖存;

6.支持EtherCAT總線和脈沖輸出混合聯動、混合插補。

wKgZomVfDcGAWvxzAACDzkihGqI139.png

?使用XPCIE1032H和MotionRT7進行項目開發時,通常需要進行以下步驟:

1.安裝驅動程序,識別XPCIE1032H;

2.打開并執行文件“MotionRT710.exe”,配置參數和運行運動控制實時內核;

3.使用ZDevelop軟件連接到控制器,進行參數監控。連接時請使用PCI/LOCAL方式,并確保ZDevelop軟件版本在3.10以上;

4.完成控制程序開發,通過LOCAL鏈接方式連接到運動控制卡,實現實時運動控制。

wKgZomVobjKAPLn_AAGwsQpNe1Q966.png

?與傳統PCI/PCIe卡和PLC的測試數據結果對比:

wKgaomVobjiAOGwqAAAu1S7GuhY671.png

我們可以從測試對比結果看出,XPCIE1032H運動控制卡配合實時運動控制內核MotionRT7,在LOCAL鏈接(核內交互)的方式下,指令交互的效率是非常穩定,當測試數量從1w增加到10w時,單條指令交互時間與多條指令交互時間波動不大,非常適用于高速高精的應用。

XPCIE1032H控制卡安裝

關閉計算機電源

打開計算機機箱,選擇一條空閑的XPCIE卡槽,用螺絲刀卸下相應的擋板條。

將運動控制卡插入該槽,擰緊擋板條上的固定螺絲。

XPCIE1032H驅動安裝與建立連接參考往期文章EtherCAT超高速實時運動控制卡XPCIE1032H上位機C#開發(一):驅動安裝與建立連接。

一、C#語言進行運動控制項目開發

wKgaomWfT7uAfvpUAADNRyf02ZU538.png

1.到正運動技術官網的下載中心選擇需要的平臺庫文件。

wKgZomWfS_mAcGpNAADU3wjDmUU523.png

2.解壓下載的安裝包找到“ Zmcaux.cs ”,“ zauxdll.dll ”,“ zmotion.dll ”放入到項目文件中。

(1)“Zmcaux.cs”放在項目根目錄文件中,與bin目錄同級。

wKgaomWfS_-AdVVRAAFWCh3xWkA783.png

(2)“zauxdll.dll”,“zmotion.dll”放在bin → Debug。

wKgZomWfTAOANmYAAAFdeS1pLdI326.png

3.用vs打開新建的項目文件,在右邊的解決方案資源管理器中點擊顯示所有,然后鼠標右鍵點擊zmcaux.cs文件,點擊包括在項目中。

wKgZomWfTAiAN0XoAAGl2yWt-ow612.png

wKgaomWfTA2AclCvAADjqwGFqyI824.png

4.雙擊Form1.cs里面的Form1,出現代碼編輯界面,在文件開頭寫入using cszmcaux,并聲明控制器句柄g_handle。

wKgaomWfTBGAW84RAAGQegY1EK0155.png

二、PC函數紹

相關PC函數介紹詳情可參考“ZMotion PC函數庫編程手冊 V2.1.1”。

wKgZomWfTCuAVJh9AABm-vf9M7w604.png

wKgaomWfTCuARKSCAACawvNvBvE440.png

wKgZomWfTDKAYGd0AABE3i4NAU8442.png

在form設計界面找到需要用到的控件拖拽到窗體中進行UI界面設計,效果如下。

wKgaomWfTHCASQEnAAKq5fXW4HM818.png

三、相關程序以及設計思路

本次設計操作步驟相應的流程圖如下:

wKgZomWfTk2AGiE8AADOoovjdpA079.png

本例程以運動控制卡XPLCIE1032H搭載MotionRT7實時內核,通過EthereCAT總線口接節點0(匯川驅動器-0軸),節點1(正運動擴展模塊EIO16084)1-4軸映射為總線軸為例:

wKgaomWfTlyAJPvIAAtjHtizLEQ871.png

注意:在總線初始化basic程序,驅動器PDO不能設置為-1,因為該PDO列表不含數據字典6060,不支持驅動器回零。

關于pdo列表的配置詳細說明,可以查閱basic編程手冊,搜索DRIVE_PROFILE指令。

wKgaomWfTmmAYUngAAFunazrfAQ558.png

1、初始化程序執行后,通過ZAux_Direct_GetUserVar函數接口,可以讀取basic程序自定義的變量。

本節案例獲取的是總線初始化映射軸數量、總線初始化起始軸號和總線初始化完成狀態。下圖是事先編輯好的basic程序的自定義變量。

wKgaomWfTnKABcukAACeVen0ris067.png

使用定時器將總線軸數量,總線起始軸號,初始化狀態等總線初始化信息進行獲取更新。

//讀取basic程序自定義變量--總線初始化的總軸數
zmcaux.ZAux_Direct_GetUserVar(g_handle, "Bus_TotalAxisnum", ref EcatAxisNum);
//讀取basic程序自定義變量--總線初始化的總線起始軸號
zmcaux.ZAux_Direct_GetUserVar(g_handle, "Bus_AxisStart", ref EcatStartAxisNum);
//讀取basic程序自定義變量--總線初始化的初始化狀態
zmcaux.ZAux_Direct_GetUserVar(g_handle, "Bus_InitStatus", ref EcatInitStatus)

2、使用RTsys軟件,點擊軟件菜單欄的幫助→Zbasic幫助→搜索,搜索DATUM指令,選擇回零模式并設置回零模式對應的參數。

假設回零模式選擇的是13,需要設置原點開關、限位開關、回零速度(SPEED)和爬行速度(CREEP)。

該模式進行回零時軸以SPEED速度正向運行,碰到限位開關會反向查找原點。找到原點后以CREEP速度反向爬行,直到離開原點。

wKgZomWfToOAKHZFAAIMpyXF62Q765.png

private void Controllers_DatumPara_Button_Click(object sender, EventArgs e)
{
   if (g_handle == (IntPtr)0)
   {
       MessageBox.Show("未連接到控制器!", "提示");
   }
   else
   {
       //軸基本參數設置,控制器回零的速度是SPEED
       AxisParaSet();
       int[] ret = new int[7];
       //設置回零爬行速度
       ret[0] = zmcaux.ZAux_Direct_SetCreep(g_handle, MoveAxis, Convert.ToSingle(Datum_Creep_Value.Text));
       //配置原點信號。ZMC系列默認OFF時信號有效,常開傳感器需要反轉輸入口為ON
       ret[1] = zmcaux.ZAux_Direct_SetDatumIn(g_handle, MoveAxis, Convert.ToInt32(DatumIO_Value.Text));
       ret[2] = zmcaux.ZAux_Direct_SetInvertIn(g_handle, Convert.ToInt32(DatumIO_Value.Text), 1);
       //正硬限位IO設置
       ret[3] = zmcaux.ZAux_Direct_SetFwdIn(g_handle, MoveAxis, Convert.ToInt32(FWD_IO_Value.Text));
       ret[4] = zmcaux.ZAux_Direct_SetInvertIn(g_handle, Convert.ToInt32(FWD_IO_Value.Text), 1);
       //負硬限位IO設置
       ret[5] = zmcaux.ZAux_Direct_SetRevIn(g_handle, MoveAxis, Convert.ToInt32(REV_IO_Value.Text));
       ret[6] = zmcaux.ZAux_Direct_SetInvertIn(g_handle, Convert.ToInt32(REV_IO_Value.Text), 1);
       //設置控制器回零模式
       Controllers_DatumMode = Convert.ToInt32(Controllers_DatumMode_Value.Text);
       //定義臨時的變量記錄各個函數的返回值
       int FinalRet = -1;
       for(int i = 0; i < 7; ++i)
       {
           FinalRet *= ret[i];
       }
       if (FinalRet == 0)  //說明所有函數的返回值都是0,回零等參數均設置成功
       {
           MessageBox.Show("控制器回零參數設置成功!", "提示");
       }
       else
       {
           MessageBox.Show("控制器回零參數設置失敗!", "提示");
       }
   }
}

3、使用ZAux_Direct_Single_Datum函數,函數語法如下:

語法:ZAux_Direct_Single_Datum(連接句柄,軸號,控制器回零模式)

選擇回零的軸號,模式以及設置完參數,確認參數按鈕然后點擊回零按鈕,此時軸以控制器回零參數進行回零。

private void Controllers_Datum_Button_Click(object sender, EventArgs e)
{
   if (g_handle == (IntPtr)0)
   {
       MessageBox.Show("未連接到控制器!", "提示");
       return;
   }
   int ret = -1;
   //觸發示波器
   zmcaux.ZAux_Trigger(g_handle);
   //控制器回零
   ret = zmcaux.ZAux_Direct_Single_Datum(g_handle, MoveAxis, Controllers_DatumMode);
   if(ret != 0)
   {
       MessageBox.Show("控制器回零啟動失敗!", "提示");
   }
   else
   {
       MessageBox.Show("控制器回零啟動成功!", "提示");
   }
}

4、查閱驅動器手冊→回零模式介紹,選擇驅動器支持的回零模式(數據字典6098),然后設置該回零模式的回零高速,回零低速等參數。

在本次例程選擇的是模式19,開始回零時原點開關(HW)為0,以設置的回零高速Speed(50units/s)正向開始回零,遇到原點開關(HW)為1后以回零低速Creep(20units/s)反向爬行,直到原點開關(HW)為0時停機,回零完成。

wKgZomWfTpaAclhtAAFAijcPKH0725.png

private void Drivers_DatumPara_Button_Click(object sender, EventArgs e)
{
   if (g_handle == (IntPtr)0)
   {
       MessageBox.Show("未連接到控制器!", "提示");
       return;
   }
   int ret1, ret2, ret3;
   //設置驅動器回零高速
   ret1 = zmcaux.ZAux_Direct_SetSpeed(g_handle, MoveAxis, Convert.ToSingle(Datum_HighSpeed_Value.Text));
   //設置驅動器回零低速
   ret2 = zmcaux.ZAux_Direct_SetCreep(g_handle, MoveAxis, Convert.ToSingle(Datum_LowSpeed_Value.Text));
   //設置驅動器回零偏移
   ret3 = zmcaux.ZAux_BusCmd_SetDatumOffpos(g_handle, (uint)MoveAxis, Convert.ToSingle(Datum_OffSet_Value.Text));
   //設置驅動器回零模式
   Drivers_DatumMode = Convert.ToInt32(Drivers_DatumMode_Value.Text);
   if (ret1 == 0 && ret2 == 0 && ret3 == 0)
   {
       MessageBox.Show("驅動器回零參數設置成功!", "提示");
   }
   else
   {
       MessageBox.Show("驅動器回零參數設置失敗!", "提示");
   }
}

5、使用ZAux_BusCmd_Datum函數,函數語法如下:

語法:ZAux_BusCmd_Datum(連接句柄,軸號,驅動器回零模式)

選擇回零的軸號,模式以及設置完參數,確認參數按鈕然后點擊回零按鈕,此時軸以驅動器回零參數進行回零。

private void Drivers_Datum_Button_Click(object sender, EventArgs e)
{
   if (g_handle == (IntPtr)0)
   {
       MessageBox.Show("未連接到控制器!", "提示");
       return;
   }
   int ret = -1;
   //觸發示波器
   zmcaux.ZAux_Trigger(g_handle);
   //驅動器回零
   ret = zmcaux.ZAux_BusCmd_Datum(g_handle, (uint)MoveAxis, (uint)Drivers_DatumMode);
   if (ret != 0)
   {
       MessageBox.Show("驅動器回零啟動失敗!", "提示");
   }
   else
   {
       MessageBox.Show("驅動器回零啟動成功!", "提示");
   }
}

四、運行效果

打開RTsys編程軟件,通過Local連接到控制器,同步上位機的軸等等參數。然后在工具欄→示波器界面,打開示波器觀察波形。

選擇好數據源和編號,點擊啟動;在上位機界面點擊回零按鈕,回到RTsys軟件點擊手動觸發,觀察對應回零模式的波形。

wKgaomWfUP6ATh9zAACKjkiRxRU536.png

控制器回零:以模式13(軸以SPEED速度正向運行,碰到限位開關會反向查找原點。找到原點后以Creep速度反向爬行,直到離開原點)為例,抓取的圖形如下。

wKgaomWfURqAPJ5kAABQQ1xLEiI318.png

總線驅動器回零:查閱驅動器手冊,選擇驅動器支持的回零模式。

這里以模式19為例,回零啟動時,原點信號為0,以回零高速(50units/s)正向回零運行;當原點信號為1時以回零低速Creep(20units/s)反向爬行;再次遇到下降沿將停機,回零完成。

wKgaomWfUSeADjDhAAIKwHQJvnA606.png



審核編輯 黃宇

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

    關注

    114

    文章

    16960

    瀏覽量

    182882
  • 運動控制卡
    +關注

    關注

    7

    文章

    118

    瀏覽量

    15746
  • ethercat
    +關注

    關注

    19

    文章

    994

    瀏覽量

    39618
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    EtherCAT運動控制卡XPCIE1032H上位開發(一):驅動安裝

    XPCIE1032H是一款基于PCI Express的EtherCAT總線運動控制卡,可選6-64軸運動
    的頭像 發表于 11-15 15:02 ?1429次閱讀
    <b class='flag-5'>EtherCAT</b><b class='flag-5'>運動</b><b class='flag-5'>控制卡</b><b class='flag-5'>XPCIE1032H</b><b class='flag-5'>上位</b><b class='flag-5'>機</b><b class='flag-5'>開發</b>(一):<b class='flag-5'>驅動</b>安裝

    單軸PSO視覺飛拍與精準輸出:EtherCAT超高速實時運動控制卡XPCIE1032H上位C#開發(七)

    運動技術EtherCAT控制卡在VS平臺采用C#語言實現的各種PSO功能。
    的頭像 發表于 01-03 09:50 ?1288次閱讀
    單軸PSO視覺飛拍與精準輸出:<b class='flag-5'>EtherCAT</b><b class='flag-5'>超高速</b><b class='flag-5'>實時運動</b><b class='flag-5'>控制卡</b><b class='flag-5'>XPCIE1032H</b><b class='flag-5'>上位</b><b class='flag-5'>機</b><b class='flag-5'>C#</b><b class='flag-5'>開發</b>(七)

    EtherCAT超高速實時運動控制卡XPCIE1032H上位C#開發

    XPCIE1032H是一款基于PCI Express的EtherCAT總線運動控制卡,可選6-64軸運動
    的頭像 發表于 01-13 09:11 ?1703次閱讀
    <b class='flag-5'>EtherCAT</b><b class='flag-5'>超高速</b><b class='flag-5'>實時運動</b><b class='flag-5'>控制卡</b><b class='flag-5'>XPCIE1032H</b><b class='flag-5'>上位</b><b class='flag-5'>機</b><b class='flag-5'>C#</b><b class='flag-5'>開發</b>(<b class='flag-5'>九</b>)

    EtherCAT超高速實時運動控制卡XPCIE1032H上位C#開發(十三)

    XPCIE1032H是一款基于PCI Express的EtherCAT總線運動控制卡,可選6-64軸運動
    的頭像 發表于 02-25 10:11 ?1410次閱讀
    <b class='flag-5'>EtherCAT</b><b class='flag-5'>超高速</b><b class='flag-5'>實時運動</b><b class='flag-5'>控制卡</b><b class='flag-5'>XPCIE1032H</b><b class='flag-5'>上位</b><b class='flag-5'>機</b><b class='flag-5'>C#</b><b class='flag-5'>開發</b>(十三)

    EtherCAT超高速實時運動控制卡XPCIE1032H上位C#開發(十四)

    XPCIE1032H是一款基于PCI Express的EtherCAT總線運動控制卡,可選6-64軸運動
    的頭像 發表于 03-04 10:46 ?8w次閱讀
    <b class='flag-5'>EtherCAT</b><b class='flag-5'>超高速</b><b class='flag-5'>實時運動</b><b class='flag-5'>控制卡</b><b class='flag-5'>XPCIE1032H</b><b class='flag-5'>上位</b><b class='flag-5'>機</b><b class='flag-5'>C#</b><b class='flag-5'>開發</b>(十四)

    EtherCAT超高速實時運動控制卡XPCIE1032H上位C#開發(二):EtherCAT總線初始化

    上位運動控制卡
    正運動技術
    發布于 :2023年11月17日 09:08:19

    EtherCAT超高速實時運動控制卡XPCIE1032H上位C#開發(三):EtherCAT總線模式切換

    上位運動控制卡
    正運動技術
    發布于 :2023年11月23日 16:42:38

    EtherCAT驅動器控制器EtherCAT超高速實時運動控制卡XPCIE1032H上位開發

    驅動器上位
    正運動技術
    發布于 :2024年01月12日 09:19:28

    PT/PVT運動模式介紹:EtherCAT超高速實時運動控制卡XPCIE1032H上位C#人工智能

    上位運動控制卡
    正運動技術
    發布于 :2024年01月25日 11:12:46

    介紹控制器實現EtherCAT與RTEX驅動器及其配置

    運動控制器提供自己的模式,也支持使用EtherCAT總線驅動器提供的
    的頭像 發表于 11-29 15:22 ?2904次閱讀

    EtherCAT運動控制卡的硬件接線與C#的硬件外設讀寫與運動

    EtherCAT運動控制卡進行硬件接線與C#的硬件外設讀寫與
    的頭像 發表于 11-08 16:26 ?3022次閱讀
    <b class='flag-5'>EtherCAT</b><b class='flag-5'>運動</b><b class='flag-5'>控制卡</b>的硬件接線與<b class='flag-5'>C#</b>的硬件外設讀寫與<b class='flag-5'>回</b><b class='flag-5'>零</b><b class='flag-5'>運動</b>

    不止10倍提速!PCIe EtherCAT實時運動控制卡XPCIE1032H 等您評測!

    PCIe實時運動控制卡助力EtherCAT高速高精運動控制應用!
    的頭像 發表于 06-26 10:14 ?7942次閱讀
    不止10倍提速!PCIe <b class='flag-5'>EtherCAT</b><b class='flag-5'>實時運動</b><b class='flag-5'>控制卡</b><b class='flag-5'>XPCIE1032H</b> 等您評測!

    EtherCAT超高速實時運動控制卡XPCIE1032H上位C#開發(一):驅動安裝與建立連接

    超高速實時運動控制卡XPCIE1032H硬件介紹、交互原理以及指令說明。
    的頭像 發表于 11-10 14:00 ?1040次閱讀
    <b class='flag-5'>EtherCAT</b><b class='flag-5'>超高速</b><b class='flag-5'>實時運動</b><b class='flag-5'>控制卡</b><b class='flag-5'>XPCIE1032H</b><b class='flag-5'>上位</b><b class='flag-5'>機</b><b class='flag-5'>C#</b><b class='flag-5'>開發</b>(一):<b class='flag-5'>驅動</b>安裝與建立連接

    EtherCAT超高速實時運動控制卡(二):EtherCAT總線初始化

    XPCIE1032H是一款基于PCI Express的EtherCAT總線運動控制卡,可選6-64軸運動
    的頭像 發表于 11-20 09:40 ?3289次閱讀
    <b class='flag-5'>EtherCAT</b><b class='flag-5'>超高速</b><b class='flag-5'>實時運動</b><b class='flag-5'>控制卡</b>(二):<b class='flag-5'>EtherCAT</b>總線初始化

    EtherCAT超高速實時運動控制卡XPCIE1032H上位C#開發

    XPCIE1032H集成了強大的運動控制功能,結合MotionRT7運動控制實時軟核,解決了
    發表于 01-15 11:20 ?922次閱讀
    <b class='flag-5'>EtherCAT</b><b class='flag-5'>超高速</b><b class='flag-5'>實時運動</b><b class='flag-5'>控制卡</b><b class='flag-5'>XPCIE1032H</b><b class='flag-5'>上位</b><b class='flag-5'>機</b><b class='flag-5'>C#</b><b class='flag-5'>開發</b>