游戏电视苹果数码历史美丽
投稿投诉
美丽时装
彩妆资讯
历史明星
乐活安卓
数码常识
驾车健康
苹果问答
网络发型
电视车载
室内电影
游戏科学
音乐整形

PSO视觉飞拍与精准输出的C开发(三)二维三维多轴PSO输出

  本文主要介绍正运动技术EtherCAT控制器在VS平台采用C语言实现的各种PSO功能。正运动提供多种PSO模式供用户搭配不同的场景使用。
  上节讲解了多轴PSO等距周期和固定时间周期两种比较输出模式,本节主要讲解二维三维比较输出模式。01硬件介绍
  ZMC408CE是正运动推出的一款多轴高性能EtherCAT总线运动控制器,具有EtherCAT、EtherNET、RS232、CAN和U盘等通讯接口,ZMC系列运动控制器可应用于各种需要脱机或联机运行的场合。
  ZMC408CE支持8轴运动控制,最多可扩展至32轴,支持直线插补、任意圆弧插补、空间圆弧、螺旋插补、电子凸轮、电子齿轮、同步跟随等功能。
  ZMC408CE支持8轴运动控制,可采用脉冲轴(带编码器反馈)或EtherCAT总线轴,通用IO包含24个输入口和16个输出口,部分IO为高速IO,EtherCAT最快100us的刷新周期。
  ZMC408CE支持8个通道的硬件比较输出、硬件定时器、运动中精准输出,还支持8通道PWM输出,对应的输出口为OUT07,支持8个通道同时触发硬件比较输出,用于多通道的视觉飞拍场合等。
  ZMC408CE支持PLC、Basic、HMI组态三种编程方式。PC上位机API编程支持C、C、LabVIEW、Matlab、Qt、Linux、VB。Net、Python等接口。
  ZMC408CE内置高精度PSO位置同步输出功能,在加工圆角与曲线时即使进行有减速调整,在高速加工的场合中也能控制激光输出的等间距输出。02PSO技术介绍
  PSO(positionsynchronizedoutput)即位置同步输出,本质是通过采集实时的编码器反馈位置(无编码器可使用输出的脉冲位置)与比较模式设定的位置进行比较,控制OP高速同步输出信号,PSO示意图如下。
  PSO一般与激光器(或点胶喷射阀等设备)同步输出信号进行相位同步,在运动轨迹的所有阶段以恒定的空间(或恒定时间)间隔触发输出开关,包括加速、减速和匀速段,从而实现脉冲能量均匀地作用在被加工物体上。
  PSO功能的特点是能高速且稳定的输出信号,因为输出精度足够高,所以能够在整个运动轨迹中以固定的距离触发输出信号而不用考虑总体速度,即在直线部分以很快的速度运动,而在圆角部分减速的同时也能保证输出间距恒定。
  通常圆角加工部分在整个加工过程中占有比较小的部分,这样在保证加工效果的同时,就可以最大限度地提高产能。
  正运动的PSO功能调用ZAuxDirectHwPswitch2函数接口实现,该函数采用硬件实现IO的高速比较输出,响应速度达到微秒级别,故名硬件比较输出。03C语言MFC进行运动控制项目的开发
  1。新建MFC项目并添加函数库
  注:本例程在VS2010编译环境下,基于。NETFramework4。0框架创建的MFC窗体应用程序。
  (1)工具栏菜单文件新建项目,启动创建项目向导。
  (2)选择开发语言为VisualC和。NETFramework4以及MFC应用程序,填写好程序名以及选择好程序存放路径,点击确定。
  (3)点击下一步。
  (4)选择类型为基于对话框,点击下一步或者完成即可。
  2。找到厂家提供的C函数库文件
  (1)进入厂商提供的光盘资料,找到8。PC函数文件夹,并点击进入,找到C函数库,路径如下(64位库为例)。
  (2)选择函数库2。1文件夹。
  (3)选择Windows平台文件夹。
  (4)根据需要选择对应的函数库,这里选择64位库。
  (5)解压C压缩包,里面有C对应的函数库。
  (6)函数库具体路径如下。
  (7)将厂商提供的C库文件以及相关文件复制到新建的项目中。
  3。在项目中添加静态库和相关头文件
  静态库:zauxdll。lib,zmotion。lib
  相关头文件:zauxdll2。h,zmotion。h
  (1)先右击头文件,接着依次选择:添加现有项。
  (2)在弹出的窗口中依次添加静态库和相关头文件。
  (3)声明用到的头文件和定义控制器连接句柄。
  至此,项目新建完成。
  4。查看PC函数手册
  用户需要从PC函数手册中获取运动控制开发使用的函数接口,对照手册说明使用,PC函数手册在光盘资料查看,具体路径如下:光盘资料8。PC函数函数库2。1ZMotion函数库编程手册V2。1。pdf。
  5。控制器网口连接函数接口
  PC编程一般使用网口对控制器和工控机进行链接。ZAuxFastOpen();如果链接成功,该接口会返回一个链接句柄。通过操作这个链接句柄可以实现对控制器的控制。
  ZAuxOpenEth()接口说明:
  项目应用截图:
  6。硬件比较输出函数接口
  使用对下位机寄存器操作的指令操作链接句柄ghandle,对控制器进行寄存器内容取值,实时控制下位机相关的指令如下。
  实时全局变量指令:ZAuxDirectHwPswitch2硬件比较输出指令到位置后硬件自动触发op输出信号。
  7。硬件定时器函数接口
  ZAuxDirectHwTimer硬件定时器硬件比较输出后一段时间还原电平。
  04MFC程序的运行和读写控制开发
  1。Demo交互界面如下
  2。二维比较模式
  (1)2D比较(模式25)
  语法:HWPSWITCH2(25,opnum,opstate,maxerr,num,tablepos)
  mode25:二维的比较模式;
  opnum:对应的输出口;
  opstate:第一个比较点的输出状态;
  maxerr:比较位置每个轴左右的脉冲偏差,进入偏差范围后开始比较,此参数不能写0;
  num:table里面存储的比较点坐标个数;
  tablepos:第一个比较点坐标所在table编号。
  说明:比较点写在TABLE中,两个连续的TABLE数据组成一个2D坐标,每到达一个比较位置OP反转一次。
  图中蓝色段表示OP开启,各类常用插补运动均支持比较,比较点坐标一定的要准确,否则会影响后面点的比较。
  该模式主要功能为,碰到设置好的二维比较点之后,输出口电平反转。
  该模式使用时需要指定高速输出口,将首个比较点的输出状态、比较轴设置好之后,再设置比较点(即设置table寄存器,点数量等),设置比较点脉冲最大误差等参数后,启动比较。紧接着驱动轴运动即可。
  脉冲偏差说明:2D模式下设置XY坐标需要准确,轴运动不到准确的TABLE比较点时将无法触发,3D模式同理。故多维比较模式引入一个特殊参数maxerr位置范围偏差,左右范围均有效,即实际位置坐标点与TABLE的比较点的差值在maxerr范围内便有效,触发时刻为当前位置进入比较点的触发范围内便触发比较,比较范围示意图如下。
  注意:maxerr的单位为脉冲数的偏差,不是距离的偏差。
  如下图所示,设置高速比较输出口为0,首个比较点的输出状态为1,比较轴为0,1;设置两个比较点,比较点坐标分别为:(100,50),(160,80)。即当轴运动到点(100,50)和点(160,80),误差范围在50个脉冲左右的范围时,都会触发电平变化。
  示波器波形如图所示:在坐标(100,50)时输出为1,直到坐标(160,80)的时候恢复为0。
  (2)2D比较(模式26)
  语法:HWPSWITCH2(26,opnum,opstate,maxerr,num,tablepos,〔ophwtimeus,ophwtimes,hwcyctimeus〕)
  mode26:二维的比较模式;
  opnum:对应的输出口;
  opstate:第一个比较点的输出状态;
  maxerr:比较位置每个轴左右的脉冲偏差,进入偏差范围后开始比较,此参数不能写0;
  num:table里面存储的比较点坐标个数;
  tablepos:第一个比较点坐标所在table编号;
  以下参数和HWTIMER二选一,HWTIMER单独写可以动态调整参数
  ophwtimeus:脉冲时间;
  ophwtimes:脉冲个数;
  hwcyctimeus:脉冲周期。
  说明:比较点写在TABLE中,两个连续的TABLE数据组成一个2D坐标,每到达一个比较位置触发OP,每个比较点OP反转的次数和反转周期由HWTIMER设置;到达下一个TABLE位置,OP再次触发。类似模式7和模式36。
  该模式主要功能为,碰到设置好的二维比较点之后,输出口输出一断设置好的定时脉冲。
  该模式使用时,需要指定高速输出口,将首个比较点的输出状态、比较轴设置好之后,再设置比较点(即设置table寄存器,点数量等),设置好比较点之后再设置脉冲有效时间、脉冲周期时间,以及脉冲个数(重复次数),设置比较点的脉冲最大误差等参数后,启动比较。紧接着驱动轴运动即可。
  如下图所示,设置高速比较输出口为0,首个比较点的输出状态为1,比较轴为0,1;设置两个比较点,比较点坐标分别为:(100,100),(200,200)。即当轴运动到点(100,100),点(200,200),误差范围在10个脉冲左右的范围时,都会触发两个周期为60ms,脉冲有效时间为20ms的脉冲。
  示波器波形如图所示:在坐标(100,100),(200,200)的时候都会触发两个周期为60ms,脉冲有效时间为20ms的脉冲。
  3。三维比较模式
  (1)3D比较(模式35)
  语法:HWPSWITCH2(35,opnum,opstate,maxerr,num,tablepos)
  mode35:三维的比较模式;
  opnum:对应的输出口;
  opstate:第一个比较点的输出状态;
  maxerr:比较位置每个轴左右的脉冲偏差,进入偏差范围后开始比较,此参数不能写0;
  num:table里面存储的比较点坐标个数;
  tablepos:第一个比较点坐标所在table编号;
  说明:比较点写在TABLE中,三个连续的TABLE数据组成一个3D坐标,每到达一个比较位置触发OP,每个比较点OP反转的次数和反转周期由HWTIMER设置;到达下一个TABLE位置,OP再次触发。类似模式26和模式7。
  该模式主要功能为,碰到设置好的三维比较点之后,输出口电平反转。
  该模式使用时需要指定高速输出口,将首个比较点的输出状态、比较轴设置好之后,再设置比较点(即设置table寄存器,点数量等),设置比较点的脉冲最大误差等参数后,启动比较。紧接着驱动轴运动即可。
  如下图所示,设置高速比较输出口为0,首个比较点的输出状态为1,比较轴为0,1,2;设置4个比较点,比较点坐标分别为:(80,40,20),(160,80,40),(240,120,60),(320,160,80)。即当轴运动到点(80,40,20),(160,80,40),(240,120,60),(320,160,80),误差范围在10个脉冲左右的范围时,都会触发电平变化。
  示波器波形如图所示:在坐标(80,40,20),(160,80,40),(240,120,60),(320,160,80)时会发生电平变化。
  核心程序示例:参数:mode25,26,35,36。2D3D的比较模式Axisnum:轴数组Opnum:对应的输出口Opstate:第一个比较点的输出状态。maxerr:比较位置每个轴左右的脉冲偏差,进入偏差范围后开始比较。num:TABLE里面存储的比较点个数。tablepos:第一个比较点坐标所在TABLE编号与hwtimer并用时,可以动态调整hwtimer参数。ModePara1:脉冲时间ModePara2:脉冲个数ModePara3:脉冲周期int32CMyControlDlg::ZAuxDirectHwPswitch22D(ZMCHANDLEhandle,intAxisnum,intMode,intOpnum,intOpstate,intmaxerr,intnum,inttablepos,floatModePara1,floatModePara2,floatModePara3){if(0Axisnum〔0〕Axisnum〔0〕MAXAXISAUX){returnERRAUXPARAERR;}charcmdbuff〔2048〕;chartempbuff〔2048〕;charcmdbuffAck〔2048〕;生成命令sprintf(cmdbuff,BASE(d,d),Axisnum〔0〕,Axisnum〔1〕);switch(Mode){case25:sprintf(tempbuff,HWPSWITCH2(d,d,d,d,d,d),Mode,Opnum,Opstate,maxerr,num,tablepos);strcat(cmdbuff,tempbuff);break;case26:sprintf(tempbuff,HWPSWITCH2(d,d,d,d,d,d,f,f,f),Mode,Opnum,Opstate,maxerr,num,tablepos,ModePara1,ModePara2,ModePara3);strcat(cmdbuff,tempbuff);break;case35:sprintf(tempbuff,HWPSWITCH2(d,d,d,d,d,d),Mode,Opnum,Opstate,maxerr,num,tablepos);strcat(cmdbuff,tempbuff);break;case36:sprintf(tempbuff,HWPSWITCH2(d,d,d,d,d,d,f,f,f),Mode,Opnum,Opstate,maxerr,num,tablepos,ModePara1,ModePara2,ModePara3);strcat(cmdbuff,tempbuff);break;default:returnERRAUXPARAERR;break;}调用命令执行函数intretZAuxExecute(handle,cmdbuff,cmdbuffAck,2048);if(strlen(cmdbuffAck)!0)returnERRACKERROR;returnret;}
  (2)3D比较(模式36)
  语法:HWPSWITCH2(36,opnum,opstate,maxerr,num,tablepos,〔ophwtimeus,ophwtimes,hwcyctimeus〕)
  mode36:三维的比较模式;
  opnum:对应的输出口;
  opstate:第一个比较点的输出状态;
  maxerr:比较位置每个轴左右的脉冲偏差,进入偏差范围后开始比较,此参数不能写0;
  num:table里面存储的比较点坐标个数;
  tablepos:第一个比较点坐标所在table编号;
  以下参数和HWTIMER二选一,HWTIMER单独写可以动态调整参数
  ophwtimeus:脉冲时间;
  ophwtimes:脉冲个数;
  hwcyctimeus:脉冲周期。
  该模式主要功能为,碰到设置好的三维比较点之后,输出口输出一断设置好的定时脉冲。
  该模式使用时,需要指定高速输出口,将首个比较点的输出状态、比较轴设置好之后,再设置比较点(即设置table寄存器,点数量等),设置好比较点之后再设置脉冲有效时间,脉冲周期时间,以及脉冲个数(重复次数),设置比较点的脉冲最大误差等参数后,启动比较。紧接着驱动轴运动即可。
  如下图所示,设置高速比较输出口为0,首个比较点的输出状态为1,比较轴为0,1,2;设置4个比较点,比较点坐标分别为:(80,40,20),(160,80,40),(240,120,60),(320,160,80)。
  即当轴运动到点(80,40,20),(160,80,40),(240,120,60),(320,160,80),误差范围在10个脉冲左右的范围时,都会触发电平变化。都会触发两个周期为40ms,脉冲有效时间为20ms的脉冲。
  示波器波形如图所示:在坐标(80,40,20),(160,80,40),(240,120,60),(320,160,80)时会触发两个周期为40ms,脉冲有效时间为20ms的脉冲。
  核心程序示例:参数:mode25,26,35,36。2D3D的比较模式Axisnum:轴数组Opnum:对应的输出口Opstate:第一个比较点的输出状态。maxerr:比较位置每个轴左右的脉冲偏差,进入偏差范围后开始比较。num:TABLE里面存储的比较点个数。tablepos:第一个比较点坐标所在TABLE编号与hwtimer并用时,可以动态调整hwtimer参数。ModePara1:脉冲时间ModePara2:脉冲个数ModePara3:脉冲周期int32CMyControlDlg::ZAuxDirectHwPswitch22D(ZMCHANDLEhandle,intAxisnum,intMode,intOpnum,intOpstate,intmaxerr,intnum,inttablepos,floatModePara1,floatModePara2,floatModePara3){if(0Axisnum〔0〕Axisnum〔0〕MAXAXISAUX){returnERRAUXPARAERR;}charcmdbuff〔2048〕;chartempbuff〔2048〕;charcmdbuffAck〔2048〕;生成命令sprintf(cmdbuff,BASE(d,d),Axisnum〔0〕,Axisnum〔1〕);switch(Mode){case25:sprintf(tempbuff,HWPSWITCH2(d,d,d,d,d,d),Mode,Opnum,Opstate,maxerr,num,tablepos);strcat(cmdbuff,tempbuff);break;case26:sprintf(tempbuff,HWPSWITCH2(d,d,d,d,d,d,f,f,f),Mode,Opnum,Opstate,maxerr,num,tablepos,ModePara1,ModePara2,ModePara3);strcat(cmdbuff,tempbuff);break;case35:sprintf(tempbuff,HWPSWITCH2(d,d,d,d,d,d),Mode,Opnum,Opstate,maxerr,num,tablepos);strcat(cmdbuff,tempbuff);break;case36:sprintf(tempbuff,HWPSWITCH2(d,d,d,d,d,d,f,f,f),Mode,Opnum,Opstate,maxerr,num,tablepos,ModePara1,ModePara2,ModePara3);strcat(cmdbuff,tempbuff);break;default:returnERRAUXPARAERR;break;}调用命令执行函数intretZAuxExecute(handle,cmdbuff,cmdbuffAck,2048);if(strlen(cmdbuffAck)!0)returnERRACKERROR;returnret;}
  本次,正运动技术运动控制器PSO视觉飞拍与精准输出的C开发(三):二维三维多轴PSO输出,就分享到这里。更多精彩内容请关注正运动小助手公众号。
  本文由正运动技术原创,欢迎大家转载,共同学习,一起提高中国智能制造水平。文章版权归正运动技术所有,如有转载请注明文章来源。

请你告诉孩子这是一生的底气今天我们来谈谈教育孩子的话题,我也不是专业的,但是我得讲讲我的认知,今天呢,我们谈一下孩子这一生的底气是从哪里来?大多数人会回答说是事业是多赚钱,是权利,或者说是有靠山,……48V轻混为何被各大主流车企争相推广?值不值得买?在前两天的文章中我们说过,随着各国环保法规的日益严苛,三缸小排量发动机逐渐成为了市场上的主流,而V6、V8等大排量发动机逐渐走向没落。其实,未来汽车动力系统的发展趋势除了三缸小……大众速腾将于3月18日正式上市,先来看看参考数据吧汽车这个东西在中国也算是普及时间很快的。人民平时的生活压力很大,这个时候开个车去兜兜风,旅旅游也是非常好的选择,虽然中国的交通发展已经进入了世界的前列,但是毕竟不想坐别人的车坐……奔驰C260L全款落地需要多少钱?李老猫说车为你非专业解答各种选车用车问题奔驰c260l是c级的中期改款产品,在外观方面和老款相比变化不太大,在大灯上采用了多束式led光源看上去更加精神抖擞,机器盖上方的……元气骑士那些老玩家公认无敌,新手却嫌弃的武器,你玩过几个?碧海潮生龙影现,石岸萧落一曲长大家好!我是爱玩《元气骑士》的老宅。在《元气骑士》这款游戏中,武器的定位和职业十分相似,其实力并非是一成不变的,玩家可以根据游戏中的各种强化……一些人说茅台难买,为什么感觉京东茅台官方店的茅台酒都可以随便你说的非常对,茅台其实一点都不难买,想买的话无论是京东官方店还是旗舰店随时都可以买到,包括其它网购平台同样随时都可以买到!以上所说的是针对不差钱的情况下,只要有钱别说普通……宝马三系过了保修期后毛病多吗?你好我是宝马的销售我在宝马已经工作7年,这个问题我想我可以帮到你!首先要看你的车子代码是F系列的还是G系列的,F系列的相对而言小毛病比较多一点,但是大的问题不多,比如说这儿那儿……纠结换汽车,到底换新能源汽车还是换传统汽车?预算二十万左右?宋pludDMi两驱顶配或四驱,唐DMi!很简单,价位相当的功能手机与智能手机如何选,那么纯燃油车与DMi就怎么选这要看你买车的用途是市区上下班代步还是经常跑长途?还要看……上下班高峰期,老人挤公交车,你怎么看?我谈谈个人的看法,城市早晚上班,是个高峰期,人员的确拥挤,特别是年轻人,不按时报到,迟到了是要受批评,有可能扣奖金,他们时间紧任务重,单位的规章制度,劳动纪律要求严格尊守,不论……李雪健一生获奖无数,却有两个抹不掉的污点,我对不起观众他是《渴望》中,为人憨厚、善良的宋大成。他是《焦裕禄》中,尽职尽责的人民公仆焦裕禄。他是《搭错车》中,他是充满深沉父爱的哑巴孙力。他是《水浒传》中,他是愚忠、……卡罗拉1。6L与轩逸比,哪款好?今天对比一下日产轩逸与丰田卡罗拉,2016款1。6XVCVT智尊版,卡罗拉2014款1。6LCVTGLXi。外观轩逸的前脸立体感更强,在视觉上显得更加具有肌肉感。……汽车相同的公里数以120公里的速度行驶3个小时,以80公里的谢邀。按照我的车计算,还是时速80公里能省点油(经济时速百公里6。5L)。百公里耗油7。8L以480公里计算:480x7。810037。44L(以120……
豪车不挂牌照样扣12分,车主喊冤,交警一看也忍不住笑了说到汽车啊,几乎每天都能看到,汽车作为人类发展的一大助力,自然也是双刃剑,有利有弊,利就不用说了各种的方便,弊也是很多的,比如噪音、空气污染等,每天走在街上都有很多的安全隐患。……大牛证券红杉资本认栽!卷入FTX坠机危机因为LUNA事件,加密货币在上半年崩溃了。相信谁也没想到,仅仅半年后,FTX交易所危机就让全球顶级风险投资机构栽跟头。今天,红杉资本在社交媒体上向投资者宣布,红杉资本将其……涨球了!非卖品!谢谢你,湖人事情大概是这样,昨天常规赛,奇才客场8692不敌骑士,此战奇才几乎领先了整整三节半,直到第四节过半依然以8475领先,结果这最后半节时间,奇才全队一共只得到2分,骑士打出一波1……银河系中心的巨大气泡是怎么来的?新研究说是超大质量黑洞造成的2020年,X射线望远镜eRosita拍摄了两个巨大气泡的图像,这些气泡在我们银河系中心的上方和下方延伸得很远。从那时起,天文学家就它们的起源展开了辩论。究竟是什么造成了……10步就有一家!时髦小店密度这么高的地方,全中国我找不出第二大家好啊(),今天值班的是一路向北去看海的磊磊。北戴河阿那亚跟我大概是相爱相杀的关系,第一次去在机场被原地劝返,第二次在酒店隔离了2天(好在最后是虚惊一场)。不过抛……连环套!U20亚洲杯B组,越南开局两连胜却遭淘汰,伊朗袋鼠出北京时间3月7日,U20亚洲杯小组赛第三轮B组一场比赛,越南U20队对阵伊朗U20队。此前两轮,越南队连克澳大利亚和卡塔尔,以两连胜暂居小组第一,而伊朗队首战一球小胜卡塔尔,第……2021已经过去,盘点2021年NBA十佳球员2021年已经过去,受新冠疫情的影响,NBA在2021赛季改变了季后赛的赛制,首次引入了附加赛,而上赛季密集的赛程也导致了很多球员在季后赛中受伤,最终阵容更为完整的雄鹿队挺到了……手机为什么越用越卡?原因来自这三点,看懂不用年年换新机相信大家都有这样的感觉,哪怕我们再爱惜手机,手机也会变得越来越卡,很多时候我们更换手机的原因就是因为手机卡顿、闪退等问题。那么究竟是什么原因让手机越来越卡呢?不妨一起了解一下。……梅花幽幽而开,清香自可入诗!这些有颜有趣有心的西溪文创,等你西溪寻梅一曲溪流一曲烟,时近年末,西溪枯萎萧索,视野显得空旷许多。冬天本是西溪的淡季,没有春季花朝烂漫,缺少夏日生机蓬勃,也不见秋天荻花瑟瑟,连柿子树顶的红柿也不见一个,……研究人员预测未来十年海洋生物多样性面临的主要问题2022年7月7日,《自然生态与进化》(NatureEcologyEvolution)刊登了一项由剑桥大学(UniversityofCambridge)牵头,加州大学(Univ……陈亚男离婚,需还大衣哥300万,直播收入曝光网友难怪底气十足陈亚男朱小伟终于官宣离婚了,陈亚男半个月之内,连发两条声明,先是口口声声喊朱之文叫爸爸,说自己被误会了,后来又是苦苦哀求朱之文,出面给她澄清。朱之文灵魂七问,直接给她打回……教练兼球员西热力江我是新疆人,我要带领南京同曦进入季后赛西热力江今天对阵四川,出场48分钟,轰下11分15次助攻5个篮板1抢断一个盖帽的数据。带领球队以111对103战胜了曾经CBA总冠军四川队。我不仅是主教练,在球队有困难时……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网