沈顯慶, 朱彥磊, 常政威, 徐天昊
(1.黑龍江科技大學(xué) 電氣與控制工程學(xué)院, 哈爾濱 150022; 2.國網(wǎng)四川省電力公司科學(xué)研究院, 成都 610000;3.電子科技大學(xué) 能源科學(xué)與工程學(xué)院, 成都 611731)
?
變電站智能輔助控制系統(tǒng)協(xié)議測試軟件的實(shí)現(xiàn)
沈顯慶1,朱彥磊1,常政威2,徐天昊3
(1.黑龍江科技大學(xué) 電氣與控制工程學(xué)院, 哈爾濱 150022; 2.國網(wǎng)四川省電力公司科學(xué)研究院, 成都 610000;3.電子科技大學(xué) 能源科學(xué)與工程學(xué)院, 成都 611731)
針對(duì)現(xiàn)有的Modbus協(xié)議測試軟件多以報(bào)文形式進(jìn)行測試,測試不夠直觀方便且缺乏針對(duì)性的現(xiàn)狀,在此基礎(chǔ)上增加了可靈活配置的模型文件,設(shè)計(jì)了一款實(shí)用的變電站智能輔助控制系統(tǒng)Modbus RTU協(xié)議測試軟件。該軟件通過建立對(duì)象信息模型,將Modbus協(xié)議測試和變電站智能輔助系統(tǒng)特定功能加以關(guān)聯(lián),對(duì)智能輔助系統(tǒng)的功能進(jìn)行測試,實(shí)驗(yàn)結(jié)果表明:該測試軟件簡單易操作,能滿足測試需求,能夠使測試更具有針對(duì)性和直觀性。
Modbus RTU; 協(xié)議測試; 智能輔助系統(tǒng)
目前,在變電站智能輔助控制系統(tǒng)中,現(xiàn)有的Modbus協(xié)議測試軟件多以報(bào)文形式出現(xiàn),缺乏專有軟件來測試設(shè)備間通信,測試結(jié)果不直觀,且缺乏針對(duì)性。筆者在標(biāo)準(zhǔn)Modbus RTU報(bào)文測試基礎(chǔ)上,設(shè)計(jì)了一套針對(duì)變電站智能輔助控制系統(tǒng)進(jìn)行測試的模型配置文件,通過將模型配置文件和Modbus協(xié)議測試進(jìn)行關(guān)聯(lián),從而可以彌補(bǔ)現(xiàn)有軟件的不足。
文中所述是變電站智能輔助控制系統(tǒng)測試技術(shù)研究的一部分,輔助控制系統(tǒng)檢測平臺(tái)主要由綜合應(yīng)用服務(wù)器、智能管理主機(jī)和子設(shè)備模擬器組成。筆者主要開展智能管理主機(jī)和子系統(tǒng)設(shè)備間基于Modbus協(xié)議的功能測試方法的研究,旨在設(shè)計(jì)出一款實(shí)用的變電站智能輔助控制系統(tǒng)Modbus協(xié)議測試軟件,為變電站智能輔助系統(tǒng)的檢測、建設(shè)與驗(yàn)收提供標(biāo)準(zhǔn)和檢測平臺(tái)。
目前,在變電站智能管理主機(jī)和子設(shè)備之間,多采用基于RS-485總線的Modbus協(xié)議。該協(xié)議是由modicon公司推出的一種在工業(yè)領(lǐng)域應(yīng)用廣泛的通信標(biāo)準(zhǔn)之一。Modbus是一種應(yīng)用層報(bào)文傳輸協(xié)議,與底層的物理接口及電氣規(guī)范無關(guān),它支持傳統(tǒng)的RS22/422/485 設(shè)備和最新發(fā)展出來的以太網(wǎng)設(shè)備等[1-2]。
Modbus協(xié)議采用主從方式,包括一個(gè)主節(jié)點(diǎn)和多個(gè)從節(jié)點(diǎn),在串行網(wǎng)絡(luò)中,只有被指定為主節(jié)點(diǎn)的節(jié)點(diǎn)可以啟動(dòng)一個(gè)命令。每個(gè)從節(jié)點(diǎn)設(shè)備都有一個(gè)唯一的地址,該地址編碼范圍為l~247,地址0是廣播地址。廣播方式時(shí),所有收到指令的設(shè)備都會(huì)執(zhí)行,但不回應(yīng)指令。
1.1Modbus RTU與 ASCII碼的比較
在串行鏈路上,Modbus協(xié)議有兩種傳輸模式,即Modbus RTU與Modbus ASCII模式。兩種方式的信息單元都以幀的方式傳輸,每個(gè)Modbus 幀都包括地址域、功能域、數(shù)據(jù)域、錯(cuò)誤檢測域[3]。相對(duì)于ASCⅡ模式 ,RTU模式表達(dá)相同的信息需要較少的位數(shù),且在相同通訊速率下具有更大的數(shù)據(jù)流量[4-7]。因此,工業(yè)現(xiàn)場一般都是采用Modbus RTU協(xié)議。
1.2Modbus RTU 信息幀
在 RTU 模式下,幀間字符間隔時(shí)間不能超過1.5個(gè)字符傳輸時(shí)間。幀與幀間時(shí)間間隔不能超過3.5 個(gè)字符傳輸時(shí)間。如果一幀之內(nèi)有超過 1.5個(gè)字符時(shí)間的停頓,接收設(shè)備將刷新不完整的消息并假設(shè)下一個(gè)字節(jié)是一個(gè)新消息的地址域[8]。
Modbus的協(xié)議數(shù)據(jù)單元(PDU)與基礎(chǔ)通信層無關(guān),特定總線或網(wǎng)絡(luò)上的Modbus協(xié)議映射能夠在應(yīng)用數(shù)據(jù)單元(ADU)上引入一些附加域[9]。通用Modbus幀結(jié)構(gòu)如圖1所示。
圖1 通用Modbus幀
變電站智能輔助控制系統(tǒng)Modbus協(xié)議測試軟件內(nèi)置于智能管理主機(jī),通過智能管理主機(jī)向下與采用Modbus協(xié)議的子系統(tǒng)設(shè)備通信,完成對(duì)子系統(tǒng)設(shè)備的狀態(tài)檢測和控制。智能管理主機(jī)向子系統(tǒng)設(shè)備發(fā)送請(qǐng)求,子系統(tǒng)設(shè)備連接成功后正確響應(yīng),并向智能管理主機(jī)發(fā)送對(duì)應(yīng)的所需信息。通過上述過程,完成智能管理主機(jī)對(duì)子系統(tǒng)設(shè)備的信息交換、數(shù)據(jù)采集和控制輸出功能。測試軟件總體設(shè)計(jì)結(jié)構(gòu)見圖2。Modbas RTU測試流程如圖3所示。
圖2 總體設(shè)計(jì)結(jié)構(gòu)
圖3 ModBus RTU測試流程
該測試軟件主要包括配置文件解析、通信、協(xié)議分析、顯示、提示五個(gè)模塊。智能管理主機(jī)通過通信模塊與被測子系統(tǒng)設(shè)備進(jìn)行連接通信,接收和發(fā)送協(xié)議消息,接收到消息后交給協(xié)議分析模塊進(jìn)行協(xié)議驗(yàn)證和分析,并得出分析結(jié)果,由顯示模塊和提示模塊顯示分析結(jié)果[10]。配置文件解析模塊對(duì)智能管理主機(jī)模擬器讀入的配置文件進(jìn)行解析,以方便測試的形式顯示出來。
在Qt軟件開發(fā)環(huán)境中,為簡化程序,提高開發(fā)效率,設(shè)計(jì)采用第三方開發(fā)的協(xié)議棧Libmodbus來進(jìn)行Modbus RTU協(xié)議測試軟件的開發(fā),用Qt+Libmodbus 開發(fā)的軟件可在不同平臺(tái)上運(yùn)行,具有很好的移植性。Libmodbus協(xié)議棧包含針對(duì)不同功能碼的API操作函數(shù)。從模型文件或參數(shù)輸入部分獲取API操作函數(shù)的輸入?yún)?shù),程序處理后調(diào)用相應(yīng)操作函數(shù),進(jìn)而實(shí)現(xiàn)通信測試。利用Libmodbus開發(fā)RTU的流程如圖4所示。
圖4 ModBus RTU開發(fā)流程
3.1模型配置
將智能輔助控制系統(tǒng)中采用Modbus RTU信息量的子設(shè)備,按“四遙”類型和設(shè)備類型相結(jié)合的方式分類。這樣,可以有針對(duì)性地為設(shè)備建立對(duì)象信息模型,從而方便地將Modbus報(bào)文測試和模型文件進(jìn)行關(guān)聯(lián),以直觀的方式顯示功能測試內(nèi)容。另外,該模型文件可按照被測廠家自己對(duì)通信寄存器地址功能的規(guī)定進(jìn)行配置,具有靈活性的優(yōu)勢(shì)。XML文件具有簡單、互操作性、規(guī)范統(tǒng)、與平臺(tái)無關(guān)和可擴(kuò)展的特點(diǎn),設(shè)計(jì)采用XML格式配置模型文件。模型配置流程如圖5所示。
圖5 模型配置流程
軟件啟動(dòng)后,在文件菜單里先加載本地已建立的XML文件模型,在模型配置頁面中會(huì)對(duì)模型文件進(jìn)行解析與展示。展示內(nèi)容包括遙信、遙控、遙測、遙信中的設(shè)備名稱和設(shè)備數(shù)量。
3.2通信連接
該部分是為了在智能管理主機(jī)和子系統(tǒng)設(shè)備間建立通信鏈路,以便進(jìn)行報(bào)文傳輸。在進(jìn)行通信連接前,需設(shè)定通信超時(shí)時(shí)間,超時(shí)時(shí)間主要用來設(shè)置對(duì)應(yīng)答報(bào)文的等待時(shí)間,等待時(shí)間的長短與波特率和應(yīng)答幀的長度有關(guān)。在libmodbus協(xié)議棧中有專門設(shè)置超時(shí)時(shí)間的變量struct timeval,其內(nèi)部成員long tv_sec以秒為單位設(shè)置,long tv_usec以微秒為單位設(shè)置,軟件默認(rèn)超時(shí)時(shí)間為1 000 000 μs。設(shè)置完超時(shí)時(shí)間后,需要完成對(duì)Modbus RTU的基礎(chǔ)串口參數(shù)的設(shè)置,完成Modbus RTU主機(jī)與子設(shè)備的通信連接,主要包括串口號(hào)選擇,波特率選擇,數(shù)據(jù)位選擇,檢驗(yàn)位選擇,停止位選擇等。先利用API函數(shù)*modbus_t *modbus_new_rtu (const char *’device’,int ‘baud’, char ’ parity’, int ’data_bit’, int ’stop_bit’)來設(shè)置RTU連接參數(shù),再利用API函數(shù)*int modbus_connect(modbus_t *’ctx’)建立通信連接,當(dāng)連接建立成功時(shí)函數(shù)將返回0,否則返回-1。
3.3狀態(tài)檢測與控制
該部分依據(jù)Modbus協(xié)議標(biāo)準(zhǔn)規(guī)定格式進(jìn)行報(bào)文格式封裝,功能碼功能與標(biāo)準(zhǔn)功能碼功能相同,這樣可對(duì)Modbus報(bào)文進(jìn)行規(guī)范化、標(biāo)準(zhǔn)化方面的測試。
此部分是測試軟件的主體部分,主要是報(bào)文的傳輸,用于控制子設(shè)備動(dòng)作或查詢子設(shè)備狀態(tài)。在libmodbus協(xié)議棧中,針對(duì)不同功能碼設(shè)置了不同的API函數(shù),用于讀寫操作的API函數(shù)主要有
*int modbus_read_bits(),
*int modbus_read_input_bits(),
*int modbus_write_bits(),
*int modbus_write_registers()等函數(shù),前面在模型文件中將子系統(tǒng)設(shè)備及其需要測試的功能進(jìn)行了分類,這里可根據(jù)這些功能的特點(diǎn)直接調(diào)用響應(yīng)的API函數(shù)。在進(jìn)行讀寫操作前,要先利用*int
modbus_set_slave(modbus_t *’ctx’,int ‘slave’)設(shè)置從機(jī)地址。
通過虛擬串口,利用Modbus Slave軟件模擬Modubs從站,對(duì)Modbus客戶端軟件進(jìn)行測試,Modbus Slave的數(shù)值是以十進(jìn)制顯示,Modbus客戶端測試軟件除當(dāng)前值和設(shè)置值兩列用十進(jìn)制表示外,其余數(shù)值全部采用十六進(jìn)制數(shù)表示。在進(jìn)行測試時(shí),須要注意數(shù)值變換。
4.1讀功能測試
以遙信量為測試對(duì)象,將Slave中的設(shè)備ID設(shè)為01,功能碼設(shè)為02,修改通信寄存器地址0000H~0004H中的值為1、0、1、1、1。模型通信參數(shù)設(shè)備9600、8、N、1(表1)。然后通過虛擬串口建立連接,在上位機(jī)軟件中勾選需要測試的功能,點(diǎn)擊更新按鈕,可以發(fā)現(xiàn),從機(jī)模擬器中對(duì)應(yīng)的值被正確讀出。測試結(jié)果如表2所示。
表1 Modbus Slave設(shè)置數(shù)據(jù)
表2 測試結(jié)果顯示
4.2寫功能測試
以遙調(diào)量為測試對(duì)象,以設(shè)置溫濕度傳感器的溫度和濕度的告警限值為例,從上位機(jī)設(shè)置溫濕度(表3)對(duì)應(yīng)的值,看slave從機(jī)模擬器是否有變化,如果顯示數(shù)據(jù)和上位機(jī)一致,則寫入成功,表4為測試結(jié)果。
表3 上位機(jī)設(shè)置數(shù)據(jù)
表4 設(shè)置界面顯示
智能輔助控制系統(tǒng)Modbus協(xié)議測試軟件可以滿足測試需求,其模型實(shí)現(xiàn)簡單,開發(fā)成本低。該軟件通過建立對(duì)象信息模型,將Modbus協(xié)議測試和變電站智能輔助系統(tǒng)特定功能進(jìn)行關(guān)聯(lián),可以方便地對(duì)智能輔助控制系統(tǒng)的功能進(jìn)行測試,其配置的對(duì)象信息模型,可按照被測試廠家自己的規(guī)定靈活配置,使軟件具有更強(qiáng)的針對(duì)性。另外,軟件依據(jù)標(biāo)準(zhǔn)開發(fā),可起到規(guī)范、標(biāo)準(zhǔn)化作用。用于輔助系統(tǒng)測試可以嚴(yán)把系統(tǒng)設(shè)備建設(shè)、入網(wǎng)關(guān),對(duì)保證變電站建設(shè)質(zhì)量和電網(wǎng)安全運(yùn)行具有重要意義。
致謝:該論文得到四川電力科學(xué)研究院——電子科技大學(xué)“變電站智能輔助控制系統(tǒng)測試系統(tǒng)開發(fā)”項(xiàng)目(2015510007000443)的支持。
[1]戎立斌. 棉花回潮率在線檢測數(shù)據(jù)通信模塊設(shè)計(jì)與實(shí)現(xiàn)[J].中國棉花加工, 2011, 12(5): 22-24.
[2]賈澤莘, 李玉貴, 歐蓮惠.淺談Modbus協(xié)議在電力系統(tǒng)監(jiān)控中的應(yīng)用[J].視聽, 2013(4): 7-8.
[3]于強(qiáng).水質(zhì)遠(yuǎn)程監(jiān)測數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)[D].大連: 大連理工大學(xué), 2007.
[4]余杰, 李鐵輝.基于MODBUS協(xié)議的串口控件的實(shí)現(xiàn)[J].微計(jì)算機(jī)信息, 2008, 12(2): 79-81.
[5]白焰, 鐘艷輝, 秦宇飛.基于VC的Modbus協(xié)議通信測試軟件的實(shí)現(xiàn)-Modbus串口通信與Modbus/TCP通信 [J].現(xiàn)代電力, 2008, 25(6): 76-80.
[6]韓麗娜, 陶安利,李紹剛,等.基于Modbus協(xié)議的智能壓力傳感器研發(fā)[J].可編程控制器與工廠自動(dòng)化, 2010, 17(8): 61-64.
[7]劉忠凱, 段富海, 王寧.一種支持遠(yuǎn)程界面發(fā)布的智能溫濕度控制系統(tǒng)[J].現(xiàn)代電子技術(shù), 2013, 36(2): 102-106.
[8]金海琴, 陳興, 翟林鵬.基于Modbus協(xié)議的串行通信的應(yīng)用[J].電子設(shè)計(jì)工程, 2013, 21(8): 157-160.
[9]劉廣敏, 劉建翔, 侯恩廣.Modbus協(xié)議在紅紫外火焰探測器的應(yīng)用[J].消防科學(xué)與技術(shù), 2012(5): 502-504.
[10]韓小軍.基于事件仿真的變電站輔助監(jiān)控系統(tǒng)聯(lián)動(dòng)測試研究與實(shí)現(xiàn)[D]. 成都: 電子科技大學(xué), 2014.
(編輯徐巖)
Research on implementation of substation intelligent auxiliary control system protocol testing software
SHENXianqing1,ZHUYanlei1,CHANGZhengwei2,XUTianhao3
(1.School of Electrical & Control Engineering, Heilongjiang University of Science & Technology, Harbin 150022, China;2.State Grid Sichuan Electric Power Research Institute, Chengdu 610072, China;3.School of Energy Science & Engineering, University of Electronic Science & Technology of China,Chengdu 611731,China)
This paper proposes a practical Modbus RTU protocol testing software designed for substation intelligent auxiliary control system as an alternative to the existing modbus protocol testing software mostly in the form of message which fails to perform in an intuitive, convenient and specific way. The novel software based on the model of flexible configuration file works by testing the function of the intelligent auxiliary systemby developing object information model and associating Modbus protocol testing with the specific functions of substation intelligent auxiliary system. Experimental results show that the test software capable of simple and easy operation is adequate for the test requirements and provides an intuitive and specific performance.
Modbus RTU; protocol testing; intelligent auxiliary control system
2016-04-25
沈顯慶(1969-),男,吉林省通化人,教授,博士,研究方向:變電站智能輔助系統(tǒng),E-mail:shenxianqing2001@163.com。
10.3969/j.issn.2095-7262.2016.04.020
TM63;TM76
2095-7262(2016)04-0454-04
A