時(shí)間:2020-11-27 15:54:16來源:正運(yùn)動(dòng)技術(shù)
今天,我們來講解一下正運(yùn)動(dòng)技術(shù)運(yùn)動(dòng)控制卡應(yīng)用開發(fā)教程之VC6.0。
在正式學(xué)習(xí)之前,我們先了解一下正運(yùn)動(dòng)技術(shù)的運(yùn)動(dòng)控制卡ECI2418和ECI2618。這兩款產(chǎn)品分別是4軸,6軸運(yùn)動(dòng)控制卡。
ECI2418支持4軸脈沖輸入與編碼器反饋,板載24點(diǎn)輸入,16點(diǎn)輸出,2AD,2DA,支持手輪接口,其中特定輸出支持高速PWM控制。
ECI2618支持6軸脈沖輸入與編碼器反饋,板載24點(diǎn)輸入,16點(diǎn)輸出,2AD,2DA,支持手輪接口,其中特定輸出支持高速PWM控制。
ECI2418,ECI2618均使用同一套API函數(shù),均支持C、C++、C#、LabView、Python、Delphi等開發(fā)語(yǔ)言,支持VC6.0、VB6.0、Qt、.Net等平臺(tái),支持Windows、Linux、WinCE、iMac等操作系統(tǒng)。
一、運(yùn)動(dòng)控制卡VC6.0開發(fā)流程
1、打開 VC++6.0,新建一個(gè)工程。
2、選擇“ MFC APPWizard(exe)”,選擇 工程保存路徑,設(shè)置 工程名,選擇 確定。
3、在應(yīng)用程序類型 選擇基本對(duì)話框,完成項(xiàng)目新建。
4、將產(chǎn)品配套光盤“ ..\函數(shù)庫(kù)\dll”文件夾中的 動(dòng)態(tài)鏈接庫(kù)“ zmotion.dll、zauxdll.dll”、 頭文件“ zauxdll2.h”和 lib文件“ zauxdll.lib”復(fù)制到工程文件夾中。
5、選擇“Project”菜單下的“Settings…”菜單項(xiàng)。
6、切換到“Link”標(biāo)簽頁(yè),在“Object\library modules”欄中輸入lib文件名:zauxdll.lib。
7、在應(yīng)用程序文件中加入函數(shù)庫(kù)頭文件的聲明,如:#include “zauxdll2.h”,
8、至此,用戶就可以在VC6.0中調(diào)用函數(shù)庫(kù)中的任何函數(shù),開始編寫應(yīng)用程序, 具體函數(shù)的用法的功能可以參考光盤資料里面的:ZMotion PC函數(shù)庫(kù)編程手冊(cè)。
9、參考ZMotion PC函數(shù)庫(kù)編程手冊(cè)的鏈接控制器的函數(shù)說明,在 ECIDlg:OnInitDialog()函數(shù)中添加鏈接控制器代碼 ZAux_OpenEth(“192.168.0.11”,&g_handle);即可鏈接控制器。
10、通過MOVE按鈕,控制控制器進(jìn)行插補(bǔ)運(yùn)動(dòng)。
(1)右鍵MOVE按鈕,選擇屬性,設(shè)置按鈕ID。
(2)右鍵MOVE按鈕選擇事件。
(3)新建相關(guān)事件。
4)在事件處理函數(shù)中添加插補(bǔ)運(yùn)動(dòng)函數(shù)。
11、編譯運(yùn)行就可以通過PC控制控制器了。
如果編譯報(bào)錯(cuò):無法打開預(yù)編譯的頭文件:沒有這樣的文件或目錄。
請(qǐng)選擇“Project”菜單下的“Settings…”菜單項(xiàng),然后選擇c/c++進(jìn)行如下設(shè)置。
二、VC6.0例程講解
1、在我們的光盤資料里有很多VC6.0的例程,通過這些歷程可以更容易的上手我們的控制器。
2、單軸運(yùn)動(dòng)例程
a、通過以太網(wǎng)鏈接到指定IP的控制器;
b、設(shè)置運(yùn)動(dòng)軸參數(shù);
c、選擇運(yùn)動(dòng)軸對(duì)象;
d、選擇運(yùn)動(dòng)方式,實(shí)現(xiàn)持續(xù)運(yùn)動(dòng)和寸動(dòng);
3、實(shí)現(xiàn)步驟
(1)搜索IP,鏈接控制器。
A、先將相關(guān)控件拖拽到UI界面,并設(shè)置對(duì)應(yīng)的事件處理函數(shù)。
B、下拉框事件處理函數(shù),實(shí)現(xiàn)自動(dòng)搜索IP。
先根據(jù)ZMotion PC 編程手冊(cè),在下拉框事件處理函數(shù)添加控制器IP搜索函數(shù)“ZAux_SearchEthlist()”,然后將獲取到的IP字符串進(jìn)行解析,具體解析方法請(qǐng)參考例程。
//自動(dòng)搜索IP
void CECIDlg::OnDropdownIPList()
{
/*自動(dòng)搜索IP地址*/
char buffer[10240];
int32 iresult;
/*搜索當(dāng)前網(wǎng)段下的 IP 地址 詳情請(qǐng)參考:zmotion pc 編程手冊(cè)*/
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;
}
/*從字符串轉(zhuǎn)換成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、點(diǎn)擊鏈接按鈕鏈接控制器。
根據(jù)ZMotion PC 編程手冊(cè),在鏈接按鈕點(diǎn)擊事件處理函數(shù)中添加網(wǎng)口連接控制器的函數(shù)“ZAux_OpenEth()”,即可實(shí)現(xiàn)鏈接控制器的功能。
D、點(diǎn)擊斷開按鈕斷開鏈接控制器。
根據(jù)ZMotion PC 編程手冊(cè),在斷開按鈕點(diǎn)擊事件處理函數(shù)中添加斷開鏈接控制器的函數(shù)“ZAux_Close()”,即可實(shí)現(xiàn)斷開鏈接控制器的功能。
(2)選擇軸,并對(duì)所選擇的dpos和當(dāng)前速度以及運(yùn)動(dòng)狀態(tài)進(jìn)行監(jiān)控。
A、先將相關(guān)控件拖拽到UI界面,并設(shè)置對(duì)應(yīng)的事件處理函數(shù)。
B、通過X、Y、Z、R 4個(gè)單選按鈕的事件處理函數(shù),實(shí)現(xiàn)對(duì)軸的選擇。
C、通過定時(shí)器實(shí)現(xiàn)對(duì)軸狀態(tài)的實(shí)時(shí)更新。
(3)實(shí)現(xiàn)in0-in7,out0-out7狀態(tài)的讀取。
使用接口ZAux_GetModbusIn() 和ZAux_GetModbusOut(),對(duì)io狀態(tài)進(jìn)獲取。并封裝成一個(gè)子函數(shù)將該函數(shù)添加到定時(shí)器超時(shí)處理函數(shù)中,用于io狀態(tài)的更新。
//IO監(jiān)控
void CECIDlg::IOGet()
{
uint8 in, out, i=0,j=0,k=0;
char buff[128]={0};
/*獲取輸入口狀態(tài)*/
ZAux_GetModbusIn (g_handle, 0, 7, &in); //獲取in0-in7狀態(tài)
/*十進(jìn)制轉(zhuǎn)二進(jìn)制*/
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 狀態(tài):%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 );
/*獲取輸出口狀態(tài)*/
ZAux_GetModbusOut (g_handle, 0, 7, &out);//獲取out0-out7狀態(tài)
/*十進(jìn)制轉(zhuǎn)二進(jìn)制*/
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狀態(tài):%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)對(duì)控制器參數(shù)進(jìn)行設(shè)置。
A、先將相關(guān)控件拖拽到UI界面,并設(shè)置參數(shù)生效按鈕的事件處理函數(shù)。
B、設(shè)置各個(gè)編輯框的成員變量,先右鍵編輯框選擇建立類導(dǎo)向,再選擇成員變量進(jìn)行設(shè)置。
C、然后在參數(shù)生效按鈕的事件處理函數(shù)中添加參數(shù)設(shè)置的相關(guān)函數(shù)接口,對(duì)控制器參數(shù)進(jìn)行設(shè)置。
(5)控制控制器運(yùn)動(dòng)。
A、在UI界面再添加兩組單選框、寸動(dòng)距離編輯框,以及兩個(gè)按鈕。
B、兩組單選框用于運(yùn)動(dòng)方向和運(yùn)動(dòng)方式的設(shè)置,通過他們的事件處理函數(shù)對(duì)標(biāo)志位變量m_moveatype和m_movedir進(jìn)行設(shè)置。
C、通過啟動(dòng)按鈕的事件處理函數(shù)來啟動(dòng)控制器進(jìn)行運(yùn)動(dòng)。
D、通過停止按鈕的事件處理函數(shù)來停止控制器運(yùn)動(dòng)。
(6)編譯運(yùn)行演示。
A、編譯運(yùn)行示教例程
B、同時(shí)通過ZDevelop軟件連接同一個(gè)控制器,對(duì)運(yùn)動(dòng)控制效果進(jìn)行觀察。
以下是軸參數(shù)的顯示,IN/OP顯示,示波器中 DPOS MSPEED顯示。
今天,正運(yùn)動(dòng)技術(shù)運(yùn)動(dòng)控制卡應(yīng)用開發(fā)教程之VC6.0就分享到這里。更多精彩內(nèi)容,請(qǐng)關(guān)注我們的公眾號(hào)。 本文由正運(yùn)動(dòng)小助手原創(chuàng),歡迎大家轉(zhuǎn)載,共同學(xué)習(xí),一起提高中國(guó)智能制造水平。文章版權(quán)歸正運(yùn)動(dòng)技術(shù)所有,如有轉(zhuǎn)載請(qǐng)注明文章來源。
中國(guó)傳動(dòng)網(wǎng)版權(quán)與免責(zé)聲明:凡本網(wǎng)注明[來源:中國(guó)傳動(dòng)網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國(guó)傳動(dòng)網(wǎng)(m.u63ivq3.com)獨(dú)家所有。如需轉(zhuǎn)載請(qǐng)與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個(gè)人轉(zhuǎn)載使用時(shí)須注明來源“中國(guó)傳動(dòng)網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明其他來源的稿件,均來自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請(qǐng)保留稿件來源及作者,禁止擅自篡改,違者自負(fù)版權(quán)法律責(zé)任。
產(chǎn)品新聞
更多>新品發(fā)布:CD300系列總線型伺服驅(qū)動(dòng)器
2024-10-31
2024-10-31
2024-10-31
新勢(shì)能 新期待|維智B1L直線伺服驅(qū)動(dòng)器
2024-10-31
纖薄之間,化繁為簡(jiǎn)|合信全新simple系...
2024-10-29
2024-10-18
推薦專題
更多>