全數(shù)字式數(shù)控總線應(yīng)用層通用化設(shè)計
基本數(shù)據(jù)類型包括位元型、字符型、整型、浮點型、串型、布爾型、枚舉型、結(jié)構(gòu)體等。其中整型分為有符號整型和無符號整型,都可以使用8位、16位、32位、64位等多種方式進(jìn)行存儲,如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ù)交互。此外,還要維護(hù)站點地址的管理,邏輯地址和物理地址的映射等。
服務(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ù)通信。應(yīng)用層的通信模型如圖4所示。
圖4應(yīng)用層通信模型
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)問的轉(zhuǎn)換如圖5所示。
狀態(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é)束后連接斷開所進(jìn)入的狀態(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ù)接口的一致性。下面對這幾個問題進(jìn)行分析,并給出詳細(xì)的解決方案。
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)一的邏輯地址進(jìn)行通信。統(tǒng)一的站點邏輯地址格式如圖6所示。
圖6統(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ù)鏈路層用到物理地址時.對其進(jìn)行截取變換成相應(yīng)總線站點的物理地址。系統(tǒng)維護(hù)站點邏輯地址和物理地址的一一對應(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)。
評論