熊翌竹,吳本濤,王春政
數(shù)控系統(tǒng)是數(shù)字控制系統(tǒng)的簡(jiǎn)稱[1],英文名稱為Numerical Control System,它是一種專用計(jì)算機(jī)系統(tǒng),配置有伺服驅(qū)動(dòng)裝置[2]。通常用來對(duì)機(jī)械設(shè)備進(jìn)行位置、角度等量的動(dòng)作控制[3]。
TwinCAT數(shù)控系統(tǒng)采用開放式CNC編程理念。它具有全模塊化的軟件體系結(jié)構(gòu)和實(shí)時(shí)的配置系統(tǒng),能夠兼容各種軟硬件平臺(tái)。提供了標(biāo)準(zhǔn)的通信協(xié)議組件,并支持各種高級(jí)編程語(yǔ)言。這使機(jī)械制造商和用戶可以方便地基于此平臺(tái)進(jìn)行二次開發(fā)出有個(gè)性的應(yīng)用軟件,以進(jìn)行行業(yè)區(qū)分。
本文涉及的研發(fā)項(xiàng)目便是機(jī)床數(shù)控系統(tǒng)二次開發(fā),主要側(cè)重高功率激光加工控制做智能化、專業(yè)化功能開發(fā)。本文基于TwinCAT平臺(tái)主要講述上位機(jī)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)。
TwinCAT(The Windows Control and Automation Technology),基于Windows的控制和自動(dòng)化技術(shù))[4],主要由PLC、NC、Windows應(yīng)用程序等各個(gè)軟件模塊組成,各個(gè)模塊配置有地址和端口。
在此框架上各個(gè)軟件模塊都是TwinCAT的一個(gè)獨(dú)立通訊節(jié)點(diǎn),相互之間通過基于ADS通訊協(xié)議的信息路由器進(jìn)行模塊間的數(shù)據(jù)和信息交互。
本項(xiàng)目中,激光數(shù)控系統(tǒng)HMI直接與PLC交互,通過PLC間接控制CNC,對(duì)實(shí)時(shí)性要求不高,主要體現(xiàn)人機(jī)交互和界面簡(jiǎn)潔可操作。主要需要實(shí)現(xiàn)CNC軸移動(dòng)、倍率控制、圖形顯示、工藝參數(shù)配置、事項(xiàng)信息顯示、設(shè)備運(yùn)行狀態(tài)監(jiān)視等功能,并同時(shí)考慮界面靈活配置,人員權(quán)限配置等功能。
TwinCAT已經(jīng)與微軟VSStudio無縫集成,對(duì)開發(fā)支持更加便捷和成熟,技術(shù)平臺(tái)上選用.NET平臺(tái),基于VS2015開發(fā)實(shí)現(xiàn)。本系統(tǒng)設(shè)計(jì)架構(gòu)圖如圖1所示。
圖1 系統(tǒng)架構(gòu)圖
其中ADS通訊層為TwinCAT框架中的路由層,可供TWinCAT框架中PLC、CNC實(shí)時(shí)系統(tǒng)、HMI等節(jié)點(diǎn)接入,各節(jié)點(diǎn)通過ADS通訊協(xié)議進(jìn)行傳輸。本系統(tǒng)也作為其中的一個(gè)節(jié)點(diǎn)依靠ADS動(dòng)態(tài)庫(kù)組件進(jìn)行接入,在.NET平臺(tái)上實(shí)現(xiàn)各種業(yè)務(wù)邏輯,與PLC和NC實(shí)時(shí)系統(tǒng)進(jìn)行交互。
通過TwinCAT ADS訪問PLC變量首先要跟地址建立連接。有地址和變量名兩種方式。其中地址方式是指通過GroupIndex和OffsetIndex組合的地址訪問PLC變量。GroupIndex一般用于區(qū)別寄存器類型,為常量,OffsetIndex為變量的偏移地址,即表示PLC變量的地址。變量名方式是指在ADS設(shè)備中每個(gè)變量都有一個(gè)句柄,本項(xiàng)目中與PLC變量的交互主要采用后者實(shí)現(xiàn)。
各功能模塊都需要通過ADS與PLC和NC實(shí)時(shí)系統(tǒng)進(jìn)行數(shù)據(jù)交互,只是有些模塊是下發(fā)設(shè)置數(shù)據(jù),有些則是召測(cè)顯示數(shù)據(jù)。添加對(duì)TwinCAT.Ads.dll模塊引用,建立TcAdsNcServer和TcAdsPlcServer對(duì)象,采用注冊(cè)事件的方式實(shí)現(xiàn)對(duì)兩種控制器狀態(tài)的監(jiān)測(cè)和操作模式識(shí)別,并對(duì)接收的消息進(jìn)行自定義處理。系統(tǒng)設(shè)計(jì)示意圖如圖2。
圖2 系統(tǒng)設(shè)計(jì)示意圖
部分消息注冊(cè)處理接口定義如下:
private void adsPlcServer_TcPlcStateChanged(TwinCAT.Ads.AdsStatestate);
private void adsNcServer_TcNcStateChanged(TwinCAT.Ads.AdsStatestate);
private void AdsClient_Error(object sender,string msg,Exception ex);
與PLC交互的收發(fā)函數(shù)接口定義如下:
private object GetPLCVar(string plcVariable-Name);
private bool SetPLCVar(string plcVariable-Name,object plcValue);
最終實(shí)現(xiàn)的系統(tǒng)主界面如圖3。
圖3 系統(tǒng)主界面
Beckhoff TwinCAT系統(tǒng)軟件可通過多PLC系統(tǒng)、NC軸控制系統(tǒng)、編程環(huán)境和操作站,將任何兼容PC“改造”成為一臺(tái)實(shí)時(shí)控制器。本文基于TwinCAT搭建的激光數(shù)控系統(tǒng),配置靈活,人機(jī)交互強(qiáng),經(jīng)過實(shí)際測(cè)試,可以很好地運(yùn)用于激光數(shù)控的工件加工操作。
[1]徐寧,楊秀云.數(shù)控系統(tǒng)的現(xiàn)狀及發(fā)展趨勢(shì)[J].機(jī)械設(shè)計(jì)與制造,2006(4):132-133.
[2]邢民強(qiáng).基于TwinCAT與C#混合編程的數(shù)控系統(tǒng)開發(fā)[J].機(jī)械工程與自動(dòng)化,2016(3):131-133.
[3]史小磊.基于BECKHOFF TwinCAT的開放式數(shù)控系統(tǒng)軟件開發(fā)[D].哈爾濱:哈爾濱工業(yè)大學(xué),2011.
[4]侯兆資.基于TwinCAT和C#的主減速器試車臺(tái)測(cè)控系統(tǒng)[J].儀表技術(shù)與傳感器,2016(5):61-63.