專利名稱:一種Modbus與DeviceNet間的協(xié)議轉(zhuǎn)換方法
技術(shù)領(lǐng)域:
本發(fā)明涉及到兩種工業(yè)通訊協(xié)議Modbus和DeviceNet之間的協(xié)議轉(zhuǎn)換實現(xiàn)方法,尤其適用于Modbus設(shè)備接入DeviceNet網(wǎng)絡(luò)的應(yīng)用,屬于現(xiàn)場總線控制技術(shù)領(lǐng)域。
背景技術(shù):
鑒于現(xiàn)場總線標準多樣化的現(xiàn)實,實際應(yīng)用中的系統(tǒng)往往包含多種總線網(wǎng)絡(luò)。為實現(xiàn)不同通訊協(xié)議的網(wǎng)絡(luò)信息集成,開發(fā)通訊適配器,或稱協(xié)議轉(zhuǎn)換器成為現(xiàn)場總線控制技術(shù)領(lǐng)域的一大研究內(nèi)容。
Modbus協(xié)議最初由Modicon公司開發(fā)出來,現(xiàn)在已經(jīng)是工業(yè)領(lǐng)域全球最流行的通用工業(yè)標準協(xié)議之一。我國去年頒布國標GB/Z 19582.1-2004《基于Modbus協(xié)議的工業(yè)自動化網(wǎng)絡(luò)規(guī)范》,并于2005-03-01起實施。
Modbus通信使用主—從技術(shù),即僅一個設(shè)備(主設(shè)備)能初始化傳輸(查詢),其它設(shè)備(從設(shè)備)根據(jù)主設(shè)備查詢提供的數(shù)據(jù)做出相應(yīng)反應(yīng)。主設(shè)備可單獨和從設(shè)備通信,也能以廣播方式和所有從設(shè)備通信。如果單獨通信,從設(shè)備返回一個消息作為回應(yīng),如果是以廣播方式查詢的,則不作任何回應(yīng)。
目前Modbus普遍采用標準RS-485通訊接口作為其物理層傳送方式,通訊波特率1200BPS~57600BPS,主從半雙工方式。
DeviceNet現(xiàn)場總線協(xié)議是由Rockwell公司提出的基于Can的應(yīng)用層協(xié)議,它明確定義了物理層、數(shù)據(jù)鏈路層和應(yīng)用層的內(nèi)容。在DeviceNet網(wǎng)絡(luò)系統(tǒng)中,目前普遍采用協(xié)議規(guī)約的預(yù)定義主從連接方式,即網(wǎng)絡(luò)中設(shè)備分為從站和主戰(zhàn)(或掃描器)。主站能夠進行點對點或廣播方式通訊,而從站一般只能與主站進行通訊,從站間不能進行通訊。DeviceNet規(guī)定的通訊速率為125KBPS、250KBPS和500KBPS三種。
由于Modbus現(xiàn)場總線接口的軟硬件實現(xiàn)成本很低,目前在國內(nèi)低壓電器、DCS控制、儀器儀表等領(lǐng)域應(yīng)用廣泛。但是相對于DeviceNet來說,Modbus屬于低速網(wǎng)絡(luò),并且其半雙工的通訊模式在實時性要求比較高的應(yīng)用中不能夠滿足要求。所以實際的多總線結(jié)構(gòu)系統(tǒng)中,Modbus/DeviceNet現(xiàn)場總線協(xié)議轉(zhuǎn)換裝置可以以較低的成本實現(xiàn)通訊網(wǎng)絡(luò)的升級,將原來具有Modbus通訊接口的設(shè)備接入DeviceNet網(wǎng)絡(luò)。
國外國內(nèi)現(xiàn)有Modbus/DeviceNet通訊適配器主要有如下幾種
■HMS公司的AnyBus-Communicator Serial To DeviceNet Gateway■Western Reserve Controls公司的WRC’s 1782-JD family of DeviceNet toserial Communications products■Real Time Automation公司的Serial Interface for DeviceNet OEMs■Deutschmann Automation GmbH公司的UNIGATE RS232/485-DeviceNet這些協(xié)議轉(zhuǎn)換裝置都能夠?qū)⒎螹odbus的輸入輸出信息轉(zhuǎn)為DeviceNet網(wǎng)絡(luò)的輸入輸出信息,其功能特征為實現(xiàn)實時I/O數(shù)據(jù)在兩種網(wǎng)絡(luò)間的交換,屬于通用I/O適配器。優(yōu)點是可以將網(wǎng)絡(luò)中的I/O數(shù)據(jù)打包集中交換,降低網(wǎng)絡(luò)負載,提高系統(tǒng)通訊能力。
但是,對大多數(shù)總線網(wǎng)絡(luò)設(shè)備而言,與系統(tǒng)交換的信息不僅包含實時I/O數(shù)據(jù),而且還有大量的配置參數(shù)、診斷信息等。采用通用I/O模式,只有將這些信息也作為I/O數(shù)據(jù)來處理,由于這些數(shù)據(jù)量大但無實時性要求,所以會造成網(wǎng)絡(luò)通訊能力的巨大浪費;如果不傳送或者有選擇地傳送少量數(shù)據(jù),則會降低系統(tǒng)對設(shè)備的信息收集和控制能力。
所以,在DeviceNet層次上構(gòu)建Modbus設(shè)備或子網(wǎng)對象,是對新型協(xié)議轉(zhuǎn)換器提出的要求。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種Modbus與DeviceNet間的協(xié)議轉(zhuǎn)換方法,實現(xiàn)將Modbus設(shè)備以DeviceNet對象的形態(tài),作為DeviceNet從站接入DeviceNet網(wǎng)絡(luò)。
為了達到上述目的,本發(fā)明采用下述技術(shù)方案一種Modbus與DeviceNet間的協(xié)議轉(zhuǎn)換方法,其特征在于采用Modbus總線通過RS485總線接口與微處理器連接,DeviceNet總線通過CAN收發(fā)器和控制器與微處理器連接,微處理器還連接EEPROM和數(shù)據(jù)、程序存儲器,構(gòu)建起協(xié)議轉(zhuǎn)換硬件平臺,從而采用下述的Modbus與DeviceNet間協(xié)議轉(zhuǎn)換模型,實現(xiàn)Modbus與DeviceNet間的協(xié)議轉(zhuǎn)換由配置口生成配置文件,然后微處理器程序從配置文件)提取單元屬性,一方面生成Modbus主站的掃描列表,另一方面生成DeviceNet的路徑配置,數(shù)據(jù)定義了DeviceNet應(yīng)用對象的類號、實例號、屬性數(shù)、屬性號和組合對象、參數(shù)對象的連接路徑值;由Modbus到DeviceNet的輸入數(shù)據(jù)由Modbus網(wǎng)絡(luò)按照掃描列表的配置被讀入?yún)f(xié)議映射區(qū),然后讀到DeviceNet應(yīng)用對象,送到DeviceNet網(wǎng)絡(luò);由DeviceNet到Modbus的輸出數(shù)據(jù)由組合對象和參數(shù)對象送到命令轉(zhuǎn)換器,由微處理器解釋為協(xié)議映射區(qū)的命令區(qū)的命令,然后由命令所對應(yīng)的非周期性掃描列表,發(fā)Modbus命令到Modbus網(wǎng)絡(luò),并更新協(xié)議映射區(qū)數(shù)據(jù)。
上述的協(xié)議轉(zhuǎn)換的具體步驟如下①、配置文件保存于非易失性存儲器EEPROM內(nèi),通過PC下載方式或程序燒錄方式進行存儲,文件內(nèi)容的編輯由用戶根據(jù)需要按照固定格式定義;②、根據(jù)配置文件初始化Modbus通訊口;③、根據(jù)配置文件中DeviceNet設(shè)備信息初始化標識對象和DeviceNet對象相關(guān)信息;④、根據(jù)配置文件單元屬性的數(shù)量及單元數(shù)據(jù)字節(jié)數(shù)初始化協(xié)議映射區(qū)數(shù)據(jù)單元;由單元屬性為周期性更新的數(shù)據(jù)單元產(chǎn)生Modbus周期性掃描列表,由單元屬性為非周期性更新的數(shù)據(jù)單元產(chǎn)生Modbus非周期性掃描列表。掃描列表每項記錄由單元號、Modbus節(jié)點地址、Modbus寄存器地址、功能碼和數(shù)據(jù)大小組成。
⑤、將協(xié)議映射區(qū)數(shù)據(jù)單元與DeviceNet應(yīng)用對象實例屬性一一對應(yīng),然后進行DeviceNet路徑配置;將周期性更新的實例屬性根據(jù)讀寫性質(zhì)分別生成組合對象的輸入實例屬性和輸出實例屬性,將非周期性的更新的實例屬性全部列入?yún)?shù)對象實例屬性中;DeviceNet連接對象生產(chǎn)和消費路徑配置為組合對象的輸入實例數(shù)據(jù)屬性項和輸出實例數(shù)據(jù)屬性項;⑥、根據(jù)DeviceNet應(yīng)用對象實例屬性對應(yīng)的協(xié)議映射區(qū)數(shù)據(jù)單元屬性,當DeviceNet有輸出I/O數(shù)據(jù)或?qū)戄敵鰠?shù)時,將該操作轉(zhuǎn)換為協(xié)議映射區(qū)命令區(qū)的命令信息;然后通過查詢Modbus掃描列表,獲取對應(yīng)記錄項,生成Modbus報文,響應(yīng)正確后,更新協(xié)議映射區(qū)該單元數(shù)據(jù)。
在上述的Modbus與DeviceNet間的協(xié)議轉(zhuǎn)換模型中,所述的配置文件包含Modbus通訊口的通訊模式和波特率參數(shù)、DeviceNet設(shè)備信息和協(xié)議映射區(qū)單元屬性;所述的單元屬性包含Modbus地址、讀寫性質(zhì)、是否周期性操作、單元字節(jié)數(shù);所述的協(xié)議映射區(qū)包括數(shù)據(jù)區(qū)和命令區(qū),數(shù)據(jù)區(qū)以單元為單位;命令區(qū)包含狀態(tài)字、單元號和數(shù)據(jù)寄存器;所述的DeviceNet路徑配置文件由單元屬性生成,包括應(yīng)用對象類號、組合對象實例屬性列表、參數(shù)對象實例屬性列表、連接對象實例路徑;所述的Modbus掃描列表包括周期性掃描列表和非周期性掃描列表,由配置文件生成。DeviceNet輸出命令轉(zhuǎn)換用來執(zhí)行DeviceNet設(shè)備的類3傳輸服務(wù)和I/O輸出,將它們轉(zhuǎn)換為協(xié)議映射區(qū)的命令區(qū)信息;構(gòu)建所述的DeviceNet應(yīng)用對象由用戶的配置文件定義,其屬性內(nèi)容與協(xié)議映射區(qū)數(shù)據(jù)單元一一對應(yīng)。
根據(jù)上述的協(xié)議轉(zhuǎn)換方法,可以將一個或多個Modbus從站直接轉(zhuǎn)換為具有相同特征的一個或多個DeviceNet對象,從DeviceNet接口看,可完全視為一個完整的具體DeviceNet設(shè)備,而不僅僅是一些打包的I/O數(shù)據(jù)。
本發(fā)明與現(xiàn)有技術(shù)相比較,具有如下顯而易見的突出實質(zhì)性特點和顯著優(yōu)點本發(fā)明在構(gòu)建Modbus與DeviceNet間協(xié)議轉(zhuǎn)換的硬件平臺上,提供了一種Modbus與DeviceNet間的協(xié)議轉(zhuǎn)換模型,從而實現(xiàn)了Modbus與DeviceNet間的協(xié)議轉(zhuǎn)換,實現(xiàn)將Modbus設(shè)備以DeviceNet對象的形態(tài),作為DeviceNet從站接入DeviceNet網(wǎng)絡(luò)。
圖1是本發(fā)明實施例的方法模型示意圖。
圖2是本發(fā)明實施例的單元屬性數(shù)據(jù)結(jié)構(gòu)圖。
圖3是本發(fā)明實施例的配置文件格式示意圖。
具體實施例方式
下面結(jié)合附圖對本發(fā)明的一個優(yōu)選實例進行詳細說明本Modbus與DeviceNet間的協(xié)議轉(zhuǎn)換方法是采用Modbus總線通過RS485總線接口與微處理器連接,DeviceNet總線通過CAN收發(fā)器和控制器與微處理器連接,微處理器還連接EEPROM和數(shù)據(jù)、程序存儲器,構(gòu)建起協(xié)議轉(zhuǎn)換硬件平臺,從而采用下述的Modbus與DeviceNet間協(xié)議轉(zhuǎn)換模型(見圖1),實現(xiàn)Modbus與DeviceNet間的協(xié)議轉(zhuǎn)換由配置口生成配置文件1,然后微處理器程序從配置文件1提取單元屬性2,一方面生成Modbus主站的掃描列表5,另一方面生成DeviceNet的路徑配置3,數(shù)據(jù)定義了DeviceNet應(yīng)用對象的類號、實例號、屬性數(shù)、屬性號4和組合對象、參數(shù)對象的連接路徑值7;由Modbus到DeviceNet的輸入數(shù)據(jù)由Modbus網(wǎng)絡(luò)按照掃描列表的配置被讀入?yún)f(xié)議映射區(qū)8,然后讀到DeviceNet應(yīng)用對象,送到DeviceNet網(wǎng)絡(luò);由DeviceNet到Modbus的輸出數(shù)據(jù)由組合對象和參數(shù)對象7送到命令轉(zhuǎn)換器9,由微處理器解釋為協(xié)議映射區(qū)8的命令區(qū)的命令,然后由命令所對應(yīng)的非周期性掃描列表,發(fā)Modbus命令到Modbus網(wǎng)絡(luò),并更新協(xié)議映射區(qū)數(shù)據(jù)。
本協(xié)議轉(zhuǎn)換工作的具體步驟為①、配置文件1基本內(nèi)容如圖3所示,由通訊模式字、DeviceNet設(shè)備信息和單元屬性三部分組成。通訊模式字保存Modbus子網(wǎng)的通訊波特率和通訊模式,以及用戶自定義的其他信息;DeviceNet設(shè)備信息保存應(yīng)用對象4的對象類號、實例數(shù)、實例號、每個實例包含的屬性號,以及組合對象參數(shù)對象7所需的路徑配置。配置文件1由用戶生成,其具體格式約定與用戶程序解釋相一致即可。
②、提取配置文件1中通訊模式字信息,初始化Modbus通訊口。
③、提取配置文件1中單元屬性部分信息,獲得單元屬性2,如圖2所示為單個單元屬性字的數(shù)據(jù)結(jié)構(gòu)。圖2中,單元屬性包含4個字節(jié),最高字節(jié)A保存該單元對應(yīng)的Modbus從站地址,第二和第三字節(jié)B保存該單元數(shù)據(jù)對應(yīng)的設(shè)備Modbus寄存器地址,第四字節(jié)的第7位C表示讀寫屬性,第6位D表示周期性更新標志,第5到第0位表示該單元數(shù)據(jù)字節(jié)數(shù)。
④、由單元屬性2生成Modbus掃描列表5,由單元屬性為周期性更新的數(shù)據(jù)單元產(chǎn)生Modbus周期性掃描列表,由單元屬性為非周期性更新的數(shù)據(jù)單元產(chǎn)生Modbus非周期性掃描列表。掃描列表每項記錄由單元號、Modbus節(jié)點地址、Modbus寄存器地址、功能碼、數(shù)據(jù)大小等組成。例如使用0x03功能碼讀取一個或多個寄存器值,其掃描列表記錄項內(nèi)容為0x01(單元號)、0x01(從站地址)、0x0001(寄存器地址)、0x03(功能碼)、0x02(數(shù)據(jù)字節(jié)數(shù))。
⑤、協(xié)議映射區(qū)8的數(shù)據(jù)區(qū)部分其數(shù)據(jù)排序按照單元號從小到大依次對應(yīng)單元數(shù)據(jù)。協(xié)議映射區(qū)既可在單微處理器平臺的RAM區(qū)開辟,也可在雙微處理器平臺的雙口RAM區(qū)開辟。
⑥、路徑配置3提取配置文件1中DeviceNet設(shè)備信息,初始化DeviceNet應(yīng)用對象4的實例,按照實例號及屬性數(shù)將實例屬性與協(xié)議映射區(qū)的數(shù)據(jù)單元一一對應(yīng)。同時,路徑配置3將完整的組合對象和參數(shù)對象實例的數(shù)據(jù)路徑填入,路徑內(nèi)容為類號一實例號一屬性號,即應(yīng)用對象4的屬性路徑。其中,組合對象包含協(xié)議映射區(qū)單元屬性為周期性更新的數(shù)據(jù),參數(shù)對象包含協(xié)議映射區(qū)單元屬性為非周期性更新的數(shù)據(jù)。
⑦、對于數(shù)據(jù)自DeviceNet到Modbus,另外通過命令轉(zhuǎn)換6進行。對于來自組合對象和參數(shù)對象的數(shù)據(jù),命令轉(zhuǎn)換6比較新數(shù)據(jù)與舊數(shù)據(jù)是否有變化,若有則按其對應(yīng)的單元號及單元屬性,生成一個命令項寫入?yún)f(xié)議映射區(qū)8的命令區(qū),并通知Modbus掃描列表5,然后以Modbus報文的形式發(fā)往Modbus從設(shè)備,相應(yīng)正確后,更新協(xié)議映射區(qū)相應(yīng)數(shù)據(jù)和DeviceNet應(yīng)用對象的實例數(shù)據(jù)。
權(quán)利要求
1.一種Modbus與DeviceNet間的協(xié)議轉(zhuǎn)換方法,其特征在于采用Modbus總線通過RS485總線接口與微處理器連接,DeviceNet總線通過CAN收發(fā)器和控制器與微處理器連接,微處理器還連接EEPROM和數(shù)據(jù)、程序存儲器,構(gòu)建起協(xié)議轉(zhuǎn)換硬件平臺,從而采用下述的Modbus與DeviceNet間協(xié)議轉(zhuǎn)換模型,實現(xiàn)Modbus與DeviceNet間的協(xié)議轉(zhuǎn)換由配置口生成配置文件(1),然后微處理器程序從配置文件(1)提取單元屬性(2),一方面生成Modbus主站的掃描列表(5),另一方面生成DeviceNet的路徑配置(3),路徑配置數(shù)據(jù)定義了DeviceNet應(yīng)用對象(4)的類號、實例號、屬性數(shù)、屬性號和組合對象、參數(shù)對象(7)的連接路徑值;由Modbus到DeviceNet的輸入數(shù)據(jù)由Modbus網(wǎng)絡(luò)按照掃描列表的配置被讀入?yún)f(xié)議映射區(qū)(8),然后讀到DeviceNet應(yīng)用對象,送到DeviceNet網(wǎng)絡(luò);由DeviceNet到Modbus的輸出數(shù)據(jù)由組合對象和參數(shù)對象(7)送到命令轉(zhuǎn)換器(6),由微處理器解釋為協(xié)議映射區(qū)(8)的命令區(qū)的命令,然后由命令所對應(yīng)的非周期性掃描列表,發(fā)Modbus命令到Modbus網(wǎng)絡(luò),并更新協(xié)議映射區(qū)數(shù)據(jù)。
2.根據(jù)權(quán)利要求1所述的Modbus與DeviceNet間的協(xié)議轉(zhuǎn)換方法,其特征在于協(xié)議轉(zhuǎn)換的具體步驟如下①、配置文件(1)保存于非易失性存儲器EEPROM內(nèi),通過PC下載方式或程序燒錄方式進行存儲,文件內(nèi)容的編輯由用戶根據(jù)需要按照固定格式定義;②、根據(jù)配置文件(1)初始化Modbus通訊口;③、根據(jù)配置文件(1)中DeviceNet設(shè)備信息初始化標識對象和DeviceNet對象相關(guān)信息;④、根據(jù)配置文件單元屬性(2)的數(shù)量及單元數(shù)據(jù)字節(jié)數(shù)初始化協(xié)議映射區(qū)(8)數(shù)據(jù)單元;由單元屬性(2)為周期性更新的數(shù)據(jù)單元產(chǎn)生Modbus周期性掃描列表,由單元屬性為非周期性更新的數(shù)據(jù)單元產(chǎn)生Modbus非周期性掃描列表。掃描列表(5)每項記錄由單元號、Modbus節(jié)點地址、Modbus寄存器地址、功能碼和數(shù)據(jù)大小組成;⑤、將協(xié)議映射區(qū)(8)數(shù)據(jù)單元與DeviceNet應(yīng)用對象(4)實例屬性一一對應(yīng),然后進行DeviceNet路徑配置(3);將周期性更新的實例屬性根據(jù)讀寫性質(zhì)分別生成組合對象的輸入實例屬性和輸出實例屬性,將非周期性的更新的實例屬性全部列入?yún)?shù)對象實例屬性中;DeviceNet連接對象生產(chǎn)和消費路徑配置為組合對象的輸入實例數(shù)據(jù)屬性項和輸出實例數(shù)據(jù)屬性項;⑥、根據(jù)DeviceNet應(yīng)用對象(4)實例屬性對應(yīng)的協(xié)議映射區(qū)(8)數(shù)據(jù)單元屬性,當DeviceNet有輸出I/O數(shù)據(jù)或?qū)戄敵鰠?shù)時,將該操作轉(zhuǎn)換為協(xié)議映射區(qū)命令區(qū)的命令信息;然后通過查詢Modbus掃描列表,獲取對應(yīng)記錄項,生成Modbus報文,響應(yīng)正確后,更新協(xié)議映射區(qū)該單元數(shù)據(jù)。
3.根據(jù)權(quán)利要求1所述的Modbus與DeviceNet間的協(xié)議轉(zhuǎn)換方法,其特征在于所述的配置文件(1)包含Modbus通訊口的通訊模式和波特率參數(shù)、DeviceNet設(shè)備信息和協(xié)議映射區(qū)單元屬性;所述的單元屬性(2)包含Modbus地址、讀寫性質(zhì)、是否周期性操作、單元字節(jié)數(shù);所述的協(xié)議映射區(qū)(8)包括數(shù)據(jù)區(qū)和命令區(qū),數(shù)據(jù)區(qū)以單元為單位;命令區(qū)包含狀態(tài)字、單元號和數(shù)據(jù)寄存器;所述的DeviceNet路徑配置文件(3)由單元屬性(2)生成,包括應(yīng)用對象類號、組合對象實例屬性列表、參數(shù)對象實例屬性列表、連接對象實例路徑;所述的Modbus掃描列表(5)包括周期性掃描列表和非周期性掃描列表,由配置文件(1)生成。DeviceNet輸出命令轉(zhuǎn)換用來執(zhí)行DeviceNet設(shè)備的類3傳輸服務(wù)和I/O輸出,將它們轉(zhuǎn)換為協(xié)議映射區(qū)(8)的命令區(qū)信息;構(gòu)建所述的DeviceNet應(yīng)用對象(4)由用戶的配置文件(1)定義,其屬性內(nèi)容與協(xié)議映射區(qū)(8)數(shù)據(jù)單元一一對應(yīng)。
4.根據(jù)權(quán)利要求1所述的Modbus與DeviceNet間的協(xié)議轉(zhuǎn)換方法,其特征在于將一個或多個Modbus從站直接轉(zhuǎn)換為具有相同特征的一個或多個DeviceNet對象,從DeviceNet接口看,可完全視為一個完整的具體DeviceNet設(shè)備,而不僅僅是一些打包的I/O數(shù)據(jù)。
全文摘要
本發(fā)明涉及一種Modbus與DeviceNet間的協(xié)議轉(zhuǎn)換方法。它是采用Modbus總線通過RS485總線接口與微處理器連接,DeviceNet總線通過CAN收發(fā)器和控制器與微處理器連接,微處理器還連接EEPROM和數(shù)據(jù)、程序存儲器,構(gòu)建起協(xié)議轉(zhuǎn)換硬件平臺,并采用本發(fā)明提供的Modbus與DeviceNet間的協(xié)議轉(zhuǎn)換模型,實現(xiàn)Modbus與DeviceNet間的協(xié)議轉(zhuǎn)換,實現(xiàn)將Modbus設(shè)備以DeviceNet對象的形態(tài),作為DeviceNet從站接入DeviceNet網(wǎng)絡(luò)。
文檔編號H04L29/06GK1728703SQ20051002727
公開日2006年2月1日 申請日期2005年6月29日 優(yōu)先權(quán)日2005年6月29日
發(fā)明者費敏銳, 付敬奇, 王海寬, 陳維剛, 丁鐵勇 申請人:上海大學