基于TwinCAT平台的多轴开放体系结构设计与实现*
2013-11-26陈良骥李慧莹
□ 陈良骥 □ 李慧莹
郑州航空工业管理学院 机电工程学院 郑州 450015
五轴数控技术是目前机械制造业比较重视的技术,它是以计算机作为控制核心,通过闭环电路系统控制5个伺服电机,适用于加工外形复杂的产品。随着复杂产品更新换代速度的提高,对五轴数控加工的柔性化也提出了更高的要求,而五轴数控机床在高速高精加工中发挥着不可替代的作用[1-4]。
然而,传统的数控体系具有封闭性,控制模式比较单一,这在一定程度上阻碍了数控技术向更高性能和智能化方向的发展,已经渐渐不能适应当前产品市场化、多元化的发展理念。目前许多国家都在研究和开发具有开放性的数控系统和技术,投入了大量的人力、物力资源,目的都是要尽快适应这一发展趋势,夺取高速高精加工制造业的控制权。
开放式数控系统一般采用分块式的体系结构,硬件结构和软件结构都有各自的通用平台,而且生产效率高,降低了生产成本,缩短了加工周期,还可以根据用户的需要进行各种软硬件的更换,其系统中的许多软件都是遵循国际标准的,可以根据需要进行软件的再次开发[5]。
开放式数控系统的硬件系统应该建立在一种标准的、通用的硬件基础之上,而软件系统则应该建立在模块化、多结构的软件基础之上。本文主要讨论了TwinCAT这一工控软件的特点、功能以及其在开发数控系统过程中的优越性。
1 TwinCAT平台简介
TwinCAT (The Windows Control and Automation Technology)是由德国倍福 (Beckhoff)公司开发的基于PC-Based技术的工业控制软件,该软件已广泛应用于电力、风能、水处理、自动化制造、纺织印染等行业。在上海世博会上,由上海大学研发的京剧表演机器人成为众多国内外观众瞩目的焦点,Beckhoff的TwinCAT被用作其自动化系统。在德国宝马汽车公司的喷涂车间,设有2条符合最新全球标准的生产线,总共用了55台基于TwinCAT软件的控制面板用于实现整个应用系统的可视化。TwinCAT软件的工作界面如图1所示。
▲图1 TwinCAT软件的主界面
该软件采用了标准的Windows NT 4.0操作系统,遵循IEC61131-3 PLC国际标准,支持5种常用编程语言,功能强大,操作方便。软件中自带有编程程序,用于完成PLC、主轴控制等任务。输入输出接口主要采用分布式结构,可以应用多种现场总线标准 (如Sercos总线、Lightbus总线)。利用OCX接口和VB、VC等编程语言来开发上层管理软件,也可以兼容其它的工业控制系统,在控制界面下可以实时显示加工流程、反馈信息、报错信息等,便于完善对生产的管理和监控。
TwinCAT可以对 PLC、PID、I/O、NC 轴位控制以及系统需要执行的专项任务等进行多任务的时间安排。每个任务都是独立运行,即使某一项任务出现问题,也不会影响其它任务的正常进行。TwinCAT特有的用户应用程序集成度很高,在程序控制、数据共享、算法仿真等方面发挥着重要的作用。TwinCAT是运行于Windows操作系统下的工业控制软件,可取代传统的PLC和NC/CNC控制器以及专用操作设备。采用VC++、VB等编程语言对某些应用软件和控制接口进行编程,提高系统的开放性[6,7]。
TwinCAT系统由实时服务器 (Realtime Server)、系统控制器(System Control)系统OCX接口、系统工具箱(System Toolbox)、PLC系统、CNC系统、输入输出系统(I/O System)、用户应用软件开发系统(User Appl.)、自动化设备规范接口(ADS-Interface)及自动化信息路由器(AMS Router)等组成[7],其结构分布图如图 2 所示。
▲图2 TwinCAT的系统结构
TwinCAT系统软件集成了工业控制系统中许多软件的优良特性,程序开发周期短,系统响应速度快,占用资源少并且实时性强。图3为硬件PLC和TwinCAT PLC执行1000条PLC命令所需时间的比较,可以看出基于工业PC机的PLC运算要比传统的硬件PLC节省许多时间,提高了效率。
2 多轴开放体系硬件结构设计
开放式数控系统一般都是基于计算机和通用操作系统来配置的,本文使用的是个人计算机和Windows XP操作系统,硬件部分选择的组件是由德国倍福公司生产的通信接口卡FC7501,TwinCAT软件可以利用该接口卡实现对驱动器和伺服电机进行控制。图4为课题组设计的理论结构框图。
基于硬件结构构建思路,课题组实现了硬件部分线路的连接,如图5所示。
3 多轴开放体系软件结构设计
本文主要是以TwinCAT软件和Windows操作系统为基础来进行开展的。通过利用动态链接库、专用数据接口函数实现与VC++的数据传递,可以节省许多时间,降低开发成本,提升系统的总体性能,为今后的生产加工实践和工程应用等方面做了基础性的工作。TwinCAT软件作为接口通信和数据传递的工具,用VC++创建一个人机控制界面窗口,包含输入输出、电机启停、执行插补运算等功能。其软件平台结构如图6所示。
TwinCAT软件提供了 ADS-DLL、ADS-OCX和ADS-OPC接口,用于创建HMI的链接。使用Visual C++开发HMI时,可以使用ADS-DLL方式。TcAdsDll提供和其它ADS设备通信的功能,通过TwinCAT路由器和C语言API函数实现混合编程。
▲图3 PLC运算时间比较
▲图4 “计算机+通信控制卡”的硬件结构组成
▲图5 硬件实物连接
▲图6 基于TwinCAT和Windows系统的软件结构
在Visual C++中进行链接和程序开发时所需要的文件:
TcAdsDll.dll—动态链接库;
TcAdsDll.lib—使用TcAdsDll的函数库;
TcAdsApi.h—声明ADS功能的头文件;
TcAdsDef.h—声明结构和常数的头文件;
具体的实现步骤如下:
(1)使用 VC++集成开发环境中的菜单选项“File→New”,并在项目选项卡中选择“MFC AppWizard(exe)”,输入目录名“Twincat”。
(2)在安装的TwinCAT软件的目录下直接找到TcAdsDef.h和TcAdsApi.h,把这两个文件复制放到VC++的工程目录下,然后将ADS API文件添加到命令菜单的 “Options” 里, 即通过 “Tools→Options→Directories”进行添加,如图7所示。在VC编制程序时一定要添加下面的两个头文件:
#include “TcAdsApi.h”
#include “TcAdsDef.h”
▲图7 添加头文件程序
▲图8 添加动态链接库
然后把TcAdsDll.lib库用到VC++项目中(即添加动态链接库),在VC++工程菜单里选择 “project→settings→link”,在“Object/libarary modules”的文本框中写入Tcadsdll.lib,然后点“OK”就可以添加进去。如图8所示。
(3)初始化控制端口:
Nport=AdsPortopen();
PAddr=&Addr;
nErr=AdsGetLocalAddress(pAddr);
if(nErr)
MessageBox(“Error:AdsGetLocalAddress”);
Paddr->port=801;//建立连接,这是固定的客户端口(801)
其中,801端口对应的是实时系统的ADS设备,是对TwinCAT平台下PLC模块的物理地址映射。
4 用户界面设计
基于以上设计思路,本文通过调用VC++中的MFC库函数设计了一个简易五轴伺服电机的控制界面,如图 9所示。TwinCAT工控软件本身也可以通过其内部的PLC模块对五轴的运动进行控制,但其没有良好的操作界面,并且进行程序修改也不方便。本文利用VC++这一编程语言的通用性和强大的面向对象设计的优点,同时TwinCAT也为其提供了比较全面的支持,可以将TwinCAT控制五轴运动的程序封装在VC++所设计用户窗口之内,不仅界面简洁美观,减少了编程的工作量,而且也便于添加或删除一些组件,使其灵活性和开放性更强。
在控制界面中,可以对各根轴输入相同或不同的转速,点击“启动”按钮,即可启动电机,每根轴可根据输入的转速值来进行转速的调整。
▲图9 电机转动的控制界面
5 结束语
本文通过对TwinCAT工控平台的深入分析,提出将其用于数控系统开放体系结构设计中的思路,在软硬件结构设计过程中利用伺服控制卡提供的标准接口函数的调用,实现了既定的设计思路。
[1] 尹家凡,王孙安.基于PC的开放式数控系统的研究[J].机床与液压,2003(2):88-89.
[2] 周祖德,魏仁选,陈幼平.开放式控制系统的现状、趋势及对策[J].小型微型计算机系统,1999,20(2):81-87.
[3] Jean V Owen.Opening up Controls Architecture [J].Manufacturing Engineering,1995(11):53-60.
[4] Masahiko Mori,Kazuo Yamazaki,Makoto Fujishima,et al.A Study on Development of an Open Servo System for Intelligent Control of a CNC Machine Tool[J].Annals of the Col˙ge Internation Pour La Recherche en Productique,2001(1):247~250.
[5] 盛定高.基于PC开放式数控系统的特征及优势[J].机床电器, 2002(5).
[6] 洑平,周建华,陈林,等.基于TwinCAT的纯PC型数控系统的开发[J].机械制造与自动化,2011(1).
[7] 德国倍福电气有限公司.TwinCAT PLC编程手册[Z].2005.