The value of Zmotion is to bring customers more success!
ZMC408CE 是正运动推出的一款多轴高性能EtherCAT总线运动控制器,具有EtherCAT、EtherNET、RS232、CAN和U盘等通讯接口, ZMC系列运动控制器可应用于各种需要脱机或联机运行的场合。
ZMC408CE内置高精度PSO位置同步输出功能,在加工圆角与曲线时即使进行有减速调整,在高速加工的场合中也能控制激光输出的等间距输出。
1.新建MFC项目并添加函数库
注:本例程在VS2010编译环境下,基于.NET Framework 4.0框架创建的MFC窗体应用程序。
(1)工具栏菜单“文件”→“新建”→“项目”,启动创建项目向导。
4.查看PC函数手册
5.控制器网口连接函数接口
7.硬件定时器函数接口
ZAux_Direct_HwTimer硬件定时器硬件比较输出后一段时间还原电平。
(1)2D比较(模式25)
opstate:第一个比较点的输出状态;
maxerr:比较位置每个轴左右的脉冲偏差,进入偏差范围后开始比较,此参数不能写0;
num:table里面存储的比较点坐标个数;
tablepos:第一个比较点坐标所在table编号。
该模式主要功能为,碰到设置好的二维比较点之后,输出口电平反转。
语法: HW_PSWITCH2(26,opnum,opstate,maxerr,num,tablepos,[ophwtimeus,ophwtimes,hwcyctimeus])
3.三维比较模式
(1)3D比较(模式35)
语法: HW_PSWITCH2(35,opnum,opstate,maxerr,num,tablepos)
该模式主要功能为,碰到设置好的三维比较点之后,输出口电平反转。
核心程序示例:
/*参数:mode 25, 26 ,35,36.2D/3D的比较模式 Axisnum:轴数组 Opnum :对应的输出口 Opstate: 第一个比较点的输出状态. maxerr:比较位置每个轴左右的脉冲偏差, 进入偏差范围后开始比较. num :TABLE 里面存储的比较点个数. tablepos: 第一个比较点坐标所在 TABLE 编号 与 hwtimer 并用时, 可以动态调整 hwtimer 参数. ModePara1:脉冲时间 ModePara2:脉冲个数 ModePara3:脉冲周期 */ int32 CMyControlDlg:: ZAux_Direct_HwPswitch2_2D(ZMC_HANDLE handle, int *Axisnum,int Mode,int Opnum , int Opstate,int maxerr,int num, int tablepos, float ModePara1, float ModePara2,float ModePara3) { if(0 > Axisnum[0] || Axisnum[0] > MAX_AXIS_AUX) { return ERR_AUX_PARAERR; } char cmdbuff[2048]; char tempbuff[2048]; char cmdbuffAck[2048]; //生成命令 sprintf(cmdbuff, "BASE(%d,%d)\n", Axisnum[0], Axisnum[1]); switch(Mode) { case 25: sprintf(tempbuff, "HW_PSWITCH2(%d,%d,%d,%d,%d,%d)", Mode, Opnum, Opstate, maxerr,num,tablepos); strcat(cmdbuff, tempbuff); break; case 26: sprintf(tempbuff, "HW_PSWITCH2(%d,%d,%d,%d,%d,%d,%f,%f,%f)", Mode,Opnum, Opstate, maxerr,num,tablepos,ModePara1,ModePara2,ModePara3); strcat(cmdbuff, tempbuff); break; case 35: sprintf(tempbuff, "HW_PSWITCH2(%d,%d,%d,%d,%d,%d)", Mode, Opnum, Opstate, maxerr,num,tablepos); strcat(cmdbuff, tempbuff); break; case 36: sprintf(tempbuff, "HW_PSWITCH2(%d,%d,%d,%d,%d,%d,%f,%f,%f)", Mode,Opnum, Opstate, maxerr,num,tablepos,ModePara1,ModePara2,ModePara3); strcat(cmdbuff, tempbuff); break; default: return ERR_AUX_PARAERR; break; } //调用命令执行函数 int ret=ZAux_Execute(handle, cmdbuff, cmdbuffAck,2048); if (strlen(cmdbuffAck)!=0) return ERR_ACKERROR; return ret; }
(2)3D比较(模式36)
/*参数:mode 25, 26 ,35,36.2D/3D的比较模式 Axisnum:轴数组 Opnum :对应的输出口 Opstate: 第一个比较点的输出状态. maxerr:比较位置每个轴左右的脉冲偏差, 进入偏差范围后开始比较. num:TABLE 里面存储的比较点个数. tablepos: 第一个比较点坐标所在 TABLE 编号 与 hwtimer 并用时, 可以动态调整 hwtimer 参数. ModePara1:脉冲时间 ModePara2:脉冲个数 ModePara3:脉冲周期 */ int32 CMyControlDlg:: ZAux_Direct_HwPswitch2_2D(ZMC_HANDLE handle, int *Axisnum,int Mode,int Opnum , int Opstate,int maxerr,int num, int tablepos, float ModePara1, float ModePara2,float ModePara3) { if(0 > Axisnum[0] || Axisnum[0] > MAX_AXIS_AUX) { return ERR_AUX_PARAERR; } char cmdbuff[2048]; char tempbuff[2048]; char cmdbuffAck[2048]; //生成命令 sprintf(cmdbuff, "BASE(%d,%d)\n", Axisnum[0], Axisnum[1]); switch(Mode) { case 25: sprintf(tempbuff, "HW_PSWITCH2(%d,%d,%d,%d,%d,%d)", Mode, Opnum, Opstate, maxerr,num,tablepos); strcat(cmdbuff, tempbuff); break; case 26: sprintf(tempbuff, "HW_PSWITCH2(%d,%d,%d,%d,%d,%d,%f,%f,%f)", Mode,Opnum, Opstate, maxerr,num,tablepos,ModePara1,ModePara2,ModePara3); strcat(cmdbuff, tempbuff); break; case 35: sprintf(tempbuff, "HW_PSWITCH2(%d,%d,%d,%d,%d,%d)", Mode, Opnum, Opstate, maxerr,num,tablepos); strcat(cmdbuff, tempbuff); break; case 36: sprintf(tempbuff, "HW_PSWITCH2(%d,%d,%d,%d,%d,%d,%f,%f,%f)", Mode,Opnum, Opstate, maxerr,num,tablepos,ModePara1,ModePara2,ModePara3); strcat(cmdbuff, tempbuff); break; default: return ERR_AUX_PARAERR; break; } //调用命令执行函数 int ret=ZAux_Execute(handle, cmdbuff, cmdbuffAck,2048); if (strlen(cmdbuffAck)!=0) return ERR_ACKERROR; return ret; }
本次,正运动技术 运动控制器PSO视觉飞拍与精准输出的C++开发(三):二维/三维/多轴PSO输出 ,就分享到这里。
更多精彩内容请关注“ 正运动小助手 ”公众号,需要相关开发环境与例程代码,请咨询正运动技术销售工程师:400-089-8936。
本文由正运动技术原创,欢迎大家转载,共同学习,一起提高中国智能制造水平。文章版权归正运动技术所有,如有转载请注明文章来源。
正运动技术专注于运动控制技术研究和通用运动控制软硬件产品的研发,是国家级高新技术企业。正运动技术汇集了来自华为、中兴等公司的优秀人才,在坚持自主创新的同时,积极联合各大高校协同运动控制基础技术的研究,是国内工控领域发展最快的企业之一,也是国内少有、完整掌握运动控制核心技术和实时工控软件平台技术的企业。主要业务有:运动控制卡_运动控制器_EtherCAT运动控制卡_EtherCAT控制器_运动控制系统_视觉控制器__运动控制PLC_运动控制_机器人控制器_视觉定位_XPCIe/XPCI系列运动控制卡等等。