專利名稱:支持RS485&Modbus多主站數(shù)據(jù)采集的通信轉(zhuǎn)換器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及工業(yè)現(xiàn)場總線通信技術(shù)領(lǐng)域,實現(xiàn)了一種支持RS485&ModbuS多主站數(shù)據(jù)采集的通信轉(zhuǎn)換器。
背景技術(shù):
Modbus串行協(xié)議最初由Modicon公司在1979年提出的,是全球第一個真正用于工業(yè)現(xiàn)場的總線協(xié)議,現(xiàn)在已經(jīng)是工業(yè)領(lǐng)域全球最流行的通用工業(yè)標(biāo)準(zhǔn)協(xié)議之一。Modbus串行通信使用主-從技術(shù),即在一條RS485&Modbus總線上僅允許存在一個主站點與多個從站點間進行數(shù)字通信,Modbus的這種主-從通信協(xié)議決定了在任何時刻只能存在一個主站進行數(shù)據(jù)采集。
在工業(yè)生產(chǎn)過程控制或數(shù)據(jù)采集系統(tǒng)中,如不同的DCS系統(tǒng),PLC系統(tǒng)等,多個主站點需要同時從一條RS485&ModbuS總線上采集數(shù)據(jù)的情況很多,解決這種問題目前普遍的做法是讓一個站點作為主站點,在其采集數(shù)據(jù)后,再經(jīng)通訊發(fā)送到其它站點。但這種方法不能避免數(shù)據(jù)在中間環(huán)節(jié)會被人為篡改,無法保證數(shù)據(jù)的原始性和真實性,難以在對數(shù)據(jù)原始性和真實性要求很高的場合(如海關(guān)監(jiān)管)應(yīng)用。因而開發(fā)能夠?qū)崿F(xiàn)RS485&ModbuS多主站數(shù)據(jù)采集的通信轉(zhuǎn)換器,具有極高的應(yīng)用價值。
發(fā)明內(nèi)容
本發(fā)明提供的一種多主站RS485&Modbus數(shù)據(jù)采集設(shè)備,它能夠?qū)崿F(xiàn)多個主站同時采集一條RS485&ModbuS總線上的數(shù)據(jù),采用通用的硬件接口電路,具有實時性強、使用靈活等特點。為達到上述目的,本發(fā)明提供的一種支持RS485&Modbus多主站數(shù)據(jù)采集的通信轉(zhuǎn)換器,它包括ARM微處理器、電源/復(fù)位電路、備用鏈路、UI電路、SDRAM、NORFLASH、第一RS485&Modbus 接口、第二 RS485&Modbus 接口和第三 RS485&Modbus 接口,所述的電源 / 復(fù)位電路的信號輸出端與ARM微處理器的信號輸入端相連,ARM微處理器的信號輸出端與備用鏈路的信號輸入端相連,ARM微處理器還與UI電路、SDRAM、N0RFLASH、第一 RS485&Modbus接口、第二 RS485&Modbus 接口和第三 RS485&Modbus 接口相連接,其中第一 RS485&Modbus接口和第二 RS485&Modbus接口分別用于與兩主站相連,第三RS485&Modbus接口與現(xiàn)場儀表總線相連,所述的ARM微處理器包括配置文件模塊、從站A模塊、從站B模塊、采集數(shù)據(jù)模塊、采集管理模塊、Modbus協(xié)議棧模塊和主站模塊,所述的從站A模塊和從站B模塊分別與第一 RS485&Modbus接口和第二 RS485&Modbus接口相連,從相應(yīng)的主站采集命令信號,并將該命令信號下發(fā)到采集管理模塊,采集管理模塊將命令信號下發(fā)到主站模塊,主站模塊將采集到的命令信號通過第三RS485&Modbus接口下發(fā)到各個儀表,并從儀表讀取相應(yīng)的請求數(shù)據(jù),儀表數(shù)據(jù)通過采集管理模塊返回給采集數(shù)據(jù)模塊,采集數(shù)據(jù)模塊將返回的儀表數(shù)據(jù)寫入對應(yīng)的從站數(shù)據(jù)區(qū)。一種支持RS485&Modbus多主站數(shù)據(jù)采集的通信轉(zhuǎn)換器,它是通過如下步驟來實現(xiàn)的多個主站同時采集一條RS485&Modbus總線上的數(shù)據(jù)的
A、設(shè)備上電,電源/復(fù)位電路提供設(shè)備工作所需各路電源,運行NORFLASH中所固化軟件代碼,復(fù)位并運行系統(tǒng);
B、系統(tǒng)正常運行后,通過計算機對設(shè)備進行基本參數(shù)配置;
C、配置成功后,從站模塊A與從站模塊B通過不斷讀取其所對應(yīng)的RS485&Modbus接口數(shù)據(jù),來檢測所對應(yīng)主站是否有命令下發(fā);
D、若檢測到主站A或主站B有數(shù)據(jù)下發(fā),則將該數(shù)據(jù)接收后,存放于SDRAM,調(diào)用Modbus解析模塊,根據(jù)《GBZ 19582. 2-2004基于Modbus協(xié)議的工業(yè)自動化網(wǎng)絡(luò)規(guī)范》對該數(shù)據(jù)進行解析,若該數(shù)據(jù)為合法Modbus命令,則將該指令轉(zhuǎn)發(fā)至采集管理模塊,并等待該命令響應(yīng)幀;若檢測到主站A和B同時有數(shù)據(jù)下發(fā),則根據(jù)系統(tǒng)設(shè)置的優(yōu)先級來決定讀取的先后順序;
E、采集管理模塊將從站模塊A與從站模塊B所下發(fā)Modbus命令轉(zhuǎn)發(fā)至主站模塊,并等待主站模塊返回該命令響應(yīng)幀;
F、主站模塊將從采集管理模塊獲取的Modbus命令下發(fā)至儀表,等待儀表響應(yīng)后,從儀表讀取該Modbus命令的響應(yīng)幀,根據(jù)《GBZ 19582. 2-2004基于Modbus協(xié)議的工業(yè)自動化網(wǎng)絡(luò)規(guī)范》所規(guī)定校驗方法對該響應(yīng)幀校驗成功之后,將此Modbus命令響應(yīng)幀發(fā)送至采集管理模塊;
G、采集管理模塊將所讀取Modbus命令響應(yīng)幀發(fā)送至此幀所對應(yīng)的從站模塊;
H、從站模塊A與從站模塊B將Modbus將響應(yīng)幀發(fā)送至各自相應(yīng)的Modbus主站,并繼續(xù)檢測對應(yīng)主站是否有命令下發(fā),返回步驟D。所述的備用鏈路包括監(jiān)控電路和繼電器,所述的監(jiān)控電路的信號輸入端與ARM微處理器的信號輸出端相連,監(jiān)控電路的信號輸出端與繼電器的線圈a相連,繼電器的常開觸點b分別與ARM微處理器和第三RS485&Modbus接口相連接,繼電器的常閉觸點c分別與第一 RS485&Modbus接口和第三RS485&Modbus接口相連結(jié),當(dāng)系統(tǒng)異常時,ARM微處理器無信號輸出,線圈a斷電,常開觸點b斷開,常閉觸點c閉合,現(xiàn)場儀表總線與主站A直接相連,保證數(shù)據(jù)的正常采集。所述的UI電路上設(shè)置有指示燈,系統(tǒng)配置成功后,UI電路通過該指示燈通知用戶配置成功。所述的ARM微處理器采用的是AT91RM9200芯片。ARM微處理器負責(zé)整個通信轉(zhuǎn)換器的監(jiān)督與控制;·
電源/復(fù)位電路為通信轉(zhuǎn)換器提供電源與復(fù)位邏輯,其中復(fù)位電路在轉(zhuǎn)換器系統(tǒng)崩潰時實現(xiàn)外部復(fù)位功能;
備用鏈路在通信轉(zhuǎn)換器故障時,直接把與儀表通信的RS485&Modbus接口的兩根連線,通過中間繼電器的一對常閉觸點,自動切換至與主站設(shè)備通信的RS485&Modbus接口的總線上,提供臨時應(yīng)急通信措施;
UI電路為用戶提示設(shè)備運行時的各種工作狀態(tài);
SDRAM為系統(tǒng)運行提供內(nèi)存空間;
NORFLASH作為外部存儲器,為系統(tǒng)固化代碼、掉電保存數(shù)據(jù)提供存儲空間;
第一 RS485&Modbus接口和第二 RS485&Modbus接口負責(zé)與兩個主站設(shè)備通信,第三RS485&Modbus接口負責(zé)與遠程儀表通信;
配置文件模塊用于配置設(shè)備文件,配置文件包括儀表接口參數(shù),轉(zhuǎn)換器主口參數(shù),轉(zhuǎn)換器從口參數(shù)等,配置文件燒錄到NORFLASH中保存;采集數(shù)據(jù)模塊存儲主站模塊所采集的數(shù)據(jù);
采集管理模塊管理從站A模塊和從站B模塊下發(fā)的Modbus采集命令,并且管理主站采集的數(shù)據(jù),更新采集數(shù)據(jù)模塊內(nèi)的數(shù)據(jù);
Modbus協(xié)議棧模塊解析Modbus主站模塊以及從站A模塊和從站B模塊的通訊協(xié)議;主站模塊采取的是線程不斷輪詢從站A與從站B的命令區(qū);若發(fā)現(xiàn)命令區(qū)中存在有效命令,則將此命令下發(fā)至Modbus總線;在讀取到正確儀表數(shù)據(jù)后,將返回儀表的數(shù)據(jù)寫入對應(yīng)從站的數(shù)據(jù)區(qū)。本發(fā)明利用硬件電路和軟件電路相結(jié)合的方法實現(xiàn)了多主站的RS485&Modbus數(shù)據(jù)采集,具體而言,本發(fā)明具有以下有益效果
I.實現(xiàn)了兩個Modbus主站同時采集一條RS485&Modbus總線上的數(shù)據(jù)的功能,保證了每個站點采集數(shù)據(jù)的原始性和真實性,防止數(shù)據(jù)在中間環(huán)節(jié)被人為篡改。2.實現(xiàn)了在通信轉(zhuǎn)換器自身故障情況下,通過備用鏈路實現(xiàn)自動切換到主站的功倉泛。
圖I為支持RS485&Modbus多主站數(shù)據(jù)采集的通信轉(zhuǎn)換器應(yīng)用系統(tǒng)的結(jié)構(gòu)示意圖。圖2為支持RS485&Modbus多主站數(shù)據(jù)采集通信轉(zhuǎn)換器的模塊結(jié)構(gòu)圖。圖3為支持RS485&Modbus多主站數(shù)據(jù)采集通信轉(zhuǎn)換器的備用鏈路的結(jié)構(gòu)示意圖。圖4為支持RS485&Modbus多主站數(shù)據(jù)采集通信轉(zhuǎn)換器的工作流程圖。
具體實施例方式下面結(jié)合具體實例和附圖,對本發(fā)明進行詳細說明,本實施例中ARM微處理器采用 AT91RM9200、SDRAM 采用 K4S561632C、NORFLASH 采用 28F128J3A。如圖1、2所示,一種支持RS485&Modbus多主站數(shù)據(jù)采集的通信轉(zhuǎn)換器,它包括ARM微處理器、電源/復(fù)位電路、備用鏈路、UI電路、SDRAM、NORFLASH、第一 RS485&Modbus接口、第二 RS485&Modbus接口和第三RS485&Modbus接口,所述的電源/復(fù)位電路的信號輸出端與ARM微處理器的信號輸入端相連,ARM微處理器的信號輸出端與備用鏈路的信號輸入端相連,ARM微處理器還與UI電路、SDRAM、NORFLASH、第一 RS485&Modbus接口、第二RS485&Modbus接口和第三RS485&Modbus接口相連接,其中第一 RS485&Modbus接口和第二 RS485&Modbus接口分別用于與兩主站相連,第三RS485&Modbus接口與現(xiàn)場儀表總線相連,所述的ARM微處理器包括配置文件模塊、從站A模塊、從站B模塊、采集數(shù)據(jù)模塊、采集管理模塊、Modbus協(xié)議棧模塊和主站模塊,所述的從站A模塊和從站B模塊分別與第一RS485&Modbus接口和第二 RS485&Modbus接口相連,從相應(yīng)的主站采集命令信號,并將該命令信號下發(fā)到采集管理模塊,采集管理模塊將命令信號下發(fā)到主站模塊,主站模塊將采集到的命令信號通過第三RS485&Modbus接口下發(fā)到各個儀表,并從儀表讀取相應(yīng)的請求數(shù)據(jù),儀表數(shù)據(jù)通過采集管理模塊返回給采集數(shù)據(jù)模塊,采集數(shù)據(jù)模塊將返回的儀表數(shù)據(jù)寫入對應(yīng)的從站數(shù)據(jù)區(qū)。本實施例中以集散控制系統(tǒng)(DCS)作為主站A,可編程控制器(PLC)作為主站B同時從現(xiàn)場儀表采集數(shù)據(jù),儀表I、2…N等一般為現(xiàn)場儀表,如溫度傳感器、壓力傳感器、液位傳感器等。如圖3、4所示,當(dāng)設(shè)備上電后,電源/復(fù)位電路為整個設(shè)備提供工作所需的各路電源同時復(fù)位整個系統(tǒng),運行NORFLASH中所固化軟件代碼,運行系統(tǒng)。系統(tǒng)正常運行后,根據(jù)DCS、PLC以及儀表通訊相關(guān)參數(shù),通過人機接口對設(shè)備進行基本參數(shù)配置,初始化三組RS485&Modbus總線的波特率、數(shù)據(jù)位、校驗位、停止位等通訊參數(shù),配置成功后,UI電路通過指示燈通知用戶配置成功。配置成功后多主站Modbus數(shù)據(jù)采集通信轉(zhuǎn)換器中的從站模塊A與從站模塊B,通過不斷讀取其所對應(yīng)的RS485&Modbus接口數(shù)據(jù),來檢測所對應(yīng)主站是否有命令下發(fā);若檢測到主站A有數(shù)據(jù)下發(fā),將該數(shù)據(jù)接收后,存放于SDRAM,調(diào)用Modbus解析模塊,根據(jù)《GBZ19582. 2-2004基于Modbus協(xié)議的工業(yè)自動化網(wǎng)絡(luò)規(guī)范》對該數(shù)據(jù)進行解析,若該數(shù)據(jù)為合 法Modbus命令,則將該指令轉(zhuǎn)發(fā)至采集管理模塊,并等待該命令響應(yīng)幀;采集管理模塊依次將從站模塊A與從站模塊B所下發(fā)Modbus命令轉(zhuǎn)發(fā)至主站模塊,并等待主站模塊返回該命令響應(yīng)幀;主站模塊將從采集管理模塊所獲取的Modbus命令下發(fā)至儀表,等待儀表響應(yīng)時間之后,從儀表讀取該Modbus命令之響應(yīng)幀,根據(jù)《GBZ 19582. 2-2004基于Modbus協(xié)議的工業(yè)自動化網(wǎng)絡(luò)規(guī)范》所規(guī)定校驗方法對該響應(yīng)巾貞校驗成功之后,將此Modbus命令響應(yīng)幀發(fā)送至采集管理模塊;采集管理模塊將所讀取Modbus命令響應(yīng)幀發(fā)送至此幀所對應(yīng)的Modbus命令下發(fā)從站模塊;從站模塊A與從站模塊B將Modbus響應(yīng)巾貞發(fā)送至各自Modbus主站設(shè)備(DCS與PCL),并繼續(xù)檢測對應(yīng)主站是否有數(shù)據(jù)下發(fā)。備用鏈路包括監(jiān)控電路和繼電器,所述的監(jiān)控電路的信號輸入端與ARM微處理器的信號輸出端相連,監(jiān)控電路的信號輸出端與繼電器的線圈a相連,繼電器的常開觸點b分別與ARM微處理器和第三RS485&Modbus接口相連接,繼電器的常閉觸點c分別與第一RS485&Modbus接口和第三RS485&Modbus接口相連結(jié)。當(dāng)系統(tǒng)正常工作時,備用電路中的繼電器的常開觸點b處于閉合狀態(tài),常閉觸點c處于斷開狀態(tài);當(dāng)系統(tǒng)工作異常時,備用鏈路中的監(jiān)控電路接收不到來自ARM微處理器的信號,線圈a斷電,繼電器的常開觸點b斷開,常閉觸點c閉合,使主站A與現(xiàn)場儀表總線直接連接,保證主站A所對應(yīng)的DCS設(shè)備正常工作,實現(xiàn)數(shù)據(jù)的正常采集。
權(quán)利要求
1.支持RS485&Modbus多主站數(shù)據(jù)采集的通信轉(zhuǎn)換器,其特征在于,它包括ARM微處理器(I)、電源/復(fù)位電路(2)、備用鏈路(3)、UI電路(4)、SDRAM、NORFLASH、第一RS485&Modbus 接口(71)、第二 RS485&Modbus 接口(72)和第三 RS485&Modbus 接口(73),所述的電源/復(fù)位電路(2)的信號輸出端與ARM微處理器(I)的信號輸入端相連,ARM微處理器(I)的信號輸出端與備用鏈路(3)的信號輸入端相連,ARM微處理器(I)還與UI電路(4)、SDRAM、NORFLASH、第一 RS485&Modbus 接口(71)、第二 RS485&Modbus 接口(72)和第三RS485&Modbus 接口(73)相連接,其中第一 RS485&Modbus 接口(71)和第二 RS485&Modbus接口(72)分別用于與兩主站相連,第三RS485&Modbus接口(73)與現(xiàn)場儀表總線相連,所述的ARM微處理器(I)包括配置文件模塊、從站A模塊、從站B模塊、采集數(shù)據(jù)模塊、采集管理模塊、Modbus協(xié)議棧模塊和主站模塊,所述的從站A模塊和從站B模塊分別與第一RS485&Modbus接口(71)和第二 RS485&Modbus接口(72)相連,從相應(yīng)的主站采集命令信號,并將該命令信號下發(fā)到采集管理模塊,采集管理模塊將命令信號下發(fā)到主站模塊,主站模塊將采集到的命令信號通過第三RS485&Modbus接口下發(fā)到各個儀表,并從儀表讀取相應(yīng)的請求數(shù)據(jù),儀表數(shù)據(jù)通過采集管理模塊返回給采集數(shù)據(jù)模塊,采集數(shù)據(jù)模塊將返回的儀表數(shù)據(jù)寫入對應(yīng)的從站數(shù)據(jù)區(qū)。
2.支持RS485&ModbuS多主站數(shù)據(jù)采集的通信轉(zhuǎn)換器,其特征在于它是通過如下步驟來實現(xiàn)的多個主站同時采集一條RS485&Modbus總線上的數(shù)據(jù)的 A、設(shè)備上電,電源/復(fù)位電路(2)提供設(shè)備工作所需各路電源,運行NORFLASH中所固化軟件代碼,復(fù)位并運行系統(tǒng); B、系統(tǒng)正常運行后,通過計算機對設(shè)備進行基本參數(shù)配置; C、配置成功后,從站模塊A與從站模塊B通過不斷讀取其所對應(yīng)的RS485&Modbus接口數(shù)據(jù),來檢測所對應(yīng)主站是否有命令下發(fā); D、若檢測到主站A或主站B有數(shù)據(jù)下發(fā),則將該數(shù)據(jù)接收后,存放于SDRAM,調(diào)用Modbus解析模塊,根據(jù)《GBZ 19582. 2-2004基于Modbus協(xié)議的工業(yè)自動化網(wǎng)絡(luò)規(guī)范》對該數(shù)據(jù)進行解析,若該數(shù)據(jù)為合法Modbus命令,則將該指令轉(zhuǎn)發(fā)至采集管理模塊,并等待該命令響應(yīng)幀;若檢測到主站A和B同時有數(shù)據(jù)下發(fā),則根據(jù)系統(tǒng)設(shè)置的優(yōu)先級來決定讀取的先后順序; E、采集管理模塊將從站模塊A與從站模塊B所下發(fā)Modbus命令轉(zhuǎn)發(fā)至主站模塊,并等待主站模塊返回該命令響應(yīng)幀; F、主站模塊將從采集管理模塊獲取的Modbus命令下發(fā)至儀表,等待儀表響應(yīng)后,從儀表讀取該Modbus命令的響應(yīng)幀,根據(jù)《GBZ 19582. 2-2004基于Modbus協(xié)議的工業(yè)自動化網(wǎng)絡(luò)規(guī)范》所規(guī)定校驗方法對該響應(yīng)幀校驗成功之后,將此Modbus命令響應(yīng)幀發(fā)送至采集管理模塊; G、采集管理模塊將所讀取Modbus命令響應(yīng)幀發(fā)送至此幀所對應(yīng)的從站模塊; H、從站模塊A與從站模塊B將Modbus將響應(yīng)幀發(fā)送至各自相應(yīng)的Modbus主站,并繼續(xù)檢測對應(yīng)主站是否有命令下發(fā),返回步驟D。
3.根據(jù)權(quán)利要求I所述的一種支持RS485&ModbuS多主站數(shù)據(jù)采集的通信轉(zhuǎn)換器,其特征在于所述的備用鏈路(3)包括監(jiān)控電路和繼電器,所述的監(jiān)控電路的信號輸入端與ARM微處理器的信號輸出端相連,監(jiān)控電路的信號輸出端與繼電器的線圈a相連,繼電器的常開觸點b分別與ARM微處理器和第三RS485&Modbus接口(73)相連接,繼電器的常閉觸點c分別與第一 RS485&Modbus接口(71)和第三RS485&Modbus接口(73)相連結(jié),當(dāng)系統(tǒng)異常時,ARM微處理器無信號輸出,線圈a斷電,常開觸點b斷開,常閉觸點c閉合,現(xiàn)場儀表總線與主站A直接相連,保證數(shù)據(jù)的正常采集。
4.根據(jù)權(quán)利要求I所述的一種支持RS485&Modbus多主站數(shù)據(jù)采集的通信轉(zhuǎn)換器,其特征在于所述的Π電路(4)上設(shè)置有指示燈,系統(tǒng)配置成功后,UI電路(4)通過該指示燈通知用戶配置成功。
5.根據(jù)權(quán)利要求I所述的一種支持RS485&ModbuS多主站數(shù)據(jù)采集的通信轉(zhuǎn)換器,其特征在于所述的ARM微處理器(I)采用的是AT91RM9200芯片。
全文摘要
一種支持RS485&Modbus多主站數(shù)據(jù)采集的通信轉(zhuǎn)換器,它包括ARM微處理器、電源/復(fù)位電路、備用鏈路、UI電路、SDRAM、NORFLASH、第一RS485&Modbus接口、第二RS485&Modbus接口和第三RS485&Modbus接口,所述的電源/復(fù)位電路的信號輸出端與ARM微處理器的信號輸入端相連,所述的ARM微處理器的信號輸出端與備用鏈路的信號輸入端相連,ARM微處理器還與UI電路、SDRAM、NORFLASH、第一RS485&Modbus接口、第二RS485&Modbus接口和第三RS485&Modbus接口相連接。該轉(zhuǎn)換器以ARM微處理器為核心,配合外圍硬件接口電路,實現(xiàn)了2個主站設(shè)備同時采集一條RS485&Modbus總線上的數(shù)據(jù),從而保證每個主站所采集的數(shù)據(jù)原始、真實。
文檔編號H04L12/40GK102932222SQ20121038747
公開日2013年2月13日 申請日期2012年10月15日 優(yōu)先權(quán)日2012年10月15日
發(fā)明者張良朝, 陳夕松, 璩澤剛, 王家渠, 張樂 申請人:南京富島信息工程有限公司