基于PMAC的数控机床数据实时采集的研究

出处:微计算机信息 发布于:2009-07-20 11:50:44

  摘 要:分析了采用多媒体定时器进行数据采集的特点和采集过程中出现的问题,采用了PMAC 的双端口RAM 技术与多媒体定时器技术相结合的数据实时采集方式,在数控凸轮轴磨床上进行了实验,取得了满意的效果。该方法与采用多线程技术进行数据采集方法相比,方法简单、安全性好。

  多媒体定时器由于定时高,因而在数据采集方面应用广泛。采用多媒体定时器对基于PMAC 的数控机床进行运动参数采集,如果采集量较多而时间间隔较短,将会发生内存读取错误乃至死机,使加工程序中断,如不及时清除缓冲区内未执行的加工数据,下次启动时,将会造成开环“飞车”,这是十分危险的。但采用PMAC 的双端口RAM 进行数据读取,不但有效避免了这一问题,而且还大大简化了数据采集过程,在数控凸轮轴磨床上进行的采集应用过程中,取得了满意的效果。该方法与采用多线程技术进行数据采集相比,优势明显。

  1 PMAC 卡简介

  PMAC(Programmable Multi-Axis Controller,可编程多轴控制器)是美国Delta Tau公司九十年代推出的基于PC 平台的开放式多轴运动控制器。它采用了Motorola 公司的DSP56 系列高性能数字信号处理器作为CPU,是目前世界上功能强大的运动控制器之一,一个PMAC 可以同时控制1~8 根轴,多个PMAC 级联多可以控制128 根轴,能够定位,在包装、装配、医药工业、机床等行业应用广泛。

  2 多媒体定时器技术

  2.1 多媒体定时器与普通定时器的比较

  普通的定时器用函数SetTimer 来设定,以毫秒为单位,但由于受到消息队列的处理速度和系统时钟频率的影响,采样周期少为54.925ms,也就是说SetTimer(1,1,NULL)、SetTimer(1,50,NULL),采样的周期都大概为55ms。但使用Windows 的多媒体定时器来代替常规的定时器,通过编程可以获得采集间隔为1ms 或更短、分辨率为1μ m 的定时,定时非常高,并且稳定性特别好[1] 。

  2.3 多媒体定时器的使用方法

  在使用多媒体定时器前,需要确定操作系统多媒体定时器的分辨率范围。可以通过函数timeGetDevCaps 来获得本计算机的多媒体定时器分辨率范围。使用多媒体定时器,主要分为以下几步:

  1)设置多媒体定时器,采用timeSetEvent 函数,该函数可以初始化多媒体定时器,确定采集时间间隔,并设置一个定时回调事件。

  2)利用函数TimeProc 定义回调函数,可以在该函数中添加代码,实现各种操作。

  3) 调用函数timeKillEvent 结束多媒体定时器。

  3 基于双端口 RAM 技术的数据实时采集方式

  3.1 PMAC 数据读取的方式

  现在通常采取两种PMAC 数据读取的方式:一种方法是通过设置I 变量来确定采集源和采集周期,从缓冲区中获得采集数据,这种方法可以采集任何PMAC 有效地址中的数据,但比较复杂;另一种方法从I/O 及运动寄存器中直接采集数据,通过设置M 变量与运动参数在寄存器中的地址相对应,读取M 变量的值采集数据,这种方法相对简单一些。

  本文采取了另外一种 PMAC 数据读取方式:启动双端口RAM,利用双端口RAM 所带的函数进行数据采集。这种方法更加方便,双端口RAM 的函数封装了PMAC 数据读取数据的过程,用户只须调用相关的函数即可从双端口RAM 中直接读取运动参数,不需要设定采集源和数据地址。双端口RAM 提供了许多运动参数采集函数,可以通过这些函数采集各个电机的状态、位置、速度、跟随误差等。例如:Double PmacDPRPosition(DWORD dwDevice,intmotor,double units),该函数返回指定电机的实际位置。 参数dwDevice 为PMAC 卡的卡号,motor 指电机号,units 表示单位。通过适当的单位换算可以将电机的运动参数转换成相应轴的运动参数。如果PMAC 的双端口RAM 提供的函数仍不能满足需要,也可采用寄存器采集数据,双端口RAM 也支持寄存器读取方式。

  3.2 双端口RAM 技术

  PMAC 的Option2 提供了一个8K×16 位的RAM,允许PMAC 和PC 机之间共享一块快速内存,实现数据的快速传递。在机床的加工过程中需要在实时状态下进行快速的、大量的数据信息,同时又需要重复、快速的从PMAC 中读取各电机的状态信息。电机的状态信息数据可以不停的更新并被PLC 程序或被PMAC 自动地写入双端口RAM 中,如果不使用双端口RAM,这些数据必须使用PAMC 的在线命令通过PC 总线来存取。由于使用双端口RAM 存取不需要经过通讯口发送命令和等待响应时间,所以要快的多[2]。下面是几个主要的双端口RAM 后台定点数据功能函数[3]:

  函数 PmacDPRRealTime 用于开启或关闭PMAC 卡双端口RAM,并规定伺服更新周期 。

  函数 PmacDPRSetMotors 用于设置PMAC 卡,将电机的相关数据复制到双端口RAM 中。

  函数 PmacDPRSetHostBusyBit 用于通知PMAC 卡,客户端将要 “读”双端口RAM 中的数据。

  函数 PmacDPRGetHostBusyBit 用于检查是否在进行双端口RAM 的“写”操作。

  以上四个函数联合使用就可以完成双端口 RAM 的初始化和数据采集准备工作。

  4 应用实例

  4.1 数控凸轮轴磨床实验系统简介

  该数控凸轮轴磨床实验装置生成凸轮轮廓的运动方式为:X 轴砂轮架水平往复移动和C轴工件主轴转动两轴联动,其主要硬件设备有工控机、PMAC 卡、松下伺服电机、雷尼绍光栅、CBN 砂轮、电主轴等。安装在X 轴上的直线光栅分辨率为1μm,安装在C 轴上的圆光栅分辨率为20μm。数控系统采用直线光栅采集X 轴位移作为反馈,圆光栅采集C 轴转角作为反馈,形成全闭环控制,如图1 所示。

  PMAC 支持C++、VB、VC、Delphi 等多种语,并提供了可供二次开发的动态链接库函数。该实验装置以Visual C++6.0 为工具,开发了软件数控系统。在原有的数控系统的基础上,编写了数据采集和显示模块

  4.2 确定定时和采集时间间隔

  经过测试发现,软件数控系统所在操作系统的多媒体定时器定时范围是1ms—1000000ms。由于采样周期>=1.28ms,才可分析各种位置和速度曲线[5]。因此将定时定为1ms,采集时间间隔定为2ms。

  4.3 编程思想

  首先要进行初始化:开启双端口RAM,将伺服更新周期定为2ms,将所要采集的电机的数据复制到双端口RAM中,打开文件准备写入数据。开始采集时,先同知PMAC,将要“读”双端口RAM中的数据,然后检测双端口RAM是否在进行“写”操作,如果没有进行“写”操作,则启动多媒体定时器,调用回调函数完成数据采集和显示。采集完毕后,删除多媒体定时器、关闭双端口RAM,关闭数据保存文件。程序流程图,如图2所示。

  回调函数部分源代码为:

  XAPosition=PmacDPRPosition(0,0,1000); //采集X轴实际位置

  sprintf(buf1,"%10.3lf",XAPosition); //将采集结果由double型转换成字符型

  ::SetDlgItemText(hWnd,IDC_EDIT1, buf1); //显示数据

  fprintf(fGather,"%s\n",buf1); //将采集到的数据写入文件保存

  ……

  本文只给出了X轴位置的采集代码,若要采集其他数据,调用双端口RAM中相应的函数即可。需要说明的是,PmacDPRPosition中的motor参数,应为当前轴号减1;PmacDPRPosition函数中的单位与文献[2]中介绍的寄存器读取方式的确定方式不同,如果希望以mm为单位,此处单位的意义应该是编码器发多少个脉冲X轴移动1mm。与由于编码器发一个脉冲X轴移动1μm,则编码器发1000个脉冲X轴移动1mm,因此,该处单位为1000。

  4.4 采集结果

  采集界面如图3 所示。

  下面是加工过程中采集到的部分数据:

  4.5 应用结果分析

  经过测试发现,如果使用多媒体定时器和寄存器读取方式进行数据采集,当采集间隔为10ms、定时为2ms 时,采集四个运动参数就会死机。而采用双端口RAM 读取方式后,采集间隔为2ms、定时为1ms,采集四个运动参数系统仍然正常工作,解决了内存不足的问题,不但提高了采集,还提高了安全性,充分发挥了多媒体定时器和双端口RAM的技术优势。

  5 与多线程采集方法的比较

  多线程技术也是数据实时采集中常用的一种方法。Windows 操作系统支多任务调度与处理,每一个进程可以同时执行多个线程,这意味着一个程序可以同时完成多个任务。多线程技术也可与PMAC 的双端口RAM 技术结合,将每个运动参数或者每个轴的运动参数作为一个线程,分别进行读写,完成快速时采集与显示。

  但应该指出的是,多线程技术是一种比较难的技术,因为并发运行线程的并行性增加了代码的额外复杂度,所以多线程应用程序的编写和调试比较困难。在采集过程中,数据要在每个线程内分别写入文件进行保存,而各个线程又是相对独立的,因此要获得“同一时刻”的数据,十分困难。而且当涉及线程较多,频繁调用函数,很容易出现致命错误,十分危险。而多媒体定时器数据采集、数据处理、数据保存,都在回调函数中进行,能够在“同一时刻”采集各种运动参数,方便了参数的对比,而且安全性好。

  6 结束语

  应用多媒体定时器与PMAC 的双端口 RAM 技术,对在基于PMAC 的系统进行数据采集,定时高、采集时间间隔短,能够在“同一时刻”采集各种运动参数,方便了参数的对比,简化了数据采集过程,而且安全性好,是一种基于PMAC 系统的数据采集的有效方法。


  

参考文献:

[1]. PC  datasheet https://www.dzsc.com/datasheet/PC+_2043275.html.
[2]. PLC  datasheet https://www.dzsc.com/datasheet/PLC+_1248813.html.


版权与免责声明

凡本网注明“出处:维库电子市场网”的所有作品,版权均属于维库电子市场网,转载请必须注明维库电子市场网,https://www.dzsc.com,违反者本网将追究相关法律责任。

本网转载并注明自其它出处的作品,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。其他媒体、网站或个人从本网转载时,必须保留本网注明的作品出处,并自负版权等法律责任。

如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系,否则视为放弃相关权利。

广告
上传BOM文件: BOM文件
*公司名:
*联系人:
*手机号码:
QQ:
应用领域:

有效期:
OEM清单文件: OEM清单文件
*公司名:
*联系人:
*手机号码:
QQ:
有效期:

扫码下载APP,
一键连接广大的电子世界。

在线人工客服

买家服务:
卖家服务:

0571-85317607

客服在线时间周一至周五
9:00-17:30

关注官方微信号,
第一时间获取资讯。

建议反馈

联系人:

联系方式:

按住滑块,拖拽到最右边
>>
感谢您向阿库提出的宝贵意见,您的参与是维库提升服务的动力!意见一经采纳,将有感恩红包奉上哦!