□ 陳良驥 □ 李慧瑩
鄭州航空工業管理學院 機電工程學院 鄭州 450015
五軸數控技術是目前機械制造業比較重視的技術,它是以計算機作為控制核心,通過閉環電路系統控制5個伺服電機,適用于加工外形復雜的產品。隨著復雜產品更新換代速度的提高,對五軸數控加工的柔性化也提出了更高的要求,而五軸數控機床在高速高精加工中發揮著不可替代的作用[1-4]。
然而,傳統的數控體系具有封閉性,控制模式比較單一,這在一定程度上阻礙了數控技術向更高性能和智能化方向的發展,已經漸漸不能適應當前產品市場化、多元化的發展理念。目前許多國家都在研究和開發具有開放性的數控系統和技術,投入了大量的人力、物力資源,目的都是要盡快適應這一發展趨勢,奪取高速高精加工制造業的控制權。
開放式數控系統一般采用分塊式的體系結構,硬件結構和軟件結構都有各自的通用平臺,而且生產效率高,降低了生產成本,縮短了加工周期,還可以根據用戶的需要進行各種軟硬件的更換,其系統中的許多軟件都是遵循國際標準的,可以根據需要進行軟件的再次開發[5]。
開放式數控系統的硬件系統應該建立在一種標準的、通用的硬件基礎之上,而軟件系統則應該建立在模塊化、多結構的軟件基礎之上。本文主要討論了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節省許多時間,提高了效率。
開放式數控系統一般都是基于計算機和通用操作系統來配置的,本文使用的是個人計算機和Windows XP操作系統,硬件部分選擇的組件是由德國倍福公司生產的通信接口卡FC7501,TwinCAT軟件可以利用該接口卡實現對驅動器和伺服電機進行控制。圖4為課題組設計的理論結構框圖。
基于硬件結構構建思路,課題組實現了硬件部分線路的連接,如圖5所示。
本文主要是以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模塊的物理地址映射。
基于以上設計思路,本文通過調用VC++中的MFC庫函數設計了一個簡易五軸伺服電機的控制界面,如圖 9所示。TwinCAT工控軟件本身也可以通過其內部的PLC模塊對五軸的運動進行控制,但其沒有良好的操作界面,并且進行程序修改也不方便。本文利用VC++這一編程語言的通用性和強大的面向對象設計的優點,同時TwinCAT也為其提供了比較全面的支持,可以將TwinCAT控制五軸運動的程序封裝在VC++所設計用戶窗口之內,不僅界面簡潔美觀,減少了編程的工作量,而且也便于添加或刪除一些組件,使其靈活性和開放性更強。
在控制界面中,可以對各根軸輸入相同或不同的轉速,點擊“啟動”按鈕,即可啟動電機,每根軸可根據輸入的轉速值來進行轉速的調整。

▲圖9 電機轉動的控制界面
本文通過對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.