0 引言
現(xiàn)場總線以其高速、實時、穩(wěn)定、費用低廉等優(yōu)點得到越來越廣泛的應(yīng)用,迅速發(fā)展成為工業(yè)控制網(wǎng)絡(luò)中使用最廣泛的通信網(wǎng)絡(luò)。現(xiàn)場總線技術(shù)的迅速發(fā)展,引起了數(shù)控系統(tǒng)結(jié)構(gòu)的改變,數(shù)控系統(tǒng)已從簡單的運動軌跡控制器轉(zhuǎn)變成貫穿數(shù)字化制造全過程的系統(tǒng)級平臺,基于現(xiàn)場總線技術(shù)的數(shù)控系統(tǒng)已進入成熟階段。同時,隨著全數(shù)字伺服技術(shù)的發(fā)展,數(shù)字接口替代了傳統(tǒng)模擬接口。開發(fā)基于現(xiàn)場總線技術(shù)及全數(shù)字伺服技術(shù)的全數(shù)字式數(shù)控系統(tǒng)是目前國際高檔數(shù)控系統(tǒng)的發(fā)展趨勢。然而。國際上存在多種現(xiàn)場總線協(xié)議標(biāo)準(zhǔn)。國際電工委員會(IEC)于2007年公布的IEC61158第4版包含了20種現(xiàn)場總線協(xié)議標(biāo)準(zhǔn),其中l(wèi)O種是工業(yè)以太網(wǎng)協(xié)議標(biāo)準(zhǔn)。未列入國際標(biāo)準(zhǔn)的現(xiàn)場總線協(xié)議更多。這些現(xiàn)場總線協(xié)議以及采用這些協(xié)議生產(chǎn)的產(chǎn)品互不兼容,因而用戶的選擇及產(chǎn)品的更新都受到了限制。
為實現(xiàn)全數(shù)字式數(shù)控系統(tǒng)能夠兼容多種現(xiàn)場總線,達到屏蔽現(xiàn)場總線差異的目的,本文在參考現(xiàn)場總線協(xié)議模型的基礎(chǔ)上,建立了數(shù)控總線結(jié)構(gòu)模型,設(shè)計了一個統(tǒng)一的應(yīng)用層架構(gòu),分析了多種現(xiàn)場總線集成環(huán)境下能夠兼容各種總線的技術(shù)需求,并對關(guān)鍵性技術(shù)提出了解決方案。文中詳細介紹了數(shù)控總線結(jié)構(gòu)模型、統(tǒng)一的應(yīng)用層架構(gòu)和關(guān)鍵性技術(shù)及其解決方案。
1 數(shù)控總線結(jié)構(gòu)模型
現(xiàn)場總線的協(xié)議模型如圖1所示。一般包括物理層、數(shù)據(jù)鏈路層、應(yīng)用層。它是在ISO/OSI開放系統(tǒng)互連7層參考模型的基礎(chǔ)上進行了簡化,省去了第3~6層,使得數(shù)據(jù)的傳輸效率更高。
本數(shù)控總線結(jié)構(gòu)模型采用協(xié)議棧思想,在現(xiàn)有底層的基礎(chǔ)上,對各總線協(xié)議進行了面向應(yīng)用的擴展。協(xié)議棧內(nèi)存放著各種總線,通過向上層提供統(tǒng)一的服務(wù)接口,屏蔽各種總線的差異。系統(tǒng)設(shè)計完全在主站上依靠軟件來實現(xiàn),從站不需做任何改變。同時參考現(xiàn)場總線協(xié)議模型。以ISO/OSI開放系統(tǒng)互連參考模型為基礎(chǔ),并對其加以改造,由物理層、數(shù)據(jù)鏈路層、應(yīng)用層組成。
物理層:定義接口和通信媒體的機械和電氣規(guī)范。本模型中保持各總線的物理層不變。數(shù)據(jù)鏈路層:為應(yīng)用層提供周期、實時、無差錯的數(shù)據(jù)鏈路。本模型中保持各總線的鏈路層不變。數(shù)據(jù)鏈路層中并列存放著各種總線的鏈路層,如MECHATROLINK III(M3)鏈路層、EtherCAT鏈路層、NCSF鏈路層等。
應(yīng)用層:為屏蔽各總線的差異。向用戶提供統(tǒng)一的服務(wù)接口。模型中將應(yīng)用層劃分為應(yīng)用接口子層和協(xié)議接口子層。應(yīng)用接口子層維護站點之間的安全??煽康膫鬏斖?,并向用戶程序提供統(tǒng)一的傳
輸服務(wù)、設(shè)備服務(wù)、總線管理服務(wù)。協(xié)議接口子層屏蔽各總線差異,通過服務(wù)協(xié)議映射機制將應(yīng)用接口子層的服務(wù)及協(xié)議映射成具體總線的服務(wù)及協(xié)議,并根據(jù)不同的總線類型選擇對應(yīng)的鏈路,實現(xiàn)用戶程序與數(shù)據(jù)鏈路層之間的數(shù)據(jù)交互。
2 應(yīng)用層通用化設(shè)計
2.1 統(tǒng)一應(yīng)用層架構(gòu)的設(shè)計
在數(shù)控總線結(jié)構(gòu)模型的基礎(chǔ)上設(shè)計了一個統(tǒng)一的應(yīng)用層架構(gòu)。
(1)應(yīng)用接口子層:為數(shù)控系統(tǒng)應(yīng)用程序提供統(tǒng)一的服務(wù),包括傳輸服務(wù)、設(shè)備服務(wù)、總線管理服務(wù)等。傳輸服務(wù)包括連接服務(wù)、同步傳輸服務(wù)、異步傳輸服務(wù)和傳輸管理服務(wù)。傳輸管理服務(wù)對應(yīng)用層的傳輸狀態(tài)進行管理,包括初始化、同步異步轉(zhuǎn)換、狀態(tài)查詢及安全等服務(wù)。根據(jù)設(shè)備裝置的不同,設(shè)備服務(wù)包括伺服驅(qū)動服務(wù)、主軸服務(wù)、I/O服務(wù)、傳感器服務(wù)等??偩€管理服務(wù)包括總線配置服務(wù)、總線查詢服務(wù)等。這些服務(wù)通過服務(wù)解釋器及服務(wù)映射管理機制映射到具體總線的應(yīng)用層服務(wù)。該層還為各總線提供了統(tǒng)一的單位系、統(tǒng)一的應(yīng)用層協(xié)議數(shù)據(jù)格式、統(tǒng)一的總線配置結(jié)構(gòu)、統(tǒng)一的狀態(tài)機、統(tǒng)一的基本數(shù)據(jù)類型及對象字典。
基本數(shù)據(jù)類型包括位元型、字符型、整型、浮點型、串型、布爾型、枚舉型、結(jié)構(gòu)體等。其中整型分為有符號整型和無符號整型,都可以使用8位、16位、32位、64位等多種方式進行存儲,如INT8(8位整數(shù))、UINT8(8位無符號整數(shù))、INTl6(16位整數(shù))、UINTl6(16位無符號整數(shù))、INT32(32位整數(shù))、UINT32(32位無符號整數(shù))、INT64(64位整數(shù))、UINT64(64位無符號整數(shù))等。
對象字典包括服務(wù)對象字典和協(xié)議對象字典。對象字典為應(yīng)用接口子層服務(wù)及協(xié)議數(shù)據(jù)提供對應(yīng)的具體總線應(yīng)用層服務(wù)及協(xié)議數(shù)據(jù)結(jié)構(gòu)的解釋和定義。
(2)協(xié)議接口子層:通過服務(wù)映射管理機制將應(yīng)用接口子層提供的服務(wù)映射到具體總線的應(yīng)用層服務(wù),如M3應(yīng)用層服務(wù)、EtherCAT應(yīng)用層服務(wù)、NCSF應(yīng)用層服務(wù)等。并將統(tǒng)一的應(yīng)用層協(xié)議數(shù)據(jù)映射成具體總線的應(yīng)用層協(xié)議數(shù)據(jù)。然后根據(jù)總線類型選擇相應(yīng)的數(shù)據(jù)鏈路,實現(xiàn)用戶程序與數(shù)據(jù)鏈路層之問的數(shù)據(jù)交互。此外,還要維護站點地址的管理,邏輯地址和物理地址的映射等。
服務(wù)解釋器、服務(wù)映射管理及協(xié)議映射管理通過站點的邏輯地址判斷總線類型,查詢對象字典,完成應(yīng)用接口子層的服務(wù)協(xié)議到具體總線應(yīng)用層的服務(wù)協(xié)議之間的解釋和映射。
2.2 應(yīng)用層通信模型
應(yīng)用接口子層主要包括應(yīng)用接口子層服務(wù)、協(xié)議數(shù)據(jù)及對象字典;協(xié)議接口子層主要包括服務(wù)映射管理、地址管理及協(xié)議映射管理,用以實現(xiàn)統(tǒng)一應(yīng)用協(xié)議數(shù)據(jù)到具體總線應(yīng)用層協(xié)議數(shù)據(jù)的轉(zhuǎn)換。具體總線應(yīng)用層調(diào)用對應(yīng)的數(shù)據(jù)鏈路層提供的服務(wù),完成數(shù)據(jù)通信。
2.3 應(yīng)用層狀態(tài)機
應(yīng)用層在不同時刻可處于不同的運行狀態(tài),應(yīng)用層的操作可觸發(fā)狀態(tài)間的轉(zhuǎn)換,在不同的狀態(tài)下可提供不同的服務(wù)及操作。狀態(tài)機包括初始狀態(tài)、就緒狀態(tài)、異步連接狀態(tài)、同步連接狀態(tài)、連接釋放狀態(tài)、錯誤狀態(tài)和結(jié)束狀態(tài)。
狀態(tài)說明:S0:初始狀態(tài),設(shè)備裝置上電后站點的應(yīng)用層初始狀態(tài);S1:就緒狀態(tài),站點初始化成功后等待建立連接的狀態(tài);S2:異步連接狀態(tài),在該狀態(tài)下可以提供異步傳輸服務(wù);s3:同步連接狀態(tài),在該狀態(tài)下既可以提供同步傳輸服務(wù)也可以提供異步傳輸服務(wù);S4:連接釋放狀態(tài),數(shù)據(jù)傳輸結(jié)束后連接斷開所進入的狀態(tài);S5:錯誤狀態(tài),運行過程中出現(xiàn)錯誤的狀態(tài),在該狀態(tài)下不能提供傳輸服務(wù);S6:結(jié)束狀態(tài),服務(wù)關(guān)閉等待設(shè)備裝置下電的狀態(tài)。
操作說明:11D:執(zhí)行初始化服務(wù)(無異常);T1:執(zhí)行初始化服務(wù)(異常);他:執(zhí)行異步連接服務(wù)(無異常);T3:執(zhí)行同步連接服務(wù)(無異常);T4:執(zhí)行連接服務(wù)(異常);T5:執(zhí)行同步/異步轉(zhuǎn)換服務(wù)(無異常);T6:執(zhí)行釋放連接服務(wù)(無異常);”:發(fā)生異步傳輸錯誤;T8:發(fā)生同步錯誤;四:執(zhí)行釋放連接服務(wù)(異常);T10:執(zhí)行結(jié)束處理;T11:執(zhí)行恢復(fù)操作;T12:執(zhí)行錯誤處理。
3 關(guān)鍵性技術(shù)及其解決方案
協(xié)議接口子層及應(yīng)用接口子層的實現(xiàn)是設(shè)計的關(guān)鍵,需要解決以下幾個主要問題:總線站點地址的一致性;應(yīng)用層協(xié)議數(shù)據(jù)格式的一致性;參數(shù)單位的一致性;總線配置結(jié)構(gòu)的一致性和服務(wù)接口的一致性。下面對這幾個問題進行分析,并給出詳細的解決方案。
3.1 統(tǒng)一的站點地址設(shè)計
各個總線的站點地址不同,如M3站點的物理地址為16位,EtherCAT站點的物理地址為48位。為使各總線有統(tǒng)一的站點地址,系統(tǒng)對站點設(shè)備采用統(tǒng)一編址。所有現(xiàn)場網(wǎng)絡(luò)中的站點都有統(tǒng)一的邏輯地址。每個總線上的站點都可以使用統(tǒng)一的邏輯地址進行通信。
邏輯地址為32位,其首8位用來標(biāo)識總線類型。如M3、NCSF、EtherCAT總線等;次8位用來標(biāo)識設(shè)備類型,如標(biāo)準(zhǔn)伺服、高分辨率伺服、多軸伺服、主軸、I/O設(shè)備、傳感器、變頻器等;后16位用來標(biāo)識站點。其中OxOOXXXXXX用來表示主站的邏輯地址。
為了兼顧各總線的物理地址的不同。物理地址設(shè)為48位,用來存放各總線站點的物理地址。當(dāng)數(shù)據(jù)鏈路層用到物理地址時.對其進行截取變換成相應(yīng)總線站點的物理地址。系統(tǒng)維護站點邏輯地址和物理地址的一一對應(yīng)關(guān)系。
3.2 統(tǒng)一的應(yīng)用層協(xié)議數(shù)據(jù)格式
不同總線的應(yīng)用層協(xié)議數(shù)據(jù)格式差別較大,在此,定義一種統(tǒng)一的應(yīng)用層協(xié)議數(shù)據(jù)報文格式。當(dāng)向底層傳輸數(shù)據(jù)發(fā)生協(xié)議映射時。只需將其映射為具體總線的應(yīng)用層協(xié)議數(shù)據(jù)格式。當(dāng)?shù)讓佑袛?shù)據(jù)上傳時,只需將具體總線的應(yīng)用層協(xié)議數(shù)據(jù)報文封裝成統(tǒng)一的應(yīng)用層協(xié)議數(shù)據(jù)報文。如圖7所示。目的標(biāo)識代表了接收站點的邏輯地址,源標(biāo)識代表了發(fā)送站點的邏輯地址。長度代表了有效數(shù)據(jù)的長度,單位為字節(jié)。A/S用于標(biāo)識同步(A/S=1)或異步(A/S=0)。C/R用于標(biāo)識命令(C/R=1)或應(yīng)答(C/R=0)。
3.3 統(tǒng)一的單位系
由于不同總線所使用的參數(shù)單位不同,且差別很大,為使參數(shù)有統(tǒng)一的單位標(biāo)準(zhǔn)。系統(tǒng)設(shè)計了統(tǒng)一的單位系。如表1所示。
其中指令單位是指移動負載的位置數(shù)據(jù)的最小單位。指令單位應(yīng)在考慮機械規(guī)格、定位精度等因素之后再行決定。例如可為mill、inch、度(o)等。每種參數(shù)都提供了多種單位供用戶選擇。并提供了基本單位供用戶設(shè)置。例如位置參數(shù)單位選擇mm。其基本單位設(shè)置為10一mm=0.001mm;速度參數(shù)單位選擇mm/s,其基本單位設(shè)置為10-3mm/s=0.001mm/s等。用戶可以根據(jù)具體的應(yīng)用情況。選擇不同的參數(shù)單位及基本單位進行設(shè)置。使得在模塊之間傳遞的數(shù)據(jù)值含義保持一致。
3.4 統(tǒng)一的總線配置結(jié)構(gòu)
統(tǒng)一的總線配置結(jié)構(gòu)在總線初始化階段用來配置總線信息,各總線根據(jù)自己的情況,對每一項進行初始化。
其中SLV_ST_MAX為系統(tǒng)所允許的最大從站數(shù);wrong_addr表示主從站地址錯誤標(biāo)識,0表示地址正確,l表示邏輯地址錯誤,2表示物理地址錯誤,3表示邏輯地址和物理地址都錯;st_laddr、st_paddr分別表示主從站的邏輯地址和物理地址,0號站為主站的地址。
3.5 統(tǒng)一的服務(wù)接口
各總線針對不同的從站設(shè)備所提供的應(yīng)用層服務(wù)差別比較大,為向上層數(shù)控應(yīng)用提供統(tǒng)一的訪問接口,系統(tǒng)設(shè)計了統(tǒng)一的應(yīng)用層服務(wù)接口,包括傳輸服務(wù)、設(shè)備服務(wù)、總線管理服務(wù)等,并對各類服務(wù)進行了細分,給出了詳細的服務(wù)接口列表。
考慮到數(shù)控系統(tǒng)在實時性方面的要求,本文利用RTLinux實時內(nèi)核模塊對Linux操作系統(tǒng)進行了實時化改造。使其成為一個實時操作系統(tǒng)。以其作為軟件開發(fā)平臺,以C語言作為開發(fā)工具。系統(tǒng)采用Linux操作系統(tǒng)設(shè)備驅(qū)動方式來實現(xiàn)用戶訪問統(tǒng)一的服務(wù)接口,向上層應(yīng)用程序屏蔽下層具體總線應(yīng)用層服務(wù)接口函數(shù)實現(xiàn)細節(jié)的差異。每一種總線作為一個新設(shè)備加入設(shè)備鏈表,并為其注冊驅(qū)動程序,各總線驅(qū)動需要按照統(tǒng)一的服務(wù)接口實現(xiàn)自己的服務(wù)。
說明:其中TS_xxx表示傳輸服務(wù),為從站設(shè)備提供連接、同步傳輸、異步傳輸、傳輸管理等服務(wù)。SV_xx表示伺服驅(qū)動服務(wù),用來操作控制伺服軸;SPIN—xxxxx表示主軸服務(wù),用來操作控制主軸;IO_xxx表示I/O服務(wù),用來操作控制I/O設(shè)備;SENS_xxx表示傳感器服務(wù),用來操作控制傳感器設(shè)備;NCB__表示總線管理服務(wù),管理配置查詢各總線信息,包括總線配置服務(wù)、總線查詢服務(wù)等。各總線的服務(wù)接口按照BusType—DeviceType—XXX形式來實現(xiàn),如M3一SV—velCtrl。
這樣設(shè)計的優(yōu)點表現(xiàn)在:
(1)將應(yīng)用層劃分為應(yīng)用接口子層和協(xié)議接口子層,各層的功能互不相同,使得系統(tǒng)層次結(jié)構(gòu)更加明確。統(tǒng)一的應(yīng)用層架構(gòu)為各總線應(yīng)用層的實現(xiàn)提供了參考。
(2)通過設(shè)計統(tǒng)一的站點邏輯地址、統(tǒng)一的應(yīng)用層協(xié)議數(shù)據(jù)格式、統(tǒng)一的單位系、統(tǒng)一的總線配置結(jié)構(gòu)以及統(tǒng)一的服務(wù)接口,屏蔽了各總線的差異,使得一個系統(tǒng)中兼容多種總線成為可能,具有很好的兼容性。
(3)統(tǒng)一的應(yīng)用層服務(wù)接口屏蔽了各總線應(yīng)用層服務(wù)的差異,對上層應(yīng)用透明。對于新加入的總線,只需按照統(tǒng)一的服務(wù)接口實現(xiàn)自己的服務(wù),具有很好的擴展性。
4 結(jié)束語
多現(xiàn)場總線兼容技術(shù)是當(dāng)前現(xiàn)場總線技術(shù)的一個重要發(fā)展方向,實現(xiàn)一個數(shù)控系統(tǒng)中兼容多種總線,屏蔽各總線的差異具有重要的意義。本文在參考現(xiàn)場總線協(xié)議模型的基礎(chǔ)上,建立了數(shù)控總線結(jié)構(gòu)模型,設(shè)計了一個統(tǒng)一的應(yīng)用層架構(gòu),分析了多總線兼容的技術(shù)需求,并對關(guān)鍵性技術(shù)提出了解決方案。該設(shè)計屏蔽了各總線差異,向用戶程序提供了統(tǒng)一的服務(wù)接口,具有很好的兼容性和擴展性。下一步的工作將根據(jù)具體總線的協(xié)議規(guī)范,按照本文設(shè)計的統(tǒng)一的應(yīng)用層架構(gòu)及統(tǒng)一的服務(wù)接口,實現(xiàn)具體總線的應(yīng)用層服務(wù),并將其應(yīng)用于數(shù)控系統(tǒng)中。
(審核編輯: 智匯胡妮)
分享