APP下载

MECHATROLINK-III总线型机床模拟器的设计与实现*

2013-09-12盛燎原

组合机床与自动化加工技术 2013年8期
关键词:板卡数控系统模拟器

盛燎原,何 方

(1.中国科学院 研究生院,北京 100049;2.中国科学院沈阳计算技术研究所,沈阳 110168;3.沈阳高精数控技术有限公司,沈阳 110168)

0 引言

随着工业现场环境和对象本身日益复杂,数控系统已从简单的运动轨迹控制器转变成贯穿数字化制造全过程的系统级平台[1]。为了满足工业领域对高速高精的现实需求,基于以太网的现场总线技术已经得到广泛的应用。其中MECHATROLINK-III就是可以用于运动控制的现场总线技术。

现在对于MECHATROLINK-III总线型数控系统的测试一般采用伺服模拟器加开关量手动输入输出的方式,针对数控装置的IO点采用手动的测试方法。这种传统测试方法不能够反映出机床的电气特性。为了克服现有测试的缺点,与数控机床形成闭环测试,模拟数控系统连接真实机床的状态,本文提出了机床模拟器的方法。

该机床模拟器具有以下特点:

(1)支持MECHATROLINK-III通信协议;

(2)实现对伺服系统和机床IO电气系统的模拟;

(3)实现一个测试平台对多个伺服系统的监测显示;

(4)对通信中的错误进行检测并进行相应处理。

1 MECHATROLINK-III协议分析

MECHATROLINK-III是一种第三代工业以太网总线,通过一台控制器来分开控制多个从属装置的现场网络,可实现实时、准确地接收和发送用于控制的位置数据、速度数据、输入输出状态等信息,完成灵活、高精度的运动控制的应用[2]。MECHA-TROLINK-III的传输速率为100Mbps,最小传输周期为31.25us,最多可以连接62个从站。站间距离为0.2m到100m,无论系统的规模大小均可对应而且连接方式灵活可以采用级联或者星形。

MECHATROLINK-III网络的基本协议栈相当于OSI(Open System Interconnection)基本模型中的一二七层[3]。对应关系如表1所示。

表1OSI与MECHATROLINK-III对应表

物理层通过物理介质实现各个节点间比特流的传输,使用IEEE802.3u标准。数据链路层利用物理层提供的服务进行主站和从站之间的数据传输,提供非连接型的服务执行传输周期内重新发送控制和信息通信的流程控制。该层由介质访问控制子层(MAC)和逻辑链路控制子层(LLC)两个子层组成。MAC功能由专用通信ASIC来实现,LLC的功能由软件来实现。应用层提供主站与从站之间的通信和控制相关的服务。

2 系统组成及工作过程

本文提出的机床模拟器包括硬件板卡和机床模拟器软件两部分。硬件板卡采用工业CPU卡加模拟板卡的架构设计。其中,工业CPU作为整个系统的模拟运算平台;模拟板卡由MECHATROLINK-III通信接口模块、SSB接口模块、FPGA模块和PCI接口模块组成。模拟板卡中各个模块的功能如下:MECHATROLINK-III通信接口模块处理 MECHATRLINK-III通信,SSB接口模块与数控系统交换机床电气信息,FPGA模块对通信模块和SSB接口模块进行控制,PCI接口模块用来桥接各个模块。软件运行在设计的硬件系统上,与硬件系统相互配合完成伺服系统和机床IO电气的模拟。

数控装置通过MECHATROLINK-III总线传输伺服命令同时通过IO盒传输机床电气IO信号。机床模拟与数控装置的连接如图1所示。系统的工作过程如下:数控装置中的数控软件按照 MECHATROLINK-III协议格式发出伺服命令,通过总线发送到机床模拟器硬件板卡;机床模拟器软件对命令进行解析并模拟执行生成响应,再按照总线协议规范将生成的命令响应返回给数控装置。IO的电器特性模拟过程是数控装置通过SSB远程IO盒收发来自机床模拟器的离散电器信号,机床模拟器同样通过一个SSB远程IO盒作为同数控装置的离散电器接口。模拟器软件通过对机床外部信号的模拟和响应实现同数控装置的信号交互。机床的的伺服状态和模拟IO电气状态可通过人机接口界面进行显示。

图1 模拟系统与数控装置连接图

3 机床模拟器硬件设计与实现

在硬件设计中工业CPU卡采用工业用CPU板卡,所以硬件的设计与实现主要完成模拟板卡的设计与实现。

3.1 电路设计

模拟板卡硬件电路由MECHATROLINK-III通信接口、FPGA模块、PCI接口电路和SSB接口电路组成。MECHATROLINK-III通信接口电路主要完成MECHATROLINK-III通信的物理层和数据链路层。物理层采用国家半导体公司的DP83849,该芯片为单端口以太网收发芯片,以实现以太网接口;数据链路层采用安川电机的MECHATROLINK-III协议处理芯片JL101,该芯片通过MII(Medium Independent Interface,媒体独立接口)同DP83849通信。为了增强抗干扰能力,在外部电路中采用隔离变压器的隔离电路[4-5]。通信接口功能框图如图2所示。

图2MECHATROLINK-III通信电路

FPGA模块以FPGA芯片为核心,采用Altera公司的Cyclone系列芯片EP1C12Q240。FPGA芯片在整个系统中的作用主要是完成对通信接口和SSB接口电路的控制。SSB接口电路采用RS422驱动电路,完成与IO盒的通信。PCI接口电路采用PLX公司的PCI9052接口芯片,该芯片可以与多种局部总线相连接[6]。

3.2 逻辑设计

FPGA逻辑设计采用VHDL语言编程实现,使用Quartus II软件进行编译仿真和综合适配后将生成的配置文件下载到FPGA中实现相应的功能[7]。FPGA逻辑设计采用自上而下的模块化设计方式,如图3所示,FPGA内部包括输入寄存器组模块、输出寄存器组模块、SSB电路控制模块、时序控制模块和总线接口模块,模块之间相互关联并被顶层文件调用。控制总线接口模块实现FPGA与外部的通信和数据连接。时序控制模块控制FPGA内部时序逻辑和时钟频率。输入寄存器组模块和输出寄存器组模块完成对MECHATROLINK-III通信模块中 JL101的控制,可以实现复位、中断和状态等的控制。SSB电路控制模块完成对SSB接口电路的控制功能,周期性的采集和发送机床IO电气信号。

图3 FPGA内部模块图

4 机床模拟器软件设计与实现

软件的设计开发环境采用RTLinux系统,该系统在硬件板卡上搭建完成,程序编写使用C语言。软件的组成包括针对硬件板卡的专用驱动程序、实现MECHATROLINK-III协议的协议软件、模拟伺服和机床电气信号的机床模拟软件以及用于信息显示的用户界面。

4.1 驱动程序设计

专用驱动程序主要完成PCI设备的注册、设备地址映射、注册中断和中断服务,使系统能够使用PCI总线连接工业CPU和通信ASIC。驱动程序的实现采用模块化编程方式,具体包括初始化设备模块、设备打开模块、数据读写和控制模块、中断处理模块、设备释放模块、设备卸载模块[8]。驱动程序完整的工作流程如图4所示。

图4 PCI驱动工作流程

4.2 协议软件实现

通信协议软件主要完成MECHATROLINK-III通信协议相关的处理,包括与主站建立连接,按照主站的要求进行通信等。

协议软件的处理过程如图5所示。在初始化的时候捕获ASIC的状态,检查专用芯片是否准备就绪,然后采用多次读写的方式来检测通用SRAM是否可用。初始化设置主要完成站地址设置和通信参数的设置。在初始化设置过程中,把专用芯片配置成多地址从站方式,即一个从站拥有多个地址,从而可以模拟多个伺服电机,以及实现对不同从站的监控。通信模式分为周期通信和事件驱动通信,根据主站的设置进行选择。在与数控系统建立连接后,把从数控系统接收的命令传给模拟软件,模拟软件对该命令进行处理后再经过协议软件返回给数控系统。在初始化和通信阶段可以对模式设置错误、用户参数设置错误等进行检测,可检测的部分错误返回码如表2所示。

图5 协议处理过程

表2 错误类型及返回码

4.3 模拟软件实现

模拟软件主要是完成伺服系统和机床电气的模拟。根据其功能特点模拟软件主要包括伺服模拟和机床电气模拟两部分。为了完成伺服的模拟实现了完整的伺服命令集,在接收到数控软件发送来的伺服命令后判断命令的类型,然后模拟执行相应的命令,执行完成之后按照命令格式生成响应。机床电气模拟主要通过机床离散信号发生器来实现,在接收到机床电气信号后,根据机床电气执行序列由机床离散信号发生器生成相应的开关量等信息。

为了完成界面与模拟软件的数据交换通过采用mbuff_alloc开辟一块共享内存,与界面交互的数据结构定义如下:

其中stno是伺服电机编号,rcv是接收的数据,snd是发送的数据,servo_status是伺服电机的状态,speed是速度信息,error是错误信息,io_status是IO状态。

4.4 人机界面

显示界面采用基于Linux Redhat9.0平台的开发环境,选择Trolltech公司的Qt GUI类库作为API应用程序接口,主要包括两个功能模块:主界面和图形绘制界面。主界面可以分为两组可以支持最多同时显示16个机床模拟器的基本信息,包括状态参数、实际反馈值以及速度值;按键触发事件主要采用Qt里的Signal和Slot通信机制完成。图形绘制界面通过在指定周期范围内采集特殊点并利用界面显示的状态参数来绘制图形。刷新点的坐标是利用Qt里的定时器QTimer来定时确定的;图形渲染处理主要应用QOpengl GUI开发包,其内置了丰富的图形渲染API接口[9-10]。

5 总结

通过对MECHATROLINK-III通信协议的研究和前人工作的总结借鉴,本文设计并实现了一个符合MECHATROLINK-III通信协议的机床模拟器。在数控系统的实际使用中,该模拟器可以避免批量化测试数控机床带来的不便和采用伺服模拟器加开关量手动输入输出的方式的缺点。

[1]徐秀敏,何方,等.MECHATROLINK-III总线I/O从站设计与实现[J].组合机床与自动化加工技术,2011(2):66-69,74.

[2]陈艳,何方.基于MECHATROLINK-III总线的伺服模拟器的设计与实现[J].组合机床与自动化加工技术,2012(9):72-75.

[3]YASKAWA Documents[Z].MECHATROLINK-III Protocol User’s Manual 2008.

[4]Xiumin Xu,Fang He,etc.Design and Implementation of MECHATROLINK-III Bus Slave Station Based on SOPC[C].The 2010 International Conference on Computational and information Science(ICCIS2010).2010,12.

[5]何方,徐秀敏,等.基于FPGA的M-III智能从站接口卡的设计与实现[J].组合机床与自动化加工技术,2011(12):41 -43,48.

[6]周润景,刘梦男,等.Cadence高速电路板设计与仿真:原理图与PCB设计(第4版)[M].北京:电子工业出版社,2011.

[7]EDA先锋工作室.Altera FPGA/CPLD设计(基础篇)[M].北京:人民邮电出版社,2005.

[8]Jonathan Corbet,等著,魏永明,等译.LINUX设备驱动程序[M].北京:中国电力出版社,2011.

[9]成洁,卢紫毅.Linux窗口程序设计-Qt4精彩实例分析[M].北京:清华大学出版社,2008.

[10]Jasmin Blanchette,Mark Summerfield著,闫峰欣,曾泉人等译.C++GUI Qt4编程(第二版)[M].北京:电子工业出版社,2011.

猜你喜欢

板卡数控系统模拟器
MACH2系统板卡程序下装平台的研制
了不起的安检模拟器
盲盒模拟器
划船模拟器
车载控制器CVRE板卡显红故障分析及处理
基于FANUC 32i A数控系统的外部测量设计
西门子840D sl数控系统在SC125大型车铣镗床技术改造中的应用
基于FANUC Oi mate TD数控系统的手动功能开发
数控系统中GUI软件平台设计和实现
基于组态王软件和泓格PIO-D64 板卡的流水灯控制