盛燎原,何 方
(1.中國科學(xué)院 研究生院,北京 100049;2.中國科學(xué)院沈陽計算技術(shù)研究所,沈陽 110168;3.沈陽高精數(shù)控技術(shù)有限公司,沈陽 110168)
隨著工業(yè)現(xiàn)場環(huán)境和對象本身日益復(fù)雜,數(shù)控系統(tǒng)已從簡單的運動軌跡控制器轉(zhuǎn)變成貫穿數(shù)字化制造全過程的系統(tǒng)級平臺[1]。為了滿足工業(yè)領(lǐng)域?qū)Ω咚俑呔默F(xiàn)實需求,基于以太網(wǎng)的現(xiàn)場總線技術(shù)已經(jīng)得到廣泛的應(yīng)用。其中MECHATROLINK-III就是可以用于運動控制的現(xiàn)場總線技術(shù)。
現(xiàn)在對于MECHATROLINK-III總線型數(shù)控系統(tǒng)的測試一般采用伺服模擬器加開關(guān)量手動輸入輸出的方式,針對數(shù)控裝置的IO點采用手動的測試方法。這種傳統(tǒng)測試方法不能夠反映出機床的電氣特性。為了克服現(xiàn)有測試的缺點,與數(shù)控機床形成閉環(huán)測試,模擬數(shù)控系統(tǒng)連接真實機床的狀態(tài),本文提出了機床模擬器的方法。
該機床模擬器具有以下特點:
(1)支持MECHATROLINK-III通信協(xié)議;
(2)實現(xiàn)對伺服系統(tǒng)和機床IO電氣系統(tǒng)的模擬;
(3)實現(xiàn)一個測試平臺對多個伺服系統(tǒng)的監(jiān)測顯示;
(4)對通信中的錯誤進行檢測并進行相應(yīng)處理。
MECHATROLINK-III是一種第三代工業(yè)以太網(wǎng)總線,通過一臺控制器來分開控制多個從屬裝置的現(xiàn)場網(wǎng)絡(luò),可實現(xiàn)實時、準(zhǔn)確地接收和發(fā)送用于控制的位置數(shù)據(jù)、速度數(shù)據(jù)、輸入輸出狀態(tài)等信息,完成靈活、高精度的運動控制的應(yīng)用[2]。MECHA-TROLINK-III的傳輸速率為100Mbps,最小傳輸周期為31.25us,最多可以連接62個從站。站間距離為0.2m到100m,無論系統(tǒng)的規(guī)模大小均可對應(yīng)而且連接方式靈活可以采用級聯(lián)或者星形。
MECHATROLINK-III網(wǎng)絡(luò)的基本協(xié)議棧相當(dāng)于OSI(Open System Interconnection)基本模型中的一二七層[3]。對應(yīng)關(guān)系如表1所示。
表1OSI與MECHATROLINK-III對應(yīng)表
物理層通過物理介質(zhì)實現(xiàn)各個節(jié)點間比特流的傳輸,使用IEEE802.3u標(biāo)準(zhǔn)。數(shù)據(jù)鏈路層利用物理層提供的服務(wù)進行主站和從站之間的數(shù)據(jù)傳輸,提供非連接型的服務(wù)執(zhí)行傳輸周期內(nèi)重新發(fā)送控制和信息通信的流程控制。該層由介質(zhì)訪問控制子層(MAC)和邏輯鏈路控制子層(LLC)兩個子層組成。MAC功能由專用通信ASIC來實現(xiàn),LLC的功能由軟件來實現(xiàn)。應(yīng)用層提供主站與從站之間的通信和控制相關(guān)的服務(wù)。
本文提出的機床模擬器包括硬件板卡和機床模擬器軟件兩部分。硬件板卡采用工業(yè)CPU卡加模擬板卡的架構(gòu)設(shè)計。其中,工業(yè)CPU作為整個系統(tǒng)的模擬運算平臺;模擬板卡由MECHATROLINK-III通信接口模塊、SSB接口模塊、FPGA模塊和PCI接口模塊組成。模擬板卡中各個模塊的功能如下:MECHATROLINK-III通信接口模塊處理 MECHATRLINK-III通信,SSB接口模塊與數(shù)控系統(tǒng)交換機床電氣信息,F(xiàn)PGA模塊對通信模塊和SSB接口模塊進行控制,PCI接口模塊用來橋接各個模塊。軟件運行在設(shè)計的硬件系統(tǒng)上,與硬件系統(tǒng)相互配合完成伺服系統(tǒng)和機床IO電氣的模擬。
數(shù)控裝置通過MECHATROLINK-III總線傳輸伺服命令同時通過IO盒傳輸機床電氣IO信號。機床模擬與數(shù)控裝置的連接如圖1所示。系統(tǒng)的工作過程如下:數(shù)控裝置中的數(shù)控軟件按照 MECHATROLINK-III協(xié)議格式發(fā)出伺服命令,通過總線發(fā)送到機床模擬器硬件板卡;機床模擬器軟件對命令進行解析并模擬執(zhí)行生成響應(yīng),再按照總線協(xié)議規(guī)范將生成的命令響應(yīng)返回給數(shù)控裝置。IO的電器特性模擬過程是數(shù)控裝置通過SSB遠程IO盒收發(fā)來自機床模擬器的離散電器信號,機床模擬器同樣通過一個SSB遠程IO盒作為同數(shù)控裝置的離散電器接口。模擬器軟件通過對機床外部信號的模擬和響應(yīng)實現(xiàn)同數(shù)控裝置的信號交互。機床的的伺服狀態(tài)和模擬IO電氣狀態(tài)可通過人機接口界面進行顯示。
圖1 模擬系統(tǒng)與數(shù)控裝置連接圖
在硬件設(shè)計中工業(yè)CPU卡采用工業(yè)用CPU板卡,所以硬件的設(shè)計與實現(xiàn)主要完成模擬板卡的設(shè)計與實現(xiàn)。
模擬板卡硬件電路由MECHATROLINK-III通信接口、FPGA模塊、PCI接口電路和SSB接口電路組成。MECHATROLINK-III通信接口電路主要完成MECHATROLINK-III通信的物理層和數(shù)據(jù)鏈路層。物理層采用國家半導(dǎo)體公司的DP83849,該芯片為單端口以太網(wǎng)收發(fā)芯片,以實現(xiàn)以太網(wǎng)接口;數(shù)據(jù)鏈路層采用安川電機的MECHATROLINK-III協(xié)議處理芯片JL101,該芯片通過MII(Medium Independent Interface,媒體獨立接口)同DP83849通信。為了增強抗干擾能力,在外部電路中采用隔離變壓器的隔離電路[4-5]。通信接口功能框圖如圖2所示。
圖2MECHATROLINK-III通信電路
FPGA模塊以FPGA芯片為核心,采用Altera公司的Cyclone系列芯片EP1C12Q240。FPGA芯片在整個系統(tǒng)中的作用主要是完成對通信接口和SSB接口電路的控制。SSB接口電路采用RS422驅(qū)動電路,完成與IO盒的通信。PCI接口電路采用PLX公司的PCI9052接口芯片,該芯片可以與多種局部總線相連接[6]。
FPGA邏輯設(shè)計采用VHDL語言編程實現(xiàn),使用Quartus II軟件進行編譯仿真和綜合適配后將生成的配置文件下載到FPGA中實現(xiàn)相應(yīng)的功能[7]。FPGA邏輯設(shè)計采用自上而下的模塊化設(shè)計方式,如圖3所示,F(xiàn)PGA內(nèi)部包括輸入寄存器組模塊、輸出寄存器組模塊、SSB電路控制模塊、時序控制模塊和總線接口模塊,模塊之間相互關(guān)聯(lián)并被頂層文件調(diào)用??刂瓶偩€接口模塊實現(xiàn)FPGA與外部的通信和數(shù)據(jù)連接。時序控制模塊控制FPGA內(nèi)部時序邏輯和時鐘頻率。輸入寄存器組模塊和輸出寄存器組模塊完成對MECHATROLINK-III通信模塊中 JL101的控制,可以實現(xiàn)復(fù)位、中斷和狀態(tài)等的控制。SSB電路控制模塊完成對SSB接口電路的控制功能,周期性的采集和發(fā)送機床IO電氣信號。
圖3 FPGA內(nèi)部模塊圖
軟件的設(shè)計開發(fā)環(huán)境采用RTLinux系統(tǒng),該系統(tǒng)在硬件板卡上搭建完成,程序編寫使用C語言。軟件的組成包括針對硬件板卡的專用驅(qū)動程序、實現(xiàn)MECHATROLINK-III協(xié)議的協(xié)議軟件、模擬伺服和機床電氣信號的機床模擬軟件以及用于信息顯示的用戶界面。
專用驅(qū)動程序主要完成PCI設(shè)備的注冊、設(shè)備地址映射、注冊中斷和中斷服務(wù),使系統(tǒng)能夠使用PCI總線連接工業(yè)CPU和通信ASIC。驅(qū)動程序的實現(xiàn)采用模塊化編程方式,具體包括初始化設(shè)備模塊、設(shè)備打開模塊、數(shù)據(jù)讀寫和控制模塊、中斷處理模塊、設(shè)備釋放模塊、設(shè)備卸載模塊[8]。驅(qū)動程序完整的工作流程如圖4所示。
圖4 PCI驅(qū)動工作流程
通信協(xié)議軟件主要完成MECHATROLINK-III通信協(xié)議相關(guān)的處理,包括與主站建立連接,按照主站的要求進行通信等。
協(xié)議軟件的處理過程如圖5所示。在初始化的時候捕獲ASIC的狀態(tài),檢查專用芯片是否準(zhǔn)備就緒,然后采用多次讀寫的方式來檢測通用SRAM是否可用。初始化設(shè)置主要完成站地址設(shè)置和通信參數(shù)的設(shè)置。在初始化設(shè)置過程中,把專用芯片配置成多地址從站方式,即一個從站擁有多個地址,從而可以模擬多個伺服電機,以及實現(xiàn)對不同從站的監(jiān)控。通信模式分為周期通信和事件驅(qū)動通信,根據(jù)主站的設(shè)置進行選擇。在與數(shù)控系統(tǒng)建立連接后,把從數(shù)控系統(tǒng)接收的命令傳給模擬軟件,模擬軟件對該命令進行處理后再經(jīng)過協(xié)議軟件返回給數(shù)控系統(tǒng)。在初始化和通信階段可以對模式設(shè)置錯誤、用戶參數(shù)設(shè)置錯誤等進行檢測,可檢測的部分錯誤返回碼如表2所示。
圖5 協(xié)議處理過程
表2 錯誤類型及返回碼
模擬軟件主要是完成伺服系統(tǒng)和機床電氣的模擬。根據(jù)其功能特點模擬軟件主要包括伺服模擬和機床電氣模擬兩部分。為了完成伺服的模擬實現(xiàn)了完整的伺服命令集,在接收到數(shù)控軟件發(fā)送來的伺服命令后判斷命令的類型,然后模擬執(zhí)行相應(yīng)的命令,執(zhí)行完成之后按照命令格式生成響應(yīng)。機床電氣模擬主要通過機床離散信號發(fā)生器來實現(xiàn),在接收到機床電氣信號后,根據(jù)機床電氣執(zhí)行序列由機床離散信號發(fā)生器生成相應(yīng)的開關(guān)量等信息。
為了完成界面與模擬軟件的數(shù)據(jù)交換通過采用mbuff_alloc開辟一塊共享內(nèi)存,與界面交互的數(shù)據(jù)結(jié)構(gòu)定義如下:
其中stno是伺服電機編號,rcv是接收的數(shù)據(jù),snd是發(fā)送的數(shù)據(jù),servo_status是伺服電機的狀態(tài),speed是速度信息,error是錯誤信息,io_status是IO狀態(tài)。
顯示界面采用基于Linux Redhat9.0平臺的開發(fā)環(huán)境,選擇Trolltech公司的Qt GUI類庫作為API應(yīng)用程序接口,主要包括兩個功能模塊:主界面和圖形繪制界面。主界面可以分為兩組可以支持最多同時顯示16個機床模擬器的基本信息,包括狀態(tài)參數(shù)、實際反饋值以及速度值;按鍵觸發(fā)事件主要采用Qt里的Signal和Slot通信機制完成。圖形繪制界面通過在指定周期范圍內(nèi)采集特殊點并利用界面顯示的狀態(tài)參數(shù)來繪制圖形。刷新點的坐標(biāo)是利用Qt里的定時器QTimer來定時確定的;圖形渲染處理主要應(yīng)用QOpengl GUI開發(fā)包,其內(nèi)置了豐富的圖形渲染API接口[9-10]。
通過對MECHATROLINK-III通信協(xié)議的研究和前人工作的總結(jié)借鑒,本文設(shè)計并實現(xiàn)了一個符合MECHATROLINK-III通信協(xié)議的機床模擬器。在數(shù)控系統(tǒng)的實際使用中,該模擬器可以避免批量化測試數(shù)控機床帶來的不便和采用伺服模擬器加開關(guān)量手動輸入輸出的方式的缺點。
[1]徐秀敏,何方,等.MECHATROLINK-III總線I/O從站設(shè)計與實現(xiàn)[J].組合機床與自動化加工技術(shù),2011(2):66-69,74.
[2]陳艷,何方.基于MECHATROLINK-III總線的伺服模擬器的設(shè)計與實現(xiàn)[J].組合機床與自動化加工技術(shù),2012(9):72-75.
[3]YASKAWA Documents[Z].MECHATROLINK-III Protocol User’s Manual 2008.
[4]Xiumin Xu,F(xiàn)ang 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智能從站接口卡的設(shè)計與實現(xiàn)[J].組合機床與自動化加工技術(shù),2011(12):41 -43,48.
[6]周潤景,劉夢男,等.Cadence高速電路板設(shè)計與仿真:原理圖與PCB設(shè)計(第4版)[M].北京:電子工業(yè)出版社,2011.
[7]EDA先鋒工作室.Altera FPGA/CPLD設(shè)計(基礎(chǔ)篇)[M].北京:人民郵電出版社,2005.
[8]Jonathan Corbet,等著,魏永明,等譯.LINUX設(shè)備驅(qū)動程序[M].北京:中國電力出版社,2011.
[9]成潔,盧紫毅.Linux窗口程序設(shè)計-Qt4精彩實例分析[M].北京:清華大學(xué)出版社,2008.
[10]Jasmin Blanchette,Mark Summerfield著,閆峰欣,曾泉人等譯.C++GUI Qt4編程(第二版)[M].北京:電子工業(yè)出版社,2011.