□ 陳良驥 □ 李慧瑩
鄭州航空工業(yè)管理學(xué)院 機(jī)電工程學(xué)院 鄭州 450015
五軸數(shù)控技術(shù)是目前機(jī)械制造業(yè)比較重視的技術(shù),它是以計(jì)算機(jī)作為控制核心,通過(guò)閉環(huán)電路系統(tǒng)控制5個(gè)伺服電機(jī),適用于加工外形復(fù)雜的產(chǎn)品。隨著復(fù)雜產(chǎn)品更新?lián)Q代速度的提高,對(duì)五軸數(shù)控加工的柔性化也提出了更高的要求,而五軸數(shù)控機(jī)床在高速高精加工中發(fā)揮著不可替代的作用[1-4]。
然而,傳統(tǒng)的數(shù)控體系具有封閉性,控制模式比較單一,這在一定程度上阻礙了數(shù)控技術(shù)向更高性能和智能化方向的發(fā)展,已經(jīng)漸漸不能適應(yīng)當(dāng)前產(chǎn)品市場(chǎng)化、多元化的發(fā)展理念。目前許多國(guó)家都在研究和開(kāi)發(fā)具有開(kāi)放性的數(shù)控系統(tǒng)和技術(shù),投入了大量的人力、物力資源,目的都是要盡快適應(yīng)這一發(fā)展趨勢(shì),奪取高速高精加工制造業(yè)的控制權(quán)。
開(kāi)放式數(shù)控系統(tǒng)一般采用分塊式的體系結(jié)構(gòu),硬件結(jié)構(gòu)和軟件結(jié)構(gòu)都有各自的通用平臺(tái),而且生產(chǎn)效率高,降低了生產(chǎn)成本,縮短了加工周期,還可以根據(jù)用戶的需要進(jìn)行各種軟硬件的更換,其系統(tǒng)中的許多軟件都是遵循國(guó)際標(biāo)準(zhǔn)的,可以根據(jù)需要進(jìn)行軟件的再次開(kāi)發(fā)[5]。
開(kāi)放式數(shù)控系統(tǒng)的硬件系統(tǒng)應(yīng)該建立在一種標(biāo)準(zhǔn)的、通用的硬件基礎(chǔ)之上,而軟件系統(tǒng)則應(yīng)該建立在模塊化、多結(jié)構(gòu)的軟件基礎(chǔ)之上。本文主要討論了TwinCAT這一工控軟件的特點(diǎn)、功能以及其在開(kāi)發(fā)數(shù)控系統(tǒng)過(guò)程中的優(yōu)越性。
TwinCAT (The Windows Control and Automation Technology)是由德國(guó)倍福 (Beckhoff)公司開(kāi)發(fā)的基于PC-Based技術(shù)的工業(yè)控制軟件,該軟件已廣泛應(yīng)用于電力、風(fēng)能、水處理、自動(dòng)化制造、紡織印染等行業(yè)。在上海世博會(huì)上,由上海大學(xué)研發(fā)的京劇表演機(jī)器人成為眾多國(guó)內(nèi)外觀眾矚目的焦點(diǎn),Beckhoff的TwinCAT被用作其自動(dòng)化系統(tǒng)。在德國(guó)寶馬汽車(chē)公司的噴涂車(chē)間,設(shè)有2條符合最新全球標(biāo)準(zhǔn)的生產(chǎn)線,總共用了55臺(tái)基于TwinCAT軟件的控制面板用于實(shí)現(xiàn)整個(gè)應(yīng)用系統(tǒng)的可視化。TwinCAT軟件的工作界面如圖1所示。
▲圖1 TwinCAT軟件的主界面
該軟件采用了標(biāo)準(zhǔn)的Windows NT 4.0操作系統(tǒng),遵循IEC61131-3 PLC國(guó)際標(biāo)準(zhǔn),支持5種常用編程語(yǔ)言,功能強(qiáng)大,操作方便。軟件中自帶有編程程序,用于完成PLC、主軸控制等任務(wù)。輸入輸出接口主要采用分布式結(jié)構(gòu),可以應(yīng)用多種現(xiàn)場(chǎng)總線標(biāo)準(zhǔn) (如Sercos總線、Lightbus總線)。利用OCX接口和VB、VC等編程語(yǔ)言來(lái)開(kāi)發(fā)上層管理軟件,也可以兼容其它的工業(yè)控制系統(tǒng),在控制界面下可以實(shí)時(shí)顯示加工流程、反饋信息、報(bào)錯(cuò)信息等,便于完善對(duì)生產(chǎn)的管理和監(jiān)控。
TwinCAT可以對(duì) PLC、PID、I/O、NC 軸位控制以及系統(tǒng)需要執(zhí)行的專(zhuān)項(xiàng)任務(wù)等進(jìn)行多任務(wù)的時(shí)間安排。每個(gè)任務(wù)都是獨(dú)立運(yùn)行,即使某一項(xiàng)任務(wù)出現(xiàn)問(wèn)題,也不會(huì)影響其它任務(wù)的正常進(jìn)行。TwinCAT特有的用戶應(yīng)用程序集成度很高,在程序控制、數(shù)據(jù)共享、算法仿真等方面發(fā)揮著重要的作用。TwinCAT是運(yùn)行于Windows操作系統(tǒng)下的工業(yè)控制軟件,可取代傳統(tǒng)的PLC和NC/CNC控制器以及專(zhuān)用操作設(shè)備。采用VC++、VB等編程語(yǔ)言對(duì)某些應(yīng)用軟件和控制接口進(jìn)行編程,提高系統(tǒng)的開(kāi)放性[6,7]。
TwinCAT系統(tǒng)由實(shí)時(shí)服務(wù)器 (Realtime Server)、系統(tǒng)控制器(System Control)系統(tǒng)OCX接口、系統(tǒng)工具箱(System Toolbox)、PLC系統(tǒng)、CNC系統(tǒng)、輸入輸出系統(tǒng)(I/O System)、用戶應(yīng)用軟件開(kāi)發(fā)系統(tǒng)(User Appl.)、自動(dòng)化設(shè)備規(guī)范接口(ADS-Interface)及自動(dòng)化信息路由器(AMS Router)等組成[7],其結(jié)構(gòu)分布圖如圖 2 所示。
▲圖2 TwinCAT的系統(tǒng)結(jié)構(gòu)
TwinCAT系統(tǒng)軟件集成了工業(yè)控制系統(tǒng)中許多軟件的優(yōu)良特性,程序開(kāi)發(fā)周期短,系統(tǒng)響應(yīng)速度快,占用資源少并且實(shí)時(shí)性強(qiáng)。圖3為硬件PLC和TwinCAT PLC執(zhí)行1000條PLC命令所需時(shí)間的比較,可以看出基于工業(yè)PC機(jī)的PLC運(yùn)算要比傳統(tǒng)的硬件PLC節(jié)省許多時(shí)間,提高了效率。
開(kāi)放式數(shù)控系統(tǒng)一般都是基于計(jì)算機(jī)和通用操作系統(tǒng)來(lái)配置的,本文使用的是個(gè)人計(jì)算機(jī)和Windows XP操作系統(tǒng),硬件部分選擇的組件是由德國(guó)倍福公司生產(chǎn)的通信接口卡FC7501,TwinCAT軟件可以利用該接口卡實(shí)現(xiàn)對(duì)驅(qū)動(dòng)器和伺服電機(jī)進(jìn)行控制。圖4為課題組設(shè)計(jì)的理論結(jié)構(gòu)框圖。
基于硬件結(jié)構(gòu)構(gòu)建思路,課題組實(shí)現(xiàn)了硬件部分線路的連接,如圖5所示。
本文主要是以TwinCAT軟件和Windows操作系統(tǒng)為基礎(chǔ)來(lái)進(jìn)行開(kāi)展的。通過(guò)利用動(dòng)態(tài)鏈接庫(kù)、專(zhuān)用數(shù)據(jù)接口函數(shù)實(shí)現(xiàn)與VC++的數(shù)據(jù)傳遞,可以節(jié)省許多時(shí)間,降低開(kāi)發(fā)成本,提升系統(tǒng)的總體性能,為今后的生產(chǎn)加工實(shí)踐和工程應(yīng)用等方面做了基礎(chǔ)性的工作。TwinCAT軟件作為接口通信和數(shù)據(jù)傳遞的工具,用VC++創(chuàng)建一個(gè)人機(jī)控制界面窗口,包含輸入輸出、電機(jī)啟停、執(zhí)行插補(bǔ)運(yùn)算等功能。其軟件平臺(tái)結(jié)構(gòu)如圖6所示。
TwinCAT軟件提供了 ADS-DLL、ADS-OCX和ADS-OPC接口,用于創(chuàng)建HMI的鏈接。使用Visual C++開(kāi)發(fā)HMI時(shí),可以使用ADS-DLL方式。TcAdsDll提供和其它ADS設(shè)備通信的功能,通過(guò)TwinCAT路由器和C語(yǔ)言API函數(shù)實(shí)現(xiàn)混合編程。
▲圖3 PLC運(yùn)算時(shí)間比較
▲圖4 “計(jì)算機(jī)+通信控制卡”的硬件結(jié)構(gòu)組成
▲圖5 硬件實(shí)物連接
▲圖6 基于TwinCAT和Windows系統(tǒng)的軟件結(jié)構(gòu)
在Visual C++中進(jìn)行鏈接和程序開(kāi)發(fā)時(shí)所需要的文件:
TcAdsDll.dll—?jiǎng)討B(tài)鏈接庫(kù);
TcAdsDll.lib—使用TcAdsDll的函數(shù)庫(kù);
TcAdsApi.h—聲明ADS功能的頭文件;
TcAdsDef.h—聲明結(jié)構(gòu)和常數(shù)的頭文件;
具體的實(shí)現(xiàn)步驟如下:
(1)使用 VC++集成開(kāi)發(fā)環(huán)境中的菜單選項(xiàng)“File→New”,并在項(xiàng)目選項(xiàng)卡中選擇“MFC AppWizard(exe)”,輸入目錄名“Twincat”。
(2)在安裝的TwinCAT軟件的目錄下直接找到TcAdsDef.h和TcAdsApi.h,把這兩個(gè)文件復(fù)制放到VC++的工程目錄下,然后將ADS API文件添加到命令菜單的 “Options” 里, 即通過(guò) “Tools→Options→Directories”進(jìn)行添加,如圖7所示。在VC編制程序時(shí)一定要添加下面的兩個(gè)頭文件:
#include “TcAdsApi.h”
#include “TcAdsDef.h”
▲圖7 添加頭文件程序
▲圖8 添加動(dòng)態(tài)鏈接庫(kù)
然后把TcAdsDll.lib庫(kù)用到VC++項(xiàng)目中(即添加動(dòng)態(tài)鏈接庫(kù)),在VC++工程菜單里選擇 “project→settings→link”,在“Object/libarary modules”的文本框中寫(xiě)入Tcadsdll.lib,然后點(diǎn)“OK”就可以添加進(jìn)去。如圖8所示。
(3)初始化控制端口:
Nport=AdsPortopen();
PAddr=&Addr;
nErr=AdsGetLocalAddress(pAddr);
if(nErr)
MessageBox(“Error:AdsGetLocalAddress”);
Paddr->port=801;//建立連接,這是固定的客戶端口(801)
其中,801端口對(duì)應(yīng)的是實(shí)時(shí)系統(tǒng)的ADS設(shè)備,是對(duì)TwinCAT平臺(tái)下PLC模塊的物理地址映射。
基于以上設(shè)計(jì)思路,本文通過(guò)調(diào)用VC++中的MFC庫(kù)函數(shù)設(shè)計(jì)了一個(gè)簡(jiǎn)易五軸伺服電機(jī)的控制界面,如圖 9所示。TwinCAT工控軟件本身也可以通過(guò)其內(nèi)部的PLC模塊對(duì)五軸的運(yùn)動(dòng)進(jìn)行控制,但其沒(méi)有良好的操作界面,并且進(jìn)行程序修改也不方便。本文利用VC++這一編程語(yǔ)言的通用性和強(qiáng)大的面向?qū)ο笤O(shè)計(jì)的優(yōu)點(diǎn),同時(shí)TwinCAT也為其提供了比較全面的支持,可以將TwinCAT控制五軸運(yùn)動(dòng)的程序封裝在VC++所設(shè)計(jì)用戶窗口之內(nèi),不僅界面簡(jiǎn)潔美觀,減少了編程的工作量,而且也便于添加或刪除一些組件,使其靈活性和開(kāi)放性更強(qiáng)。
在控制界面中,可以對(duì)各根軸輸入相同或不同的轉(zhuǎn)速,點(diǎn)擊“啟動(dòng)”按鈕,即可啟動(dòng)電機(jī),每根軸可根據(jù)輸入的轉(zhuǎn)速值來(lái)進(jìn)行轉(zhuǎn)速的調(diào)整。
▲圖9 電機(jī)轉(zhuǎn)動(dòng)的控制界面
本文通過(guò)對(duì)TwinCAT工控平臺(tái)的深入分析,提出將其用于數(shù)控系統(tǒng)開(kāi)放體系結(jié)構(gòu)設(shè)計(jì)中的思路,在軟硬件結(jié)構(gòu)設(shè)計(jì)過(guò)程中利用伺服控制卡提供的標(biāo)準(zhǔn)接口函數(shù)的調(diào)用,實(shí)現(xiàn)了既定的設(shè)計(jì)思路。
[1] 尹家凡,王孫安.基于PC的開(kāi)放式數(shù)控系統(tǒng)的研究[J].機(jī)床與液壓,2003(2):88-89.
[2] 周祖德,魏仁選,陳幼平.開(kāi)放式控制系統(tǒng)的現(xiàn)狀、趨勢(shì)及對(duì)策[J].小型微型計(jì)算機(jī)系統(tǒng),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開(kāi)放式數(shù)控系統(tǒng)的特征及優(yōu)勢(shì)[J].機(jī)床電器, 2002(5).
[6] 洑平,周建華,陳林,等.基于TwinCAT的純PC型數(shù)控系統(tǒng)的開(kāi)發(fā)[J].機(jī)械制造與自動(dòng)化,2011(1).
[7] 德國(guó)倍福電氣有限公司.TwinCAT PLC編程手冊(cè)[Z].2005.