紫金橋軟件不僅可以從外部的設(shè)備或程序采集數(shù)據(jù)到實(shí)時(shí)數(shù)據(jù)庫,,同時(shí)為了良好的開放性,,也必須能夠提供一些通用的外部接口,,讓其它的系統(tǒng)可以采集自己內(nèi)部的數(shù)據(jù),。為了這一個(gè)目的,紫金橋系統(tǒng)提供了DDE和OPC等對(duì)外接口,。但是這兩種接口有一些缺點(diǎn),,那就是對(duì)客戶端要求較高,一般來說只有復(fù)雜的軟件系統(tǒng)才能夠通過這兩種接口采集紫金橋內(nèi)部的數(shù)據(jù),。而很多相對(duì)簡(jiǎn)單的系統(tǒng)或功能比較固定的系統(tǒng),,卻沒有可以使用的數(shù)據(jù)接口。比如,,一些簡(jiǎn)單程序,、PLC或一些DCS等都要求能有一個(gè)相對(duì)簡(jiǎn)單的接口,來采集紫金橋內(nèi)部的數(shù)據(jù),。Modbus服務(wù)器的出現(xiàn),,就解決了這類問題。
Modbus協(xié)議最早是莫迪康公司的PLC設(shè)備支持的一種協(xié)議,,用于完成上位機(jī)與PLC設(shè)備的通訊過程,。后來因?yàn)镸odbus協(xié)議的通用性、可靠性,,現(xiàn)在許多其它的儀表和各種控制系統(tǒng)也都使用此協(xié)議進(jìn)行通訊,。所以Modbus服務(wù)器出現(xiàn)后,紫金橋系統(tǒng)的開發(fā)性大大的提高了,,很多儀表或控制系統(tǒng)都可以通過Modbus協(xié)議采集紫金橋系統(tǒng)的內(nèi)部數(shù)據(jù),。
紫金橋的Modbus服務(wù)器從1.0開始到3.1版本,功能不斷提升,,但是都只能仿真一個(gè)Modbus設(shè)備的HR區(qū)域,。新的紫金橋Modbus服務(wù)器為4.0版本,它無論在界面上,,還是功能上都有了很大的提高,。80%以上的代碼都使用.NET開發(fā)工具進(jìn)行了重寫。現(xiàn)在紫金橋Modbus服務(wù)器已經(jīng)可以把實(shí)時(shí)數(shù)據(jù)庫中的數(shù)據(jù)映射為任意數(shù)量的Modbus設(shè)備的所有區(qū)域,。
下面將介紹一下紫金橋新版Modbus服務(wù)器的一些特性,。
-
紫金橋新版服務(wù)器是使用VC++.Net重新開發(fā)的,界面更加美觀,,使用更加方便,。 紫金橋新版服務(wù)器可以同時(shí)支持多個(gè)地址的映射,也就是說可以把實(shí)時(shí)數(shù)據(jù)庫中的數(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位無符號(hào)數(shù),、16位有符號(hào)數(shù),、32位無符號(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ù)庫點(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è)的,、或來增加、修改或刪除寄存器,。
寄存器的屬性對(duì)話框如下圖所示:
當(dāng)區(qū)域是DI或DO區(qū)域的時(shí)候,,只可以選擇開關(guān)量格式。當(dāng)區(qū)域選擇了AR或HR區(qū)域后,,可以選擇如下的數(shù)據(jù)格式:
數(shù)據(jù)格式 |
數(shù)據(jù)范圍 |
占用地址個(gè)數(shù) |
16位有符號(hào)數(shù) |
-32768到32767 |
1 |
16位無符號(hào)數(shù) |
0到65535 |
1 |
32位有符號(hào)數(shù) |
-2147483648到2147483647 |
2 |
32位無符號(hào)數(shù) |
0到4294967295 |
2 |
32位浮點(diǎn)數(shù) |
1.4e-45 到 3.4e+38 |
2 |
在定義寄存器的過程中可能需要調(diào)整寄存器的排列,,此時(shí)可以使用或來進(jìn)行調(diào)整,。
紫金橋Modbus服務(wù)器支持寄存器的批量導(dǎo)入導(dǎo)出功能,同老版本相比,,導(dǎo)入導(dǎo)出的文件格式更加清晰易懂,。
選擇工具條,就可以把當(dāng)前的內(nèi)容導(dǎo)出為txt文件,。
文件的格式如下面Excel表格所示:
意義如下:
第一列是通道名稱,,Com1表示通道是串口的,串口號(hào)為1,,Net502表示通道是以太網(wǎng),,端口為502。
第二列是設(shè)備名稱,,Dev1表示設(shè)備的地址為1,。
第三列是區(qū)域名稱,可以為,,DI,、DO、AR,、HR,。
第四列是紫金橋數(shù)據(jù)庫中的點(diǎn)名,注意需要包括參數(shù)名,。
第五列是該寄存器的地址,,從0開始。
第六列為數(shù)據(jù)格式,,可以為BOOL,、WORD等,對(duì)應(yīng)關(guān)系見下表:
列內(nèi)容 |
數(shù)據(jù)格式 |
數(shù)據(jù)范圍 |
占地址個(gè)數(shù) |
BOOL |
開關(guān)量 |
0或1 |
1 |
SHORT |
16位有符號(hào)數(shù) |
-32768到32767 |
1 |
WORD |
16位無符號(hào)數(shù) |
0到65535 |
1 |
INT |
32位有符號(hào)數(shù) |
-2147483648到2147483647 |
2 |
DWORD |
32位無符號(hào)數(shù) |
0到4294967295 |
2 |
FLOAT |
32位浮點(diǎn)數(shù) |
1.4e-45 到 3.4e+38 |
2 |
通過Excel,,結(jié)合紫金橋軟件的點(diǎn)組態(tài)界面的導(dǎo)出到Excel編輯的功能,,可以快速的生成此表格。然后使用批量導(dǎo)入功能,,就可以迅速的創(chuàng)建大量的寄存器,。
-
Modbus服務(wù)器的運(yùn)行
紫金橋的Modbus服務(wù)器運(yùn)行程序在紫金橋軟件的安裝目錄中,名稱為ModbusServer.exe,,運(yùn)行時(shí)的界面如下圖所示:
右側(cè)是信息顯示區(qū),,共有3個(gè)標(biāo)簽,它們的意義如下所示:
-
系統(tǒng)信息
系統(tǒng)信息頁面顯示系統(tǒng)的總體的運(yùn)行情況,,包括顯示的版本號(hào),,系統(tǒng)啟動(dòng)的時(shí)間,系統(tǒng)連接的數(shù)據(jù)庫點(diǎn)個(gè)數(shù),和數(shù)據(jù)庫連接的情況,,以及各個(gè)通道的運(yùn)行狀態(tài),。其中通道的運(yùn)行狀態(tài)中顯示通道的打開情況,收發(fā)命令的字節(jié)數(shù),,各個(gè)設(shè)備處理的讀寫命令的個(gè)數(shù),。
-
寄存器瀏覽
寄存器瀏覽頁面顯示寄存器的詳細(xì)信息,包括寄存器的當(dāng)前數(shù)值,。此頁面中顯示的寄存器是由左側(cè)的導(dǎo)航樹來指定的,,通過在導(dǎo)航樹上選擇不同的位置,,就可以更新此處顯示的寄存器,。
-
通訊信息
通訊信息頁面,顯示了當(dāng)前的通道收發(fā)的具體的內(nèi)容,,可以根據(jù)此內(nèi)容來診斷通訊的情況,。它一次只能顯示一個(gè)通道的通訊情況,可以通過在左側(cè)導(dǎo)航樹上切換選擇的內(nèi)容來更新此處顯示的通道,。
另外,,缺省情況下,此處顯示的通訊信息是自動(dòng)向上滾動(dòng)的,,如果為了方便觀察,,可以把通訊的信息保存成文件,這可以通過選擇菜單“文件”項(xiàng)下面的“保存通訊信息”命令來實(shí)現(xiàn),。
-
應(yīng)用實(shí)例
紫金橋新版的Modbus服務(wù)器的實(shí)際投用是在大慶的某水廠,,當(dāng)時(shí)需要從多個(gè)支持Modbus協(xié)議的PLC中采集數(shù)據(jù)。但是由于已經(jīng)有系統(tǒng)通過GPRS同時(shí)采集這幾個(gè)PLC中的數(shù)據(jù),,PLC的通訊通道已經(jīng)被占用,。而采集數(shù)據(jù)的系統(tǒng)采集的數(shù)據(jù)較少,也比較緩慢,,同時(shí)很難找到系統(tǒng)的制作人員來對(duì)系統(tǒng)進(jìn)行修改,,所以也無法通過正在運(yùn)行的系統(tǒng)得到數(shù)據(jù)。最后使用紫金橋新版的Modbus服務(wù)器圓滿的解決了這個(gè)問題,。
采取的方案是,,紫金橋首先采用Modbus驅(qū)動(dòng)從幾個(gè)PLC中獲得數(shù)據(jù),然后通過新版的Modbus服務(wù)器完全仿真了原來系統(tǒng)采集的PLC的通訊環(huán)境,,讓原來的系統(tǒng)通過紫金橋新版的Modbus服務(wù)器來獲得數(shù)據(jù),,由于新版Modbus服務(wù)器的靈活功能,使得原來的系統(tǒng)并不知道采集的已不是原來的幾個(gè)PLC了,,仍然可以穩(wěn)定的獲得數(shù)據(jù),。
使用紫金橋新版的Modbus服務(wù)器后,紫金橋系統(tǒng)獲得了全面的實(shí)時(shí)變化的數(shù)據(jù),同時(shí)原來的系統(tǒng)仍然可以穩(wěn)定的獲得所希望的數(shù)據(jù),,從而圓滿的完成了任務(wù),。