0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

采用RS-485串行通信和Modbus通信協(xié)議實現(xiàn)電動機綜合保護裝置的設(shè)計

電子設(shè)計 ? 來源:科技與創(chuàng)新 ? 作者:鄧元生 , 李力爭 ? 2020-12-25 10:41 ? 次閱讀

1 引言

在自控裝置和電力系統(tǒng)微機綜合保護以及其它工業(yè)自動化控制領(lǐng)域,微控制器的應(yīng)用越來越 廣泛,其裝置的復(fù)雜性也越來越高。為了解決其開發(fā)對象實時多任務(wù)性的要求,單CPU、單個開發(fā) 的模式將被多個、多類型CPU 和多人協(xié)同開發(fā)的模式所代替,在這新的開發(fā)模式中,面臨一個新 問題——在實施信息交互的過程中如何將實現(xiàn)CPU 之間信息交互的軟硬件標準化,這是關(guān)系到 該模式能否成功實施的關(guān)鍵。在眾多的通信方式中,基于UARTRS-485 串行通信模式以其連 線簡捷、高可靠性以及可帶動多CPU 的能力而被廣泛采用。在軟件通信協(xié)議的選擇上,Modbus 協(xié)議由于其通用、成熟的調(diào)試軟件,為用戶使用提供了諸多優(yōu)勢。因此,在開發(fā)新型電動機綜合 保護裝置的過程中,采用RS-485 串行通信方式和Modbus 通信協(xié)議,實現(xiàn)了多CPU 之間的數(shù)據(jù)和 控制命令的信息交互。為了增強串行通信的高效、協(xié)調(diào)性,筆者在通信機制的軟硬件結(jié)構(gòu)上采取 了很多措施,并取得了很好的效果。在調(diào)試系統(tǒng)通信階段,使用了各CPU 模塊先與Modbus 標準 測試軟件通信,之后再互相聯(lián)調(diào)的方法,大大提高了協(xié)同開發(fā)的效率。實踐證明,該設(shè)計思想簡化 了系統(tǒng)的結(jié)構(gòu),大大提高了裝置的運行效率和可靠性。

2 電動機綜合保護裝置的特點

電動機綜合保護裝置除綜合保護功能以外,兼有測量、遠動和通信的功能;大屏幕的漢字液 晶顯示,可以實現(xiàn)友好的人機界面;利用CAN 總線,與監(jiān)控主機進行通信,從而構(gòu)成分級分散式的 變電站綜合自動化系統(tǒng)的子系統(tǒng)。由于裝置需要實現(xiàn)多任務(wù),為了優(yōu)化系統(tǒng)功能, 采用了多CPU 的系統(tǒng)結(jié)構(gòu)設(shè)計方法。其中一個CPU 負責(zé)定時采樣脈沖發(fā)送;主CPU 模塊負責(zé)數(shù)據(jù)處理、電量計算、故障判斷和開關(guān)操作;而板模塊上CPU 負責(zé)人機交互,并實現(xiàn)與主保護模塊和監(jiān)控主機的通 信任務(wù)。各個CPU 模塊有明確的任務(wù)分工,研制時也容易實現(xiàn)多人協(xié)同開發(fā)。在整個構(gòu)成中,串 行通信溝通了主CPU 和面板CPU,使人機交互成為可能,因而有著重要的地位。建立合理的通信 機制則是串行通信部分的核心的所在,它決定著通信的協(xié)調(diào)性和系統(tǒng)開發(fā)后期調(diào)試的效率。

3 通信機制介紹

3.1 通信機制硬件設(shè)計

本系統(tǒng)通信機制的提出以高效、可靠為目的。RS-485 為半雙工結(jié)構(gòu),現(xiàn)場中比全雙工往往更接 近于實用,在此采用只有2 條信號線的簡易型連接。系統(tǒng)接口電路圖由圖1 所示,主保護模塊上 的8051 單片機輸出的TTL 邏輯電平通過光電隔離后,由MAX485 芯片轉(zhuǎn)換為RS-495 電平,再由面 板模塊上的MAX485 芯片轉(zhuǎn)換為TTL 邏輯電平,由8031 單片機讀取。在8051 單片機一側(cè),使用并 行輸入輸出口2 的一位P2.7 對MAX 輸入使能端RE、輸出使能端DE 進行控制。由圖1 可知,當(dāng)P2.7 輸出高電平時,RE 使能,單片機一側(cè)接收數(shù)據(jù);當(dāng)P2.7 輸出低電平時,DE 使能,單片機一側(cè)發(fā)送數(shù) 據(jù)。這樣,避免了盲目發(fā)送造成的數(shù)據(jù)疊加丟失現(xiàn)象,通信質(zhì)量高,通信速度也能得到保證。

采用RS-485串行通信和Modbus通信協(xié)議實現(xiàn)電動機綜合保護裝置的設(shè)計

3.2 通信協(xié)議

為了保證保護裝置中兩個模塊之間能夠正確地傳遞數(shù)據(jù),必須有一套關(guān)于信息傳輸?shù)哪?式、數(shù)據(jù)格式和內(nèi)容等的規(guī)定,即規(guī)約或通信協(xié)議。由于沒有現(xiàn)成的較成熟的調(diào)試軟件,主 CPU 模塊基本是黑匣子,系統(tǒng)聯(lián)調(diào)時的困難較多且難以克服。因此,采用了當(dāng)前流行的 Modbus 通信協(xié)議,并結(jié)合本裝置的特點加以簡化,從而實現(xiàn)了模塊間的通信,事實證明效果 很好。Modbus 的通信方式為主從方式,主方首先向從方發(fā)送通信請求指令,從方根據(jù)請求 指令中的功能碼向主方發(fā)回數(shù)據(jù)。每個從方都有自己獨立的地址,主方所發(fā)的請求幀和從方 所發(fā)的應(yīng)答幀都是以從方地址開頭的。從方只讀發(fā)給自己的指令,對以其他從方地址開頭的 報文不作應(yīng)答,它是通過8051 的串行口工作方式2 或方式3 來實現(xiàn)的,這種一問一答的通 信模式,大大提高了通信的正確率,本文裝置中采用了Modbus 的RTU 傳送方式。

4 提高通信可靠性的措施

Modbus 報文末的兩個字節(jié)為校驗字節(jié),RTU 方式通信采用CRC-16 位循環(huán)碼冗余校驗, 它的編譯碼設(shè)備比較簡單,誤判概率很低,可通過計算法和編程法實現(xiàn),幾種方法如下:

4.1 基本算法(人工筆算)

以CRC16-CCITT 為例進行說明,CRC 校驗碼為16 位,生成多項式17 位。假如數(shù)據(jù)流為 4 字節(jié):BYTE、BYTE、BYTE、BYTE[0];

數(shù)據(jù)流左移16 位,相當(dāng)于擴大256×256 倍,再除以生成多項式0x11021,進行不借位的除 法運算(相當(dāng)于按位異或),所得的余數(shù)就是CRC 校驗碼。 發(fā)送時的數(shù)據(jù)流為6 字節(jié):BYTE、BYTE、BYTE、BYTE[0]、CRC、CRC[0]。

4.2 計算機算法1(比特型算法)

1)將擴大后的數(shù)據(jù)流(6 字節(jié))高16 位(BYTE、BYTE)放入長度為16 的寄存器;

2)如果寄存器的首位為1,將寄存器左移1 位(寄存器的最低位從下一個字節(jié)獲得),再與生成多項式的簡記式異或;否則僅將寄存器左移1 位(寄存器的最低位從下一個字節(jié)獲得);

3)重復(fù)第2 步,直到數(shù)據(jù)流(6 字節(jié))全部移入寄存器;

4)寄存器中的值則為CRC 校驗碼CRC、CRC[0]。

4.3 計算機算法2(字節(jié)型算法)(256^n 表示256 的n 次方)

把按字節(jié)排列的數(shù)據(jù)流表示成數(shù)學(xué)多項式,設(shè)數(shù)據(jù)流為BYTE[n]BYTE[n-1]BYTE[n-2] 。..BYTEBYTE[0],表示成數(shù)學(xué)表達式

BYTE[n]×256^n+BYTE[n-1]×256^(n-1)+ 。..+BYTE*256+BYTE[0],在這里+表示為異或運算。設(shè)生成多項式為G17(17bit),則CRC 碼為CRC16。

CRC16=(BYTE[n]×256^n+BYTE[n-1]×256^(n-1)+.。.+BYTE×256+BYTE[0])×25

6^2/G17,即數(shù)據(jù)流左移16 位,再除以生成多項式G17。

經(jīng)過推導(dǎo)可知,BYTE[n-1]字節(jié)的CRC 校驗碼等于上一字節(jié)CRC 校驗碼Y[n]的高8位(YH8[n])與本字節(jié)BYTE[n-1]異或結(jié)果。

字節(jié)型算法如下:

1)CRC 寄存器組初始化為全“0”(0x0000)。

2)CRC 寄存器組向左移8 位,并保存到CRC 寄存器組。

3)原CRC 寄存器組高8 位(右移8 位)與數(shù)據(jù)字節(jié)進行異或運算,得出一個指向值表的索引。

4)索引所指的表值與CRC 寄存器組做異或運算。

5)數(shù)據(jù)指針加1,如果數(shù)據(jù)沒有全部處理完,則重復(fù)步驟2)。

6)得出CRC。

5 提高通信效率的措施

5.1 將通信的接收和發(fā)送兩個任務(wù)獨立

8051 單片機可以使用中斷的方法通過串行口發(fā)送和接收數(shù)據(jù),串行口控制器SCON 可 以初始化、可以位尋址,當(dāng)串行口發(fā)生中斷請求時,SCON 低兩位能鎖存發(fā)送中斷和接收中 斷,當(dāng)CPU 向串行口的發(fā)送數(shù)據(jù)緩沖器SUBF 寫入一個數(shù)據(jù)或字符時(指令MOV SUBF, A),發(fā)送器就開始發(fā)送,當(dāng)發(fā)送完一幀數(shù)據(jù)后,由硬件置“1”TI 標志,表示串行口正在向 CPU 請求中斷,請求發(fā)送下一幀數(shù)據(jù)。同樣,若串行口接受器允許接收,當(dāng)接收器接收到 一幀數(shù)據(jù),置“1”RI 標志,表示串行口正在向CPU 請求中斷,請求CPU 到接收數(shù)據(jù)緩沖器 讀取數(shù)據(jù)。

5.2 縮短中斷時間

由于設(shè)計軟件結(jié)構(gòu)時使用了多個中斷,為了保證程序的可靠運行,減少不同任務(wù)相互沖 突的機率,在編制軟件時盡可能簡練各種中斷的任務(wù),縮短中斷執(zhí)行時間。在通信中斷子程序 中,進入中斷后執(zhí)行必要的任務(wù),如:清串行口控制寄存器中相應(yīng)的狀態(tài)位,將剛接收到的字 符或需要發(fā)送的字符從緩沖區(qū)內(nèi)讀出或?qū)懭刖彌_區(qū),已接收或發(fā)送字符數(shù)增1 等,之后便立 即退出中斷。其它任務(wù)如判斷幀的有效性、對接收幀命令(遙測、遙控命令)的應(yīng)答,準備 發(fā)送幀等,都放在主程序中完成。

5.3 有效地判斷幀結(jié)束,防止通信停滯

利用單獨的軟件定時器,來判斷一幀接收報文結(jié)束,可以防止若報文接收不完整,該幀通 信任務(wù)無法結(jié)束而影響下一幀的接收。由于一幀報文中字節(jié)與字節(jié)之間的時間間隔和幀與幀 之間的時間間隔相比要小得多,因此每當(dāng)接收一個新字節(jié),就啟動軟件定時器開始計時,定時 器的時間設(shè)定為幀與幀的最小時間間隔。波特率不同,該時間間隔也不同。若不到預(yù)定的時間內(nèi)又接收到下一個字節(jié),則說明一幀報文未結(jié)束,定時器重新計時;若定時器順利計數(shù)到預(yù) 定時間,就會觸發(fā)相應(yīng)的中斷號,在該定時器中斷子程序中設(shè)定幀結(jié)束標志字節(jié),表明一幀報 文接收完畢。當(dāng)主程序內(nèi)檢測到一幀報文接收完畢后,會通過核查從方地址及循環(huán)冗余校驗 字節(jié)是否正確來判斷該幀的有效性。若確定接收到的是一幀發(fā)送給已方的正確報文,則會根 據(jù)報文內(nèi)的功能碼對該幀命令進行相應(yīng)的處理,并準備發(fā)送幀,當(dāng)從方接收報文不正確時發(fā) 回出錯幀,如果從方收到的報文校驗不正確,可采取不作應(yīng)答的方式,主方若在規(guī)定時間內(nèi) 未收到從方的應(yīng)答報文時,將重發(fā)請求報文;若多次未收到從方應(yīng)答報文,則報通訊故障。

5.4 通信速率的確定

由于所用的裝置都在同一機箱內(nèi),模塊與模塊之間的間距很短,而Modbus 是基于RS485 的長距離通信,可以不考慮距離對通信波特率的影響,并且由于采用主從式通信模式,不會出 現(xiàn)線路堵塞現(xiàn)象。因此從通信效率來看,只要不超過模塊所使用芯片對最高波特率的限制, 則設(shè)定的波特率越高,信息交互越快,通信效率也越高,由于設(shè)定通信雙方波特率完全一致, 可以使接收端對每一個數(shù)據(jù)位的采樣都發(fā)生在位周期的中點,從而實現(xiàn)可靠通信。

5.5 合理的調(diào)試方法

調(diào)試時先將各個CPU 模塊分別通RS485/RS232 數(shù)據(jù)轉(zhuǎn)化模塊與微機進行通信測試,成 功后再進行模塊間聯(lián)調(diào),大大提高了聯(lián)調(diào)的效率。在調(diào)試各模塊與微機通信的過程中,微機 使用Modbus 調(diào)試軟件,模仿主方的通信過程,主動向從方索要信息,整個接收、發(fā)送過程 都是透明的、清晰的,從而使得模塊中存在的問題得以及時解決;聯(lián)調(diào)時,利用總線監(jiān)控軟 件觀察雙方的數(shù)據(jù),及時地發(fā)現(xiàn)問題和解決問題。

6 本文的創(chuàng)新點

第一,本文在保護裝置中的采用Modbus 這種通用的工業(yè)標準,所需的工具軟件可以直 接從相關(guān)網(wǎng)站獲得,不需知識產(chǎn)權(quán)方面的花費;第二,保護裝置實施多任務(wù)化,利用Modbus 協(xié)議創(chuàng)建了CPU 模塊間合理的聯(lián)調(diào)機制,大大提高了系統(tǒng)協(xié)同開發(fā)的效率。

責(zé)任編輯:gt

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 單片機
    +關(guān)注

    關(guān)注

    6040

    文章

    44594

    瀏覽量

    636930
  • 電動機
    +關(guān)注

    關(guān)注

    75

    文章

    4118

    瀏覽量

    96729
  • 串行通信
    +關(guān)注

    關(guān)注

    4

    文章

    576

    瀏覽量

    35487
收藏 人收藏

    評論

    相關(guān)推薦

    基于RS-485通信協(xié)議的自動控制液壓系統(tǒng)設(shè)計

    控制領(lǐng)域的廣泛應(yīng)用,誕生了大量基于各種總線和通信協(xié)議通信方式。RS-485就是一種基于RS-485總線的通信協(xié)議,它已經(jīng)被應(yīng)用在了上位機和
    發(fā)表于 06-11 05:00

    電動機的過載保護保護裝置是什么

    電動機的過載保護保護裝置是?
    發(fā)表于 03-16 08:06

    淺析RS485通信Modbus通信協(xié)議

    RS485通信Modbus通信協(xié)議匯總1. 主從模式RS-485上的軟件層協(xié)議
    發(fā)表于 08-23 06:16

    RS-485通信協(xié)議是怎樣工作的

    通信協(xié)議是指什么?RS-485通信協(xié)議是怎樣工作的?
    發(fā)表于 11-10 06:15

    RS485通信Modbus協(xié)議的特點

    RS485通信Modbus協(xié)議 附源碼及視頻教程下載RS485通信的特點1、采用差分信號。2、
    發(fā)表于 11-30 07:05

    Modbus通信協(xié)議的相關(guān)資料下載

    Modbus通信協(xié)議是在RS-485口實驗的基礎(chǔ)上實現(xiàn)的,簡單說就是首先要實現(xiàn)
    發(fā)表于 02-09 07:47

    基于RS-485變頻器與PC機串行通信實現(xiàn)

    RS-485 串行通信能夠保證快速、穩(wěn)定、遠距離地傳輸數(shù)據(jù),已經(jīng)越來越多地應(yīng)用于工業(yè)控制。文中介紹了基于RS-485 三墾變頻器與PC 機串行
    發(fā)表于 09-03 09:40 ?52次下載

    基于故障分量原理的電動機差動保護裝置

    采用故障分量原理設(shè)計了一種微機保護裝置,介紹了基于該技術(shù)的保護裝置彌補已有的電動機綜合保護裝置
    發(fā)表于 01-08 15:03 ?10次下載

    基于ARM的電動機綜合保護裝置設(shè)計

    本文分析了國內(nèi)外電動機保護的發(fā)展,針對當(dāng)前電動機保護的現(xiàn)狀,介紹了一種嵌入式綜合電動機
    發(fā)表于 10-27 15:53 ?48次下載

    基于故障分量原理的電動機差動保護裝置

    基于故障分量原理的電動機差動保護裝置 采用故障分量原理設(shè)計了一種微機保護裝置,介紹了基于該技術(shù)的保護裝置彌補已有的
    發(fā)表于 07-11 16:49 ?796次閱讀
    基于故障分量原理的<b class='flag-5'>電動機</b>差動<b class='flag-5'>保護裝置</b>

    基于故障分量原理的電動機差動保護裝置

    采用故障分量原理設(shè)計了一種微機保護裝置,介紹了基于該技術(shù)的保護裝置彌補已有的電動機綜合保護裝置
    發(fā)表于 07-23 11:52 ?602次閱讀

    RS-232與RS-485的比較及基于RS-485變頻器與PC機串行通信實現(xiàn)

    2 RS-232與RS-485的比較 常用的串行通信有兩種,一種為RS-232串行
    發(fā)表于 09-29 17:10 ?6次下載
    <b class='flag-5'>RS</b>-232與<b class='flag-5'>RS-485</b>的比較及基于<b class='flag-5'>RS-485</b>變頻器與PC機<b class='flag-5'>串行</b><b class='flag-5'>通信</b>的<b class='flag-5'>實現(xiàn)</b>

    RS-485總線通信協(xié)議分析

    RS-485總線技術(shù)只是規(guī)定了接口的電氣標準,并沒有規(guī)定RS-485接口的電纜,插件以及通信協(xié)議,只是OSI規(guī)范中物理層的一個標準,由于RS-485總線
    發(fā)表于 07-23 18:02 ?7363次閱讀

    【C應(yīng)用】一文看懂Modbus通信協(xié)議(下)

    Modbus通信協(xié)議是在RS-485口實驗的基礎(chǔ)上實現(xiàn)的,簡單說就是首先要實現(xiàn)
    發(fā)表于 12-05 16:51 ?28次下載
    【C應(yīng)用】一文看懂<b class='flag-5'>Modbus</b><b class='flag-5'>通信協(xié)議</b>(下)

    RS485通信協(xié)議的應(yīng)用與優(yōu)勢

    RS-485是一種差分信號的串行通信協(xié)議,廣泛應(yīng)用于工業(yè)自動化、樓宇自動化、安防監(jiān)控等領(lǐng)域。它以其高速、長距離傳輸和抗干擾能力強等特點,成為許多工業(yè)和商業(yè)應(yīng)用的首選通信方式。
    的頭像 發(fā)表于 11-28 14:23 ?1343次閱讀