简单易用的运动控制卡(六):Basic文件下载和连续轨迹加工.docx
简单易用的运动控制卡(六):Basic文件下载和连续轨迹加工简单易用的运动控制卡(六):Basic文件下载和连续轨迹加工导语:今天,正运动小助手给大众共享一下运动控制卡之ECI3808的“.bas文件的下载和运行。今天,正运动小助手给大众共享一下运动控制卡之ECI3808的“.bas文件的下载和运行。一、ECI3808硬件介绍1.功能介绍ECI3808系列控制卡支持最多达12轴直线插补、任意圆弧插补、空间圆弧、螺旋插补、电子凸轮、电子齿轮、同步跟随、虚拟轴、机械手指令等;采用优化的网络通讯协议可以实现实时的运动控制。ECI3808系列运动控制卡支持以太网,RS232通讯接口和电脑相连,接收电脑的指令运行,可以通过CAN总线去连接各个扩展模块,进而扩展输入输出点数或者运动轴。ECI3808系列运动控制卡的应用程序可以使用VC,VB,VS,C+,C#等软件来开发,程序运行时需要动态库zmotion.dll。调试时可以把ZDevelop软件同时连接到控制器,进而方便调试和观察。2.硬件接口通用输入口电路通用输出口电路AD/DA接口讲明本地脉冲轴讲明3.控制器根本信息二、C+进展运动控制开发1.新建MFC工程并添加函数库(1)在VS2021菜单“文件“新建“工程,启动创立工程向导。 (2)选择开发语言为“VisualC+和程序类型“MFC应用程序。 (3)点击下一步即可。 (4)选择类型为“基于对话框,下一步或完成。 (5)找到厂家提供的光盘资料,途径如下(64位库为例)。A.进入厂商提供的光盘资料找到“8.PC函数文件夹,并点击进入。B.选择“函数库2.1文件夹。C.选择“Windows平台文件夹。D.根据需要选择对应的函数库这里选择64位库。E.解压C+的压缩包,里面有C+对应的函数库。F.函数库详细途径如下。 (6)将厂商提供的C+的库文件和相关头文件复制到新建的工程里面。 (7)在工程中添加静态库和相关头文件。A.先右击工程文件,接着依次选择:“添加“现有项。B.在弹出的窗口中依次添加静态库和相关头文件。(8)声明用到的头文件和定义控制器连接句柄。至此工程新建完成,可进展MFC工程开发。2.查看PC函数手册,熟悉相关函数接口。(1)PC函数手册也在光盘资料里面,详细途径如下:“光盘资料8.PC函数函数库2.1ZMotion函数库编程手册V2.1.pdf (2)链接控制器,获取链接句柄。ZAux_OpenEth()接口讲明: (3)下载“.bas文件到控制器中运行的接口讲明。 (4)(4)暂停和恢复控制器内部Basic程序的接口讲明。3.“.bas运动控制文件的下载和启动运行。(1)例程界面如下。 (2)通过“光盘资料-“工具软件里面的将CAD图纸里面的图形转换成“.bas的运动控制代码。A.翻开该工具软件,点击“文件-“导入。选择需要转换的dxf格式的CAD图纸并翻开。B.翻开后效果如下。C.点击“文件-“导出,导出“.bas文件。到时候可下载到控制卡里面进展以上轨迹的运动控制。D.CAD导图软件的详细使用方法参考以下网址。链接:st.1yb.co/EA7G(3)链接按钮的事件处理函数中调用链接控制器的接口函数ZAux_OpenEth(),与控制器进展链接,链接成功后启动定时器1监控控制器状态。/以太网连接控制器voidCTest_BusInitDlg:OnOpenEth()charbuffer256;int32iresult;if(NULL!=g_handle)ZAux_Close(g_handle);g_handle=NULL;/获取IP地址GetDlgItemText(IDC_IPLIST,buffer,255);buffer255='0'/连接控制器iresult=ZAux_OpenEth(buffer,g_handle);if(ERR_SUCCESS!=iresult)g_handle=NULL;MessageBox(_T("链接失败");SetWindowText("未链接");return;SetWindowText("已链接");/翻开定时器1SetTimer(1,100,NULL);(4)通过定时器1对控制器的轴状态进展监控。voidCTest_BusInitDlg:OnTimer(UINT_PTRnIDEvent)/定时器刷新int32ret=0;CStringtempstr;if(nIDEvent=1g_handle!=0)/获取轴0的轴参数ZAux_Direct_GetAtype(g_handle,0,m_atype);ZAux_Direct_GetUnits(g_handle,0,m_units);ZAux_Direct_GetMspeed(g_handle,0,m_speed);ZAux_Direct_GetAccel(g_handle,0,m_accel);ZAux_Direct_GetDpos(g_handle,0,m_dpos);ZAux_Direct_GetIfIdle(g_handle,0,m_idle);/获取轴1的轴参数ZAux_Direct_GetAtype(g_handle,1,m_Atype1);ZAux_Direct_GetUnits(g_handle,1,m_untis1);ZAux_Direct_GetMspeed(g_handle,1,m_speed1);ZAux_Direct_GetAccel(g_handle,1,m_accel1);ZAux_Direct_GetDpos(g_handle,1,m_dpos1);ZAux_Direct_GetIfIdle(g_handle,1,m_idle1);UpdateData(false);CDialog:OnTimer(nIDEvent);(5)通过文件下载按钮的事件处理函数下载bas文件到控制器ROM。(注:“.bas文件可以以通过我们的ZDevelop软件下载)/下载BAS文件到控制器ROMvoidCTest_BusInitDlg:OnDownload()int32ret;CStringm_strOpenFileName;CFileopenfile;if(NULL=g_handle)MessageBox(_T("控制器未连接");return;CFileDialogfileopen(true,".bas",NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,"BasicFiles(*.bas)|*.bas|AllFiles(*.*)|*.*|",NULL);if(fileopen.DoModal()=IDOK)/获取翻开的文件名和途径m_strOpenFileName=fileopen.GetPathName();if(!openfile.Open(fileopen.GetPathName(),openfile.modeRead|openfile.modeNoInherit,NULL)this-MessageBox("OpenFailed!");return;GetDlgItem(IDC_FILENAME)-SetWindowText(m_strOpenFileName);openfile.Close();/下载BAS程序到ROMret=ZAux_BasDown(g_handle,m_strOpenFileName,1);if(ret!=0)this-MessageBox("DownLoadFileFailed!");return;/字符串分割得到文件名char*pchar=(LPSTR)(LPCSTR)m_strOpenFileName;CStringstrTmp=strtok(pchar,"");while(1)strTmp=strtok(NULL,"");if(strTmp=_T("")break;strcpy(FileName,(LPSTR)(LPCSTR)strTmp);(6)通过启动、停顿、暂停、继续按钮的事件处理函数来实现控制器。/运行控制器里面的ZBasic文件voidCTest_BusInitDlg:OnBnClickedRun()intret=0;charTemp100="Run""/合成"Run"file2.bas",0"的命令字符串strcat(Temp,FileName);strcat(Temp,"",0");/停顿任务0ZAux_Execute(g_handle,"STOPTASK0",NULL,0);/开启任务0ZAux_Execute(g_handle,Temp,NULL,0);/停顿控制器运行ZBasic的任务voidCTest_BusInitDlg:OnBnClickedStop()/停顿任务0ZAux_Execute(g_handle,"STOPTASK0",NULL,0);/停顿所有轴运动ZAux_Execute(g_handle,"RAPIDSTOP(2)",NULL,0);/暂停voidCTest_BusInitDlg:OnBnClickedpause()/暂停控制器内部运行的BASIC程序ZAux_Pause(g_handle);/暂停主轴运动ZAux_Direct_MovePause(g_handle,0,0);/继续运行voidCTest_BusInitDlg:OnBnClickedResume()/继续运行控制器内部运行的BASIC程序ZAux_Resume(g_handle);/继续主轴运动ZAux_Direct_MoveResume(g_handle,0);完好代码获取地址三、调试与监控编译运行例程,同时通过ZDevelop软件连接控制器对控制器状态进展监控。1.ZDevelop软件连接控制器翻开调试形式可以查看控制器里面的“.bas文件的文件名。2.通过ZDevelop软件的示波器功能对连续小线段的波形进展抓取,下面是示波器波形和CAD图纸的比拟。A、ECI3808运行情况如下:(ECI3808的Rom只有4KB,所以下载的Basic文件不能超过4KB)B、ZMC308B控制器运行情况如下:(ECI3808的Rom只有4KB,所以下载的Basic文件不能超过4KB,因此如下轨迹的运行需要借助ZMC308B控制器实现)图一图二3.ZDevelop软件调试视频。本次,正运动技术简单易用的运动控制卡(六):Basic文件下载和连续轨迹加工,就共享到这里。更多精彩内容请关注“正运动小助手公众号,需要相关开发环境与例程代码,请咨询正运动技术销售工程师:400-089-8936。本文由正运动技术原创,欢送大众转载,共同学习,一起进步中国智能制造程度。文章版权归正运动技术所有,如有转载请注明文章;。0