|
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運動控製實時內核的配合具有以下優勢:

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的測試數據結果對比:

我們可以從測試對比結果看出,XPCIE1032H運動控製卡配合實時運動控製內核MotionRT7,在LOCAL鏈接(核內交互)的方式下,指令交互的效率是非常穩定,當測試數量從1w增加到10w時,單條指令交互時間與多條指令交互時間波動不大,非常適用於高速高精的應用。
XPCIE1032H控製卡安裝
一、C#語言進行運動控製項目開發

1.到正運動技術官網的下載中心選擇需要的平台庫文件。
庫文件下載地址: http://www.zmotion.com.cn/download_list_21.html

2.解壓下載的安裝包找到“ Zmcaux.cs ”,“ zauxdll.dll ”,“ zmotion.dll ”放入到項目文件中。
(1)“Zmcaux.cs”放在項目根目錄文件中,與bin目錄同級。

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

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


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

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


三、XML文件生成ZML文件添加步驟
大家都知道,正運動總線控製器事先就把一些總線從站的 XML文件 添加到控製器的固件裏麵了,所以配合市麵上大部分的EtherCAT從站,客戶隻需要下載總線初始化腳本就可以和對應從站通訊,具體可以參考往期推文 EtherCAT超高速實時運動控製卡XPCIE1032H上位機C#開發(二):EtherCAT總線初始化 。
針對市麵上剛出的總線從站,我們沒有及時把XML文件添加到控製器固件裏麵或總線掃描的時候遇見不支持的從站,這個時候需要我們自己添加XML文件。

正運動控製器添加XML文件的步驟如下:
(1)通過XMLParsingTools工具軟件將XML轉換成ZML文件;
(2)把生成的ZML文件添加到Zpj項目裏麵,連同總線初始化腳本的Bas文件一起下載到控製器裏麵即可。
1、通過XMLParsingTools工具將XML文件轉換成ZML文件。
(1)點擊左上角文件夾打開XML文件,選擇對應的從站型號和從站類型( 這裏以友商的一拖四總線驅動器為例)。

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

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

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

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

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

3.將例程下載到ZML文件與總線初始化的Bas文件。
連接控製器,新建ZPJ項目文件,將總線初始化的Bas文件和剛剛生成的zml文件複製到新建項目的目錄下並一一添加進來,最後下載到控製器的ROM裏麵即可掉電保存。

三、應用例程及實現效果
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文件下載後的執行情況。

XML轉換工具使用教學:

本次,正運動技術 項目工程下載與XML配置文件下載 :EtherCAT超高速實時運動控製卡XPCIE1032H上位機C#開發(十),就分享到這裏。
更多精彩內容請關注“ 正運動小助手 ”公眾號,需要相關開發環境與例程代碼,請谘詢正運動技術銷售工程師。
本(ben)文(wen)由(you)正(zheng)運(yun)動(dong)技(ji)術(shu)原(yuan)創(chuang),歡(huan)迎(ying)大(da)家(jia)轉(zhuan)載(zai),共(gong)同(tong)學(xue)習(xi),一(yi)起(qi)提(ti)高(gao)中(zhong)國(guo)智(zhi)能(neng)製(zhi)造(zao)水(shui)平(ping)。文(wen)章(zhang)版(ban)權(quan)歸(gui)正(zheng)運(yun)動(dong)技(ji)術(shu)所(suo)有(you),如(ru)有(you)轉(zhuan)載(zai)請(qing)注(zhu)明(ming)文(wen)章(zhang)來(lai)源(yuan)。
正運動技術專注於運動控製技術研究和通用運動控製軟硬件產品的研發,是國家級高新技術企業。正運動技術彙集了來自華為、中(zhong)興(xing)等(deng)公(gong)司(si)的(de)優(you)秀(xiu)人(ren)才(cai),在(zai)堅(jian)持(chi)自(zi)主(zhu)創(chuang)新(xin)的(de)同(tong)時(shi),積(ji)極(ji)聯(lian)合(he)各(ge)大(da)高(gao)校(xiao)協(xie)同(tong)運(yun)動(dong)控(kong)製(zhi)基(ji)礎(chu)技(ji)術(shu)的(de)研(yan)究(jiu),是(shi)國(guo)內(nei)工(gong)控(kong)領(ling)域(yu)發(fa)展(zhan)最(zui)快(kuai)的(de)企(qi)業(ye)之(zhi)一(yi),也(ye)是(shi)國(guo)內(nei)少(shao)有(you)、完整掌握運動控製核心技術和實時工控軟件平台技術的企業。主要業務有:運動控製卡_運動控製器_EtherCAT運動控製卡_EtherCAT控製器_運動控製係統_視覺控製器__運動控製PLC_運動控製_機器人控製器_視覺定位_XPCIe/XPCI係列運動控製卡等等。

|