技術(shù)頻道

娓娓工業(yè)
您現(xiàn)在的位置: 中國(guó)傳動(dòng)網(wǎng) > 技術(shù)頻道 > 技術(shù)百科 > 運(yùn)動(dòng)控制卡應(yīng)用開發(fā)教程之VC6.0

運(yùn)動(dòng)控制卡應(yīng)用開發(fā)教程之VC6.0

時(shí)間:2020-11-27 15:54:16來源:正運(yùn)動(dòng)技術(shù)

導(dǎo)語(yǔ):?今天,我們來講解一下正運(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)控制卡。

  今天,我們來講解一下正運(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)控制卡。

  

  1.png

  

  ECI2418支持4軸脈沖輸入與編碼器反饋,板載24點(diǎn)輸入,16點(diǎn)輸出,2AD,2DA,支持手輪接口,其中特定輸出支持高速PWM控制。

  

  2.png

  

  ECI2618支持6軸脈沖輸入與編碼器反饋,板載24點(diǎn)輸入,16點(diǎn)輸出,2AD,2DA,支持手輪接口,其中特定輸出支持高速PWM控制。

  

  3.png

  

  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è)工程。

  

  4.png

  

  2、選擇“ MFC APPWizard(exe)”,選擇 工程保存路徑,設(shè)置 工程名,選擇 確定。

  

  5.png

  

  3、在應(yīng)用程序類型 選擇基本對(duì)話框,完成項(xiàng)目新建。

  

  6.png

  

  4、將產(chǎn)品配套光盤“ ..\函數(shù)庫(kù)\dll”文件夾中的 動(dòng)態(tài)鏈接庫(kù) zmotion.dll、zauxdll.dll”、 頭文件 zauxdll2.h”和 lib文件 zauxdll.lib”復(fù)制到工程文件夾中。

  

  7.png

  

  5、選擇“Project”菜單下的“Settings…”菜單項(xiàng)。

  6、切換到“Link”標(biāo)簽頁(yè),在“Object\library modules”欄中輸入lib文件名:zauxdll.lib。

  

  8.png

  

  7、在應(yīng)用程序文件中加入函數(shù)庫(kù)頭文件的聲明,如:#include “zauxdll2.h”,

  

  9.png

  

  8、至此,用戶就可以在VC6.0中調(diào)用函數(shù)庫(kù)中的任何函數(shù),開始編寫應(yīng)用程序, 具體函數(shù)的用法的功能可以參考光盤資料里面的:ZMotion PC函數(shù)庫(kù)編程手冊(cè)

  

  10.png

  

  9、參考ZMotion PC函數(shù)庫(kù)編程手冊(cè)的鏈接控制器的函數(shù)說明,在 ECIDlg:OnInitDialog()函數(shù)中添加鏈接控制器代碼 ZAux_OpenEth(“192.168.0.11”,&g_handle);即可鏈接控制器。

  

  11.png

  

  

  10、通過MOVE按鈕,控制控制器進(jìn)行插補(bǔ)運(yùn)動(dòng)。

  (1)右鍵MOVE按鈕,選擇屬性,設(shè)置按鈕ID。

  

  12.png

  

  (2)右鍵MOVE按鈕選擇事件。

  

  13.png

  

  (3)新建相關(guān)事件。

  

  14.png

  

  4)在事件處理函數(shù)中添加插補(bǔ)運(yùn)動(dòng)函數(shù)。

  

  15.png

  

  11、編譯運(yùn)行就可以通過PC控制控制器了。

  

  如果編譯報(bào)錯(cuò):無法打開預(yù)編譯的頭文件:沒有這樣的文件或目錄。

  請(qǐng)選擇“Project”菜單下的“Settings…”菜單項(xiàng),然后選擇c/c++進(jìn)行如下設(shè)置。

  

  16.png

  

   二、VC6.0例程講解

  

  1、在我們的光盤資料里有很多VC6.0的例程,通過這些歷程可以更容易的上手我們的控制器。

  

  17.png

  

  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);

  

  18.png

  

  3、實(shí)現(xiàn)步驟

  

   (1)搜索IP,鏈接控制器。

  A、先將相關(guān)控件拖拽到UI界面,并設(shè)置對(duì)應(yīng)的事件處理函數(shù)。

  

  19.png

  

  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)鏈接控制器的功能。

  

  20.png

  

  D、點(diǎn)擊斷開按鈕斷開鏈接控制器。

  根據(jù)ZMotion PC 編程手冊(cè),在斷開按鈕點(diǎn)擊事件處理函數(shù)中添加斷開鏈接控制器的函數(shù)“ZAux_Close()”,即可實(shí)現(xiàn)斷開鏈接控制器的功能。

  

  21.png

  

   (2)選擇軸,并對(duì)所選擇的dpos和當(dāng)前速度以及運(yùn)動(dòng)狀態(tài)進(jìn)行監(jiān)控。

  A、先將相關(guān)控件拖拽到UI界面,并設(shè)置對(duì)應(yīng)的事件處理函數(shù)。

  

  22.png

  

  B、通過X、Y、Z、R 4個(gè)單選按鈕的事件處理函數(shù),實(shí)現(xiàn)對(duì)軸的選擇。

  

  23.png

  

  C、通過定時(shí)器實(shí)現(xiàn)對(duì)軸狀態(tài)的實(shí)時(shí)更新。

  

  24.png

  

  (3)實(shí)現(xiàn)in0-in7,out0-out7狀態(tài)的讀取。

  

  25.png

  

  使用接口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ù)。

  

  26.png

  

  B、設(shè)置各個(gè)編輯框的成員變量,先右鍵編輯框選擇建立類導(dǎo)向,再選擇成員變量進(jìn)行設(shè)置。

  

  27.png

  

  C、然后在參數(shù)生效按鈕的事件處理函數(shù)中添加參數(shù)設(shè)置的相關(guān)函數(shù)接口,對(duì)控制器參數(shù)進(jìn)行設(shè)置。

  

  28.png

  

  (5)控制控制器運(yùn)動(dòng)。

  A、在UI界面再添加兩組單選框、寸動(dòng)距離編輯框,以及兩個(gè)按鈕。

  

  29.png

  

  B、兩組單選框用于運(yùn)動(dòng)方向和運(yùn)動(dòng)方式的設(shè)置,通過他們的事件處理函數(shù)對(duì)標(biāo)志位變量m_moveatype和m_movedir進(jìn)行設(shè)置。

  

  30.png

  

  C、通過啟動(dòng)按鈕的事件處理函數(shù)來啟動(dòng)控制器進(jìn)行運(yùn)動(dòng)。

  

  31.png

  

  D、通過停止按鈕的事件處理函數(shù)來停止控制器運(yùn)動(dòng)。

  

  32.png

  

  (6)編譯運(yùn)行演示。

  A、編譯運(yùn)行示教例程

  

  33.png

  

  B、同時(shí)通過ZDevelop軟件連接同一個(gè)控制器,對(duì)運(yùn)動(dòng)控制效果進(jìn)行觀察。

  以下是軸參數(shù)的顯示,IN/OP顯示,示波器中 DPOS MSPEED顯示。

  

  34.png

  35.png

  今天,正運(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)注明文章來源。

  36.png


標(biāo)簽: 運(yùn)動(dòng)控制卡

點(diǎn)贊

分享到:

上一篇:快速入門 | 篇十六:正運(yùn)動(dòng)控...

下一篇:運(yùn)動(dòng)控制卡應(yīng)用開發(fā)教程之使用Qt

中國(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é)任。

網(wǎng)站簡(jiǎn)介|會(huì)員服務(wù)|聯(lián)系方式|幫助信息|版權(quán)信息|網(wǎng)站地圖|友情鏈接|法律支持|意見反饋|sitemap

傳動(dòng)網(wǎng)-工業(yè)自動(dòng)化與智能制造的全媒體“互聯(lián)網(wǎng)+”創(chuàng)新服務(wù)平臺(tái)

網(wǎng)站客服服務(wù)咨詢采購(gòu)咨詢媒體合作

Chuandong.com Copyright ?2005 - 2024 ,All Rights Reserved 深圳市奧美大唐廣告有限公司 版權(quán)所有
粵ICP備 14004826號(hào) | 營(yíng)業(yè)執(zhí)照證書 | 不良信息舉報(bào)中心 | 粵公網(wǎng)安備 44030402000946號(hào)