无码中文字幕色专区_91av俱乐部_无码人妻h动漫_26uuu成人_91九色丨porny丨国产jk_青青视频在线播放_国内自拍第二页_国产又粗又长又爽又黄的视频_色哟哟免费网站_久久出品必属精品_a级黄色一级片_99日在线视频

首頁 新聞 工控搜 論壇 廠商論壇 產品 方案 廠商 人才 文摘 下載 展覽
中華工控網首頁
  P L C | 變頻器與傳動 | 傳感器 | 現場檢測儀表 | 工控軟件 | 人機界面 | 運動控制
  D C S | 工業以太網 | 現場總線 | 顯示調節儀表 | 數據采集 | 數傳測控 | 工業安全
  電 源 | 嵌入式系統 | PC based | 機柜箱體殼體 | 低壓電器 | 機器視覺
硬件位置比較輸出和編碼器鎖存:EtherCAT超高速實時運動控制卡XPCIE1032H上位機C#開發(六)
深圳市正運動技術有限公司
收藏本文     查看收藏

XPCIE1032H功能簡介

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

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

運動控制卡XPCIE1032H.png

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

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

XPCIE1032H控制卡架構圖.png

?XPCIE1032H運動控制卡與MotionRT7運動控制實時內核的配合具有以下優勢:

優勢.png

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

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

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

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

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

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

多種上位機開發方式.png

?使用XPCIE1032H運動控制卡和MotionRT7運動控制實時內核進行項目開發時,通常需要進行以下步驟:

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

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

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

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

運動控制項目開發.png

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

核內交互數據.png

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

XPCIE1032H控制卡安裝

  • 關閉計算機電源。

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

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

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

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

創建項目.png

二、相關PC函數指令介紹

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

1、硬件位置比較輸出函數介紹

指令19.png
指令21.png

2、鎖存相關指令介紹

指令7.png
指令11.png
指令12.png
指令15.png
指令16.png

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

UI設計界面.png

三、相關程序及功能介紹

1.位置比較功能

(1)位置同步輸出PSO的原理與應用

PSO(position synchronized output)即位置同步輸出,本質是通過采集實時的編碼器反饋位置(無編碼器可使用輸出的脈沖位置)與比較模式設定的位置進行比較,控制OP高速同步輸出信號,PSO示意圖如下。

PSO示意圖.png

PSO一般與激光器(或點膠噴射閥等設備)同步輸出信號進行相位同步,在運動軌跡的所有階段以恒定的空間(或恒定時間)間隔觸發輸出開關,包括加速、減速和勻速段,從而實現脈沖能量均勻地作用在被加工物體上。

PSO功能的特點是能高速且穩定的輸出信號,因為輸出精度足夠高,所以能夠在整個運動軌跡中以固定的距離觸發輸出信號而不用考慮總體速度,即在直線部分以很快的速度運動,而在圓角部分減速的同時也能保證輸出間距恒定。

通常圓角加工部分在整個加工過程中占有比較小的部分,這樣在保證加工效果的同時,就可以最大限度地提高產能。

PSO功能.png

正運動的PSO功能調用ZAux_Direct_HwPswitch2函數接口實現,該函數采用硬件實現IO的高速比較輸出,響應速度達到微秒級別,故名硬件比較輸出。

(2)程序流程圖

程序流程圖.png

(3)相關代碼示例

private void Button2_Click(object sender, EventArgs e)     //運動按鈕
{
    //更新界面參數
    updata_value();
    //判斷是否連接控制器
    if (g_handle == (IntPtr)0)
    {
        MessageBox.Show("未鏈接到控制器!", "提示");
        return;
    }
    int iret = 0;
    AxisNum = 0;
    //獲取軸個數
    foreach (Control item in this.Controls)
        if (item is CheckBox)
        {
            CheckBox checkBox = (CheckBox)item;
            if (checkBox.CheckState == CheckState.Checked)
                AxisNum++;
        }
    //判斷是否選擇軸
    if (AxisNum == 0)
    {
        MessageBox.Show("沒選軸!", "提示");
        return;
    }
    int[] axislist = new int[AxisNum];
    float[] Distancelist = new float[AxisNum];
    foreach (int item in axislist)
        axislist[iret++] = -1;
    //獲取運動的軸數組和運動距離
    foreach (Control item in this.Controls)
        if (item is CheckBox)
        {
            CheckBox checkBox = (CheckBox)item;
            if (checkBox.CheckState == CheckState.Checked)
            {
                int axis = Convert.ToInt32(checkBox.Name.Substring(checkBox.Name.Length - 1, 1));
                int index = Array.IndexOf(axislist, -1);
                axislist[index] = axis;
                string DistanceName = "Distance" + axis.ToString();
                Distancelist[index] = float.Parse(((System.Windows.Forms.TextBox)this.Controls.Find(DistanceName, false)[0]).Text);
            }
        }
    //初始化輸出口
    for (int i = 0; i < 3; i++)
        iret = zmcaux.ZAux_Direct_SetOp(g_handle, i, 0);
    //選擇運動的軸
    iret = zmcaux.ZAux_Direct_Base(g_handle, AxisNum, axislist);
    //初始化運動參數
    foreach (int item in axislist)
    {
        iret = zmcaux.ZAux_Direct_SetUnits(g_handle, item, 100);
        iret = zmcaux.ZAux_Direct_SetSpeed(g_handle, item, 100);
        iret = zmcaux.ZAux_Direct_SetAccel(g_handle, item, 2000);
        iret = zmcaux.ZAux_Direct_HwPswitch2(g_handle, item, 2, 0, 0, 0, 0, 0, 0, 0, 0);     //清除前面的比較輸出指令
    }
    iret = zmcaux.ZAux_Direct_HwTimer(g_handle, 2, 0, 0, 0, 0, 0);                      //關閉硬件定時器
    //起點輸出口狀態設置
    int tempoutstatus = 0;
    if (ModePara2 == 0)
        tempoutstatus = 1;
    else
        tempoutstatus = 0;
    //硬件定時器設置
    if (m_Timer_IfOpen == false)
    {
        iret = zmcaux.ZAux_Direct_HwTimer(g_handle, 2, m_Timer_Cycle, m_Timer_Valid, m_Timer_Num, tempoutstatus, ModePara1);
        if (iret != 0)
        {
            string tempstr;
            tempstr = "HwTimer失敗 返回值:" + iret.ToString();
            MessageBox.Show(tempstr, "提示");
            return;
        }
    }
    else
    {
        iret = zmcaux.ZAux_Direct_HwTimer(g_handle, 0, m_Timer_Cycle, m_Timer_Valid, m_Timer_Num, tempoutstatus, ModePara1);
        if (iret != 0)
        {
            string tempstr;
            tempstr = "HwTimer失敗 返回值:" + iret.ToString();
            MessageBox.Show(tempstr, "提示");
            return;
        }
    }
    //HwPswitch設置
    if (m_POS_IfOpen)          
    {
        //將比較點填入TABLE
        switch (PsoMode)
        {
            case 1:
            case 3:
                iret = zmcaux.ZAux_Direct_SetTable(g_handle, ModePara3, ModePara4 - ModePara3 + 1, fPointPos);          
                break;
            case 25:
            case 26:
                iret = zmcaux.ZAux_Direct_SetTable(g_handle, ModePara5, ModePara4 * 2, fPointPos);
                break;
            case 35:
            case 36:
                iret = zmcaux.ZAux_Direct_SetTable(g_handle, ModePara5, ModePara4 * 3, fPointPos);
                break;
        }
        if (iret != 0)
        {
            string tempstr;
            tempstr = "SetTable失敗 返回值:" + iret.ToString();
            MessageBox.Show(tempstr, "提示");
            return;
        }
        //初始化矢量位置
        switch (PsoMode)
        {
            case 3:
            case 4:
            case 5:
            case 6:
            case 7: zmcaux.ZAux_Direct_SetParam(g_handle, "VECTOR_MOVED", 0, 0); break;
        }
        //PSO指令設置
        switch (PsoMode)
        {
            case 1:
            case 2:
            case 3:
            case 4:
            case 5:
            case 6:
                iret = zmcaux.ZAux_Direct_HwPswitch2(g_handle, axislist[0], PsoMode, ModePara1, ModePara2, ModePara3, ModePara4, ModePara5, ModePara6, ModePara7, ModePara8);
                break;
            case 7:
            case 25:
            case 26:
            case 35:
            case 36:
                iret = ZAux_Direct_HwPswitch2_2D();
                break;
        }
        if (iret != 0)
        {
            string tempstr;
            tempstr = "HwPswitch2失敗 返回值:" + iret.ToString();
            MessageBox.Show(tempstr, "提示");
            return;
        }
    }
    else
    {
        iret = 0;
        iret = zmcaux.ZAux_Direct_HwPswitch2(g_handle, axislist[0], 2, 0, 0, 0, 0, 0, 0, 0, 0);         //清除比較輸出指令
        if (iret != 0)
        {
            string tempstr;
            tempstr = "HwPswitch2失敗 返回值:" + iret.ToString();
            MessageBox.Show(tempstr, "提示");
            return;
        }
    }
    //觸發示波器
    zmcaux.ZAux_Trigger(g_handle);
    //多軸插補運動
    iret = zmcaux.ZAux_Direct_Move(g_handle, AxisNum, axislist, Distancelist);
}

2.鎖存功能

(1)鎖存的原理和應用

鎖存的原理是通過高速輸入口的感應來記錄當前編碼器的位置。當鎖存信號被觸發時,當前位置信息立即被捕獲到位置鎖存器中,并將前一次鎖存的位置坐標 清除。讀取鎖存位置信息時,讀取的是最后一次鎖存信號觸發時鎖存的位置信息。

鎖存一般應用于包裝,印刷,點膠,視覺飛拍等。

鎖存示意圖.png

(2)程序流程圖

鎖存流程圖.png

(3)相關代碼示例

private void Button1_Click(object sender, EventArgs e)      //啟動鎖存
 {
     if (g_handle == (IntPtr)0)
     {
         MessageBox.Show("未鏈接到控制器!", "提示");
         return;
     }
     int iret = 0;
     if (m_Regist_IfOpen == false)
     {
         m_RegistCount = 0;
         iret = zmcaux.ZAux_Direct_SetAtype(g_handle, m_RegistAxis, 1);        //必須是編碼器軸才可以鎖存
         int ReglistListSel = ComboBox1.SelectedIndex;
         if (ReglistListSel >= 0 && ReglistListSel <= 3)
         {
             RegistMode = ReglistListSel + 1;
         }
         else if (ReglistListSel == 4 || ReglistListSel == 5)
         {
             RegistMode = 10 + ReglistListSel;
         }
         else if (ReglistListSel > 5 || ReglistListSel < 9)
         {
             RegistMode = 12 + ReglistListSel;
         }
         iret = zmcaux.ZAux_Direct_Regist(g_handle, m_RegistAxis, RegistMode);
         timer2.Start();
         //m_Regist_IfOpen 標志位變true 表示開啟了鎖存
         //反轉按鈕的設置
         m_Regist_IfOpen = true;
         //不允許修改鎖存軸軸號
         //將啟動鎖存按鈕變成停止鎖存
         ComboBox1.Enabled = false;
         Button1.Text = "停止鎖存";
     }
     else
     {
         timer2.Stop();
         m_Regist_IfOpen = false;
         ComboBox1.Enabled = true;
         Button1.Text = "啟動鎖存";
         DataGridView2.Rows.Clear();    
     }
 }

四、XPCIE1032H的IO接口介紹

1.IO規格介紹

XPCIE1032H IO接口表格.png

2.IO端子定義

XPCIE1032H IO端子定義圖.png

3.端子定義表

XPCIE1032H端子定義表.png

下文內容中效果演示就是使用高速輸出口0實現PSO高速輸出,高速輸入口0實現鎖存輸入。

4.IO接線圖

IO接線圖.png

五、效果演示

根據上面的開發流程操作后,編譯運行例程。同時連接ZDevelop軟件進行調試,對運動控制的軸參數和運動情況進行監控。

如下圖設置: LOCAL連接上控制卡后,首先開啟PSO硬件位置比較輸出功能;

第一步: 設置高速比較輸出口0,首個比較點的輸出狀態為1,設置比較軸為0。設置4個比較點,比較點坐標分別為:100,200,300,400。

第二步: 開啟開啟編碼器鎖存功能:設置鎖存軸號為0,鎖存模式為3。

第三步: 勾選運動軸號0并填上運動距離5000,最后將輸入口0和輸出口0接上。

即當軸運動到100,200,300,400時,都會觸發電平變化,并且會通過鎖存將鎖存的位置保存下來。

例程接線示意圖.png

例程接線示意圖

參數設置示意圖.png

參數設置示意圖

效果演示示意圖.png

效果演示示意圖

示波器波形如下圖所示:

PSO和鎖存示波器波形圖.png

硬件位置比較輸出和編碼器鎖存例程講解:

完整代碼獲取地址

完整代碼下載地址.png

本次,正運動技術硬件位置比較輸出和編碼器鎖存:EtherCAT超高速實時運動控制卡XPCIE1032H上位機C#開發(六),就分享到這里。

更多精彩內容請關注“ 正運動小助手 ”公眾號,需要相關開發環境與例程代碼,請咨詢正運動技術銷售工程師:400-089-8936。

本文由正運動技術原創,歡迎大家轉載,共同學習,一起提高中國智能制造水平。文章版權歸正運動技術所有,如有轉載請注明文章來源。

正運動技術專注于運動控制技術研究和通用運動控制軟硬件產品的研發,是國家級高新技術企業。正運動技術匯集了來自華為、中興等公司的優秀人才,在堅持自主創新的同時,積極聯合各大高校協同運動控制基礎技術的研究,是國內工控領域發展最快的企業之一,也是國內少有、完整掌握運動控制核心技術和實時工控軟件平臺技術的企業。主要業務有:運動控制卡_運動控制器_EtherCAT運動控制卡_EtherCAT控制器_運動控制系統_視覺控制器__運動控制PLC_運動控制_機器人控制器_視覺定位_XPCIe/XPCI系列運動控制卡等等。

二維碼-02.jpg


 

狀 態: 離線

公司簡介
產品目錄

公司名稱: 深圳市正運動技術有限公司
聯 系 人: 戴德弟
電  話: 0755-32976042
傳  真: 0755-2606 6955
地  址: 深圳市寶安區西鄉洲石路陽光工業園A1棟5樓
郵  編: 518100
主  頁:
 
該廠商相關技術文摘:
運動控制器PSO位置同步輸出(一):硬件平臺與PSO指令簡介
EtherCAT與RTEX驅動器軸回零的配置與實現
運動控制器位置鎖存功能的應用
開放式激光振鏡運動控制器:C++快速開發
機器視覺運動控制一體機應用例程|供料單元物料在線有無檢測
EtherCAT總線運動控制器中簡單易用的直線插補
EtherCAT運動控制卡的自定義運動曲線
機器視覺運動控制一體機應用例程|端子裁切檢測
機器視覺運動控制一體機應用例程|柔性電路板自動上料解決方案
開放式激光振鏡運動控制器(四):ZMC408SCAN振鏡控制光纖激光器加工
開放式激光振鏡運動控制器(五):ZMC408SCAN光纖激光器的能量控制
EtherCAT軸擴展模塊EIO16084在運動控制系統中的應用
更多文摘...
立即發送詢問信息在線聯系該技術文摘廠商:
用戶名: 密碼: 免費注冊為中華工控網會員
請留下您的有效聯系方式,以方便我們及時與您聯絡

關于我們 | 聯系我們 | 廣告服務 | 本站動態 | 友情鏈接 | 法律聲明 | 不良信息舉報
工控網客服熱線:0755-86369299
版權所有 中華工控網 Copyright©2022 Gkong.com, All Rights Reserved

无码中文字幕色专区_91av俱乐部_无码人妻h动漫_26uuu成人_91九色丨porny丨国产jk_青青视频在线播放_国内自拍第二页_国产又粗又长又爽又黄的视频_色哟哟免费网站_久久出品必属精品_a级黄色一级片_99日在线视频
亚洲欧洲高清| 精品99在线| 亚洲一级少妇| 日韩av网站在线观看| 99久久夜色精品国产亚洲1000部| 色综合五月天| 美女久久久久| 国产精品www.| 国产三级精品三级在线观看国产| 日韩一区精品视频| 亚洲激情二区| 欧美日韩一区二区三区视频播放| 精品美女久久| 青青草精品视频| 亚洲精品进入| 视频一区视频二区中文字幕| 激情五月综合| 国产精品久久国产愉拍| 欧美在线资源| 亚洲精品无播放器在线播放| 亚洲女同中文字幕| 久久精品免费一区二区三区| 久久影院资源站| 亚洲在线免费| 日韩中文字幕| 国产精品宾馆| 麻豆国产91在线播放| 久久的色偷偷| 99精品一区| 91精品韩国| 亚洲福利精品| 日韩av中文在线观看| 国产亚洲欧美日韩在线观看一区二区| 最新日韩av| 亚洲精品美女| 国产欧美日韩一级| 日韩精品视频网站| 国产精品欧美一区二区三区不卡| 激情中国色综合| av成人国产| 日韩国产欧美一区二区三区| 色婷婷色综合| 国产亚洲高清视频| 六月天综合网| 国产精品日本一区二区三区在线| 久久在线91| 日韩亚洲精品在线| 国产精品18| 91亚洲精品在看在线观看高清| 亚洲精品永久免费视频| 日韩精品一二区| 国产美女久久| 激情综合亚洲| 少妇精品在线| 亚洲不卡av不卡一区二区| 日韩中文字幕麻豆| 中文字幕系列一区| 国产精品毛片视频| 老鸭窝亚洲一区二区三区| 国产精品白丝一区二区三区| 久久精品电影| 麻豆精品av| 婷婷综合一区| 激情五月综合| 黄色av一区| 免费日韩成人| 99香蕉国产精品偷在线观看 | 免费视频久久| 欧美国产日本| 亚洲3区在线| 久久人人88| 美腿丝袜亚洲一区| 日韩欧美中文在线观看| 久久婷婷激情| 麻豆国产91在线播放| 国产一区二区高清| 久久天堂精品| 精品91福利视频| 久久精品女人| 9色精品在线| 免费av一区二区三区四区| 国产一区丝袜| 国产精品综合| 日韩av中文字幕一区| 99在线|亚洲一区二区| 久久久夜精品| 日韩精品欧美| 不卡专区在线| 国产欧美日韩影院| 欧美一级一区| 国产毛片一区二区三区| 蜜桃久久精品一区二区| 红桃视频国产精品| 综合激情在线| 日韩制服丝袜av| 亚洲美洲欧洲综合国产一区| 久久九九精品| 黄色成人精品网站| 亚洲精品进入| 亚洲欧美视频一区二区三区| 婷婷色综合网| 精品视频国内| 亚洲激情av| 日韩精品一区二区三区中文| 免费高清在线一区| 日韩中文字幕一区二区高清99| 欧美亚洲激情| 999视频精品| 国内精品99| 欧美另类综合| 国产手机视频一区二区| 视频一区二区三区中文字幕| 日本 国产 欧美色综合| 国产日韩三级| 精品99久久| 日韩精品免费一区二区在线观看| 91精品亚洲| 日韩黄色免费网站| 欧美日一区二区在线观看| 亚洲3区在线| 麻豆精品av| 亚洲精品国产偷自在线观看| 中文字幕av一区二区三区四区| 亚洲欧洲专区| 久久精品欧洲| 国产一区2区| 国产亚洲高清视频| 国产美女久久| 亚洲精品88| 蜜桃一区二区三区在线观看| 日韩精品一页| 国产精品麻豆久久| 久久成人国产| 在线手机中文字幕| 91久久久精品国产| 久久影视三级福利片| 日韩国产一区二区| 日韩国产一区二| 日韩成人精品一区二区| 欧美亚洲三区| 婷婷综合激情| 欧美激情网址| 91精品国产自产在线丝袜啪| 91日韩欧美| 国产精品99久久久久久董美香| 六月婷婷一区| 亚洲黄页一区| 午夜视频精品| 激情自拍一区| 精品视频网站| 国产精品白浆| 久久成人福利| 国产欧美日韩在线一区二区| 99亚洲视频| 日韩精品首页| 久久只有精品| 中文字幕一区二区av | 国产精品2023| 999国产精品视频| 国产视频一区二| 日韩av网站在线观看| 国产一卡不卡| 亚洲一区二区动漫| 午夜精品久久久久久久久久蜜桃| 日韩精品亚洲一区二区三区免费| 免费人成在线不卡| 日韩中文字幕视频网| 亚洲调教视频在线观看| 成人欧美一区二区三区的电影| 视频在线在亚洲| 一本综合精品| 国产欧美日韩在线一区二区 | 亚洲精选91| 国产精品美女久久久浪潮软件| 亚洲精品在线影院| 亚洲欧美日韩国产一区二区| 97在线精品| 成人亚洲一区| 国产91在线精品| 99久久精品网| 久久亚洲成人| 久久久久九九精品影院| 免费日韩成人| 国产精品色在线网站| 国产欧美一区二区三区精品酒店| 久久精品72免费观看| 亚洲在线久久| 视频一区在线视频| 国内精品伊人| 水蜜桃精品av一区二区| 日韩高清中文字幕一区二区| 97精品国产福利一区二区三区| 日本免费久久| 国产精品免费99久久久| 日韩 欧美一区二区三区| 国产日韩欧美在线播放不卡| 视频一区视频二区在线观看| 日韩在线网址| 欧美aⅴ一区二区三区视频| 亚洲欧美日韩专区|