|
今天,正運動小助手給大家分享一下全國產EtherCAT運動控製邊緣控製器ZMC432H的軸參數配置和單軸運動控製。
一、功能簡介
全國產EtherCAT運動控製邊緣控製器ZMC432H是正運動的一款軟硬件全國產自主可控,運動控製接口兼容EtherCAT總線和脈衝型的獨立式運動控製器,最多支持32軸運動控製,同時支持正運動遠程HMI功能,能提供網絡組態顯示,可實時監控和調整參數配置。

ZMC432H具備豐富的硬件接口和控製功能模塊,能實現高效穩定的運動控製和實時數據采集,以滿足工業控製協同工業互聯網的應用需求。
ZMC432H內置了Linux係統,可以使用本地的LOCAL接口進行連接,可以做到更快速的指令交互,單條指令與多條指令一次性交互時間為40us左右。

ZMC432H視頻介紹:
二、C++進行運動控製開發
1.新建MFC項目並添加函數庫
(1)在VS2022菜單“文件”→“新建”→ “項目”,啟動創建項目向導。

(2)選擇開發語言為“Visual C++”和程序類型“MFC應用程序”。

(3)點擊下一步即可。

(4)選擇類型為“基於對話框”,下一步或者完成。

(5)找到廠家提供的光盤資料,路徑如下(64位庫為例)。
A.進入廠商提供的光盤資料找到“8.PC函數”文件夾,並點擊進入。

B.選擇“函數庫2.1.1”文件夾。

C.選擇“Windows平台”文件夾。

D.根據需要選擇對應的函數庫這裏選擇64位庫。

E.解壓C++的壓縮包,裏麵有C++對應的函數庫。

F.函數庫具體路徑如下。

(6)將廠商提供的C++的庫文件和相關頭文件複製到新建的項目裏麵。

(7)在項目中添加靜態庫和相關頭文件。
A.先右擊項目文件,接著依次選擇:“添加”→“現有項”。

B.在彈出的窗口中依次添加靜態庫和相關頭文件。
(8)聲明用到的頭文件和定義控製器連接句柄。

至此項目新建完成,可進行MFC項目開發。
2.查看PC函數手冊,熟悉相關函數接口
(1)PC函數手冊也在光盤資料裏麵,具體路徑如下:“光盤資料\3.編程手冊\ZMotion函數庫編程手冊 V2.1.1\ZMotion函數庫編程手冊 V2.1.1.pdf”。

(2)鏈接控製器,獲取鏈接句柄。

(3)軸參數配置相關接口。

(4)單軸運動接口。

(5)軸狀態監控。

3.MFC進行軸參數配置和單軸運動控製
(1)例程界麵如下。

(2)鏈接按鈕的事件處理函數中調用鏈接控製器的接口函數ZAux_OpenEth,與控製器進行鏈接,鏈接成功後啟動定時器1監控控製器狀態
//網口鏈接控製器
void CSingle_move_Dlg::OnOpen() //網口鏈接控製器
{
char buffer[256];
int32 iresult;
if(NULL != g_handle)
{
ZAux_Close(g_handle);
g_handle = NULL;
}
GetDlgItemText(IDC_IPLIST,buffer,255);
buffer[255] = '\0';
iresult = ZAux_OpenEth(buffer, &g_handle);
if(ERR_SUCCESS != iresult)
{
g_handle = NULL;
MessageBox(_T("鏈接失敗"));
SetWindowText("未鏈接");
return;
}
SetWindowText("已鏈接");
SetTimer( 1, 100, NULL );
}
(3)通過定時器1對控製器信息進行監控。
void CSingle_move_Dlg::OnTimer(UINT_PTR nIDEvent)
{
if(NULL == g_handle)
{
MessageBox(_T("鏈接斷開"));
return ;
}
if(1 == nIDEvent)
{
CString string;
float position = 0;
ZAux_Direct_GetDpos( g_handle,m_nAxis,&position); //獲取當前軸位置
string.Format("當前位置:%.2f", position );
GetDlgItem( IDC_CURPOS )->SetWindowText( string );
float NowSp = 0;
ZAux_Direct_GetVpSpeed( g_handle,m_nAxis,&NowSp); //獲取當前軸速度
string.Format("當前速度:%.2f", NowSp );
GetDlgItem( IDC_CURSPEED)->SetWindowText( string );
int status = 0;
ZAux_Direct_GetIfIdle(g_handle, m_nAxis,&status); //判斷當前軸狀態
if (status == -1)
{
GetDlgItem( IDC_CURSTATE )->SetWindowText( "當前狀態:停 止" );
}
else
{
GetDlgItem( IDC_CURSTATE )->SetWindowText( "當前狀態:運動中" );
}
}
CDialog::OnTimer(nIDEvent);
}
(4)通過設置按鈕的事件處理函數對控製器的軸參數進行配置。
void CSingle_move_Dlg::OnBnClickedSetpara()
{
UpdateData(true);//刷新參數
//m_nAxis表示當前程序選定的軸,x為軸0,以此類推
//設置脈衝當量 1表示以一個脈衝為單位 ,設置為1MM的脈衝個數,這度量單位為MM
ZAux_Direct_SetUnits(g_handle, m_nAxis, m_units);
//設定速度,加減速
ZAux_Direct_SetLspeed(g_handle, m_nAxis, m_lspeed);
ZAux_Direct_SetSpeed(g_handle, m_nAxis, m_speed);
ZAux_Direct_SetAccel(g_handle, m_nAxis, m_acc);
ZAux_Direct_SetDecel(g_handle, m_nAxis, m_dec);
//設定S曲線時間 設置為0表示梯形加減速
ZAux_Direct_SetSramp(g_handle, m_nAxis, m_sramp);
}
(5)通過啟動按鈕的事件處理函數來進行單軸運動。
void CSingle_move_Dlg::OnStart() //啟動運動
{
if(NULL == g_handle)
{
MessageBox(_T("鏈接斷開狀態"));
return ;
}
UpdateData(true);//刷新參數
int status = 0;
ZAux_Direct_GetIfIdle(g_handle, m_nAxis,&status); //判斷當前軸狀態
if (status == 0) //已經在運動中
return;
//設定軸類型 1-脈衝軸類型
ZAux_Direct_SetAtype(g_handle, m_nAxis, 1);
//設定脈衝模式及邏輯方向(脈衝+方向)
ZAux_Direct_SetInvertStep(g_handle, m_nAxis, 0);
if( m_mode == 0 )
{//寸動(位置模式)
ZAux_Direct_Single_Vmove(g_handle, m_nAxis, m_bLogic?1:0);
}
else
{
//持續驅動(速度模式)
ZAux_Direct_Single_Move(g_handle, m_nAxis, m_step*(m_bLogic?1:-1));
}
UpdateData(false);
}
(6)通過停止按鈕的事件處理函數來停止軸的運動
void CSingle_move_Dlg::OnStop() //停止運動
{
if(NULL == g_handle)
{
MessageBox(_T("鏈接斷開狀態"));
return ;
}
ZAux_Direct_Single_Cancel(g_handle,m_nAxis,2); //
}
03
調試與監控
編譯運行例程,同時通過ZDevelop軟件連接控製器對控製器狀態進行監控。
1. RtSys軟件連接控製器監控控製器的基本參數

2.通過 RtSys 軟件的示波器功能對軸運動的波形進行抓取。
(1)軸0寸動運動模式,加速度=100,S曲線時間=0。

(2)軸1寸動運動模式,加速度=100,S曲線時間=250。

(3)軸2寸動運動模式,加速度=1000,S曲線時間=0。

(4)軸2寸動運動模式,加速度=1000,S曲線時間=500。

3.單軸運動例程講解。

本次,正運動技術全國產EtherCAT運動控製邊緣控製器(四):軸參數配置與單軸運動PC上位機C++控製,就分享到這裏。
更多精彩內容請關注“ 正運動小助手 ”公眾號,需要相關開發環境與例程代碼,請谘詢正運動技術銷售工程師:400-089-8936。
benwenyouzhengyundongjishuyuanchuang,huanyingdajiazhuanzai,gongtongxuexi,yiqitigaozhongguozhinengzhizaoshuiping。wenzhangbanquanguizhengyundongjishusuoyou,ruyouzhuanzaiqingzhumingwenzhanglaiyuan。
正運動技術專注於運動控製技術研究和通用運動控製軟硬件產品的研發,是國家級高新技術企業。正運動技術彙集了來自華為、中(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係列運動控製卡等等。
|