0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

运动控制器PSO视觉飞拍与精准输出的C++开发(一):单轴PSO

正运动技术 来源:正运动技术 作者:正运动技术 2023-02-23 15:29 次阅读

本文主要介绍正运动技术EtherCAT控制器在VS平台采用C++语言实现的各种PSO功能。正运动提供多种PSO模式供用户搭配不同的场景使用。本节主要讲解采用TABLE寄存器存储的数据表触发比较,更多周期比较模式、二维三维比较模式参见下一节说明。

一.硬件介绍

ZMC408CE是正运动推出的一款多轴高性能EtherCAT总线运动控制器,具有EtherCAT、EtherNETRS232CAN和U盘等通讯接口,ZMC系列运动控制器可应用于各种需要脱机或联机运行的场合。

pYYBAGP3E0aAGJhdAAIX1xuD1dI082.png

ZMC408CE支持8轴运动控制,最多可扩展至32轴,支持直线插补、任意圆弧插补、空间圆弧、螺旋插补、电子凸轮、电子齿轮、同步跟随等功能。

ZMC408CE支持8轴运动控制,可采用脉冲轴(带编码器反馈)或EtherCAT总线轴,通用IO包含24个输入口和16个输出口,部分IO为高速IO,EtherCAT最快100us的刷新周期。

ZMC408CE支持8个通道的硬件比较输出、硬件定时器、运动中精准输出,还支持8通道PWM输出,对应的输出口为OUT0-7,支持8个通道同时触发硬件比较输出,用于多通道的视觉飞拍场合等。

ZMC408CE支持PLC、Basic、HMI组态三种编程方式。PC上位机API编程支持C#、C++、LabVIEWMatlab、Qt、Linux、VB.Net、Python等接口。

poYBAGP3E0qAeRN0AAKDvZOqfzo489.png

ZMC408CE内置高精度PSO位置同步输出功能,在加工圆角与曲线时即使进行有减速调整,在高速加工的场合中也能控制激光输出的等间距输出。

二.PSO技术介绍

PSO(position synchronized output)即位置同步输出,本质是通过采集实时的编码器反馈位置(无编码器可使用输出的脉冲位置)与比较模式设定的位置进行比较,控制OP高速同步输出信号,PSO示意图如下。

pYYBAGP3E1GAcOBlAAByGAQMRq0937.png

PSO一般与激光器(或点胶喷射阀等设备)同步输出信号进行相位同步,在运动轨迹的所有阶段以恒定的空间(或恒定时间)间隔触发输出开关,包括加速、减速和匀速段,从而实现脉冲能量均匀地作用在被加工物体上。

PSO功能的特点是能高速且稳定的输出信号,因为输出精度足够高,所以能够在整个运动轨迹中以固定的距离触发输出信号而不用考虑总体速度,即在直线部分以很快的速度运动,而在圆角部分减速的同时也能保证输出间距恒定。

通常圆角加工部分在整个加工过程中占有比较小的部分,这样在保证加工效果的同时,就可以最大限度地提高产能。

pYYBAGP3E2mACPQcAAD0f2qIWj4045.png

正运动的PSO功能调用ZAux_Direct_HwPswitch2函数接口实现,该函数采用硬件实现IO的高速比较输出,响应速度达到微秒级别,故名硬件比较输出。

三.MFC项目的开发

(一)新建MFC项目并添加函数库

注:本例程在VS2010编译环境下,基于.NET Framework 4.0框架创建的MFC窗体应用程序。

1.工具栏菜单“文件”→“新建”→“项目”,启动创建项目向导。

pYYBAGP3E4KAVnjmAAJ-64kborI978.png

2.选择开发语言为“Visual C++”和.NET Framework 4以及MFC应用程序,填写好程序名以及选择好程序存放路径,点击确定。

poYBAGP3E4WABAlQAAFhBER7C2o202.png

3.点击下一步。

poYBAGP3E4qAR3ArAAEwRoDQedE533.png

4.选择类型为“基于对话框”,点击下一步或者完成即可。

pYYBAGP3E46AYQKoAAE8Je23WnM385.png

(二)找到厂家提供的C++函数库文件

1.进入厂商提供的光盘资料,找到“8.PC函数”文件夹,并点击进入,找到C++函数库,路径如下(64位库为例)。

pYYBAGP3E5OAENTNAACOV6hlnnY260.png

2.选择“函数库2.1”文件夹。

poYBAGP3E5eAR2wwAABf2F36QjM740.png

3.选择“Windows平台”文件夹。

poYBAGP3E5uAIda8AACQNLp7O-I803.png

4.根据需要选择对应的函数库,这里选择“64位库”。

pYYBAGP3E6CAaSDaAABLmN_Ag80770.png

5.解压C++压缩包,里面有C++对应的函数库。

poYBAGP3E6SAQPNkAAA5HkGWfoE138.png

6.函数库具体路径如下。

pYYBAGP3E7KAaiBPAADQpcMdtMA669.png

7.将厂商提供的C++库文件以及相关文件复制到新建的项目中。

pYYBAGP3E7eAIM0wAAJvGclS6RM862.png

(三)在项目中添加静态库和相关头文件

静态库:zauxdll.lib, zmotion.lib相关头文件:zauxdll2.h, zmotion.h

1.先右击头文件,接着依次选择:“添加”→“现有项”。

pYYBAGP3E76AJq-eAAEnqj8xI4w197.png

2.在弹出的窗口中依次添加静态库和相关头文件。

poYBAGP3E8eAQ3nhAAJ28sbLpLM038.png

3.声明用到的头文件和定义控制器连接句柄。

poYBAGP3E8yARVz5AACrCZbapnA967.pngpYYBAGP3E9GAPZr0AAKbrFThiL4842.png

至此,项目新建完成。

(四)查看PC函数手册

用户需要从PC函数手册中获取运动控制开发使用的函数接口,对照手册说明使用,PC函数手册在光盘资料查看,具体路径如下:“光盘资料8.PC函数函数库2.1ZMotion函数库编程手册V2.1.pdf”。

poYBAGP3E9aAbIj1AABXE5KTdxU443.png

(五)控制器网口连接函数接口

PC编程一般使用网口对控制器和工控机进行链接。

ZAux_FastOpen();如果链接成功,该接口会返回一个链接句柄。通过操作这个链接句柄可以实现对控制器的控制。

ZAux_OpenEth()接口说明:

pYYBAGP3E92AGiu8AABljWQ-B-g721.png

项目应用截图:

poYBAGP3E-KANYKbAABe8d8IZE0277.png

(六)硬件比较输出函数接口

使用对下位机寄存器操作的指令操作链接句柄“g_handle”,对控制器进行寄存器内容取值,实时控制下位机相关的指令如下。

实时全局变量指令:ZAux_Direct_HwPswitch2硬件比较输出指令到位置后硬件自动触发op输出信号。

pYYBAGP3E-eAGsxsAAC7Ul-yIj0468.png

(七)硬件定时器函数接口

ZAux_Direct_HwTimer硬件定时器硬件比较输出后一段时间还原电平。

poYBAGP3E_CAOQzqAAB8kHyv4Pw383.png

四.MFC程序的运行和读写控制开发

(一)Demo交互界面

Demo主要分为三个部分:

1.链接控制器,支持网口连接和串口连接。

2.配置基本轴参数

3.配置硬件比较输出,可选多种模式测试,部分模式需要先配置TABLE的比较点数据才能启动。

poYBAGP3E_mATS0xAAE81qLjhtk409.png

(二)常用模式例程功能与效果

1.单轴比较(模式1)

poYBAGP3E_2ALhP1AABePchoAbU234.png

ZAux_Direct_HwPswitch2(ZMC_HANDLE handle,intAxisnum,intMode, intOpnum,intOpstate,floatModePara1, floatModePara2,floatModePara3,floatModePara4).

(1)handle:控制器连接句柄;

(2)Axisnum:比较轴号;

(3)Mode:1-启动比较器

(4)Opnum:对应的输出口;

(5)Opstate:第一个比较点的输出状态;

(6)ModePara1:第一个比较点绝对坐标所在TABLE寄存器编号;

(7)ModePara2:最后一个比较点绝对坐标所在TABLE寄存器编号;

(8)ModePara3:第一个点判断方向,0坐标负向,1坐标正向,-1不使用方向;

(9)ModePara4:模式1里面,该参数无意义,填0或其他任意值。

模式1主要功能为:在TABLE寄存器里面设置好比较点,碰到设置好的单轴比较点之后,输出口电平反转。

该模式使用时需要指定高速输出口,将首个比较点的输出状态、比较轴设置好之后,再设置比较点(即设置table寄存器,点数量等),最后设置比较点的运动方向,启动比较。紧接着驱动轴运动即可。

如下图所示,设置高速比较输出口0,首个比较点的输出状态为1,设置比较轴为0。设置4个比较点,比较点坐标分别为:100,200,300,400。即当轴运动到100,200,300,400时,都会触发电平变化。

pYYBAGP3FAGAUzNOAAEEWQNgPpw918.png

示波器波形如图所示:由图可得输出口OP(0)在100,200,300,400时会发生电平变化。

pYYBAGP3FAWAA78tAAEE7zeJiWE930.png

2.清除比较点(模式2)

ZAux_Direct_HwPswitch2(ZMC_HANDLEhandle,intAxisnum,intMode, intOpnum,intOpstate,float ModePara1, floatModePara2,floatModePara3,floatModePara4).

(1)handle:控制器连接句柄;

(2)Axisnum:比较轴号;

(3)Mode:2-清除比较缓冲区;

(4)Opnum:对应的输出口;

(5)Opstate:模式2里面,该参数无意义,填0;

(6)ModePara1:模式2里面,该参数无意义,填0;

(7)ModePara2:模式2里面,该参数无意义,填0;

(8)ModePara3:模式2里面,该参数无意义,填0;

(9)ModePara4:模式2里面,该参数无意义,填0。

使用前需要调用此模式,清除可能没有比较完成的数据。使用过程中也可以发送此命令,停止比较。

3.矢量比较方式(模式3)

poYBAGP3FAqAIawVAABovax01WA831.png

ZAux_Direct_HwPswitch2(ZMC_HANDLEhandle,intAxisnum,intMode, intOpnum,intOpstate,floatModePara1, floatModePara2,floatModePara3,floatModePara4).

(1)handle:控制器连接句柄;

(2)Axisnum:比较轴号;

(3)Mode:3-启动比较器;

(4)Opnum:对应的输出口;

(5)Opstate:第一个比较点的输出状态;

(6)ModePara1:第一个矢量距离比较点绝对坐标所在TABLE寄存器编号;

(7)ModePara2:最后一个矢量距离比较点绝对坐标所在TABLE寄存器编号;

(8)ModePara3:模式3里面,该参数无意义,填0或其他任意值;

(9)ModePara4:模式3里面,该参数无意义,填0或其他任意值。

模式3主要功能为:在TABLE寄存器里面设置好比较点,碰到设置单轴矢量距离比较点之后,输出口电平反转。

该模式使用时需要指定高速输出口,将首个比较点的输出状态、比较轴设置好之后,再设置比较点(即设置TABLE寄存器,点数量等),启动比较。紧接着驱动轴运动即可。

如下图所示,设置高速比较输出口0,首个比较点的输出状态为1,设置比较轴为0。设置4个比较点,比较点坐标分别为:100,200,300,400。即当轴矢量距离运动到100,200,300,400时,都会触发电平变化。

pYYBAGP3FA-AXyz9AAD4vlwoDnU281.png

示波器波形如图所示:由图可得输出口OP(0)在100,200,300,400时会发生电平变化。

poYBAGP3FBOAaXS-AAFH4tDsYok107.png

本次,正运动技术运动控制器PSO视觉飞拍与精准输出的C++开发(一):单轴PSO,就分享到这里。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 运动控制器
    +关注

    关注

    2

    文章

    389

    浏览量

    24617
  • C++
    C++
    +关注

    关注

    21

    文章

    2096

    浏览量

    73447
  • ethercat
    +关注

    关注

    18

    文章

    631

    浏览量

    38533
收藏 人收藏

    评论

    相关推荐

    运动控制器PSO位置同步输出():硬件平台与PSO指令简介

    ZMC406和ZMC460N这两款控制器同属高系列,功能强大,能满足多种场合的需求,支持直线插补、连续插补、任意圆弧插补、空间圆弧、螺旋插补、电子凸轮、电子齿轮、位置锁存、同步跟随、虚拟设置、硬件比较输出、硬件定时
    的头像 发表于 07-18 13:55 2952次阅读
    <b class='flag-5'>运动</b><b class='flag-5'>控制器</b><b class='flag-5'>PSO</b>位置同步<b class='flag-5'>输出</b>(<b class='flag-5'>一</b>):硬件平台与<b class='flag-5'>PSO</b>指令简介

    运动控制器PSO视觉精准输出C++开发(三):二维/三维/多PSO输出

    本文主要讲解正运动技术多PSO二维、三维比较输出两种模式。
    的头像 发表于 03-08 14:27 2222次阅读
    <b class='flag-5'>运动</b><b class='flag-5'>控制器</b><b class='flag-5'>PSO</b><b class='flag-5'>视觉</b><b class='flag-5'>飞</b><b class='flag-5'>拍</b>与<b class='flag-5'>精准</b><b class='flag-5'>输出</b>的<b class='flag-5'>C++</b><b class='flag-5'>开发</b>(三):二维/三维/多<b class='flag-5'>轴</b><b class='flag-5'>PSO</b><b class='flag-5'>输出</b>

    PSO视觉精准输出:EtherCAT超高速实时运动控制卡XPCIE1032H上位机C#开发(七)

    运动技术EtherCAT控制卡在VS平台采用C#语言实现的各种PSO功能。
    的头像 发表于 01-03 09:50 976次阅读
    <b class='flag-5'>单</b><b class='flag-5'>轴</b><b class='flag-5'>PSO</b><b class='flag-5'>视觉</b><b class='flag-5'>飞</b><b class='flag-5'>拍</b>与<b class='flag-5'>精准</b><b class='flag-5'>输出</b>:EtherCAT超高速实时<b class='flag-5'>运动</b><b class='flag-5'>控制</b>卡XPCIE1032H上位机<b class='flag-5'>C</b>#<b class='flag-5'>开发</b>(七)

    【正运动】高速高精,超高实时性的PCIe EtherCAT实时运动控制卡 | PCIE464

    输出精准输出PSO硬件位置比较输出视觉
    发表于 01-24 09:48

    机器视觉运动控制体机在喇叭跟随点胶上的应用

    ,2路高速PWM和PSO硬件输出,4路端脉冲输出,速度可达500KHz。 VPLC532E机器视觉
    发表于 04-16 17:37

    基于VPLC711的曲面外观检测XYR运动控制解决方案

    自动化设备核心任务; ●多维位置同步输出PSO,可在连续加工过程中精准控制点胶胶量和激光能量等参数; ●开放式IPC形态实时软控制器/软
    发表于 04-16 17:58

    【正运动】全国产EtherCAT运动控制器 | ZMC432H

    、运功控制核心 运动、多直线插补运动、圆弧
    发表于 06-01 09:39

    PSO动态优化的ADRC控制器研究_张墩利

    PSO动态优化的ADRC控制器研究_张墩利
    发表于 01-31 15:22 1次下载

    PSO位置同步输出在激光振镜加工中的应用

    今天,正运动小助手给大家分享运动控制器之ZMC420SCAN的位置同步输出PSO在激光振镜加
    的头像 发表于 02-24 11:48 3522次阅读
    <b class='flag-5'>PSO</b>位置同步<b class='flag-5'>输出</b>在激光振镜加工中的应用

    运动控制器PSO位置同步输出(二):PSO模式详解

    本节我们主要去讲解下多种PSO模式原理和使用的讲解,用户可根据实际需求灵活选择触发模式。
    的头像 发表于 07-21 16:26 2469次阅读
    <b class='flag-5'>运动</b><b class='flag-5'>控制器</b><b class='flag-5'>PSO</b>位置同步<b class='flag-5'>输出</b>(二):<b class='flag-5'>PSO</b>模式详解

    高精度等间距二维三维PSO输出教程

    硬件选型的首要要求是支持PSO功能,再分析PSO的应用场合和数等选择具体的型号。本例以ZMC460N双总线运动控制器为例展开介绍。
    的头像 发表于 07-26 18:12 1936次阅读
    高精度等间距二维三维<b class='flag-5'>PSO</b><b class='flag-5'>输出</b>教程

    运动控制器多工位位置比较输出在转盘式视觉筛选设备中的应用

    本文通过ZMC430N运动控制器在转盘式视觉筛选设备中的方案应用,来深入了解正运动技术运动控制器
    的头像 发表于 09-29 14:13 1.9w次阅读
    <b class='flag-5'>运动</b><b class='flag-5'>控制器</b>多工位位置比较<b class='flag-5'>输出</b>在转盘式<b class='flag-5'>视觉</b>筛选设备中的应用

    运动控制器八通道PSO视觉精准输出

    运动技术EtherCAT运动控制器多通道PSO视觉
    的头像 发表于 02-17 09:35 1066次阅读
    <b class='flag-5'>运动</b><b class='flag-5'>控制器</b>八通道<b class='flag-5'>PSO</b>的<b class='flag-5'>视觉</b><b class='flag-5'>飞</b><b class='flag-5'>拍</b>与<b class='flag-5'>精准</b><b class='flag-5'>输出</b>

    运动控制器PSO视觉精准输出C++开发(二):多PSO等距/周期输出

    本文主要介绍正运动技术EtherCAT控制器在VS平台采用C++语言实现的各种PSO功能。正运动提供多种
    的头像 发表于 03-02 14:35 790次阅读
    <b class='flag-5'>运动</b><b class='flag-5'>控制器</b><b class='flag-5'>PSO</b><b class='flag-5'>视觉</b><b class='flag-5'>飞</b><b class='flag-5'>拍</b>与<b class='flag-5'>精准</b><b class='flag-5'>输出</b>的<b class='flag-5'>C++</b><b class='flag-5'>开发</b>(二):多<b class='flag-5'>轴</b><b class='flag-5'>PSO</b>等距/周期<b class='flag-5'>输出</b>

    二维/三维的多PSO视觉精准输出:EtherCAT超高速实时运动控制卡XPCIE1032H上位机C#开发(八)

    本文主要讲解多PSO二维、三维比较输出两种模式。
    的头像 发表于 01-08 09:34 446次阅读
    二维/三维的多<b class='flag-5'>轴</b><b class='flag-5'>PSO</b><b class='flag-5'>视觉</b><b class='flag-5'>飞</b><b class='flag-5'>拍</b>与<b class='flag-5'>精准</b><b class='flag-5'>输出</b>:EtherCAT超高速实时<b class='flag-5'>运动</b><b class='flag-5'>控制</b>卡XPCIE1032H上位机<b class='flag-5'>C</b>#<b class='flag-5'>开发</b>(八)