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

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

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

3天內不再提示

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

伺服與運動控制 ? 來源:正運動技術 ? 2023-11-15 15:02 ? 次閱讀

XPCIE1032H功能簡介

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

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

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

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

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

367b9086-8026-11ee-939d-92fbcf53809c.png

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

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

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

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

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

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

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

1.安裝驅動程序并簽名認證,識別XPCIE1032H;

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

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

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

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

平均值 C++ LOCAL C# LOCAL 傳統PCI/PCIe卡接口交互 PLC網口通訊交互
1w次單條讀取交互周期 4.70us 5.3us 64us 500us-10ms
10w次單條讀取交互周期 3.90us 5.7us 65us 500us-10ms
1w次多條讀取交互周期 6.20us 8.85us 472us 500us-10ms
10w次多條讀取交互周期 5.50us 8.37us 471us 500us-10ms

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

XPCIE1032H卡安裝

關閉計算機電源

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

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

卸下臨近插槽的一條擋板條,用螺絲將轉接板固定在機箱該插槽上。

一、驅動安裝

首先需要到正運動技術官網下載《MotionRT7運動控制實時內核》安裝包,并檢測此時PCIE卡已安裝到工控機的PCIE插槽上,無明顯松動翹邊。

36f25c02-8026-11ee-939d-92fbcf53809c.png

方法一:使用驅動目錄中自帶的安裝向導軟件dpinst_amd64.exe自動安裝,具體操作按軟件指南。

36f68598-8026-11ee-939d-92fbcf53809c.png

方法二:手動安裝。

1.打開“設備管理器”菜單選擇“其他設備”中的“PCI設備”。

37028f64-8026-11ee-939d-92fbcf53809c.png

2.若存在多個PCI設備時,鼠標右擊“屬性”查看詳細信息,屬性選擇“硬件ID”,確認為PCIVEN_EF34&DEV_1000&開頭的PCI設備。

370de210-8026-11ee-939d-92fbcf53809c.png

3.右擊選擇“更新驅動程序”。

372340a6-8026-11ee-939d-92fbcf53809c.png

4.選擇“手動瀏覽”查找驅動程序。

372d0de8-8026-11ee-939d-92fbcf53809c.png

5.點擊瀏覽,選擇驅動driver文件夾。

37310952-8026-11ee-939d-92fbcf53809c.png

6.點擊下一步。

374196aa-8026-11ee-939d-92fbcf53809c.png

7.等待安裝完成,點擊關閉。

37483b54-8026-11ee-939d-92fbcf53809c.png

8.在設備管理器中有ZMotionRT Controller就是安裝成功。

375ba518-8026-11ee-939d-92fbcf53809c.png

二、建立連接

1.運行控制臺程序

(1)打開控制臺程序所在位置,運行可執行文件“MotionRt710.exe”。

376e8b9c-8026-11ee-939d-92fbcf53809c.png

(2)點擊“Start”。

377919cc-8026-11ee-939d-92fbcf53809c.png

(3)保存XPCIE卡Config配置。

a.先點擊【Stop】按鈕關閉MontionRT7控制臺,再點擊UpdateCard更新卡信息。

3786635c-8026-11ee-939d-92fbcf53809c.png

b.點擊“-->”將當前配置保存到歷史配置中,方便下次打開可以直接使用。

3791fad2-8026-11ee-939d-92fbcf53809c.png

c.保存完成后,點擊確定。

3796f050-8026-11ee-939d-92fbcf53809c.png

2.新建C#項目VS2022

379accf2-8026-11ee-939d-92fbcf53809c.png

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

37a9e6ba-8026-11ee-939d-92fbcf53809c.png

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

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

37b44718-8026-11ee-939d-92fbcf53809c.png

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

37c40a54-8026-11ee-939d-92fbcf53809c.png

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

37ca3780-8026-11ee-939d-92fbcf53809c.png

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

37cee6b8-8026-11ee-939d-92fbcf53809c.png

7.相關PC函數介紹

指令1 ZAux_FastOpen
指令原型 int32 __stdcall ZAux_FastOpen(int type, char *pconnectstring, uint32 uims ,ZMC_HANDLE * phandle)
指令說明 與控制器建立連接, 可以指定連接的等待時間
輸入參數
參數名 描述
type 連接類型
type: 1-COM,2-ETH,4-PCI,5-LOCAL
pconnectstring 連接字符串:
COM口號/IP地址
uims 連接超時時間 uims;單位ms
輸出參數
參數名 描述
phandle 控制器連接句柄
返回值 成功返回值為0,非0詳見錯誤碼說明。
指令示例 串口連接:
ZMC_HANDLE phandle;//控制器連接句柄
Char comID[32]= "0";//串口ID
ZAux_FastOpen(1, comID,1000s ,&phandle);
網口連接例子:
ZMC_HANDLE phandle;//控制器連接句柄
Char EthID[32]= "192.168.0.11";//網口ID
ZAux_FastOpen(2, EthID,1000s ,&phandle);
LOCAL接口連接例子:
ZMC_HANDLE phandle;//控制器連接句柄
ZAux_FastOpen(ZMC_CONNECTION_LOCAL, "LOCAL1",3000,&g_handle);
指令2 ZAux_Direct_GetDpos
指令原型 int32__stdcallZAux_Direct_GetDpos(ZMC_HANDLEhandle,int iaxis, float *pfValue)
指令說明 讀取軸當前位置或稱控制器發送的需求位置,單位units。
輸入參數
參數名 描述
handle 連接標識。
iaxis 軸號。
輸出參數
參數名 描述
pfValue 獲取當前軸位置。
返回值 成功返回值為0,非0詳見錯誤碼說明。
指令示例 軸基本運動參數設置獲取
詳細說明 /
指令3 ZAux_DirectCommand
指令原型 int32 __stdcall ZAux_DirectCommand(ZMC_HANDLE handle, const char *pszCommand,char *psResponse, uint32 uiResponseLength)
指令說明 發送字符串命令到控制器,直接方式(不進緩沖區,有少數命令,暫時不支持)。
輸入參數
參數名 描述
handle 連接句柄。
pszCommand 發送的命令字符串。
uiResponseLength 返回的字符長度。
輸出參數
參數名 描述
uiResponseLength 返回的字符串。
返回值 成功返回值為0,非0詳見錯誤碼說明。
指令示例 在線命令函數的使用
詳細說明 上位機調用上位機未封裝的Basic指令功能
指令4 ZAux_Close
指令原型 int32 __stdcall ZAux_Close(ZMC_HANDLE handle)
指令說明 關閉控制器連接。
輸入參數
參數名 描述
Handle 連接句柄。
輸出參數 /
返回值 成功返回值為0,非0詳見錯誤碼說明。
指令示例 串口連接控制器
詳細說明 /

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

37dcea60-8026-11ee-939d-92fbcf53809c.png

8.相關程序

(1)通過LOCAL鏈接方式的鏈接按鈕的消息響應函數來鏈接控制器。

private void button4_Click(object sender, EventArgs e)
{
    //LOCAL方式連接
    int ret = zmcaux.ZAux_FastOpen(5, "LOCAL", 1000, out g_handle); 
    if (ret == 0)
    {
        label2.Text = "已鏈接";
        label2.BackColor = Color.Green;
        MessageBox.Show("控制器鏈接成功!", "提示");
    }
    else
    {
        MessageBox.Show("鏈接失敗,請選擇正確的LOCAL!");
    }
}
(2)通過單條指令交互周期的測試按鈕的事件處理函數來計算單條指令的交互周期和總耗時。

private void SingleRun(object sender, EventArgs e)
{
    float dpos = 0;
    DateTime beforeDT = System.DateTime.Now;
    for (int i = 0; i <10000; i++)
    {
        zmcaux.ZAux_Direct_GetDpos(g_handle, 0, ref dpos);
    }
    DateTime afterDT = System.DateTime.Now;
    TimeSpan ts = afterDT - beforeDT;
    label14.Text = (ts.TotalMilliseconds).ToString();
    label2.Text = ((ts.TotalMilliseconds * 1000) / 10000).ToString();
    label16.Text = dpos.ToString();
}
(3)通過多條指令交互周期的測試按鈕的事件處理函數來計算多條指令的交互周期和總耗時。

private void MuchRun(object sender, EventArgs e)
{
    int[] status = { 0, 0, 0, 0 };
    float[] dpos = { 0, 0, 0, 0 };
    uint[] num = { 0, 0, 0, 0 };
    string cmd;
    int star = 0;
    StringBuilder cmdBuff = new StringBuilder(2048);
    string[] tmp = new string[12];
    cmd = "?dpos(0),dpos(1),dpos(2),dpos(3),axisstatus(0),axisstatus(1),axisstatus(2),axisstatus(3),in(0),in(1),in(2),in(3)";
    DateTime beforeDT = System.DateTime.Now;
    for (int i = 0; i < 10000; i++)
    {
        zmcaux.ZAux_DirectCommand(g_handle, cmd, cmdBuff, 2048);
    }
    DateTime afterDT = System.DateTime.Now;
    TimeSpan ts = afterDT - beforeDT;
    label23.Text = (ts.TotalMilliseconds).ToString();
    label16.Text = ((ts.TotalMilliseconds * 1000) / 10000).ToString();
    string s = cmdBuff.ToString();
    string[] arrS = new string[20];
    for (int i = 0; i < s.Length; i++)
    {
        if (s[i] != 9)
        {
            arrS[star] += s[i];
        }
        else
        {
            star++;
            continue;
        }
????}
    label24.Text = arrS[0];
    label25.Text = arrS[1];
    label26.Text = arrS[2];
    label27.Text = arrS[3];
    label28.Text = arrS[4];
    label30.Text = arrS[5];
    label32.Text = arrS[6];
    label34.Text = arrS[7];
    if (Convert.ToInt32(arrS[8]) == 0)
    {
        label29.BackColor = Color.Red;
        label29.Text = "信號未觸";
    }
    else
    {
        label29.BackColor = Color.Green;
        label29.Text = "信號已觸";
    }
    if (Convert.ToInt32(arrS[9]) == 0)
    {
        label31.BackColor = Color.Red;
        label31.Text = "信號未觸";
    }
    else
    {
        label31.BackColor = Color.Green;
        label31.Text = "信號已觸";
    }
    if (Convert.ToInt32(arrS[10]) == 0)
    {
        label33.BackColor = Color.Red;
        label33.Text = "信號未觸";
    }
    else
    {
        label33.BackColor = Color.Green;
        label33.Text = "信號已觸";
    }
    if (Convert.ToInt32(arrS[11]) == 0)
    {
        label35.BackColor = Color.Red;
        label35.Text = "信號未觸";
    }
    else
    {
        label35.BackColor = Color.Green;
        label35.Text = "信號已觸";
    }
}
(4)通過斷開按鈕的消息響應函數來斷開控制器的鏈接。
private void button1_Click(object sender, EventArgs e)
{
    zmcaux.ZAux_Close(g_handle);
    g_handle = (IntPtr)0;
    label2.Text = "未連接";
    label2.BackColor = Color.Red;
}
9.運行效果

37e865de-8026-11ee-939d-92fbcf53809c.png









審核編輯:劉清

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

    關注

    4

    文章

    638

    瀏覽量

    33368
  • 上位機
    +關注

    關注

    27

    文章

    960

    瀏覽量

    55587
  • EtherCAT總線
    +關注

    關注

    5

    文章

    80

    瀏覽量

    5648
  • PWM輸出
    +關注

    關注

    1

    文章

    66

    瀏覽量

    5440

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

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

收藏 人收藏

    評論

    相關推薦
    熱點推薦

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

    XPCIE1032H款基于PCI Express的EtherCAT總線運動控制卡,可選6-64軸運動
    的頭像 發表于 01-13 09:11 ?1708次閱讀
    <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>C#<b class='flag-5'>開發</b>(九)

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

    XPCIE1032H款基于PCI Express的EtherCAT總線運動控制卡,可選6-64軸運動
    的頭像 發表于 02-25 10:11 ?1415次閱讀
    <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>C#<b class='flag-5'>開發</b>(十三)

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

    XPCIE1032H款基于PCI Express的EtherCAT總線運動控制卡,可選6-64軸運動
    的頭像 發表于 03-04 10:46 ?8.1w次閱讀
    <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>C#<b class='flag-5'>開發</b>(十四)

    EtherCAT超高速實時運動控制卡XPCIE1032H上位C#人工智能 #運動控制卡# 正運動技術

    人工智能運動控制卡
    正運動技術
    發布于 :2023年11月10日 15:42:22

    EtherCAT超高速實時運動控制卡XPCIE1032H驅動安裝# 運動控制卡# 正運動技術# PCIE

    人工智能運動控制卡
    正運動技術
    發布于 :2023年11月10日 15:44:03

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

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

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

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

    EtherCAT超高速實時運動控制卡XPCIE1032H上位C#開發(五):通過RTSys進行調試與診斷

    上位運動控制卡
    正運動技術
    發布于 :2023年12月11日 16:39:22

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

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

    XPCIE1032運動控制卡硬件手冊

    XPCIE1032 最多支持 16 軸運動控制XPCIE1032H 最多支持 64 軸運動控制
    發表于 06-06 14:59 ?0次下載

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

    PCIe實時運動控制卡助力EtherCAT高速高精運動控制應用!
    的頭像 發表于 06-26 10:14 ?7944次閱讀
    不止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 ?1044次閱讀
    <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>C#<b class='flag-5'>開發</b>(<b class='flag-5'>一</b>):<b class='flag-5'>驅動</b><b class='flag-5'>安裝</b>與建立連接

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

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

    基于PCI Express的EtherCAT總線運動控制卡-XPCIE1032H

    XPCIE1032H集成了強大的運動控制功能,結合MotionRT7運動控制實時軟核,解決了高速高精應用中,PC Windows
    發表于 12-02 10:02 ?1082次閱讀
    基于PCI Express的<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集成了強大的運動控制功能,結合MotionRT7運動控制實時軟核,解決了高速高精應用中,PC Windows
    發表于 01-15 11:20 ?927次閱讀
    <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>C#<b class='flag-5'>開發</b>