国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Modbus RTU協(xié)議的電力數(shù)據(jù)采集系統(tǒng)設(shè)計

2016-08-29 03:17南京西爾特電子有限公司傅啟國
電子世界 2016年15期
關(guān)鍵詞:PC機通信協(xié)議子程序

南京西爾特電子有限公司 傅啟國

?

基于Modbus RTU協(xié)議的電力數(shù)據(jù)采集系統(tǒng)設(shè)計

南京西爾特電子有限公司傅啟國

對Modbus通信協(xié)議進行了較深入研究,在此基礎(chǔ)上設(shè)計了基于Modbus RTU協(xié)議的電力數(shù)據(jù)采集系統(tǒng),實現(xiàn)PC機和數(shù)據(jù)采集終端之間的互聯(lián)通信,進而實現(xiàn)了對電力系統(tǒng)數(shù)據(jù)的集中管理和實時監(jiān)測,該系統(tǒng)具有簡單、經(jīng)濟、兼容性好等優(yōu)點。

Modbus通信協(xié)議;數(shù)據(jù)采集系統(tǒng);電力系統(tǒng)

0 引言

隨著智能電網(wǎng)的不斷發(fā)展,在電力系統(tǒng)中除了要對電能進行精確計量,還需要實現(xiàn)電力系統(tǒng)電能質(zhì)量和運行狀態(tài)的實時監(jiān)測,而這都依賴于對電力系統(tǒng)的電壓、電流、有功功率、功率因數(shù)等相關(guān)參數(shù)的實時和準確采集。

現(xiàn)場總線技術(shù)是20世紀80年代末90年代初發(fā)展起來的自動化領(lǐng)域的現(xiàn)場設(shè)備互聯(lián)網(wǎng)絡(luò)通信技術(shù),通過現(xiàn)場總線把各電力數(shù)據(jù)采集終端的數(shù)據(jù)傳輸給中央控制計算機,實現(xiàn)集中分析、實時監(jiān)測,為電力系統(tǒng)的可靠運行和智能電網(wǎng)的持續(xù)發(fā)展提供數(shù)據(jù)支持[1]。

在各種應(yīng)用較成熟的現(xiàn)場總線中,Modbus通信協(xié)議因其簡單、實用、投資小和兼容性好等特點而在電力系統(tǒng)通信領(lǐng)域得到了廣泛應(yīng)用,下面對其介紹。

1 Modbus通信協(xié)議

Modbus通信協(xié)議最初由Modicon公司開發(fā)出來,現(xiàn)在是工業(yè)領(lǐng)域最成熟的應(yīng)用層協(xié)議之一[2],具有開放、透明、偵錯能力強、實時性好等優(yōu)點。協(xié)議規(guī)定總線上只能有一個主設(shè)備,可以有多個從設(shè)備,并采用主從結(jié)構(gòu)的通信方式。主設(shè)備可單獨和從設(shè)備通信,也能以廣播方式和所有從設(shè)備通信。如果單獨通信,從設(shè)備返回一消息給主設(shè)備,如果以廣播方式查詢,則任何從設(shè)備不作回應(yīng)。

1.1傳輸模式

在Modbus網(wǎng)絡(luò)上進行通信,其數(shù)據(jù)傳輸模式有兩種:ASCII模式或RTU模式。用戶使用時需設(shè)置為其中的一種模式。

(1)ASCII模式

?

以ASCII模式進行通信時,消息中的每個字節(jié)都作為兩個ASCII字符發(fā)送,錯誤檢測方法采用縱向冗余檢測(LRC)。消息中每個字符由1個起始位、7個數(shù)據(jù)位、0或1個奇偶校驗位和1或2個停止位組成。該模式的優(yōu)點是字符發(fā)送的時間間隔可達到1秒而不產(chǎn)生錯誤。

(2)RTU模式

地址 功能代碼數(shù)據(jù)數(shù)量 數(shù)據(jù)1 … 數(shù)據(jù)n CRC高字節(jié)CRC低字節(jié)

以RTU模式進行通信時,消息中的每個字節(jié)包含兩個十六進制字符,錯誤檢測方法采用循環(huán)冗余檢測(CRC)。消息中每個字符由1個起始位、8個數(shù)據(jù)位、0或1個奇偶校驗位和1或2個停止位組成。RTU模式在同樣的波特率下,可以比ASCII方式傳輸更多的數(shù)據(jù)。

本采集系統(tǒng)采用傳輸效率較高的RTU模式進行通信,下面簡要介紹Modbus RTU的消息幀格式。

1.2Modbus RTU消息幀

表1給出了一個Modbus RTU消息幀格式。

表1 RTU消息幀格式

可以看到,RTU消息幀包括地址域、功能域、數(shù)據(jù)域和CRC域四部分。

(1)地址域

地址域是消息幀第一個字節(jié),范圍為十進制的0~247,其中地址0用作廣播地址,表示消息發(fā)送給所有從設(shè)備;1~247則可設(shè)置為某一從設(shè)備地址,所以最多支持247個從設(shè)備。主設(shè)備在對某一從設(shè)備發(fā)送消息時,需要將該從設(shè)備的地址放入地址域中,從設(shè)備返回消息時,把自身的設(shè)備地址也放入回應(yīng)消息的地址域中,這樣主設(shè)備就知道消息來源于哪個從設(shè)備。

(2)功能域

功能域在地址域之后,范圍一般為十進制的1~127,具體包含了從設(shè)備需要執(zhí)行哪些任務(wù),采集哪些數(shù)據(jù)的信息。Modbus協(xié)議應(yīng)用于電力系統(tǒng)時,需采集的數(shù)據(jù)類型主要有:可讀寫模擬量,如保護整定值等;只讀模擬量,如電壓、電流、頻率等電力參數(shù)。

(3)數(shù)據(jù)域

數(shù)據(jù)域緊接著功能域。從設(shè)備執(zhí)行由功能碼所定義的任務(wù),組織相應(yīng)數(shù)據(jù),具體信息包括起始寄存器地址、要處理項的數(shù)目、實際數(shù)據(jù)字節(jié)數(shù)等。

(4)CRC域

排在結(jié)尾的CRC域是兩個字節(jié),它由主設(shè)備計算,置于發(fā)送消息幀的末尾,從設(shè)備接收信息幀后,再次計算CRC,比較計算得到的CRC與接收到的是否相同,如果一致,則表明傳輸正確;否則,則表明傳輸出錯。

2 基于Modbus RTU協(xié)議的電力數(shù)據(jù)采集系統(tǒng)

基于Modbus RTU協(xié)議的電力數(shù)據(jù)采集系統(tǒng)如圖1所示,系統(tǒng)的主站采用PC機,從站為各數(shù)據(jù)采集終端,總線協(xié)議為Modbus通信協(xié)議,傳輸模式為Modbus RTU模式。通過Modbus總線實現(xiàn)了PC機與各數(shù)據(jù)采集終端的互聯(lián)通信。

圖1 基于Modbus RTU協(xié)議的電力數(shù)據(jù)采集系統(tǒng)

作為主設(shè)備的PC機可以采集并記錄各項參數(shù),可對各相電壓或電流繪制實時曲線,并對配電線路中的各設(shè)備狀態(tài)進行實時記錄等。具體來說,基于Modbus RTU協(xié)議的電力數(shù)據(jù)采集系統(tǒng)可以采集的數(shù)據(jù)主要有:

●三相電流Ia、Ib和Ic,三相電壓Ua、Ub和Uc和電網(wǎng)頻率;

●電能、有功功率、無功功率和功率因數(shù);

●線路上各采集終端的地址、歷史記錄數(shù)據(jù)等。

3 數(shù)據(jù)采集系統(tǒng)軟件設(shè)計與開發(fā)

采集系統(tǒng)軟件包括從站(數(shù)據(jù)采集終端)和主站(PC機)兩部分組成。主站軟件是基于PC的Windows平臺,采用Visual C++語言設(shè)計。從站軟件采用C語言設(shè)計。

3.1數(shù)據(jù)采集系統(tǒng)主站軟件設(shè)計

利用高級語言Visual C++可方便地開發(fā)主站管理平臺。

MSComm控件是Windows下串行通信編程的ActiveX控件,它提供了一種通過串行接口收發(fā)數(shù)據(jù)的簡便方法[3]。該控件提供兩種通信處理方式:事件驅(qū)動方式和查詢方式??紤]到事件驅(qū)動方式具有程序響應(yīng)及時和可靠性高等優(yōu)點,本次設(shè)計MSComm控件采用事件驅(qū)動的工作方式。

采集系統(tǒng)中,作為主站的PC機是主設(shè)備,由它觸發(fā)通信事件,從站的采集終端是從設(shè)備,它根據(jù)主站發(fā)出的命令采集相應(yīng)的數(shù)據(jù)。本設(shè)計中主站PC機的通信程序的流程如圖2所示。

圖2 主站通信流程圖

圖3 中斷子程序

主站進行控件屬性初始化后,先查詢鏈路狀態(tài),在確定鏈路狀態(tài)正常后,等待按鈕事件或定時事件的發(fā)生。當有按鈕事件或定時事件觸發(fā)時,從站進入通信接收中斷子程序進行任務(wù)處理,否則,繼續(xù)完成從站的其他功能。從站獲取電壓、電流等數(shù)據(jù)是通過主站設(shè)置定時自動通信功能,在一定的時間間隔內(nèi)從從站采集而實現(xiàn)的。

3.2數(shù)據(jù)采集系統(tǒng)從站軟件設(shè)計

當主站PC機發(fā)送消息到從站采集終端時將在從站采集終端觸發(fā)接收中斷,消息幀接收完成后便退出中斷子程序,然后從站根據(jù)功能域的信息執(zhí)行具體的采集任務(wù),最后再把響應(yīng)消息發(fā)送給主站。所以從站通信程序分為發(fā)送子程序、協(xié)議處理子程序和接收中斷子程序。

(1)中斷子程序設(shè)計

中斷子程序的功能是接收數(shù)據(jù)。一個Modbus RTU消息幀包含多個字節(jié),接收子程序一次只接收一個字節(jié),當接收完一幀完整的數(shù)據(jù)時,才將相關(guān)變量都清零,并通知協(xié)議處理子程序處理消息幀。接收子程序流程如圖3所示。

(2)協(xié)議處理子程序設(shè)計

協(xié)議處理子程序的功能是處理Modbus RTU消息幀。當接收到一幀完整的數(shù)據(jù)時,首先進行CRC校驗,如果校驗錯誤則丟棄該幀數(shù)據(jù)。在校驗正確時,再判斷地址是否與本從站相符,如果不符也要丟棄該幀數(shù)據(jù)。接著再根據(jù)功能碼的定義調(diào)用相應(yīng)的功能碼處理函數(shù),處理完成后組織應(yīng)答幀,并發(fā)送調(diào)用發(fā)送子程序的信號,其程序流程如圖4所示。

(3)發(fā)送子程序設(shè)計

在數(shù)據(jù)發(fā)送前,從站采集終端處于發(fā)送狀態(tài),數(shù)據(jù)寫入發(fā)送緩存后,每次發(fā)送一個字節(jié),當發(fā)送緩存為空時,表示發(fā)送完畢。而在數(shù)據(jù)發(fā)送完成后,還要使從站采集終端處于接收狀態(tài),等待主站的命令。其程序流程如圖5所示。

4 結(jié)束語

Modbus通信協(xié)議由于其開放、簡單、實用、兼容性好而被廣泛應(yīng)用。本文對ModBus協(xié)議進行了較深入的研究,在此基礎(chǔ)上設(shè)計了基于Modbus RTU協(xié)議的電力數(shù)據(jù)采集系統(tǒng),并對從站和主站的軟件設(shè)計進行了較詳細的討論。該系統(tǒng)具有適用性強、簡單、經(jīng)濟、易于維護等優(yōu)點。

[1]陽憲惠.現(xiàn)場總線技術(shù)及其應(yīng)用[M].北京:清華大學出版社,1999.

[2]顧海勤,楊奕,全毅,馬躍.基于MODBUS協(xié)議的智能儀表與PC機雙向通訊設(shè)計[J].儀表技術(shù)與傳感器,2013(12): 33-35.

[3]龔建偉,熊光明. 串口通信編程實踐[M].北京:電子工業(yè)出版社,2004.

傅啟國,男,控制理論與控制工程專業(yè)碩士研究生畢業(yè),研究方向:電力自動化、嵌入式開發(fā)。

猜你喜歡
PC機通信協(xié)議子程序
基于Wireshark的列控中心以太網(wǎng)通信協(xié)議解析器的研究與實現(xiàn)
基于三菱FXPLC的感應(yīng)淬火機床與PC機的串行通信實現(xiàn)
VC.NET下實現(xiàn)dsPIC單片機與PC機的通信
基于單片機與PC機的電氣量采集系統(tǒng)設(shè)計
基于NS-3的PLC多頻通信協(xié)議仿真平臺設(shè)計與實現(xiàn)
淺談子程序在數(shù)控車編程中的應(yīng)用
VIVID3彩色超聲儀結(jié)構(gòu)原理及維修
子程序在數(shù)控車加工槽中的應(yīng)用探索
西門子840D系統(tǒng)JOG模式下PLC調(diào)用并執(zhí)行NC程序
基于風險分析的安全通信協(xié)議簡化研究