雷赛运动控制卡能不能用c语言_基于PMAC控制卡的三坐标测量机控制系统

beea59b87b3bf8d3feda8449edb8fa48.gif

75646e648ed7643ddf767a20232c7c8a.png

三坐标测量机控制原理

三坐标测量机获取测头触碰点相对于系统原点的三坐标值,然后经特定算法处理,得到尺寸公差或形位公差。测头在X、Y,Z三个相互垂直的导轨上进行复合运动,实现逐点测量;或按一定运动轨迹,实现扫描测量。因此在实现每一个轴的运动控制时,既要精确的位置控制,又要精确的轨迹插补控制,所以要对每轴何服运动的位置和速度都实现精确闭环控制。速度环由直流电机尾部的测速发电机反馈电压信号至伺服驱动器形成,由伺服驱动器采用比例增益处理,实现稳定的速度控制。位置环则由光栅尺读数头读取导轨上的光栅尺,反馈正交编码信号至运动控制卡,然后采用PID控制算法处理后形成,实现精确的位置控制。

三坐标测量机控制系统组成

整体组成

开放的测量机控制系统如图1所示,以PMAC2-Lite运动控制卡为核心。该控制卡具有四轴运动控制和数字量逻辑控制功能,支持PID控制算法,同时有32路数字量输人和输出接口。控制卡作为下位机,利用交叉网线与上位工控机连接,构成上下位机式开放式测量机控制系统,I/O接口卡具有32路数字量输入输出,通过排线连接控制卡的JTHW和JOPT接口,实现卡上电路与继电器、开关等外部数字量控制电路的光耦隔离,以及5V与24V电平信号转换,保护控制卡不受外部信号干扰和电流冲击。驱动接口卡通过排线连接控制卡JMACHI和JMACH2接口,转接输出三轴的±10V电压控制信号至伺服驱动器,同时以光耦隔离方式连接伺服驱动器报警、使能、回零和正负限位开关触发等信号,另外也能用光耦隔离方式接收光栅反馈的正交编码信号。因为测量机测头负载较小,但是运动换向频繁,所以采用可频繁启动、低速性能好、响应速度快的山洋T系列直流电机,并安装尾部测速发电机。选用AMC25A8直流伺服驱动器,输出PWM信号控制电机,并接收速度电压信号反馈,形成速度闭环。控制卡输出差动电压信号至伺服驱动器,驱动器输出PWM信号至电机,这种模式使整个系统响应速度快,实时性强,同时也有较好的抗干扰性。

6e66ec671bd5ddb1894254b45b2630b9.png

测头坐标捕捉

测头触碰零件表面,获得触碰点的三坐标值是坐标测量机的核心功能。当测头触碰时,通常返回+5V的高电平信号,连接至控制卡JMACH2接口的驱动轴所对应的USER端子,然后在控制卡上设置1变量1xx97=0,I7mn2 =3,17mn³=2。这样当UERS端子检测到测头反馈高电平信号,控制卡立即在寄存器中锁存"xx"轴对应的光栅反馈编码值,读取该编码值,对比系统零点值,就获得该轴的坐标值。测头触碰信号被同时反馈到三个轴的USER端子,因为是控制卡硬件安时锁定编码值,所以可以准确地捕捉到触碰点X、Y、Z三坐标值,实现坐标捕捉功能。手柄控制实现手柄控制测头在X、Y、Z三个方向移动并测量,是重要的测量模式之一。手柄每个方向都是一个电位器,输出的电压信号正负、大小决定了轴的运动方向和速度。ACC-28B是四路模拟转数字扩展卡,可以采集3个方向的手柄输出电压,然后经ACC-8TS扩展接口卡连接到主控制卡。被采集的电压信号存贮在卡中手柄电压值寄存器中,利用周期运行的PLC程序循环读取,然后利用M变量直接赋值给PID滤波寄存器。如果三个轴都处于开环控制状态,这个操作实际上是为开环运动0指令赋值,确定运动速度。通过实时刷新寄存器中值,三个轴就处于0指令控制的开环运动状态,可实现手柄控制测头运动。

测量机软件系统

上位机软件

上位机操作系统为windows系统,软件用VC6.0及PComm32PRO动态链接函数库开发,具有状态监控界面、DMIS程序编辑下载、功能按钮界面和参数设置等模块。状态监控界面主要实现对三个轴的位置及速度的实时监控,对回零状态、限位状态、伺服驱动器等I/0信号的监控。为了减少系统资源占用,采用定时器消息响应函数OnTimer(UINT nIDEvent)每隔500ms来定时采集数据。在该函数中,再调用PComm32PRO中的库函数,来读取控制卡中M、Q等变量,获取上述值。例如获取X轴位置值,则用PmacGelResponseA(m_dwDevice,Buf_Xp,12,"#1p")库函数来实现。获取M变量数值,可以用PmacGelVariable()、PmacGetResponseA()等函数来实现。在消息响应函数的结尾,用UpdateData(FALSE)函数来刷新监控界面的显示。功能按钮界面具有回零、伺服上电、手柄控制等多个命令按钮,分别对应不同的消息响应函数。在这类函数中通过调用PmacGetResponseA()等库函数,调用控制卡上的PLC程序、运动控制程序和在线指令,综合起来实现相应的命令功能。例如执行101回零运动程序,可用PmacGetResponseA(m_dwDevice,Buf-XH,24,"&1 B101R"),来实现三轴的回零命令。控制卡在使用前,可以在上位机上通过对话框进行参数设置,以适应不同的工作环境。该功能利用PmacSeVariable()等库函数来实现。DMIS是一种测量数据通信标准、接口和测量高级语言,是广泛使用的美国标准。上位机具有DMIS程序编辑器,能编辑、解释DMIS测量程序,并下载到控制卡执行。DMIS程序被解释成卡上对应的运动程序、在线指令或PLC程序,利用它们实现测量程序功能。对不同测量要求的自动测量,既可以通过编写不同的DMIS程序实现,也可以直接设置测量按钮,然后编写相应的下位机运动控制程序来实现。下位机软件控制卡中的PLC程序周期性循环运行,能够完全访问卡上的变量和I/O端口,所以可用来读取变量值,并且能够响应外部数字量改变,在程序中调用其它运动控制程序。控制卡开机时,PLC 1参数设置程序,首先运行,设置1、M、P、Q变量值,对控制卡中的控制方式、I/O口定义、特定寄存器对应的变量等进行设置,初始化卡的工作环境。坐标值捕捉PLC程序在后台循环执行,一旦检测USER端子具有高电平信号,就读取已被硬件锁定的三个轴的光栅反馈值,从而获得触碰点的三坐标值。当处于手柄控制模式时,手柄控制PLC程序被循环运行,定时获取手柄电位器输入的电压值,直接赋值给PID滤波寄存器,更改O指令的值,实现三轴的手柄控制开环运行。运动控制程序可以实现期望的运动功能,比较重要的是回零运动程序和重复测量运动程序。这些运动程序由类Basic的高级语言和G代码组成,可以被上位机直接调用,或者PLC程序调用。重复测量运动程序可以利用一个程序循环体,调取事先存储的或用手柄控制获取的一系列测量点坐标,不断自动重复测量这些点,进行比对测量。

基于PMAC控制卡的开放式测量机控制系统,兼容性强,能实现精确的三坐标值硬件实时捕捉,可用手柄控制测头移动方向和速度,能编辑解释标准DMIS测量程序,能实现自动重复比对测量,是一种功能全面,高性能的测量机控制系统,能实现针对不同测量要求的柔性测量。

 

af7060c49da223c67b0f55cda3fb365f.png

29364a4646188c533ab82073a8adb00c.gif

36d49ffcaddd0cd802997469b8437d76.png


往期精彩

  • 分享   影像测量仪买回来了,怎么验收和校准?

  • 干货  三坐标光栅尺的安装特点

  • 推荐  学点有用的:过程能力指数Cp与Cpk计算原理详解

  • 必读   三坐标的汽浮导轨,你了解吗?

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

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

相关文章

计算机综合应用实验,计算机综合应用实验二WORD应用.doc

文档介绍:第二章 WORD 应用设置文档打印为“横向”文档的“纵向”和“横向”可以满足不通纸张, 和不同用户的不同需求。在打印时可以根据情况进行调整选择, 方法如下: 点击菜单“文件”→“页面设置”命令, 在页边距选项卡中的“方向”选择“横向”,如图: 如何将网页…

如何结合因果与强化学习?看最新《因果强化学习:动机,概念,挑战与应用》报告,85页ppt...

来源:专知强化学习(RL)[17]和因果推理[10]都是机器学习不可缺少的组成部分,在人工智能中都发挥着至关重要的作用。最初促使我整合这两者的是机器学习在医疗保健和医学领域的最新发展。回顾过去,人类自出生以来就不可避免地伴随着疾病&#xf…

Leetcode--75. 颜色分类

给定一个包含红色、白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。 此题中,我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。 注意: 不能使用代码…

boot druid 长时间不连接 异常_Spring Boot学习:如何使用Druid数据源

Druid概述Druid是阿里巴巴开源的一款非常优秀的数据库连接池。在Java应用程序开发中,常用的连接池还有DBCP、C3P0、Proxool等。SpringBoot2.X 版本开始默认的是HikariCP(号称性能最好的数据库连接池),Druid性能好而且监控也比较方便。刚兴趣的同学可以读一下,GitHub…

演讲实录丨中科大陈小平教授《从封闭性到非封闭性:2020到2035年智能机器的机遇和挑战》...

来源:中国人工智能学会陈小平中国科学技术大学机器人实验室主任、教授以下是陈小平教授的演讲实录:非常高兴有这个机会进行中、新学术交流。本报告包括四方面内容。第一,关于人工智能(简称AI)的两种类型,一…

充电电流用软件测试准吗,实验:1A与2.1A对手机充电电流一样的,小伙伴再也不用担心咯...

新福克斯舒适,USB在手套箱(不方便啊,郁闷),插U盘放MP3,一个行车记录仪,插在点烟器里,平时没事也够用,要跑一次长途,用iPhone 5C高德导航,靠,问题来&#…

关于线性代数的理解

自从大学学了线性代数以来, 对线性代数的概念一直很迷惑. 感觉中间像是隔了一层布一样, 怎么都理解不了线性代数是个什么东西. 读了人工智能以后, 发现没有线性代数的扎实基础根本学不了人工智能, 特别是在图像处理还是自然语言处理的过程中, 线性代数是 一个非常重要的基础, 可…

Leetcode--31. 下一个排列

实现获取下一个排列的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列。 如果不存在下一个更大的排列,则将数字重新排列成最小的排列(即升序排列)。 必须原地修改,只允许使用额外常数空间。 以下是…

python 结尾回车_理解不了Python正则表达式?我帮你搞定

点击蓝字“python教程”关注我们哟!在学习Python的过程中,我们难免会遇到比较晦涩、难以理解的内容,比如Python中的正则表达式、面向对象等内容,为了更好地帮助大家理解,我们今天就先为大家详细解读Python正则表达式&a…

怎么设置班级文件服务器,如何开设论坛如题下学期老师组织学生开一个班级论坛有专用服务器接下 爱问知识人...

很多朋友都希望有一个自己的论坛,但是做论坛又谈何容易?这个问题很大,如果自己编程开发的话,至少需要半个月不睡觉甚至好几个月、好几年的时间。一个好的论坛,便于网友浏览、占用服务器资源少、运行速度快是最重要的。…

陈左宁院士:人工智能模型和算法的七大发展趋势

来源:C114通信网、北京物联网智能技术应用协会在近日举行的“第十六届CCF全过高性能计算学术年会”上,中国工程院副院长、中国科协副主席、中国工程院院士陈左宁发表了题为《人工智能进展对算力需求分析》的演讲。在演讲中,她阐述了人工智能模…

ABAP术语-World Wide Web

World Wide Web原文:http://www.cnblogs.com/qiangsheng/archive/2008/03/21/1115728.htmlInternet service. The World Wide Web generates documents and presents them to Internet users in a standard format known as HTML. These documents can be linked to…

Leetcode--169. 求众数

给定一个大小为 n 的数组,找到其中的众数。众数是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。 你可以假设数组是非空的,并且给定的数组总是存在众数。 示例 1: 输入: [3,2,3] 输出: 3 示例 2: 输入: [2,2,1,1,1,2,2] 输出: 2 排序之后遍历一次即可 …

模板引擎工作原理_广州seo了解下搜索引擎的工作原理是什么

一、搜索引擎工作的基本原理搜索引擎是根据以下原则计算的:首先,我们知道在web浏览器、百度浏览器、google浏览器、360浏览器中都配置了不同的搜索引擎。它们都有一个共同点,一开始捕获一个模块,然后这个模块就像一个软件程序一样…

浪潮服务器无线网卡驱动,浪潮服务器网卡驱动安装.doc

文档介绍:蚃服务器安装redhat5.2系统无法识别网卡的情况下肂罿进入linux命令终端界面,使用命令袄蒂[******wapdbrac1~]#kudzu--probe--work膂莀界面上就会显示网卡的型号以及机器上都有几个网卡薆蒅第一步:在网上下载这个网卡型号的linux版本驱动程序节薇第二步:使用…

罗杰·科恩伯格:基础科学——人类进步的希望

论坛 演讲编辑: ∑Gemini来源:数据实战派人物介绍:罗杰科恩伯格(Roger Kornberg),世界顶尖科学家协会主席,斯坦福大学温泽医学教授。因对“真核生物转录的分子基础”的研究,获得2006年诺贝尔化学奖。罗杰•…

vue3获取验证码+背景切换

需要安装element-plus组件库 用户获取验证码后按钮会被禁用&#xff0c;等待10秒后重新获取验证码 验证码 元素布局template部分 <template><div><el-button type"success" round :disabled"isSend" click"countDown">{{ c…

Leetcode--19. 删除链表的倒数第N个节点

给定一个链表&#xff0c;删除链表的倒数第 n 个节点&#xff0c;并且返回链表的头结点。 示例&#xff1a; 给定一个链表: 1->2->3->4->5, 和 n 2. 当删除了倒数第二个节点后&#xff0c;链表变为 1->2->3->5. 说明&#xff1a; 给定的 n 保证是有效…

python 几种常用测试框架

测试的常用规则 一个测试单元必须关注一个很小的功能函数&#xff0c;证明它是正确的&#xff1b;每个测试单元必须是完全独立的&#xff0c;必须能单独运行。这样意味着每一个测试方法必须重新加载数据&#xff0c;执行完毕后做一些清理工作。通常通过setUp()和setDown()方法处…

jdbc获取结果行数,如何获取JDBC中的行数?

Ive executed a JDBC query to obtain a resultset. Before iterating over it, Id like to quickly find out how many rows were returned. How can I do this with high performance?Im using Java 6, Oracle 11g, and the latest Oracle JDBC drivers.解决方案Youre going…