modbus協議8篇

時間:2022-03-09 22:24:46

緒論:在尋找寫作靈感嗎?愛發表網為您精選了8篇modbus協議,愿這些內容能夠啟迪您的思維,激發您的創作熱情,歡迎您的閱讀與分享!

modbus協議

篇1

關鍵詞:STC89C52 通訊協議 Delphi Firbird

1節點設計以及網絡組成

1.1本系統主控芯片采用宏晶科技STC89C52單片機,與其它CPU芯片相比,具有顯著特點,加密性強,超低功耗,速度快,可靠性高,驅動能力強,抗靜電和抗干擾能力強。

1.2DS18B20傳感器

DS18B20是美國DALLAS公司生產的一線式數字式溫度計芯片,它具有結構簡單,不需外接元件,測量溫度范圍在-55°C—+125°C之間。采用一根I/O數據線既可供電又可傳輸數據、并可由用戶設置溫度報警界限等特點,可廣泛用于食品庫、冷庫、糧庫等需要控制溫度的地方。

1.3網絡節點設計

網絡節點結構示意圖

1.4網絡組成

該控制網由PC機和若干分節點組成,PC機主要負責輪詢各分站點數據,發送請求數據包和控制數據包,然后分節點判斷數據包,根據相應的指令通過RS232接口把數據發送給PC機,最大站點數可設50個節點,PC機對采集的數據進行分析處理。

2 控制網絡通訊協議

2.1簡單節點流程示意圖

本控制網采用同一程序,通過面板按鍵設置本機的分節點地址,節點開始上電,CPU開始初始化I/O、串口等模塊,接著根據設置的參數讀取操作站點,從而執行相應的程序并分析數據,數據正確,進行正常顯示,否則PC機根據不同的報警信息發出聲光報警。

簡單節點流程示意圖如下

2.2數據包格式

通訊參數:波特率:1200,數據位為1,數據位為8,停止位為1,校驗位為1,方式采用主從式通訊,計算機為主機,各下位分機為從機。主機先發數據請求命令,只有符合地址條件的從機才回傳或接收數據,在數據傳輸中,為提高系統的可靠性和實用性,要求傳送的數據包盡可能短,并且傳送的信息量要大。

2.2.1請求數據包

本數據包用于PC機向分節點請求數據使用。請求數據包格式如下:長度為4個字節數,首位碼、讀標志、目的地址、數據量均為一個字節數。

2.2.2回送數據

本數據包用于分節點發送PC機所請求的數據,回送的數據包長度可以根據發送的指令而變,根據PC機發送的請求,數據包回送PC機所請求的數據。

回送數據包格式如下:首位碼、地址均為1個字節數,回送數據根據發送指令確定字節數,備用字節、校驗碼為兩個字節數。

2.2.3控制數據包

本數據包主要用于PC機向分節點發送數據使用。控制數據包格式如下:長度為5個字節數,首位碼、寫標志、目的地址均為1個字節數,數據量為2個字節數。

2.2.4協議的實現及應用

在設計基于RS-485的分布式測控系統時,在上位機呼叫下位機地址之后就可以利用本協議的規范來設計具體的通信流程。 基于本協議的通信可以有兩種機制。一種是面向握手的,即每發出一幀,總是要等待確認幀,否則將認為是通信出錯。這是一種可靠的通信方式,適合傳輸系統命令和一些非常重要的系統參數。另一種是無握手的,即發送方假設接收方總是接收正確,從而無須等待確認幀就不停地發送,適合大量前端采集數據的發送。這種機制的優點是發送過程簡 單、快速,缺點是不能保證傳輸過程的可靠性。

本協議利用握手通訊方式已經成功地運用到多個冷庫、糧庫監測系統中,不僅簡化了通信程序的設計,而且保證了通信的高效和可靠。下位機負責現場的溫度的采樣和存儲,上位機負責循環呼叫下位機,以了解現場情況是否正常,并且每隔一定時間收集下位機存儲的數據并對數據進行分析管理。

2.3通訊的可靠性

本系統采用主從結構,利用PC機輪詢各節點,能有效解決網絡沖突問題。傳輸數據增加了冗余,并且在所傳送的數據中進行了硬件的循環冗余校驗。

3 結束語

本系統上位機軟件采用Delphi開發,數據庫采用Firbird,上位機設計分為組態部分和監控運行部分,可視化直觀的界面操作,組態方便,可根據分節點所接傳感器數量不同,自由分配通道,利用上位機強大的數據處理能力,進行數據分析和處理,可對各節點進行數據顯示、上下限報警、實時趨勢顯示,具有很大的實際應用價值。

參考文獻:

篇2

關鍵詞 MODBUS協議;DCS系統;PLC系統;通訊應用

中圖分類號TN91 文獻標識碼A 文章編號 1674-6708(2013)82-0188-02

DCS系統以及PLC系統以其獨特優勢而被各行各業廣泛應用,為實現生產的經濟高效、節能環保提供了可靠的基礎保障。但DCS系統與PLC系統之間的通訊始終是工程生產的重點問題,本文對MODBUS協議基礎上,實現DCS系統與PLC系統之間的通訊進行分析與探討,以其對工程生產提供幫助。

1 系統組成

1.1 通訊系統

Modbus通訊協議是一種通用的電子控制器應用語言,可利用網絡或其它設備實現控制器之間的通訊,Modbus協議可以在忽略控制器通信方式的前提下,對其所能認識與使用的消息結構做出定義,是一個通用的工業標準,它還對控制器與其他設備之間的訪問請求與過程進行描述,可以偵測錯誤信息并進行記錄。并且,Modbus協議還制定了公共內容格式及消息域格局,控制器可設置為RTU或ASCII中任一種傳輸模式,用戶可在標準的Modbus網絡通信中選擇所需模式及串口參數,Modbus網絡上所有設備在控制器配置時,都應將傳輸模式以及串口通信參數選擇一致。本文基于RS485協議來實現DCS與PLC之間的數據共享,可通過DCS控制PLC,也可將PLC的數據上傳到DCS。實際操作時,可將一塊MODBUS轉DP通訊模塊增加于DCS控制器下方,以使維護與控制簡單方便,而基于MODBUS協議,此通訊模塊可作為通訊主站,實現與現場PLC間的通訊,也可基于Pmfibus-DP協議并作為從站,實現與DCS系統的掛接。

1.2 DCS系統

集散控制系統DCS是以通信網絡為連接紐帶并包括過程監控級與控制級的多級計算機系統,它將計算機技術、控制技術、通訊技術以及顯示技術等有機結合起來。本文DCS系統采用的是和利時MACS V控制系統,不僅可以實現集中操作而分散控制,還可以分級進行管理,組態及其方便且配置較為靈活。

1.3 PLC系統

因工業化發展需求而產生的PLC數字運算操作系統,它利用可編程存儲將定時計數、順序控制及邏輯運算等操作指令存儲起來,再經由數字模擬輸入與輸出對機械設備或生產過程進行控制。可編程控制器與相關設備的選擇應從其功能原則設計擴充簡便為切入點,選擇易與工業控制系統形成整體的設備,而且維護與控制也較為簡便。本文PLC系統是由三套和利LK207、一套GE的IC200以及一套西門子S7-200組成。

2 系統組態

2.1 硬件組態

將通訊線自各PLC串口引出,并將其與MODBUS轉PROFIBUS-DP協議轉換模塊的MODBUS接口連接。

2.2 軟件組態

1)DCS系統組態。將MODBUS轉PROFIBUS-DP協議轉換模塊中的GSD文件拷貝至MACS V系統的相應安裝目錄,再打開MACS V系統的控制器組態文件與工程,將此模塊添加于硬件組態中,然后打開模塊屬性對通訊參數波特率等進行設置,再基于PLC讀寫數據對MODBUS讀寫數據塊進行合理添加,數據塊屬性設置取決于數據起始地址及PLC地址。以各自地址以及PLC讀寫變量進行添加于程序中的子程序編寫以及變量添加,然后對編譯進行保存。將PLC變量至工藝畫面添加至打開的MACS V畫面的組態程序并保存,然后下裝于操作員站,而將PLC傳過來的量程或信號類型等變量屬性添加至打開的MACS V數據庫的組態程序,再聯編并將其下裝于服務器;

2)PLC系統組態。本文以GE公司的IC200型PLC來說明該系統組態。將GE PLC編程軟件打開并對PLC Port(2) 進行設置,然后利用網絡將小酒改后的設置內容下至PLC。

3 系統常見故障的判斷與排除

若DCS系統與PLC系統之間的數據通訊正常,則對故障隱患的判斷可通過模塊狀態指示燈來實現,可從模塊上的數據傳送與接收指示及錯誤狀態表示對,作通訊狀態進行判斷并對故障進行診斷。而若DCS與PLC之間的數據通訊為不正常狀態,則DCS系統畫面所顯示的數據不正常,模塊狀態指示燈有錯誤狀態顯示。對此,應對硬件錯誤及軟件錯誤進行依次檢查并排除故障。硬件方面,應使用DP電纜,接線時切忌將正負極性接反,模塊選型時也要注意選擇有較高的使用信譽度且實用效果較好的產品,由于兼容性差異的問題,兩次以上的接口轉換情況應盡量避免。而軟件方面,首先要保持一致的DCS與PLC間的通訊速率,最好使用無校驗而減少奇偶校驗,其次要確保DCS與OLC系統的通訊數據地址合理有效,若有地址錯位狀況,可通過DCS系統設置來解決。

4 結論

綜上所述,在實現DCS系統與PLC系統之間的通訊中應用MODBUS協議,可以取得良好成效,即是說,基于MODBUS協議的DCS與PLC通訊的實現,具有穩定的通訊性能,可以為工藝監控提供可靠技術支持,為工程生產創造良好的條件,有效實現生產的節能減排、經濟高效。

參考文獻

[1]趙釗.基于Modbus協議的DCS系統與PLC系統的通訊[J].節能技術,2011(4).

[2]王剛,王玉琪,王冰.用Modbus協議實現DCS與PLC之間的串行通訊[J].自動化技術與應用,2010(4).

篇3

關鍵詞:Modbus 數據讀取 工業控制 網絡通信

中圖分類號:TP274.2 文獻標識碼:A 文章編號:1007-9416(2012)11-0049-02

Modbus是一種工業上開放的現場總線協議,是目前通用的工業標準之一。該協議能夠使得各個廠家之間的控制設備能夠相互通信和進行數據傳輸,在工業過程控制中具有廣泛地應用[1]。Modbus協議包含三種模式,即Modbus TCP、Modbus RTU和Modbus ASCII模式[2]。本文在研究Modbus TCP協議模式的基礎上,設計了一種基于TCP/IP的Modbus的數據讀取功能。通過該讀取功能,用戶可以在PC機上可以讀取PLC控制器上的數據。

1、Modbus TCP/IP協議數據幀的格式

由于Modbus TCP/IP協議運行于TCP/IP協議上,因此Modbus TCP/IP協議的數據幀被封裝于TCP/IP協議數據幀中的數據單元中,作為TCP/IP協議中的數據部分發送給各種控制設備;支持Modbus協議的控制設備收到Modbus請求之后,根據請求的內容將結果返回給客戶端。本文所設計基于Modbus TCP/IP的數據請求和響應幀格式如下圖所示。

事務元標識符:該標識符用于事務處理的配對,該域中的內容為用戶自行設定,如可以將每一幀的編號放在該域中。

協議標識符:該標識符用于系統內的多路復用,當使用的Modbus協議時,該值為0。

長度:該域中的數值表示后繼域內容的字節數,包括單元標識符和協議數據單元。

單元標識符:為了系統內路由,使用這個域。在服務器的響應幀內容中服務器必須使用相同的值返回該域的內容。

本文設計的讀寫功能所用到的Modbus功能碼的定義如下表所示。

表 Modbus功能碼

協議的數據單元包括功能碼和數據兩部分。本文以讀取2個寄存器的數據為例來說明該部分幀格式的設置。

功能碼:讀寫多個寄存器的功能碼為03,該域大小為1字節。

數據:數據部分包含讀起始地址和讀的數量。本文從起始地址開始連續讀取2個寄存器的內容,因此讀起始地址為0,該域大小為2字節;讀的數量為2,該域大小為2字節。

2、數據讀取功能的實現

本文在上一節設計的數據幀格式的基礎上,使用VC++ 2010實現了基于Modbus TCP/IP的數據讀取功能,并使用MODBUS Simulator作為Modbus的TCP服務器。

數據請求的主要代碼如下:

MODBUS Simulator的地址0000-0001寫入了67.5。如圖2-2所示。

在數據讀取客戶端中,首先點擊“連接服務器”按鈕,客戶端提示連接服務器成功后,點擊“啟動定時器”按鈕,則客戶端開始周期性地從Modbus服務器中讀取數據,并顯示在客戶端上。

3、結語

本文在研究Modbus TCP/IP協議的基礎上設計基于Modbus協議的數據讀取的數據幀格式,并使用VC++ 2010實現了該數據幀的數據讀取功能。通過該讀取功能,用戶可以在PC機上可以讀取PLC控制器上的數據。

參考文獻

篇4

[關鍵詞] Modbus; 監控; 功能碼

1 引言

在油庫和各種石化單位,定量裝車作業十分繁忙,裝車操作過程又要求相對精確。更加重要的是,涉及石化產品具有一定危險性。為了提高了裝車精度和效率,降低損耗,減輕工人的勞動強度,同時盡可能保證安全作業,本文設計了基于Modbus協議的定量裝車自動監控系統,并交付某公司使用。實際應用表明系統監控畫面直觀,人員操控方便,具備一定的主動安全保障能力。

2 Modbus協議

Modbus通信協議是美國Modicon公司開發的一種通信協議,它采用Master/Slave方式工作,一個主站可以連接多個從站,從站只能根據主站的請求作出相應的應答。它是一種開放、標準、免收許可費的通信協議。目前該協議已經廣泛應用于自動化控制和測控儀表,并且已經成為我國工業自動化網絡協議規范的國家標準之一。

Modbus協議有2種傳輸模式,即RTU模式和ASCII模式,相對于ASCII模式,RTU模式表達相同的信息需要較少的位數,且在相同通信速率下具有更大的數據流量,因此本系統選用該模式完成設計與實現。

Modbus協議的采用LRC和CRC兩種校驗模式來保證控制命令傳輸無誤。本文采用CRC-16校驗方式,該方式會根據當前發送或接收的命令字節碼,計算對應的2個字節的CRC校驗碼。并將其加到命令字節碼之后一并發送,組合之后的命令字節碼格式為:

系統在實現過程中,考慮到最終將會采用普通的X86系列PC機作為監控終端,而該型機都是big-endian方式做多字節數據存儲,與Modbus協議要求的little-endian剛好相反, CRC的計算結果必須滿足這一要求。本文稍微調整了CRC-16校驗碼的產生方式如下:

Step1:將0xFFFF裝入CRC寄存器;

Step2:將命令字節碼的第一個字節與CRC寄存器異或,結果存放在CRC寄存器中;

Step3:CRC寄存器右移1位,高位填充0;

Step4:檢查CRC寄存器的最低有效位,如果該位為0,則重復Step3;如果該位為1,則將CRC寄存器的值與0xA001異或;

Step4:重復Step3和4,直到完成8次移位之后,完成命令字節碼中的對一個字節的處理;

Step5:對命令字節碼的下一個字節重復Step2到Step5的處理,直到所有的字節都處理完成為止;

Step6:最終CRC寄存器中的內容就是該條命令字節碼對應的CRC校驗值;

例如,某命令字節數據[ 1 | 15 | 0 25 | 0 12 | 2 | 168 3 | 216 120 ]的含義為:給1號地址設備15號命令(寫多個線圈),從它的25號起始地址開始(0 25),連續寫12個線圈(0 12),寫入內容為命令數據區的1010 1000 0011(168 3),根據命令計算出CRC校驗碼為(216 120)。

3 系統工作原理

本系統采用典型的RS232/485總線將上位機服務器端、上位機客戶端以及各個下位機組成一個工業可控以太網,各下位機選取符合Modbus plus規范的相關設備,便于直接獲取的操作過程中的各種數據信息,并封裝成協議標準進行傳輸和通訊。主操作界面如圖1所示。

系統工作原理框架如下:

(1)下位機通過傳感器采集溫度計、流量計、比重計等相關數據,并封裝成Modbus協議格式數據供上位機客戶端查詢。

(2)上位機客戶端通過串口和橋接器連接各個下位機,利用多線程串口讀取函數主動進行數據收集,下位機按照上位機客戶端的要求回傳相應數據。然后,上位機客戶端將收到的數據按功能碼進行解析,并以圖例、表格、文本等多種形式實時顯示和記錄。

(3)上位機服務器端通過TCP/IP網絡與各個上位機客戶端相連,對多個上位機客戶端的狀態信息進行收集、分析和存檔,并通過主動發送命令的方式給上位機指令,進而通過上位機客戶端給下位機下達控制命令,達到“監視――控制”雙功能。

4 軟件系統設計

上位機服務器通過接收Modbus請求,與上位機客戶端進行交互,并對操作過程實時監控,利用成熟的數據庫管理系統,接收、存儲、處理和備份整個過程中產生的所有數據,為客戶提供服務,并為進一步的數據分析提供歷史依據。上位機服務器端主要功能包括:

(1)系統管理:該模塊包括了各類管理員,操作人員的用戶注冊,授權和管理等等,防止非法操作人員惡意登錄造成操作失誤,也避免非授權操作員隨意更改系統工作參數可能造成系統運行偏差。

(2)數據庫管理:該部分模塊選擇成熟的數據庫管理系統SQL Server2005對整個系統運行過程中所需要記錄的所有數據信息就行存儲和管理,為整個系統的運行和監控提供可靠的數據支持;

(3)系統工作狀態顯示:該模塊負責以圖像模擬顯示多種數據狀態,有利于管理人員實時監控各下位機客戶端的操作情況。并且提供多種顯示圖像幫助管理人員分析各種操作情況,這是系統的核心功能之一, 在實現獲取個下位機狀態之后,對下位機進行直接控制是系統必需的核心功能之一,雖然在實際裝車控制中主要使用的功能碼只有2、4、15、16號命令,但是本系統實現了全部Modbus功能碼,便于今后對新設備的擴充。。

(4)Modbus協議命令:該模塊能夠按照標準的Modbus協議,接收來自上位機客戶端傳送來的Modbus請求,完成數據采集、數據分析和數據存儲工作,是系統工作狀態顯示實現的基礎;

(5)安全警報功能:授油工作本身是具備一定危險性的工作,安全責任事故問題必須引起足夠的重視。可以根據各種系統狀況進行報警處理,保證系統工作狀態安全可靠,避免業務事故的發生,并且具備自動報警信息記錄功能,收集歷史上曾經出現的安全事故信息,為安全人員分析發現安全事故規律,查找安全隱患提供數據支撐。

上位機客戶端能有效地按照預定訂單號自動完成裝車作業,或者在操作員的控制下,進行控制參數設置,定量控制、數據采集、業務受理和報表打印等具體業務。上位機客戶端主要功能包括:

(1)實時授油監視:該模塊負責實時動畫模擬顯示整個下位機控制分組內所有鶴管的出油狀況,及相關關鍵參數數值顯示。例如:發油訂單號、車號、油品類型、參數設定、誤差范圍等等;

(2)強制發油控制:該模塊在特殊情況下,可以人為指定操作指令,以取代自動發油過程,控制啟動發油、暫停發油、恢復發油、強制結束等方式來進行特殊操作,擴展控制功能,更加適應實際操作的變化;

(3)業務計劃管理:該模塊下,客戶可以根據預約過的訂單號,自動完成裝車過程。也可以在沒有訂單號的情況下,有操作人員生成新的裝車業務,并進行結算;

(4)業務查詢:該模塊按照操作員和客戶要求的方式(諸如進行訂單號、裝車時間、油品類型、裝車單位、操作員編號等等)進行多種關鍵字查詢和統計功能,并且自動生成相關聯報表。

(5)打印功能:其自定義打印功能,更加貼近實用,可以由用戶自主選擇打印;

5 結論

本設計采用OOAD思想,用UNL建模,并使用Borland C++作為開發工具,規范化的設計和編程過程,以及大量集成的成熟控件足以支撐本軟件系統的快速開發。結果表明,軟件系統既可以對標準Modbus功能碼進行調試,也可以對自定義功能碼進行設置,還可以實時監測和控制下位機狀態,并結合數據庫功能記錄所有關鍵操作和核心設備配置參數信息,保障差錯恢復。系統運行穩定可靠,使用簡明方便,很好地滿足項目要求。

[參考文獻]

[1] AEG Schneider Automatic Inc. Modicon IBM host based devices user’s guide Apr.1996

[2] 張克涵,張呼和,顧李馮.VC環境下的電機狀態監測軟件設計[J].測控技術2012年第31卷第2期

[3] 呂國芳,唐海龍,李進.基于ModbusRTU的串口調試軟件的實現[J].計算機技術與發展 2009年第19卷第9期

[4] 袁輝,李延香.基于Modbus通訊協議數據采集系統的設計[J].科技咨詢導報 2007 No.19

[5] 陳柏金.通過串行口訪問modbus現場控制網絡[J].微計算機信息 2003.19(1)

[6] 王念春.基于Modbus的PC與下位機PLC間的通信程序[J].自動化儀表 第22卷第8期 2001年8月

[7] 徐濤,閆科.基于Modbus協議的串行接口實現與DCS通訊[J].工業控制計算機 2002年4月

[8] 羅朝霞,張高記.基于TMS320F240TA DPS的Modbus通信協議的實現[J].微計算機信息2005.21(72)138-139

[9] 房傳禮,李建華.基于Modbus協議的大屏幕在線監視系統設計[J].自動化與儀表 2010年7月

[10] 盧文俊,冷杉.基于Modbus協議的控制器遠程監控系統[J].電力自動化設備 2003年第23卷第6期

[11] 甑君,衛強,于耀.應用多線程技術實現串行通信與信號采集識別的同步[J].計算機工程 2003(10)196-197

[12] 李俊,徐紅兵.基于Modbus協議的汽輪機保護系統通訊設計[J].自動化與儀表 2006年7月

[13] 方羽,梁廣瑞.基于uCOS的Modbus協議的實現.裝備制造技術[J] 2009年第1期

篇5

關鍵詞:智能調壓器;串口服務器; MODBUS協議

中圖分類號:TP393 文獻標識碼:A 文章編號:1009-3044(2015)27-0197-03

Abstract: In this paper, it mainly implements a gas pressure controlling system, containing of five intelligent regulators and one host computer, in which each intelligent regulator connects with the host computer via a port. This system provides our customers with an efficient integrative solutions that realizes unified controlling management of five regulators by one host computer. Specifically, this system uses MODBUS communication protocol to realize the communication between each regulator and host computer. Additionally, users can remote access control, and query or control the state of regulators on time.

Key words: Intelligent regulators; Serial port server; MODBUS communication protocol

本課題來源于某燃氣設備公司的一個項目,首先先對該項目進行簡要的介紹。該燃氣公司目前擁有五臺智能調壓器,如圖1所示。該調壓器擁有五種功能,分別是流量測量、本地或遠程出口壓力設定、流量限制、遠程監控和終端用戶管理。它的優點是功能多,且只需要一個電源。

每臺智能調壓器通過串口與上位機通訊,現在需要實現了一個高效整合解決方案,通過一臺上位機對五臺調壓器的統一控制管理,并且用戶可以遠程對其進行訪問控制,即時地查詢和控制調壓器的狀態。

1 方案綜述

1.1 硬件實現方案

由于每臺智能調壓器都是通過串口和上位機一對一連接,而上位機只有一個串口,所以想要用一臺上位機實現對五臺設備的集體控制,首先要解決硬件連接上的問題。

我們的解決方案是使用一個串口服務器[1]。串口聯網服務器讓傳統的RS-232/422/485設備立即聯網,利用基于TCP/IP的串口數據流傳輸的實現來控制管理[2]。串口服務器擁有多個串口,并且通過以太網與上位機連接,在上位機上虛擬多個串口,實現了一帶多的功能。

本課題所使用的串口服務器可以同時和八臺設備連接通信,很好地解決了硬件上的問題。

1.2 軟件實現方案

硬件的問題通過串口服務器比較容易地解決了,下面重點在于軟件上的實現。

首先,需要在調壓器和上位機間建立通信,由于通過串口服務器,上位機具備了多個虛擬串口,所以可以直接使用傳統的一對一通訊協議。在本系統中,我們使用MODBUS通訊協議中的命令3,命令6和命令16,來實現上位機對調壓器的讀多個寄存器,寫單個寄存器和寫多個寄存器的功能。

其次,為了實現多個用戶遠程的訪問控制調壓器,我們使用SQL SERVER 2008數據庫作為中間媒介,現場的上位機通過串口服務器實時采集各個調壓閥的狀態,并存入數據庫中, 而用戶可以使用我們提供的應用程序在任何地方訪問數據庫,讀取數據,從而遠程監測燃氣壓力控制系統的狀態。同理,遠程用戶可以將控制命令寫入數據庫,而現場上位機將這些命令從數據庫讀出,并轉發給各個調壓器。

最后,根據權限的高低依次設計Admin、Controller、Observer三種用戶角色,所有遠程用戶必須使用賬戶密碼進行登錄,根據不同的權限進行不同的操作,這樣可以保證系統的安全性。

2 MODBUS協議簡介

MODBUS是OSI模型第7層上的應用層報文傳輸協議,它在連接至不同類型總線或網絡的設備之間提供客戶機/服務器通信[3]。MODBUS協議定義了一個與基礎通信層無關的簡單協議數據單元(PDU)。特定總線或網絡上的MODBUS協議映射能夠在應用數據單元(ADU)上引入一些附加域,如圖2所示。

在本系統中,功能碼代表了上位機向調壓器指示的操作類型。根據需求,我們使用到了功能碼3,6和16,下文將簡單介紹這三種功能碼。

2.1功能碼3

功能碼3用于讀取寄存器連續快的內容,上位機通過這條命令,結合地址表,采集調壓器當前狀態。功能碼3的請求報文,如圖3所示。

2.2 功能碼6

功能碼6將某個值寫入遠程設備的單個寄存器中,上位機通過這條命令,結合地址表,設定調壓器的狀態。在本系統中,我們并未直接實現功能碼6,而是將功能碼6作為功能碼16的一種特殊情況。

2.3 功能碼16

功能碼16用于將多個值寫入遠程設備的連續寄存器塊中,上位機通過這條命令,結合地址表,連續設定調壓器的多個狀態。特別地,將寄存器數量設為1,即可作為功能碼6的實現,用于設定單個狀態值。功能碼16的請求報文,如圖4所示。

3 上位機控制程序

上位機控制程序是在現場的上位機的一個進程,由它對整個系統進行實時的控制。主要有以下兩個功能:

1)運行時不斷更新調壓器監測數據到數據庫中,供遠程用戶從數據庫中讀取。

2)從數據庫的命令表項里讀取遠程用戶命令并執行。

上位機控制程序使用定時器的方式,每5秒調用已實現并封裝的MODBUS協議的接口,采集各個調壓器的狀態,并且使用[4]將當前狀態更新到數據庫的CURRENT_STATUS表,如表1所示。這張表里永遠只有一條數據,這樣遠程用戶通過不斷的讀取這張表里的第一行數據,就可以實時監控系統狀態。

其次,上位機控制程序使用從數據庫中的COMMAND_TABLE表中讀取遠程用戶的命令,如表2所示。上位機控制程序通過表中DONE字段判斷這條命令是否已執行,對于未執行命令,上位機程序調用MODBUS庫接口,根據命令類型,調壓器編號去設定調壓器狀態。

4 數據庫表項和用戶角色

4.1 數據庫表項

在本系統中,數據庫用來實現遠程用戶對調壓器的監測和間接控制以及存放歷史數據。在數據庫中設置了四張表,分別是:

1) 歷史信息表:用于記錄實時采集的系統數據,采用月表的形式,在每月固定時間新建一張。

2) 當前信息表:實時記錄當前調壓器的狀態。

3) 命令表:用于特定權限用戶寫入命令,上位機控制程序從中讀取命令并執行。

4) 用戶表:admin用戶使用,記錄用戶信息,每注冊一個新用戶增加一個表項。

歷史信息表和當前信息表都只提供給遠程用戶讀取功能,而由上位機控制程序更新(寫入)。由于有五臺智能調壓器,每臺調壓器都擁有各自獨立的歷史信息表和當前信息表。

4.2 用戶角色

根據安全性的需要,用戶分為以下三種:

1) Admin用戶:擁有最高權限,主要用于管理其他用戶。可以訪問數據庫中所有表,只有admin能訪問用戶表。

2)Controller用戶:既可以查看歷史信息和當前狀態,即讀取數據庫中五臺設備的歷史信息表和當前信息表,也可以寫控制命令到命令表,提供給上位機控制程序執行,對調壓器進行遠程控制。

3)Observer用戶:權限最低,作為觀察用戶,只能訪問歷史信息表和當前信息表,不能訪問命令表,即不能對調壓器進行控制[5]。

5 結論

本文實現了一個高效整合的燃氣壓力控制系統,硬件上使用串口服務器擴展硬件上位機的串口,實現一帶多的功能。通訊上,使用MODBUS通訊協議,實現了協議中的功能碼3,功能碼6和功能碼16。使用SQL SERVER 2008數據庫作為中間媒介,實現了遠程監測和控制的功能。安全性上,根據權限的高低依次設計Admin、Controller、Observer三種用戶角色,保證了控制系統的安全性。

參考文獻:

[1] 董小吉. 利用NPORT串口服務器組網解決方案[J]. 治淮, 2006(1):41-42.

[2] 王雙慶, 邢建春, 王平,等. 基于NPort串口服務器的人防工程智能設備集成[J]. 工業控制計算機, 2008(8):8-10.

[3] 潘洪躍. 基于MODBUS協議通信的設計與實現[J]. 計量技術, 2002(4):35-36.

篇6

關鍵詞:modbus;一致性測試;自動化;用例生成器

中圖分類號:tp393.09文獻標識碼:a

文章編號:1004-373x(2010)01-171-03

automation of modbus conformance testing

zhao jian

(northwest airtraffic management bureau,xi′an,710082,china)

abstract:the existing modbus protocol conformance testing method has following problem: there is not automatictesting method for it,and this brings negative impact on the effectiveness of test.in order to solve this problem,the architecture of automation method for modbus protocol conformance testing,the architecture includes test case generation and test result analyzer.the automatic conformance testing system based on the architecture is realized.in practice,the system found a number of hidden modbus conformance errors,this proves that the availability and effectiveness of the method.

keywords:modbus;conformance testing;automation;test case generation

0 引 言

modbus協議已經成為一種事實的工業標準,但modbus設備間的一致性、互操作性較差,是制約modbus發展的瓶頸。為了解決modbus協議的一致性和互操作性問題,國內外的研究機構展開了深入的研究并取得了一些成果。

在modbus-ida國際組織的支持下,進行modbus一致性測試的實驗室陸續建立。目前,在國外得到modbus-ida國際組織授權的modbus一致性測試實驗室僅有兩處:一處是位于美國密歇根大學的modbus tcp一致性測試實驗室;另一處為設在該課題所在機械工業儀器儀表綜合技術經濟研究所的modbus serial line/tcp一致性測試實驗室,它是獨立于產品制造商的第三方測試機構[1,2]。國外其他研究機構對modbus測試系統的研究處于發展階段,modbus測試系統被應用到火電廠、電力監控系統、控制系統安全認證中,但都未形成一致性和互操作測試標準和自動化方法[3-6]。

在國內對進行modbus一致性和互操作性測試研究的機構主要有:北京交通大學的研究人員開展了modbus串行鏈路協議一致性測試系統的研發工作[7,8];開普電器檢測研究院在modbus協議一致性測試方面有多年的經驗,已加入modbus-ida協會[9]。

總得來說,國外在modbus協議的一致性和互操作性測試的研究已經取得了一定的成果,并形成了一些測試系統,但國內用戶分享成果的代價較大,并且無法進行modbus設備的互操作性測試,并且尚未形成測試自動化方法;國內的研究已經起步并取得了一些初步研究成果,但在國內尚未形成測試標準和測試自動化方法。

為了克服目前研究中所存在的問題,本文主要研究modbus協議的一致性測試的自動化方法,測試的自動化方法主要包括測試用例的自動生成和測試結果的自動分析兩方面,限于篇幅對測試結果的自動分析方法不予展開論述,主要論述測試用例的自動生成方法。

1 一致性測試的基本原理

協議測試理論經過幾十年的發展,在許多方面都取得了很大的進展,其中最成熟的是協議一致性測試的理論,主要代表是iso制定的國際標準iso/iec-9646:協議一致性測試的方法和框架。圖1是一致性測試的基本示意圖。iut(implementation under test)是根據規范的具體實現,是一個內部不可見的實體;規范(speciflcation)以某種形式化語言或者自然語言描述,但不管怎樣的描述形式,其根本都是一個擴展自動機模型;測試儀(tester)根據規范為iut產生一組測試序列 (test sequence),然后觀察iut的外部行為是否符合規范的描述[7,8]。

圖1 一致性測試原理示意圖

目前的實際工程測試中,測試序列主要是由少數專家憑借經驗制定的。因為原始的規范通常都是自然語言描述的,不同的實現者在使用形式化語言建模的過程中,就可能產生了一個一致性問題:原始規范和形式化規范之間可能在語義上產生偏差。根據這樣衍生的形式化描述產生的測試序列不能作為判斷是否通過一致性測試的依據。

對于一致性測試的過程,大約需要分五個步驟來完成[8],圖2是一致性測試的過程。

圖2 一致性測試的過程

第一步,分析測試需求。也就是說,分析相應的標準或規范,從中找出一組測試標準,建立用于實現的一致性描述pics(protocol implement conformance statement)。每個pics應該盡可能的簡單并且僅僅集中在一個原子功能上,測試標準之間要做到不相抵觸。

第二步,在pics上增加一些用于測試實現的協議實現額外信息pixit(protocol implementation extra information statement),pics和pixit就組成用于測試實現的一致性信息citi(conformanee information for testing the implementation)。

第三步,基于citi,生成一組抽象的測試用例atc(abstract test case)的集合——抽象測試套件ats(abstract test suite)。

第四步,對各atc中的參數選擇合適的輸入值以及相應的“預測結果”,得到可執行的測試用例etc(executable test case)的集合——可執行的測試套件ets(executable test suite)。當然,生成的可執行測試套件是與所處的測試平臺是密切相關的。

第五步,對被測單元uut(unit under test)執行etc的時候,被測單元的測試過程將會產生一個“通過”或“失敗”的報告。報告“失敗”即未能通過測試則意味著與規范不一致。

2 一致性自動化測試方法

目前測試過程中的“生成ets”、“測試uut”等工作步驟中實現了簡單的測試系統,能夠對一些工作實現自動化,如根據手工輸入的modbus協議的從站號、功能號、地址等參數生成測試用例,能夠自動執行測試用例并生成簡要測試報告。但這些測試過程存在以下問題:測試用例的生成需要大量的人為干預;另外,測試結果只是簡要的測試報告,沒有更進一步的分析報告,以幫助用戶更容易地確定問題所在。

如圖2虛線框部分所示,“生成ets”、“測試uut”等工作步驟可以實現測試自動化。自動化后的體系結構如圖3所示。其中可視化用例設計器、測試用例生成器完成測試用例的自動生成工作;測試結果分析器完成測試結果的自動分析工作。限于篇幅對測試結果的自動分析方法不予展開論述,主要論述測試用例的自動生成方法。

圖3 一致性測試過程的自動化示意圖

通常在一致性測試過程中,測試用例的設計和生成是軟件測試的關鍵任務和難點,據統計,約有40%一致性測試開銷用于設計和生成測試用例上。長期以來,測試用例的設計和生成主要依靠手工完成,這意味著要求測試人員具有相當的經驗和較高的專業水平。因此,實際工程中的測試用例生成往往帶有很大的盲目性,主要依靠直覺經驗產生測試用例,這導致測試用例數量多,測試效果差,測試成本居高不下。另外,如何生成最能發現被測系統(或程序)存在問題的測試用例,如何能用最少的測試用例實現足夠大的覆蓋率,也是測試人員一直追求的目標。這些問題的解決方案就是測試用例的自動生成[10]。

2.1 測試用例的自動生成方法的體系結構

圖3中的測試用例自動生成器是測試用例自動生成工作的核心。其體系結構如圖4所示。

其中用例設計描述是描述用例特性的文本,根據所選擇的算法不同而描述方式也不同:如采用“基于形式規格說明的方法”則用z,vdm,obj,larch [11]等語言來描述,如采用“組合覆蓋方法”則用xml腳本來描述。

圖4 測試用例自動生成器的體系結構

算法適配器為各種算法提供接口,它向上為描述解析器提供算法支持服務,向下解釋各種算法,使得體系結構能夠兼容多種算法而增強體系結構的擴展性和適用范圍。

描述解析器基于算法適配器來分析用例設計描述,將描述統一轉換成用例生成器可識別的內部描述形式,然后傳遞給用例生成器。

用例生成器獲得來自描述解析器的內部描述,并根據描述自動生成可執行測試用例。可執行的測試用例支持多種形式存儲,如內存存儲、文件存儲、數據庫存儲等,具體的存儲格式隨用例執行器的需求而變。

2.2 測試用例的自動生成方法的實現

為了驗證體系結構的合理性和有效性,基于microsoft vc 6.0 sp6、modbus activex控件、“分類樹方法”、cte xl(classification tree editor extended logics)實現了modbus協議一致性測試的自動化系統。

其中cte xl是我們系統中的可視化用例設計器,它是一個語法控制的、可視化、圖形化的編輯器。幫助我們更加有效地使用分類樹方法進行測試用例的設計。

分類樹方法是黑盒測試中的一種部分測試方法,由grochtmann 和grinun 提出,后又由chen 和poon 改進[11],它是一種有效的功能測試方法。分類樹方法的基本思想是: 首先逐層劃分測試對象的輸入域,然后將劃分的獨立的類結合為無冗余的測試用例,這些測試用例覆蓋了整個輸入數據域。

算法適配器、描述解析器、用例生成器、分類樹方法均使用microsoft vc 6.0 sp6實現。

modbus activex控件用來執行用例并生成測試報告。該控件具有多線程、多任務、多優先級等特性,支持modbus serial line/tcp通信協議,支持rtu和ascii兩種通信模式,具有良好的性能。

系統實際使用時,首先用cte xl構建用例設計,也就是生成z語言描述的規格說明,然后描述解析器解析該規格說明并生成測試用例模板(系統內部格式),交由用例生成器生成可執行的測試用例,最后由modbus activex控件用來執行用例并生成測試報告。人工參與的部分只是在第一步,即用cte xl構建用例設計,其余部分均自動完成,大大降低測試人員的工作量,提高了測試工作的效率和客觀性。

該實現已經被應用到“山東石油化工廠裝車管理系統”中用來測試管理系統和油氣批量控制儀之間modbus通信,也被應用到“長慶單井計量信息系統”中用來測試信息系統和plc之間的modbus通信,限于篇幅測試過程不贅述,經過測試發現了一些隱藏的modbus一致性問題并且便于使用,提高了一致性測試有效性和客觀性,同時增強了產品的可靠性和可用性,也證明了本文所論述的一致性測試自動化方法的有效性和實用性。

3 結 語

在分析了現有modbus協議一致性測試中存在的問題后,本文提出了一致性測試的自動化方法,基于這個方法設計并實現了一致性測試系統,在實際應用中該系統發現一些隱藏的modbus一致性問題,提高了modbus一致性測試的有效性和客觀性,證明了該方法的有效性和實用性。目前該方法的實現基于分類樹方法,下一步將研究其他測試用例自動生成方法,使其進一步完善。

編輯整理

參考文獻

篇7

關鍵詞:MODBUS PLC 變頻器

中圖分類號:TP273 文獻標識碼:A 文章編號:1007-9416(2012)02-0072-02

1、引言

MODBUS作為一種簡單易用的通訊協議已經越來越多的應用在各類儀器儀表中,下面筆者以西門子公司的S7200PLC通過自由口與ABB公司的ACS510變頻器使用MODBUS協議進行通信為例,對MODBUS通訊的應用進行敘述,以期達到拋磚引玉的效果。

2、硬件配置

圖1給出了SIMATIC S7-200CPU與四臺ABB ACS510變頻器構成的MODBUS網絡。S7-200CPU為主工作站。變頻器1、變頻器2,變頻器3和變頻器4為從工作站。設置變頻器的通訊協議參數9802均為1,即變頻器通過RS485串行通訊口和MODBUS總線相連。設置通訊速率參數5303為19.2kb/s。設置校驗方式參數5304為偶校驗,1個停止位。設置控制類型參數5305為 ABB傳動簡版。從左到右變頻器1、2、3和4的站地址參數5302分別設置為3、4,5和6,并將變頻器4的總線終端電阻DIP開關置ON。在對變頻器以上參數設置完成后應對傳動重新上電激活,使新地址及通訊協議生效。

變頻器控制要求:

變頻器分現場和遠程兩種控制模式,現場控制柜設置三位置模式選擇開關,分別為停止、本控和遠程。在本控模式下啟動/停止命令由現場開關觸發數字輸入DI1控制,頻率由現場的電位器改變模擬輸入AI1的輸入電壓進行調節。當選擇遠程模式時,數字輸入DI2接通,通知PLC現變頻器已經處于遠程控制模式。為能夠實現以上功能并在人機界面能夠觀察到變頻器的運行頻率和通過模擬輸入AI2輸入的實際流量,還需要對變頻器其他部分參數進行設置,見表1。

3、程序設計

3.1 通訊內容

主工作站輪流發送請求報文到每個變頻器從工作站,隨之每個從工作站產生響應報文。PLC主工作站分別對每個變頻器從工作站進行如下操作:

(1)對每個變頻器的輸出線圈1~3的狀態進行查詢;

(2)查詢變頻器狀態寄存器40004狀態字、40005實際值、40006實際值和40007實際值。40005~40007數據值對應于表1中變頻器參數5310、5311和5312中的實際值。

(3)寫變頻器控制字,對變頻器的遠程啟停進行控制。

(4)寫變頻器寄存器,對變頻器的外部2給定進行控制。

對一個變頻器的數據全部讀寫完成后,開始對下一站號變頻器的數據進行讀寫。當所有變頻器的數據讀寫完成后,主工作站重新開始對最小站號變頻器的數據進行讀寫。數據的傳輸及接受采用PLC自由通訊口模式進行,報文按照modbus的協議組織。

3.2 通訊格式

MODBUS請求報文格式如表2。

因在S7-200PLC發送指令XMT中,發送緩沖器的第一個字節指定的是數據傳輸的字節數,從第二個字節以后的數據為需要發送的數據。因此,結合MODBUS請求報文格式,PLC發送數據的格式如表3。

在整個網絡通信過程中,主工作站輪流發送請求報文到每個從工作站,隨之每個從工作站必須產生響應報文返回到主工作站。當主工作站向從工作站發送請求報文和接受從工作站返回的響應報文時,在主工作站儲存區開辟了發送緩沖區和接受緩沖區。主工作站向從工作站發送請求報文時,首先對相應從工作站輸出緩沖區的數據進行CRC運算生成校驗碼,并將校驗碼疊加在輸出緩沖區的數據之后再傳送到發送緩沖區,然后再由發送指令發出。建立一個遠程循環結束標志位,當響應報文全部接受完成,置該位為ON。主工作站在接受從工作站的響應報文時,先把響應報文輸入到接受緩沖區,再把接受緩沖區中的數據傳送到輸入緩沖區。為此,在主工作站中要留有兩個數據存儲區,一個作為報文請求(輸出緩沖區),另一個作為報文響應(輸入緩沖區)。

在MODBUS RTU通訊協議中都必須要求有CRC循環冗余校驗。CRC循環冗余校驗為兩個字節,附加在報文后面的CRC的值由發送設備計算,當放置CRC 值于報文時,高低字節必須交換。首先發送低位字節,然后再發送高位字節。故此在發送緩沖區中的數據要比輸出緩沖區的數據多兩個CRC循環冗余校驗字節。接收設備在接收報文時重新計算CRC的值,并將計算結果于實際接收到的CRC值相比較。如果兩個值不相等,則傳送的數據為錯誤。

3.3 程序描述

SBR0子程序:在PLC上電初始化階段,設置通訊口為自由口通信方式,并設置波特率及校驗方式,允許全部中斷時件,并設置定時中斷的時基為20毫秒。在這里設置波特率為19.2KB/S,偶校驗,每字符8個數據。注意必須與從工作站的通訊參數相同。為輸出和輸入緩沖區的數據地址建立間接尋址指針。并設置請求報文的剩余數目為4,設置從工作站的查詢剩余數目為4。

將輸出緩沖區指針中指出的地址為起始地址的12個字節通過塊傳送命令傳送到發送緩沖區單元中。并復位遠程循環結束標志位。

對發送緩沖區中的報文進行運算生成CRC,交換CRC 寄存器中的高低字節,并將交換完成的CRC 寄存器疊加到發送緩沖區中。

啟動定時中斷和發送中斷,并通過發送指令將發送緩沖區中的請求報文發送。

建立跳轉入口,標號1。

若循環未結束,跳轉到標號1。程序不向下執行,直至遠程循環結束,標志位為ON。

遠程I/O更新完成,將接受的報文通過塊傳送命令傳送到接受緩沖區指針指出的接受緩沖區中。

修改發送緩沖區和接受緩沖區指針值,指向下一個輸出和輸入緩沖區字節地址。將請求報文的剩余數目減1。

當請求報文的剩余數目為零時,重新設置請求報文的剩余數目為4,將從工作站的查詢剩余數目減1。

當工作站的查詢剩余數目為零時,重新設置從工作站的查詢剩余數目為4,為輸出和輸入緩沖區的數據地址重新建立間接尋址指針。

INT_0中斷程序:在接受報文超時情況下,禁止接受中斷和接受定時中斷,置遠程循環結束標志位為ON。

INT_1中斷程序:在發送超時情況下禁止發送中斷和發送定時中斷,置PLC為STOP模式。

INT_10中斷程序:禁止發送完成中斷,啟動接受定時中斷INT_0和接受數據中斷程序INT_11。

INT_11中斷程序:若接受的首字符(從工作站地址)為從工作站的正確地址,則建立一個接受字符的地址指針。并把接受到的字符裝入到接受字符指針指出地址中。增加指針的數值,指向下一個地址。并啟動中斷程序INT_12。

INT_12中斷程序:把接受到的第二個字符(功能碼)裝入到接受字符指針指出地址中,增加指針的數值,指向下一個地址。啟動中斷程序INT_13。

INT_13中斷程序:把收到的第三個字符(字節數)裝入到接受字符指針指出地址中,并修改指針值。第三個字符為接受的不含CRC校驗碼字符的總數目,剩余接受字符數目為將字節數加2,若反饋的功能碼為十六進制數0F,全部剩余字符數目為5。將全部剩余字符數目置入到累加器AC1中,當累加器AC1為零時,接收字符也就完成。啟動中斷程序INT_14。

INT_14中斷程序:將接受到的字符裝入接受字符指針指出地址中,并修改地址指針值和將將累加器AC1數值減一。若累加器AC1的數值為零。則關閉字符接受中斷和定時中斷,并將遠程循環結束標志位置ON。

4、結語

該系統自投入在線運行以來,系統調節迅速且運行穩定,并取得了良好的經濟效果,在助劑添加中具有較高的推廣價值。

參考文獻

[1]殷洪義.可編程序控制器選擇、設計與維護.機械工業出版社,2002年.

[2]S7-200可編程控制器系統手冊.2004年.

篇8

【關鍵詞】 Modbus協議 保護裝置 報文丟失

南京地鐵二號線變電所內高壓供電設備的保護裝置(P139保護裝置和P521保護裝置)與所內SCADA系統的網絡通信服務器(WTS-65C)通過RS485接口運用Modbus協議進行通信。在正常運行狀態和調試狀態下,保護裝置的信號能夠準確、及時地傳輸給SCADA后臺。地鐵實際投運后,發生了多次重要保護動作沒有被后臺采集到的故障。這些故障的共同特點是保護裝置本身可以觀察到保護動作的完整信號記錄,SCADA系統后臺卻只顯示了開關跳閘的動作而無法查閱與之相關的保護告警報文。

1 Modbus協議介紹

1.1 背景介紹

Modbus協議是由美國MODICON公司在1978年開發的一種通信協議,最初是用在MODICON公司開發的PLC可編程控制器上,它支持傳統RS232、RS422以及RS485通信標準。1996年MODICON公司又推出了基于TCP/IP的Modbus協議使得其在工業領域的應用更加廣泛[1]。

1.2 Modbus通訊協議關鍵技術

各種不同公司和廠家的PLC、RTU、SCADA系統、DCS或與兼容Modbus協議的第三方設備之間可以通過Modbus協議連成工業網絡,構建各種復雜的監控系統。參考ISO/OSI模型,可以發現在物理層,Modbus協議可以采用RS232、RS422、RS485接口以及以太網的物理層結構;在數據鏈路層,Modbus主要采用串行主從協議;由于Modbus現場總線的實時性特點,所以在網絡層、傳輸層、會話層和表示層,Modbus協議模型中均沒有定義;在應用層中Modbus規定了協議的模型,主要包括消息幀格式、功能碼、校驗、通訊時序控制等內容[2]。

電力系統中Modbus協議的數據分為四類:開入量;開出量;只讀模擬量(輸入寄存器),例如遙測值等;可讀寫模擬量(保持寄存器),例如保護定值、設備參數等[4]。Modbus需要處理的所有數據都需要存放在裝置的存儲器中,為了不把存儲器物理地址和寄存器編號混淆,就需要把寄存器編號與存儲器地址建立鏈接,通過統一管理存儲器地址來管理寄存器。

Modbus的數據存儲模型也分為兩類,分別是帶有四個獨立數據塊的數據存儲模型和僅有一個數據塊的數據模型。四個獨立的數據塊模型使用四個獨立的存儲器分區分別存儲四種數據,這樣有助于針對不同類型的數據進行相應的硬件處理,但是不同的工業應用場合使用的數據類型不會完全相同,因而可能產生存儲器資源的耗費;共用一個獨立數據塊模型進行數據存儲的方式可以節省存儲器的硬件資源,但需要軟件針對不同的數據類型對存儲器空間進行劃分。南京地鐵二號線高壓保護裝置使用了僅有一個數據塊的數據存儲器結構。

2 保護信號丟失的原因分析及解決方案

2.1 南京地鐵二號線Modbus規約數據傳輸方式

南京地鐵二號線站內SCADA系統在RS485通信標準下采用Modbus一對多通信協議。作為Master的網絡通信服務器采用RTU方式輪流向每一臺35kV保護裝置發送數據請求廣播。請求報文為8字節報文,其數據格式如(表1)。

2.2 保護信號丟失的原因分析及解決方案

通過調查所有歷史告警記錄,我們發現故障中被丟失的保護信號也曾經被系統采樣到并形成報文傳至SCADA系統后臺。這說明保護信號丟失的現象并不是必然發生,也就排除了系統結構倒致故障的原因。

通過查看保護裝置的保護信號點表配置,我們發現保護信號的采樣和維持皆取自于保護信號的條件信號。保護條件是否滿足是判斷保護動作是否發生的關鍵,所以保護動作信號從保護條件信號上采樣并判斷并沒有問題。但是保護信號的維持也依靠保護條件信號的維持就產生了矛盾。對比試驗條件和現場環境,可以發現實驗條件下保護條件信號是人工手動加載于裝置的接線端子之上的。信號的發生與消失的速度完全依靠人手工操作的速度,而這個速度明顯慢于網絡通信服務器的一個循環檢測周期,因而保護信號因得到了手工延時可以被網絡通信服務器采集到。現實條件下保護信號卻是一個瞬態量。當有保護動作時,相應機構的動作延時一般不超過50ms,機構動作完畢后,作為保護動作的條件就消失,保護條件信號和保護信號隨之消失。所以保護信號在保護裝置中的維持時長一般短于50ms。當保護信號發生時網絡通信服務器在保護信號維持的時間段內恰巧能夠采集到相應的保護裝置,則保護信號能夠被采集并上傳;如果此時網絡通信服務沒有采集到這一臺保護裝置,那么在保護信號消失之后網絡通信服務器就不會采集到相應的告警。

3 結語

循環檢測是Modbus協議的主要特點。作為串行通信條件下的一種通信協議,Modbus無法通過自身的構架改良來解決瞬態信號的采樣問題。設法延長信號時長和提高采樣器件的采樣頻率是兩種可行的方法。后一種方法需要硬件升級,耗用較高的成本;前一種方法成本較低,但是需要合適的使用環境以及可實現的信號延時方法。

參考文獻:

[1]李偉.基于Modbus協議的工控節點設計與實現[J].計算機工程,2007-36(16):226-228.

[2]史運濤,孫德輝,李志軍等.基于Modbus協議的通訊集成技術研究[J].化工自動化及儀表,2010-34(4):67-72.

[3]盧文俊,冷杉,楊建軍.基于Modbus協議的控制器遠程監控系統[J].電力自動化設備,2003-23 (6):54-56.

欧美午夜精品一区二区三区,欧美激情精品久久久久久,亚洲av片不卡无码久东京搔,亚洲鲁丝片AV无码APP
尤物在线视频国产区 | 在线不卡日本v2019 | 天堂精品一区在线 | 亚洲精品嫩草影院久久 | 亚洲综合精品第一页国产亚洲 | 久久精品99久久香蕉国产 |