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

news2024/11/25 22:45:10

XPCIE1032H功能简介

XPCIE1032H是一款基于PCI Express的EtherCAT总线运动控制卡,可选6-64轴运动控制,支持多路高速数字输入输出,可轻松实现多轴同步控制和高速数据传输。

XPCIE1032H集成了强大的运动控制功能,结合MotionRT7运动控制实时软核,解决了高速高精应用中,PC Windows开发的非实时痛点,指令交互速度比传统的PCI/PCIe快10倍。

在这里插入图片描述

XPCIE1032H支持PWM,PSO功能,板载16进16出通用IO口,其中输出口全部为高速输出口,可配置为4路PWM输出口或者16路高速PSO硬件比较输出口。输入口含有8路高速输入口,可配置为4路高速色标锁存或两路编码器输入。

XPCIE1032H搭配MotionRT7实时内核,使用本地LOCAL接口连接,通过高速的核内交互,可以做到更快速的指令交互,单条指令与多条指令一次性交互时间可以达到3-5us左右。

在这里插入图片描述

➜XPCIE1032H与MotionRT7实时内核的配合具有以下优势:

在这里插入图片描述

1.支持多种上位机语言开发,所有系列产品均可调用同一套API函数库;

2.借助核内交互,可以快速调用运动指令,响应时间快至微秒级,比传统PCI/PCIe快10倍;

3.解决传统PCI/PCIe运动控制卡在Windows环境下控制系统的非实时性问题;

4.支持一维/二维/三维PSO(高速硬件位置比较输出),适用于视觉飞拍、精密点胶和激光能量控制等应用;

5.提供高速输入接口,便于实现位置锁存;

6.支持EtherCAT总线和脉冲输出混合联动、混合插补。

在这里插入图片描述

➜使用XPCIE1032H和MotionRT7进行项目开发时,通常需要进行以下步骤:

1.安装驱动程序,识别XPCIE1032H;

2.打开并执行文件“MotionRT710.exe”,配置参数和运行运动控制实时内核;

3.使用ZDevelop软件连接到控制器,进行参数监控。连接时请使用PCI/LOCAL方式,并确保ZDevelop软件版本在3.10以上;

4.完成控制程序开发,通过LOCAL链接方式连接到运动控制卡,实现实时运动控制。

在这里插入图片描述

➜与传统PCI/PCIe卡和PLC的测试数据结果对比:
在这里插入图片描述

我们可以从测试对比结果看出,XPCIE1032H运动控制卡配合实时运动控制内核MotionRT7,在LOCAL链接(核内交互)的方式下,指令交互的效率是非常稳定,当测试数量从1w增加到10w时,单条指令交互时间与多条指令交互时间波动不大,非常适用于高速高精的应用。

XPCIE1032H控制卡安装

  • 关闭计算机电源。
  • 打开计算机机箱,选择一条空闲的XPCIE卡槽,用螺丝刀卸下相应的挡板条。
  • 将运动控制卡插入该槽,拧紧挡板条上的固定螺丝。

XPCIE1032H驱动安装与建立连接参考往期文章EtherCAT超高速实时运动控制卡XPCIE1032H上位机C#开发(一):驱动安装与建立连接。

一、C#语言进行运动控制项目开发

在这里插入图片描述

二、相关PC函数介绍

相关PC函数介绍详情可参考“ZMotion PC函数库编程手册 V2.1.1”。

1、控制器网口连接函数接口

在这里插入图片描述

2、硬件比较输出函数接口

在这里插入图片描述

3、硬件定时器函数接口

在这里插入图片描述

在form设计界面找到需要用到的控件拖拽到窗体中进行UI界面设计,效果如下。

在这里插入图片描述

三、位置同步输出PSO介绍

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

在这里插入图片描述

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

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

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

在这里插入图片描述

正运动的PSO功能调用ZAux_Direct_HwPswitch2函数接口实现,该函数采用硬件实现IO的高速比较输出,故名硬件比较输出。

四、位置同步输出PSO模式介绍

1、单轴比较 – 模式1

在这里插入图片描述

ZAux_Direct_HwPswitch2(ZMC_HANDLE handle,int Axisnum,int Mode,int Opnum,int Opstate,float ModePara1, float ModePara2,float ModePara3,float ModePara4 )

(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或其他任意值。

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

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

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

示波器波形如图所示:在100,200,300,400时会发生电平变化。

在这里插入图片描述

2、清除比较点 – 模式2

ZAux_Direct_HwPswitch2(ZMC_HANDLE handle,int Axisnum,int Mode,int Opnum,int Opstate,float ModePara1, float ModePara2,float ModePara3,float ModePara4)

(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

在这里插入图片描述

ZAux_Direct_HwPswitch2(ZMC_HANDLE handle,int Axisnum,int Mode,int Opnum,int Opstate,float ModePara1, float ModePara2,float ModePara3,float ModePara4)

(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或其他任意值。

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

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

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

在这里插入图片描述

示波器波形如图所示:在100,200,300,400时会发生电平变化。

在这里插入图片描述

4、矢量比较,单个比较点 – 模式4

在这里插入图片描述

ZAux_Direct_HwPswitch2(ZMC_HANDLE handle,int Axisnum,int Mode,int Opnum,int Opstate,float ModePara1, float ModePara2,float ModePara3,float ModePara4)
(1)handle:控制器连接句柄;
(2)Axisnum:比较轴号;

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

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

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

(6)ModePara1:矢量距离比较点坐标(当前运动距离)。

⊙该模式主要功能为:ModePara1参数设置好比较点之后,碰到设置单轴矢量距离比较点之后,OP 反转,比较结束。

如下图设置:设置高速比较输出口0,首个比较点的输出状态为1,设置比较轴为0。比较点为100。

在这里插入图片描述

示波器波形如图所示:在100时会发生电平变化。

在这里插入图片描述

5、周期位置比较,有效距离输出 – 模式5

在这里插入图片描述

ZAux_Direct_HwPswitch2(ZMC_HANDLE handle,int Axisnum,int Mode,int Opnum,int Opstate,float ModePara1, float ModePara2,float ModePara3,float ModePara4)

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

(2)Axisnum:比较轴号

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

(4)Opnum:对应的输出口

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

(6)ModePara1:矢量距离比较点坐标(当前运动距离)

(7)ModePara2:重复周期。即有效状态个数

(8)ModePara3:周期距离.每隔一次有效状态距离

(9)ModePara4:有效状态距离(不能大于周期距离)

⊙该模式主要功能为:ModePara1参数设置好比较点之后,碰到设置单轴矢量距离比较点之后,输出一断设置好的周期距离脉冲。

该模式使用时需要指定高速输出口,设置好首个比较点的输出状态,设置比较轴,在设置比较点(矢量距离比较点坐标,当前运动距离),设置好周期距离,重复周期,有效状态距离等。最后启动比较。紧接着驱动轴运动即可。

如下图设置:设置高速比较输出口0,首个比较点的输出状态为1,设置比较轴为0。比较点为80,重复周期为5,周期距离为100,有效距离为20,即当轴矢量距离运动到80之后,每运动100的距离,就会输出设置好的周期位置脉冲。

在这里插入图片描述

示波器波形如图所示:轴0与轴1,进行300,400的插补运动的时候,在矢量位置80,180,280,380,480时会输出设置好的周期位置脉冲。

在这里插入图片描述

6、周期位置比较,周期时间输出 – 模式6

在这里插入图片描述

ZAux_Direct_HwPswitch2(ZMC_HANDLE handle,int Axisnum,int Mode,int Opnum,int Opstate,float ModePara1, float ModePara2,float ModePara3,float ModePara4)

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

(2)Axisnum:比较轴号;

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

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

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

(6)ModePara1:矢量距离比较点坐标(当前运动距离);

(7)ModePara2:重复周期。即有效状态个数;

(8)ModePara3:周期距离.每隔一次这个距离输出一次定时器;

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

⊙该模式主要功能为:ModePara1参数设置好比较点之后,碰到设置单轴矢量距离比较点之后,输出一断设置好的定时脉冲。

该模式使用时需要指定高速输出口,设置好首个比较点的输出状态,设置比较轴,在设置比较点(矢量距离比较点坐标,当前运动距离),设置好周期距离,重复周期,设置好硬件定时参数。最后启动比较。紧接着驱动轴运动即可。

如下图设置:设置高速比较输出口0,首个比较点的输出状态为1,设置比较轴为0。比较点为50,重复周期为2,周期距离为100,周期时间为40,有效时间为20。即当轴矢量距离运动到50之后,每运动100的距离,就会输出一段设置好的定时脉冲。

在这里插入图片描述

示波器波形如图所示:在50,150时会输出一段设置好的定时脉冲。

在这里插入图片描述

7、独立位置比较,周期时间输出 – 模式7

在这里插入图片描述

⊙该模式主要功能为:ModePara1参数设置好比较点之后,碰到设置单轴矢量距离比较点之后,输出一断设置好的定时脉冲。

该模式使用时需要指定高速输出口,设置好首个比较点的输出状态,设置比较轴,在设置比较点(矢量距离比较点坐标,当前运动距离),设置好周期距离,重复周期,设置好硬件定时参数。最后启动比较。紧接着驱动轴运动即可。

这条指令在功能上与模式6类似但是在具体设置时会比模式6简单,首先他可以直接在指令中设置HW_TIMER,另外可以动态修改HW_TIMER指令的相关参数。

如下图设置:设置高速比较输出口0,首个比较点的输出状态为1,设置比较轴为0。起始比较点为0,结束比较点为3,周期时间为150ms,脉冲个数为2,有效时间为100ms。即当轴矢量距离运动到50之后,每运动100的距离,就会输出一段设置好的定时脉冲.(注意并没有打开HW_TIMER)。

在这里插入图片描述

示波器波形如图所示:在50,100,150,200时会输出一段设置好的定时脉冲。

在这里插入图片描述

单轴PSO模式详解和例程演示视频。

单轴PSO视觉飞拍与精准输出

本次,正运动技术单轴PSO视觉飞拍与精准输出:EtherCAT超高速实时运动控制卡XPCIE1032H上位机C#开发(七),就分享到这里。

更多精彩内容请关注“正运动小助手”公众号,需要相关开发环境与例程代码,请咨询正运动技术销售工程师。

本文由正运动技术原创,欢迎大家转载,共同学习,一起提高中国智能制造水平。文章版权归正运动技术所有,如有转载请注明文章来源。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1354777.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CRYPTO现代密码学学习

CRYPTO现代密码学学习 RC4 加密算法RSA加密解密DES加密解密详解密钥的生成密文的生成 RC4 加密算法 简单介绍:RC4加密算法是一种对称加密算法,加密和解密使用同一个函数 初始化分为以下几个步骤 初始化存储0-255字节的Sbox(其实就是一个数组)填充key到…

金融中IC和IR的定义

当谈到金融领域时,IC(Information Coefficient)和IR(Information Ratio)通常是用来评估投资组合管理绩效的指标。它们都涉及到投资者对信息的利用和管理的效果。 信息系数(IC - Information Coefficient&a…

使用Go语言采集1688网站数据对比商品价格

目录 引言 一、数据采集原理 二、数据采集流程 三、数据采集代码实现 四、数据分析与比较 五、注意事项 六、结论 引言 随着电子商务的快速发展,越来越多的消费者开始通过在线平台购买商品。在众多电商平台中,1688作为中国最大的批发交易平台&am…

三、C语言中的分支与循环—if语句 (1)

在这一章节中我们的学习内容如下,咱们一步步来。 分支结构 1. if语句 2. 关系操作符 3. 条件操作符 4. 逻辑操作符:&& , || , ! 5. switch语句 循环结构 6. while循环 7. for循环 8. do-while循环 9. break和conti…

kubeadm创建k8s集群

kubeadm来快速的搭建一个k8s集群: 二进制搭建适合大集群,50台以上。 kubeadm更适合中下企业的业务集群。 部署框架 master192.168.10.10dockerkubelet kubeadm kubectl flannelnode1192.168.10.20dockerkubelet kubeadm kubectl flannelnode2192.168.1…

vue3 + TS + vite 搭建中后台管理系统(完整项目)

vue3 TS vite 搭建中后台管理系统(完整项目) 前言1、搭建步骤及方法2、集成多种插件功能,实现中后台按需使用3、新手学TS如何快速进入状态、定义TS类型4、layout搭建四款常见风格6、大屏搭建效果5、vue3Ts运营管理系统总结: 前言…

2020年认证杯SPSSPRO杯数学建模C题(第一阶段)抗击疫情,我们能做什么全过程文档及程序

2020年认证杯SPSSPRO杯数学建模 C题 抗击疫情,我们能做什么 原题再现: 2020 年 3 月 12 日,世界卫生组织(WHO)宣布,席卷全球的冠状病毒引发的病毒性肺炎(COVID-19)是一种大流行病。…

Mybatis Plus 基础功能 BaseMapper和基础配置以及注解

文章目录 Mybatis Plus导入依赖定义Mapper约定常见配置 Mybatis Plus 导入依赖 官网看一下也行plus官网 spring boot3 版本<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-spring-boot3-starter</artifactId><vers…

易点易动固定资产管理系统集成企业微信,帮助企业全生命周期管理固定资产

在现代企业中&#xff0c;固定资产管理是一项至关重要的任务。固定资产的高效管理可以提高企业的运营效率、降低成本&#xff0c;并确保资产的安全和稳定。然而&#xff0c;传统的固定资产管理方法往往复杂繁琐&#xff0c;容易出现信息不准确、流程不畅和数据不一致的问题。为…

Pikachu--字符型注入(get)

Pikachu--字符型注入&#xff08;get&#xff09; 提交方式是get提交&#xff0c;直接在浏览器地址栏里输入注入语句得出结果 判断注入类型 我们要输入数据库里面有的名字 比如vince 输入1 and 12 错误结果 输入 1 and 11 正确结果 判断为字符型注入 判断字段数 输…

一起玩儿物联网人工智能小车(ESP32)——24. 变量与函数(二)

摘要&#xff1a;本文介绍变量和函数的基本知识 在前面一篇中了解了变量&#xff0c;接着就来了解一下函数。函数是程序中的一个关键概念&#xff0c;它可以简化程序的编写&#xff0c;使代码更加模块化、可复用&#xff0c;提高程序的可读性。其实在之前已经多次遇到函数了&am…

python下载wheel并安装

一、查看当前python 版本兼容信息 pip debug --verbose C:\python\37>pip debug --verbose WARNING: This command is only meant for debugging. Do not use this with automation for parsing and getting these details, since the output and options of this command…

探索LinkedIn:使用TypeScript和jsdom库的高级内容下载器

概述 LinkedIn是一个专业的社交网络平台&#xff0c;拥有超过7亿的用户和数以亿计的职位、公司和教育机构的信息。对于数据分析师、市场营销人员、招聘人员和其他对LinkedIn数据感兴趣的人来说&#xff0c;能够从LinkedIn上获取和分析这些信息是非常有价值的。 因此&#xff0…

如何利用Oracle官方网站不登录账号下载和安装非最新版本的JDK(版本自由选择)

一、JDK概述 JDK&#xff08;Java Development Kit&#xff09;是Java开发工具集&#xff0c;是针对Java编程语言的软件开发环境。它包含了Java编译器、JRE&#xff08;Java运行时环境&#xff09;以及其他一些用于开发、调试和测试Java应用程序的工具&#xff0c;是Java开发人…

【日积月累】Java Lambda 表达式

目录 【日积月累】Java Lambda 表达式 1.前言2.语法3.应用场景3.1简化匿名内部类的编写3.1简化匿名内部类的编写3.2简化集合类中的操作3.3实现函数式接口3.4简化多个方法的调用3.5简化异步编程 4.总结5.参考 文章所属专区 日积月累 1.前言 Lambda表达式是一个匿名函数&#…

计算机毕业设计——SpringBoot 房屋销售租赁平台 房屋购物网站(附源码)

1&#xff0c;绪论 1.1 背景调研 在房地产行业持续火热的当今环境下&#xff0c;房地产行业和互联网行业协同发展&#xff0c;互相促进融合已经成为一种趋势和潮流。本项目实现了在线房产平台的功能&#xff0c;多种技术的灵活运用使得项目具备很好的用户体验感。 这个项目的…

微信小程序封装vant 下拉框select 单选组件

先上效果图&#xff1a; 主要是用vant 小程序组件封装的&#xff1a;vant 小程序ui网址&#xff1a;vant-weapp 主要代码如下: 先封装子组件&#xff1a; select-popup 放在 components 文件夹里面 select-popup.wxml: <!--pages/select-popup/select-popup.wxml--> &…

Flume基础知识(三):Flume 实战监控端口数据官方案例

1. 监控端口数据官方案例 1&#xff09;案例需求&#xff1a; 使用 Flume 监听一个端口&#xff0c;收集该端口数据&#xff0c;并打印到控制台。 2&#xff09;需求分析&#xff1a; 3&#xff09;实现步骤&#xff1a; &#xff08;1&#xff09;安装 netcat 工具 sudo yum …

RT-Thread学习

RT-Thread是以Apache License v2开源许可发布的物联网操作系统。 RT-Thread有十多年的历史&#xff0c;在开发过程中也放在Github上由大家协同开发&#xff0c;并发布一个个版本&#xff0c;导致不同人群面对多样的版本无从下手。 RT-Thread的版本/分支有以下几种可供选择&…

51单片机(STC8)-- GPIO输入输出

文章目录 I/O口相关寄存器端口数据寄存器端口模式配置寄存器&#xff08;PxM0&#xff0c;PxM1&#xff09;端口上拉电阻控制寄存器(PxPU)关于I/O的注意事项 配置I/O口I/O设置demoI/O端口模式LED控制&#xff08;I/O输出&#xff09;按键检测&#xff08;I/O输入&#xff09; S…