《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 其他 > 設(shè)計(jì)應(yīng)用 > 紫金橋的新版Modbus服務(wù)器介紹
紫金橋的新版Modbus服務(wù)器介紹
摘要: 紫金橋軟件不僅可以從外部的設(shè)備或程序采集數(shù)據(jù)到實(shí)時(shí)數(shù)據(jù)庫(kù),同時(shí)為了良好的開(kāi)放性,也必須能夠提供一些通用的外部接口,讓其它的系統(tǒng)可以采集自己內(nèi)部的數(shù)據(jù)。為了這一個(gè)目的,紫金橋系統(tǒng)提供了DDE和OPC等對(duì)外接口。
Abstract:
Key words :

紫金橋軟件不僅可以從外部的設(shè)備或程序采集數(shù)據(jù)到實(shí)時(shí)數(shù)據(jù)庫(kù),同時(shí)為了良好的開(kāi)放性,也必須能夠提供一些通用的外部接口,讓其它的系統(tǒng)可以采集自己內(nèi)部的數(shù)據(jù)。為了這一個(gè)目的,紫金橋系統(tǒng)提供了DDE和OPC等對(duì)外接口。但是這兩種接口有一些缺點(diǎn),那就是對(duì)客戶端要求較高,一般來(lái)說(shuō)只有復(fù)雜的軟件系統(tǒng)才能夠通過(guò)這兩種接口采集紫金橋內(nèi)部的數(shù)據(jù)。而很多相對(duì)簡(jiǎn)單的系統(tǒng)或功能比較固定的系統(tǒng),卻沒(méi)有可以使用的數(shù)據(jù)接口。比如,一些簡(jiǎn)單程序、PLC或一些DCS等都要求能有一個(gè)相對(duì)簡(jiǎn)單的接口,來(lái)采集紫金橋內(nèi)部的數(shù)據(jù)。Modbus服務(wù)器的出現(xiàn),就解決了這類(lèi)問(wèn)題。

Modbus協(xié)議最早是莫迪康公司的PLC設(shè)備支持的一種協(xié)議,用于完成上位機(jī)與PLC設(shè)備的通訊過(guò)程。后來(lái)因?yàn)镸odbus協(xié)議的通用性、可靠性,現(xiàn)在許多其它的儀表和各種控制系統(tǒng)也都使用此協(xié)議進(jìn)行通訊。所以Modbus服務(wù)器出現(xiàn)后,紫金橋系統(tǒng)的開(kāi)發(fā)性大大的提高了,很多儀表或控制系統(tǒng)都可以通過(guò)Modbus協(xié)議采集紫金橋系統(tǒng)的內(nèi)部數(shù)據(jù)。

紫金橋的Modbus服務(wù)器從1.0開(kāi)始到3.1版本,功能不斷提升,但是都只能仿真一個(gè)Modbus設(shè)備的HR區(qū)域。新的紫金橋Modbus服務(wù)器為4.0版本,它無(wú)論在界面上,還是功能上都有了很大的提高。80%以上的代碼都使用.NET開(kāi)發(fā)工具進(jìn)行了重寫(xiě)?,F(xiàn)在紫金橋Modbus服務(wù)器已經(jīng)可以把實(shí)時(shí)數(shù)據(jù)庫(kù)中的數(shù)據(jù)映射為任意數(shù)量的Modbus設(shè)備的所有區(qū)域。

下面將介紹一下紫金橋新版Modbus服務(wù)器的一些特性。

    紫金橋新版服務(wù)器是使用VC++.Net重新開(kāi)發(fā)的,界面更加美觀,使用更加方便。 紫金橋新版服務(wù)器可以同時(shí)支持多個(gè)地址的映射,也就是說(shuō)可以把實(shí)時(shí)數(shù)據(jù)庫(kù)中的數(shù)據(jù)一部分映射為地址1的Modbus設(shè)備,一部分映射為地址2的Modbus設(shè)備等等。 紫金橋新版服務(wù)器可以同時(shí)支持多種通訊介質(zhì)的映射,比如以太網(wǎng)和串口。 紫金橋新版服務(wù)器可以同時(shí)映射Modbus設(shè)備的所有區(qū)域,包括DI、DO、HR和AR區(qū)。 紫金橋新版服務(wù)器可以同時(shí)映射多種數(shù)據(jù)格式,包括16位無(wú)符號(hào)數(shù)、16位有符號(hào)數(shù)、32位無(wú)符號(hào)數(shù)、32位有符號(hào)數(shù)和32位浮點(diǎn)數(shù)。

紫金橋新版服務(wù)器分為服務(wù)器的配置程序和運(yùn)行程序,下面分別給于簡(jiǎn)單的介紹。

    Modbus服務(wù)器的配置程序

Modbus服務(wù)器的配置程序在紫金橋軟件的安裝目錄中,名為ModbusSerSet.exe,運(yùn)行時(shí)的界面如下圖所示:

Modbus服務(wù)器運(yùn)行的時(shí)候,把紫金橋的數(shù)據(jù)庫(kù)點(diǎn)映射到Modbus中的寄存器區(qū)域中,運(yùn)行時(shí)的邏輯結(jié)構(gòu)如下所示:

使用Modbus服務(wù)器配置程序的工具條或菜單就可以定義通訊介質(zhì)和通訊設(shè)備,如下圖所示:

此工具條的前4個(gè)按鈕是定義、修改或刪除通道(也就是通訊介質(zhì))的,后三個(gè)按鈕是進(jìn)行設(shè)備相關(guān)操作的。

比如下圖是定義串口通道的對(duì)話框

下圖是設(shè)備屬性設(shè)置對(duì)話框:

當(dāng)增加了一個(gè)設(shè)備之后,該設(shè)備就自動(dòng)地?fù)碛辛?個(gè)區(qū)域,分別是DI、DO、AR、HR區(qū)域。它們和Modbus命令的對(duì)應(yīng)關(guān)系如下表所示:

區(qū)域

對(duì)應(yīng)的可以操作該區(qū)域的Modbus命令號(hào)

DI

2號(hào)命令讀取

DO

1號(hào)命令讀取,5號(hào)命令下置

AR

4號(hào)命令讀取

HR

3號(hào)命令讀取,6號(hào)命令下置一個(gè)地址,16號(hào)下置多個(gè)地址。

 

當(dāng)定義完通道和設(shè)備之后就可以給設(shè)備增加寄存器了。

可以使用紫金橋Modbus服務(wù)器設(shè)置程序的右側(cè)的、來(lái)增加、修改或刪除寄存器。

寄存器的屬性對(duì)話框如下圖所示:

當(dāng)區(qū)域是DI或DO區(qū)域的時(shí)候,只可以選擇開(kāi)關(guān)量格式。當(dāng)區(qū)域選擇了AR或HR區(qū)域后,可以選擇如下的數(shù)據(jù)格式:

數(shù)據(jù)格式

數(shù)據(jù)范圍

占用地址個(gè)數(shù)

16位有符號(hào)數(shù)

-32768到32767

1

16位無(wú)符號(hào)數(shù)

0到65535

1

32位有符號(hào)數(shù)

-2147483648到2147483647

2

32位無(wú)符號(hào)數(shù)

0到4294967295

2

32位浮點(diǎn)數(shù)

1.4e-45 到 3.4e+38

2

 

在定義寄存器的過(guò)程中可能需要調(diào)整寄存器的排列,此時(shí)可以使用來(lái)進(jìn)行調(diào)整。

紫金橋Modbus服務(wù)器支持寄存器的批量導(dǎo)入導(dǎo)出功能,同老版本相比,導(dǎo)入導(dǎo)出的文件格式更加清晰易懂。

選擇工具條,就可以把當(dāng)前的內(nèi)容導(dǎo)出為txt文件。

文件的格式如下面Excel表格所示:

意義如下:

第一列是通道名稱(chēng),Com1表示通道是串口的,串口號(hào)為1,Net502表示通道是以太網(wǎng),端口為502。

第二列是設(shè)備名稱(chēng),Dev1表示設(shè)備的地址為1。

第三列是區(qū)域名稱(chēng),可以為,DI、DO、AR、HR。

第四列是紫金橋數(shù)據(jù)庫(kù)中的點(diǎn)名,注意需要包括參數(shù)名。

第五列是該寄存器的地址,從0開(kāi)始。

第六列為數(shù)據(jù)格式,可以為BOOL、WORD等,對(duì)應(yīng)關(guān)系見(jiàn)下表:

列內(nèi)容

數(shù)據(jù)格式

數(shù)據(jù)范圍

占地址個(gè)數(shù)

BOOL

開(kāi)關(guān)量

0或1

1

SHORT

16位有符號(hào)數(shù)

-32768到32767

1

WORD

16位無(wú)符號(hào)數(shù)

0到65535

1

INT

32位有符號(hào)數(shù)

-2147483648到2147483647

2

DWORD

32位無(wú)符號(hào)數(shù)

0到4294967295

2

FLOAT

32位浮點(diǎn)數(shù)

1.4e-45 到 3.4e+38

2

 

通過(guò)Excel,結(jié)合紫金橋軟件的點(diǎn)組態(tài)界面的導(dǎo)出到Excel編輯的功能,可以快速的生成此表格。然后使用批量導(dǎo)入功能,就可以迅速的創(chuàng)建大量的寄存器。

 

    Modbus服務(wù)器的運(yùn)行

紫金橋的Modbus服務(wù)器運(yùn)行程序在紫金橋軟件的安裝目錄中,名稱(chēng)為ModbusServer.exe,運(yùn)行時(shí)的界面如下圖所示:

右側(cè)是信息顯示區(qū),共有3個(gè)標(biāo)簽,它們的意義如下所示:

    系統(tǒng)信息

系統(tǒng)信息頁(yè)面顯示系統(tǒng)的總體的運(yùn)行情況,包括顯示的版本號(hào),系統(tǒng)啟動(dòng)的時(shí)間,系統(tǒng)連接的數(shù)據(jù)庫(kù)點(diǎn)個(gè)數(shù),和數(shù)據(jù)庫(kù)連接的情況,以及各個(gè)通道的運(yùn)行狀態(tài)。其中通道的運(yùn)行狀態(tài)中顯示通道的打開(kāi)情況,收發(fā)命令的字節(jié)數(shù),各個(gè)設(shè)備處理的讀寫(xiě)命令的個(gè)數(shù)。

 

    寄存器瀏覽

寄存器瀏覽頁(yè)面顯示寄存器的詳細(xì)信息,包括寄存器的當(dāng)前數(shù)值。此頁(yè)面中顯示的寄存器是由左側(cè)的導(dǎo)航樹(shù)來(lái)指定的,通過(guò)在導(dǎo)航樹(shù)上選擇不同的位置,就可以更新此處顯示的寄存器。

 

    通訊信息

通訊信息頁(yè)面,顯示了當(dāng)前的通道收發(fā)的具體的內(nèi)容,可以根據(jù)此內(nèi)容來(lái)診斷通訊的情況。它一次只能顯示一個(gè)通道的通訊情況,可以通過(guò)在左側(cè)導(dǎo)航樹(shù)上切換選擇的內(nèi)容來(lái)更新此處顯示的通道。

另外,缺省情況下,此處顯示的通訊信息是自動(dòng)向上滾動(dòng)的,如果為了方便觀察,可以把通訊的信息保存成文件,這可以通過(guò)選擇菜單“文件”項(xiàng)下面的“保存通訊信息”命令來(lái)實(shí)現(xiàn)。

 

    應(yīng)用實(shí)例

紫金橋新版的Modbus服務(wù)器的實(shí)際投用是在大慶的某水廠,當(dāng)時(shí)需要從多個(gè)支持Modbus協(xié)議的PLC中采集數(shù)據(jù)。但是由于已經(jīng)有系統(tǒng)通過(guò)GPRS同時(shí)采集這幾個(gè)PLC中的數(shù)據(jù),PLC的通訊通道已經(jīng)被占用。而采集數(shù)據(jù)的系統(tǒng)采集的數(shù)據(jù)較少,也比較緩慢,同時(shí)很難找到系統(tǒng)的制作人員來(lái)對(duì)系統(tǒng)進(jìn)行修改,所以也無(wú)法通過(guò)正在運(yùn)行的系統(tǒng)得到數(shù)據(jù)。最后使用紫金橋新版的Modbus服務(wù)器圓滿的解決了這個(gè)問(wèn)題。

采取的方案是,紫金橋首先采用Modbus驅(qū)動(dòng)從幾個(gè)PLC中獲得數(shù)據(jù),然后通過(guò)新版的Modbus服務(wù)器完全仿真了原來(lái)系統(tǒng)采集的PLC的通訊環(huán)境,讓原來(lái)的系統(tǒng)通過(guò)紫金橋新版的Modbus服務(wù)器來(lái)獲得數(shù)據(jù),由于新版Modbus服務(wù)器的靈活功能,使得原來(lái)的系統(tǒng)并不知道采集的已不是原來(lái)的幾個(gè)PLC了,仍然可以穩(wěn)定的獲得數(shù)據(jù)。

使用紫金橋新版的Modbus服務(wù)器后,紫金橋系統(tǒng)獲得了全面的實(shí)時(shí)變化的數(shù)據(jù),同時(shí)原來(lái)的系統(tǒng)仍然可以穩(wěn)定的獲得所希望的數(shù)據(jù),從而圓滿的完成了任務(wù)。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。