時間:2020-11-27 15:54:16來源:正運動技術
今天,我們來講解一下正運動技術運動控制卡應用開發教程之VC6.0。
在正式學習之前,我們先了解一下正運動技術的運動控制卡ECI2418和ECI2618。這兩款產品分別是4軸,6軸運動控制卡。
ECI2418支持4軸脈沖輸入與編碼器反饋,板載24點輸入,16點輸出,2AD,2DA,支持手輪接口,其中特定輸出支持高速PWM控制。
ECI2618支持6軸脈沖輸入與編碼器反饋,板載24點輸入,16點輸出,2AD,2DA,支持手輪接口,其中特定輸出支持高速PWM控制。
ECI2418,ECI2618均使用同一套API函數,均支持C、C++、C#、LabView、Python、Delphi等開發語言,支持VC6.0、VB6.0、Qt、.Net等平臺,支持Windows、Linux、WinCE、iMac等操作系統。
一、運動控制卡VC6.0開發流程
1、打開 VC++6.0,新建一個工程。
2、選擇“ MFC APPWizard(exe)”,選擇 工程保存路徑,設置 工程名,選擇 確定。
3、在應用程序類型 選擇基本對話框,完成項目新建。
4、將產品配套光盤“ ..\函數庫\dll”文件夾中的 動態鏈接庫“ zmotion.dll、zauxdll.dll”、 頭文件“ zauxdll2.h”和 lib文件“ zauxdll.lib”復制到工程文件夾中。
5、選擇“Project”菜單下的“Settings…”菜單項。
6、切換到“Link”標簽頁,在“Object\library modules”欄中輸入lib文件名:zauxdll.lib。
7、在應用程序文件中加入函數庫頭文件的聲明,如:#include “zauxdll2.h”,
8、至此,用戶就可以在VC6.0中調用函數庫中的任何函數,開始編寫應用程序, 具體函數的用法的功能可以參考光盤資料里面的:ZMotion PC函數庫編程手冊。
9、參考ZMotion PC函數庫編程手冊的鏈接控制器的函數說明,在 ECIDlg:OnInitDialog()函數中添加鏈接控制器代碼 ZAux_OpenEth(“192.168.0.11”,&g_handle);即可鏈接控制器。
10、通過MOVE按鈕,控制控制器進行插補運動。
(1)右鍵MOVE按鈕,選擇屬性,設置按鈕ID。
(2)右鍵MOVE按鈕選擇事件。
(3)新建相關事件。
4)在事件處理函數中添加插補運動函數。
11、編譯運行就可以通過PC控制控制器了。
如果編譯報錯:無法打開預編譯的頭文件:沒有這樣的文件或目錄。
請選擇“Project”菜單下的“Settings…”菜單項,然后選擇c/c++進行如下設置。
二、VC6.0例程講解
1、在我們的光盤資料里有很多VC6.0的例程,通過這些歷程可以更容易的上手我們的控制器。
2、單軸運動例程
a、通過以太網鏈接到指定IP的控制器;
b、設置運動軸參數;
c、選擇運動軸對象;
d、選擇運動方式,實現持續運動和寸動;
3、實現步驟
(1)搜索IP,鏈接控制器。
A、先將相關控件拖拽到UI界面,并設置對應的事件處理函數。
B、下拉框事件處理函數,實現自動搜索IP。
先根據ZMotion PC 編程手冊,在下拉框事件處理函數添加控制器IP搜索函數“ZAux_SearchEthlist()”,然后將獲取到的IP字符串進行解析,具體解析方法請參考例程。
//自動搜索IP
void CECIDlg::OnDropdownIPList()
{
/*自動搜索IP地址*/
char buffer[10240];
int32 iresult;
/*搜索當前網段下的 IP 地址 詳情請參考:zmotion pc 編程手冊*/
iresult = ZAux_SearchEthlist(buffer, 10230, 100);
if(ERR_OK != iresult)
{
return;
}
CComboBox *m_pEthList;
m_pEthList = (CComboBox *)GetDlgItem(IDC_IPList);
if(NULL == m_pEthList)
{
return;
}
/*從字符串轉換成IP*/
int ipos =0;
const char * pstring;
pstring = buffer;
for(int j= 0; j< 20;j++)
{
char buffer2[256];
buffer2[0] = '\0';
/*跳過空格*/
while(' ' == pstring[0])
{
pstring++;
}
ipos = sscanf(pstring , "%s", &buffer2);
if(EOF == ipos)
{
break;
}
/*跳過字符*/
while((' ' != pstring[0]) && ('\t' != pstring[0]) && ('\0' != pstring[0]))
{
pstring++;
}
if(CB_ERR != m_pEthList->FindString(0, buffer2))
{
continue;
}
if('\0' == buffer2)
{
return;
}
/*加入*/
m_pEthList->AddString(buffer2);
}
return;
}
C、點擊鏈接按鈕鏈接控制器。
根據ZMotion PC 編程手冊,在鏈接按鈕點擊事件處理函數中添加網口連接控制器的函數“ZAux_OpenEth()”,即可實現鏈接控制器的功能。
D、點擊斷開按鈕斷開鏈接控制器。
根據ZMotion PC 編程手冊,在斷開按鈕點擊事件處理函數中添加斷開鏈接控制器的函數“ZAux_Close()”,即可實現斷開鏈接控制器的功能。
(2)選擇軸,并對所選擇的dpos和當前速度以及運動狀態進行監控。
A、先將相關控件拖拽到UI界面,并設置對應的事件處理函數。
B、通過X、Y、Z、R 4個單選按鈕的事件處理函數,實現對軸的選擇。
C、通過定時器實現對軸狀態的實時更新。
(3)實現in0-in7,out0-out7狀態的讀取。
使用接口ZAux_GetModbusIn() 和ZAux_GetModbusOut(),對io狀態進獲取。并封裝成一個子函數將該函數添加到定時器超時處理函數中,用于io狀態的更新。
//IO監控
void CECIDlg::IOGet()
{
uint8 in, out, i=0,j=0,k=0;
char buff[128]={0};
/*獲取輸入口狀態*/
ZAux_GetModbusIn (g_handle, 0, 7, &in); //獲取in0-in7狀態
/*十進制轉二進制*/
itoa(in, buff, 2);
j=0;
for( i=0; i<8; i++)
{
if((48 == buff[i])||(49 == buff[i]))
{
j++;
}
}
for(i=0 ; i<(8-j); i++)
{
for(k=7; k>0; k--)
{
buff[k] = buff[k-1];
}
buff[0]=48;
}
sprintf(buff, "輸入口IN0-7 狀態:%c %c %c %c %c %c %c %c", buff[7], buff[6],buff[5],buff[4],buff[3],buff[2],buff[1],buff[0]);
GetDlgItem( IDC_IN )->SetWindowText( buff );
/*獲取輸出口狀態*/
ZAux_GetModbusOut (g_handle, 0, 7, &out);//獲取out0-out7狀態
/*十進制轉二進制*/
itoa(out, buff, 2);
j=0;
for( i=0; i<8; i++)
{
if((48 == buff[i])||(49 == buff[i]))
{
j++;
}
}
for(i=0 ; i<(8-j); i++)
{
for(k=7; k>0; k--)
{
buff[k] = buff[k-1];
}
buff[0]=48;
}
sprintf(buff, "輸出口OUT0-7狀態:%c %c %c %c %c %c %c %c",buff[7], buff[6],buff[5],buff[4],buff[3],buff[2],buff[1],buff[0]);
GetDlgItem( IDC_OUT )->SetWindowText( buff );
}
(4)對控制器參數進行設置。
A、先將相關控件拖拽到UI界面,并設置參數生效按鈕的事件處理函數。
B、設置各個編輯框的成員變量,先右鍵編輯框選擇建立類導向,再選擇成員變量進行設置。
C、然后在參數生效按鈕的事件處理函數中添加參數設置的相關函數接口,對控制器參數進行設置。
(5)控制控制器運動。
A、在UI界面再添加兩組單選框、寸動距離編輯框,以及兩個按鈕。
B、兩組單選框用于運動方向和運動方式的設置,通過他們的事件處理函數對標志位變量m_moveatype和m_movedir進行設置。
C、通過啟動按鈕的事件處理函數來啟動控制器進行運動。
D、通過停止按鈕的事件處理函數來停止控制器運動。
(6)編譯運行演示。
A、編譯運行示教例程
B、同時通過ZDevelop軟件連接同一個控制器,對運動控制效果進行觀察。
以下是軸參數的顯示,IN/OP顯示,示波器中 DPOS MSPEED顯示。
今天,正運動技術運動控制卡應用開發教程之VC6.0就分享到這里。更多精彩內容,請關注我們的公眾號。 本文由正運動小助手原創,歡迎大家轉載,共同學習,一起提高中國智能制造水平。文章版權歸正運動技術所有,如有轉載請注明文章來源。
下一篇:運動控制卡應用開發教程之使用Qt
中國傳動網版權與免責聲明:凡本網注明[來源:中國傳動網]的所有文字、圖片、音視和視頻文件,版權均為中國傳動網(www.hysjfh.com)獨家所有。如需轉載請與0755-82949061聯系。任何媒體、網站或個人轉載使用時須注明來源“中國傳動網”,違反者本網將追究其法律責任。
本網轉載并注明其他來源的稿件,均來自互聯網或業內投稿人士,版權屬于原版權人。轉載請保留稿件來源及作者,禁止擅自篡改,違者自負版權法律責任。
產品新聞
更多>2025-04-11
2025-04-08
2025-03-31
2025-03-26
2025-03-20
2025-03-13