无码人妻精品一区二区三区9厂-国产精品人人做人人爽人人添-在线永久免费观看黄网站-国产精品久久久久一区二区三区

首頁 新聞 工控搜 論壇 廠商論壇 產品 方案 廠商 人才 文摘 下載 展覽
中華工控網首頁
  P L C | 變頻器與傳動 | 傳感器 | 現場檢測儀表 | 工控軟件 | 人機界面 | 運動控制
  D C S | 工業以太網 | 現場總線 | 顯示調節儀表 | 數據采集 | 數傳測控 | 工業安全
  電 源 | 嵌入式系統 | PC based | 機柜箱體殼體 | 低壓電器 | 機器視覺
項目工程下載與XML配置文件下載: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卡槽,用螺絲刀卸下相應的擋板條。

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

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

創建項目.png

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

庫文件下載地址:  http://www.zmotion.com.cn/download_list_21.html

庫文件下載路徑.png

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

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

1.png

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

2.png

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

3.png
4.png

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

5.png

二、PC函數介紹

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

指令1.png

指令2.png

三、XML文件生成ZML文件添加步驟

大家都知道,正運動總線控制器事先就把一些總線從站的 XML文件 添加到控制器的固件里面了,所以配合市面上大部分的EtherCAT從站,客戶只需要下載總線初始化腳本就可以和對應從站通訊,具體可以參考往期推文 EtherCAT超高速實時運動控制卡XPCIE1032H上位機C#開發(二):EtherCAT總線初始化 。

針對市面上剛出的總線從站,我們沒有及時把XML文件添加到控制器固件里面或總線掃描的時候遇見不支持的從站,這個時候需要我們自己添加XML文件。

總線掃面失敗.png

正運動控制器添加XML文件的步驟如下:

(1)通過XMLParsingTools工具軟件將XML轉換成ZML文件;

(2)把生成的ZML文件添加到Zpj項目里面,連同總線初始化腳本的Bas文件一起下載到控制器里面即可。

1、通過XMLParsingTools工具將XML文件轉換成ZML文件。

(1)點擊左上角文件夾打開XML文件,選擇對應的從站型號和從站類型( 這里以友商的一拖四總線驅動器為例)。

1.png

(2)點擊左上角文件夾位置導出ZML文件即可。

2.png

2、RTSys軟件同時下載ZML文件與總線初始化的Bas文件(下載ZPJ項目)。

(1)把剛剛生成的ZML文件拷貝到總線初始化的ZPJ項目文件夾下,通過RTSys軟件打開【EtherCAT參數.zpj】這個項目文件。

3.png

(2)右鍵文件視圖區域,點擊【增加到項目】將剛剛生成的ZML文件添加到項目里面。

4.png

(3)點擊連接按鈕,通過Local接口鏈接上控制器。

5.png

(4)點擊【下載到ROM】,將整個項目下載到控制器里面掉電保存即可。

6.png

3.將例程下載到ZML文件與總線初始化的Bas文件。

連接控制器,新建ZPJ項目文件,將總線初始化的Bas文件和剛剛生成的zml文件復制到新建項目的目錄下并一一添加進來,最后下載到控制器的ROM里面即可掉電保存。

7.png

三、應用例程及實現效果

1、點擊連接按鈕鏈接到MotionRT7運動控制軟核。

//連接控制器
private void Btn_cn_Click(object sender, EventArgs e)
{
    int ret;
    //鏈接控制器
    ret= zmcaux.ZAux_FastOpen(5,textBox1.Text,1000,out g_handle);
    if (g_handle != (IntPtr)0)
    {
        MessageBox.Show("RT7鏈接成功!", "提示");
        timer1.Enabled = true;
    }
    else
    {
        MessageBox.Show("RT7鏈接失敗"+"錯誤代碼"+ ret);
    }
}

2、新建Zpj項目文件。

//新建zpj文件
private void NewZpjFile_Click(object sender, EventArgs e)    
{
    try
    {
        //創建保存文件對話框  
        SaveFileDialog saveFile = new SaveFileDialog();  
        saveFile.Filter = "ZMC Project Files(*.zpj)|*.zpj";
        //是否覆蓋當前文件
        saveFile.OverwritePrompt = true;  
        //如果設為true就會使用系統默認目錄
        saveFile.RestoreDirectory = true;  //還原目錄
        //如果保存對話框操作成功
        if (saveFile.ShowDialog() == DialogResult.OK)
        {
            FileStream fs1 =new FileStream(saveFile.FileName, FileMode.Create, FileAccess.ReadWrite);  
            fs1.Close();
            //ZPJ文件名
            m_ZpjFileName = saveFile.FileName;
            //ZPJ文件路徑
            m_ZpjFilePath = System.IO.Path.GetDirectoryName(m_ZpjFileName); 
            System.IO.File.Create(m_ZpjFileName).Close();
            Thread.Sleep(100);
            if (!System.IO.File.Exists(m_ZpjFileName))
            {
                MessageBox.Show("文件不存在");
            }
            //初始化ZPJ文件信息
            Czpj();
        }                       
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message);
    }
}
//初始化ZPJ文件信息_通過Ini文件記錄
 public void Czpj()
{
    string LpAppname, Lpkeynum, Lpdata;
    LpAppname = "Controller";
    Lpkeynum = "TypeName ";
    //寫控制器信息,初始化ZPJ文件信息          
    Thread.Sleep(200);
    var MyIni = new IniFile(@m_ZpjFileName);
    MyIni.Write(Lpkeynum, "", LpAppname);
    MyIni.Write("IfUpload", "0", LpAppname);
    MyIni.Write("UserVersion", "1.0", LpAppname);
    Lpdata = num.ToString(); //
    MyIni.Write("Files",Lpdata, LpAppname);
    MyIni.Write("Breaks", "0", LpAppname);
    MyIni.Write("Watches", "0", LpAppname);
    MyIni.Write("PicPack", "0", LpAppname);
    MyIni.Write("BREAKMODE", "1", LpAppname);
    m_ZpjOPenFlag = true;
}

3、添加Bas文件到Zpj項目里面。

//添加bas文件
private void AddBas_Click(object sender, EventArgs e)
{
    if (!m_ZpjOPenFlag) 
    {
        MessageBox.Show("先新建/打開ZPJ項目!");
        return;
    }
    //創建打開文件對話框
    OpenFileDialog ofd2 = new OpenFileDialog();
    ofd2.Filter = "ZMC Basic Files (*.bas)|*.bas";
    ofd2.RestoreDirectory = true;
    //如果文件選擇成功
    if (ofd2.ShowDialog() == DialogResult.OK)
    {
        string fullname = ofd2.FileName;
        m_ZpjFilePath = System.IO.Path.GetDirectoryName(fullname); //路徑
        m_SubFileName = System.IO.Path.GetFileName(fullname);  //名稱
        m_ZpjFile_Info[num].pFileName = m_SubFileName;
        m_ZpjFile_Info[num].nAutoTask = -1;
        m_ZpjFile_Info[num].nFileType= 1;    //bas的文件類型是1
        num++;
         //通過Ini文件來記錄Zpj項目文件信息 
        SaveZpj();
        //在控件上顯示出來項目文件信息
        ShowFileList();
    }
}
//保存ZPJ文件
public void SaveZpj()
{
    //打開ZPJ的ini文件
    string IniFileName = m_ZpjFilePath + "\\" + m_ZpjFileName;
    var MyIni = new IniFile(IniFileName);
    string LpAppname, Lpkeynum, Lpdata;
    LpAppname = "Controller";
    Lpkeynum = "TypeName ";
    String iFileName = "";
    MyIni.Write("Files", num.ToString(), LpAppname);
    //寫FileList信息
    LpAppname = "FileList";
    //遍歷ZPJ里面的文件情況
    int i=0;
    for (i = 0; i < num; i++)
    {
        if (m_ZpjFile_Info[i].pFileName == "")
        {
            Lpdata = "空文件!" + m_ZpjFile_Info[i].nAutoTask.ToString();
        }
        //子文件名帶路徑
        iFileName = m_ZpjFilePath + "\\" + m_ZpjFile_Info[i].pFileName;
        if (!System.IO.File.Exists(iFileName))
        {
            Lpdata = "文件不存在!" + m_ZpjFile_Info[i].pFileName;
            MessageBox.Show(Lpdata);
        }
        //更新子文件ID
        Lpkeynum = "File" + (i + 1);
        Lpdata = m_ZpjFile_Info[i].pFileName;
        MyIni.Write(Lpkeynum, Lpdata, LpAppname);
        //更新子文件類型
        Lpkeynum = "FileType" + (i + 1);
        Lpdata = m_ZpjFile_Info[i].nFileType.ToString();
        MyIni.Write(Lpkeynum, Lpdata, LpAppname);
        //更新子文件自動運行號
        Lpkeynum = "AutoRun" + (i + 1);
        Lpdata = m_ZpjFile_Info[i].nAutoTask.ToString();
        MyIni.Write(Lpkeynum, Lpdata, LpAppname);            
    }
    //刪除多余的鍵
    Lpkeynum = "File" + (num+1);
    MyIni.DeleteKey(Lpkeynum, LpAppname);
    Lpkeynum = "FileType" + (num + 1);
    MyIni.DeleteKey(Lpkeynum, LpAppname);
    Lpkeynum = "AutoRun" + (num + 1);
    MyIni.DeleteKey(Lpkeynum, LpAppname);
    //寫OpenList信息
    LpAppname = "OpenList";  
    m_ZpjOPenFlag = true;
}

4、添加Zml文件到Zpj項目里面。

//添加zml文件
private void AddZml_Click(object sender, EventArgs e)
{
    if (!m_ZpjOPenFlag)
    {
        MessageBox.Show("先新建/打開ZPJ項目!");
        return;
    }
    OpenFileDialog ofd2 = new OpenFileDialog();
    ofd2.Filter = "ZMC ZML Files (*.zml)|*.zml";
    ofd2.RestoreDirectory = true;
    if (ofd2.ShowDialog() == DialogResult.OK)
    {
        string fullname = ofd2.FileName;
        m_ZpjFilePath = System.IO.Path.GetDirectoryName(fullname); //路徑
        m_SubFileName = System.IO.Path.GetFileName(fullname);  //名稱
        m_ZpjFile_Info[num].pFileName = m_SubFileName;
        m_ZpjFile_Info[num].nAutoTask = -1;
        m_ZpjFile_Info[num].nFileType = 19;//ZML文件的文件類型是19
        num++;
        //通過Ini文件來記錄Zpj項目文件信息 
        SaveZpj();
        //在控件上顯示出來項目文件信息
        ShowFileList();
    }
}

5、將ZPJ文件下載到控制器的ROM里面進行掉電保存。

//下載到rom
private void button9_Click(object sender, EventArgs e)
{
    if (!m_ZpjOPenFlag)
    {
        MessageBox.Show("先新建/打開ZPJ項目!");
        return;
    }
    if (g_handle != (IntPtr)0)
    {
        ShowFileListSave();
        SaveZpj();
        String ZpjFileName = m_ZpjFilePath + "\\" + m_ZpjFileName;
        String m_ZarFileName = m_ZpjFilePath + "\\" + "ZmcZpj.Zar";
        //將ZPJ項目下載到控制器的ROM里面
        zmcaux.ZAux_ZpjDown(g_handle, ZpjFileName, m_ZarFileName, null, 0, 1);
    }
    else
    {
        MessageBox.Show("控制器未連接");
    }
}

6、通過RTSys軟件監控Zpj文件下載后的執行情況。

8.png

XML轉換工具使用教學:

完整代碼下載地址.png

本次,正運動技術 項目工程下載與XML配置文件下載 :EtherCAT超高速實時運動控制卡XPCIE1032H上位機C#開發(十),就分享到這里。

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

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

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

二維碼-02.jpg


 

狀 態: 離線

公司簡介
產品目錄

公司名稱: 深圳市正運動技術有限公司
聯 系 人: 戴德弟
電  話: 0755-32976042
傳  真: 0755-2606 6955
地  址: 深圳市寶安區西鄉洲石路陽光工業園A1棟5樓
郵  編: 518100
主  頁:
 
該廠商相關技術文摘:
機器視覺運動控制一體機在線路板跟隨灌膠上的應用
強實時運動控制內核MotionRT750(五):EtherCAT總線冗余讓生產制造更可靠
深圳·EelE智博會:智控賦能,驅動未來制造
機器視覺運動控制一體機在喇叭跟隨點膠上的應用
強實時運動控制內核MotionRT750(四):高速貼裝應用中的拱形運動
聚焦深圳國際電子展 | 正運動攜熱門產品和方案!等您來體驗!
超高速EtherCAT實時運動控制卡在高速半導體固晶機上的應用
強實時運動控制內核MotionRT750(三):us級高速交互之C#,為智能裝備提速
激光振鏡運動控制器在流水線激光打標上的應用
高速高精運動控制!PCIe超實時2通道EtherCAT運動控制卡上市!
步進控制的光柵尺全閉環EtherCAT運動控制器ZMC432CL-V2(五):Python編程調試
單旋轉臺XYR在精密點膠/外觀檢測/精密焊接的C#應用
更多文摘...
立即發送詢問信息在線聯系該技術文摘廠商:
用戶名: 密碼: 免費注冊為中華工控網會員
請留下您的有效聯系方式,以方便我們及時與您聯絡

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