閱讀 | 訂閱
閱讀 | 訂閱
控制系統(tǒng)

Modbus 通信協(xié)議在分布式控制系統(tǒng)中的應(yīng)用

星之球激光 來(lái)源:中國(guó)自動(dòng)化網(wǎng)2011-12-27 我要評(píng)論(0 )   

摘 要:本文就一種DCS與PLC作為上下位機(jī)的分布式控制系統(tǒng),介紹基于Modbus協(xié)議的通信網(wǎng)絡(luò)在其中的應(yīng)用,以及該網(wǎng)絡(luò)的硬件構(gòu)成及程序設(shè)計(jì)。 關(guān)鍵詞:Modbus協(xié)議 分布式控...

摘 要:本文就一種DCS與PLC作為上下位機(jī)的分布式控制系統(tǒng),介紹基于Modbus協(xié)議的通信網(wǎng)絡(luò)在其中的應(yīng)用,以及該網(wǎng)絡(luò)的硬件構(gòu)成及程序設(shè)計(jì)。

關(guān)鍵詞:Modbus協(xié)議 分布式控制系統(tǒng) 通信網(wǎng)絡(luò) 串口通訊 可編程控制器

一、引 言

  現(xiàn)代工業(yè)的迅速發(fā)展,不斷促進(jìn)著自控技術(shù)及設(shè)備創(chuàng)新的日新月異。當(dāng)前,DCS、IPC、PLC及智能儀表已廣泛應(yīng)用到工廠現(xiàn)場(chǎng)生產(chǎn)控制系統(tǒng)當(dāng)中,并發(fā)展到由上述設(shè)備相互協(xié)同、共同面向整個(gè)生產(chǎn)過(guò)程的分布式工業(yè)自動(dòng)控制系統(tǒng)。在此系統(tǒng)中,現(xiàn)場(chǎng)通信技術(shù)堪稱關(guān)鍵。但由于開(kāi)始沒(méi)有統(tǒng)一的通信協(xié)議標(biāo)準(zhǔn),各廠商自控產(chǎn)品通信協(xié)議各自為政,通信網(wǎng)絡(luò)各成體系,造成不同廠家的自控設(shè)備網(wǎng)絡(luò)連接困難甚至不能連接,給分布式控制系統(tǒng)的靈活應(yīng)用造成了不便。一些公司為適應(yīng)市場(chǎng),紛紛將各自的協(xié)議標(biāo)準(zhǔn)公開(kāi)化,可無(wú)償使用。經(jīng)過(guò)多年發(fā)展,一些通信協(xié)議如Modicon公司的Modbus通信協(xié)議因其兼容性、易用性的優(yōu)勢(shì),在工業(yè)領(lǐng)域得到了廣泛應(yīng)用,已成為一種通用的工業(yè)通信標(biāo)準(zhǔn)。本文就某化纖項(xiàng)目分布式控制系統(tǒng)的設(shè)計(jì),介紹基于Modbus協(xié)議的通信網(wǎng)絡(luò)在其中的應(yīng)用。

二、系統(tǒng)組成

  1、系統(tǒng)結(jié)構(gòu)

  本系統(tǒng)構(gòu)成如圖1,其中略去了現(xiàn)場(chǎng)儀表信號(hào)的采集、控制部分。系統(tǒng)上位機(jī)采用橫河CS3000型DCS集散控制系統(tǒng),對(duì)整個(gè)生產(chǎn)過(guò)程進(jìn)行集中監(jiān)控;下位機(jī)采用Omron的CS1H系列PLC,分布在3個(gè)電氣控制室,負(fù)責(zé)現(xiàn)場(chǎng)電機(jī)、OCV閥、流量開(kāi)關(guān)、變頻器等執(zhí)行、檢測(cè)機(jī)構(gòu)的啟停控制、反饋信號(hào)采集、故障判斷等操作。


 


 

  基于通信實(shí)時(shí)性的考慮,將DCS與3個(gè)PLC控制站分為兩個(gè)相對(duì)獨(dú)立的通信網(wǎng)絡(luò):PLC1和PLC2與DCS一端口組成網(wǎng)絡(luò)一,PLC3與DCS二端口組成網(wǎng)絡(luò)二。由于上下位機(jī)均無(wú)面向同一協(xié)議的通信設(shè)備,給設(shè)計(jì)造成了困難。經(jīng)考慮,決定采用Modbus通信協(xié)議,由其構(gòu)成本分布式控制系統(tǒng)的通信網(wǎng)絡(luò)。

  2、通信網(wǎng)絡(luò)組成

  2.1通信協(xié)議

  Modbus協(xié)議是一種適用于工業(yè)控制領(lǐng)域的主從式串口通訊協(xié)議,它采用查詢通訊方式進(jìn)行主從設(shè)備的信息傳輸,可尋址1-247個(gè)設(shè)備地址范圍。協(xié)議包括廣播查詢和單獨(dú)設(shè)備查詢兩種方式,二者區(qū)別就是廣播查詢不需要從設(shè)備回應(yīng)信息,主從設(shè)備查詢通訊過(guò)程見(jiàn)圖二。

 



  Modbus協(xié)議有兩種傳輸模式:ASCII模式和RTU模式。同波特率下,RTU模式較ASCII模式能傳輸更多的數(shù)據(jù),所以工業(yè)網(wǎng)絡(luò)大都采用RTU模式。RTU模式下的信息傳輸報(bào)文格式如圖三。

 



  它沒(méi)有起始位和停止位,而是由至少3.5個(gè)字符間隔時(shí)間作為信息的起始、結(jié)束標(biāo)志。信息幀所有字符位由16進(jìn)制字符0-9、A-F組成。本設(shè)計(jì)采用單獨(dú)設(shè)備查詢的RTU模式通信方式,根據(jù)系統(tǒng)構(gòu)成,將DCS一端口設(shè)01H、02H兩個(gè)PLC從站地址,二端口設(shè)01H一個(gè)PLC從站地址,并使用Modbus協(xié)議中的讀字存儲(chǔ)區(qū)03H和寫(xiě)字存儲(chǔ)區(qū)06H兩個(gè)功能碼。

  2.2 網(wǎng)絡(luò)構(gòu)成及硬件介紹

  網(wǎng)絡(luò)采用RS485串行接口,通信媒體由4芯屏蔽電纜連接主從設(shè)備,傳輸距離最大達(dá)1.5Km,全雙工,串口設(shè)定波特率19200,8位數(shù)據(jù)位、偶校驗(yàn)、1位停止位。DCS通信部分采用橫河型號(hào)為ALR121的通信模塊,并配套橫河提供的Modbus通信軟件包,該通信模塊最大通信數(shù)據(jù)容量4000字。PLC通信部分則采用Omron的C200H-ASCII 21可編程特殊單元模塊(以下簡(jiǎn)稱ASCII模塊),該模塊支持BASIC語(yǔ)言編程,內(nèi)有200K字節(jié)的程序存儲(chǔ)區(qū),配備RS232、RS485通信串口各一個(gè)。通過(guò)對(duì)該模塊的編程,可實(shí)現(xiàn)與外圍設(shè)備的各種通信。本系統(tǒng)通過(guò)ASCII模塊與DCS基于Modbus協(xié)議的通信,將DCS的讀、寫(xiě)指令及數(shù)據(jù)做相應(yīng)轉(zhuǎn)換,并與PLC的CPU單元進(jìn)行數(shù)據(jù)存取交換,以實(shí)現(xiàn)上下位機(jī)控制信息的實(shí)時(shí)傳輸。如圖四所示。
 



三、軟件實(shí)現(xiàn)

  1、 建立地址分配、對(duì)應(yīng)表

  DCS人機(jī)監(jiān)控界面(HMI)上面向現(xiàn)場(chǎng)儀表的圖形符號(hào)對(duì)象的監(jiān)控,需通過(guò)DCS I/O物理地址對(duì)現(xiàn)場(chǎng)儀表信號(hào)的采集來(lái)實(shí)現(xiàn)。DCS對(duì)現(xiàn)場(chǎng)電氣執(zhí)行、檢測(cè)機(jī)構(gòu)的監(jiān)控,則是由DCS通信I/O地址與PLC I/O物理地址一一對(duì)應(yīng)完成的。為此,在編程前,需建立一張DCS通信I/O地址與PLC I/O地址的分配、對(duì)應(yīng)表。由于PLC邏輯控制編程需要,不便直接將PLC I/O物理地址與DCS通信I/O地址對(duì)應(yīng),故采取了間接地址的方式。具體設(shè)計(jì)采用PLC的數(shù)據(jù)存儲(chǔ)區(qū)DM區(qū)作為間接地址區(qū),與DCS通信I/O區(qū)建立聯(lián)系,再將DM區(qū)與PLC I/O區(qū)相對(duì)應(yīng)。如將DCS的%WB000101位通信I/O地址與D0000.00位地址對(duì)應(yīng),D0000.00再對(duì)照PLC的I0000.00位物理輸入點(diǎn),就能將現(xiàn)場(chǎng)電氣執(zhí)行機(jī)構(gòu)的運(yùn)行狀態(tài)反饋到HMI上。按照這種方法就建立了一張上下位機(jī)地址分配、對(duì)應(yīng)表,因篇幅所限,該表略。

  2、程序設(shè)計(jì)

  ASCII模塊支持BASIC語(yǔ)言編程,此外,又附加了多條系統(tǒng)及函數(shù)指令,如接收、發(fā)送緩沖區(qū)操作指令、信息傳輸差錯(cuò)控制CRC、LRC校驗(yàn)函數(shù)指令和與CPU單元數(shù)據(jù)交換的讀寫(xiě)指令等。編程使用WINDOWS操作系統(tǒng)上附帶的Hyperterminal(超級(jí)終端)軟件,通過(guò)此軟件,PC機(jī)可與連接在網(wǎng)絡(luò)上的其它PC機(jī)或串口終端設(shè)備進(jìn)行文本文件的傳輸及顯示。編程時(shí),將PC機(jī)串口與ASCII模塊的RS232串口連接,運(yùn)行該軟件,就能在其界面上對(duì)ASCII模塊進(jìn)行程序編寫(xiě)、上傳、下載和調(diào)試等工作。也可先通過(guò)WINDOWS系統(tǒng)的寫(xiě)字板編寫(xiě)程序,并保存為文本格式,然后再通過(guò)Hyperterminal將程序下載到ASCII模塊。通信程序的主工作流程見(jiàn)圖五。
 



  部分程序代碼如下:

  OPTION BASE 0 //定義數(shù)組

  DIM R(128),FC(128)

  R(48)=0:R(49)=1:R(50)=2:R(51)=3:R(52)=4:R(53)=5:R(54)=6:R(55)=7:R(56)=8

  R(57)=9:R(65)=&h0a:R(66)=&h0b:R(67)=&h0c:R(68)=&h0d:R(69)=&h0e:R(70)=&h0f

  R(97)=&h0a:R(98)=&h0b:R(99)=&h0c:R(100)=&h0d:R(101)=&h0e:R(102)=&h0f

  OPEN #2,"COMU:19200,8,E,1" //設(shè)定串口參數(shù)

  A%=LOC(2) //判斷接收緩沖區(qū)字符

  IF A%=8 THEN

  REX$=INPUT$(A%,#2)

  ……….

  ENDIF

  GOSUB *ZFCL //對(duì)信息進(jìn)行分解處理

  IF ST=1 THEN *JAOY ELSE *BACK //判斷是否本站信息

 ?。狫AOY

  GOSUB *CRC //CRC循環(huán)冗余校驗(yàn)子程序#p#分頁(yè)標(biāo)題#e#

  IF R=CRC THEN *WORK ELSE *BACK //信息校驗(yàn)正確判斷

 ?。猈ORK

  IF (FU=3) THEN GOTO *DJS //讀功能碼判斷,調(diào)寫(xiě)操作子程序

  IF (FU=6) THEN GOTO *XJS ELSE GOTO *BACK //寫(xiě)功能碼判斷,調(diào)讀操作子程序

  *DJS //讀子程序

  ………

 ?。猉JS //寫(xiě)子程序

  ………

 ?。狢RC //CRC 校驗(yàn)子程序

  ……….

 ?。猌FCL //字符處理子程序

  ………

  由于ASCII模塊支持ASCII碼,而RTU則是基于二進(jìn)制碼的16進(jìn)制字符通信方式,所以在程序編程中增加了碼制轉(zhuǎn)換程序。

  CH5$=MID$(REX$,5,1) :CH6$=MID$(REX$,6,1) //提取字符段

  VOL=ASC(CH5$)×256+ASC(CH6$) //將ASCII碼字符轉(zhuǎn)換十進(jìn)制數(shù)

  VOL$=HEX$(VOL) //將十進(jìn)制數(shù)轉(zhuǎn)換成十六進(jìn)制字符

  3、程序優(yōu)化及安全措施

  在ASCII模塊與CPU單元數(shù)據(jù)交換程序部分,采取由ASCII模塊向CPU 單元主動(dòng)發(fā)送讀寫(xiě)請(qǐng)求信號(hào),CPU單元在收到請(qǐng)求時(shí)才執(zhí)行數(shù)據(jù)交換程序的方法。這樣,就縮短了PLC的掃描周期,提高了通信實(shí)時(shí)性。

  在信息差錯(cuò)控制部分,采用了CRC-16循環(huán)冗余校驗(yàn)算法,該算法能使信息的差錯(cuò)率低于10-14以下。如果信息校驗(yàn)錯(cuò)誤,程序?qū)⑶宄彌_區(qū),等待DCS信息重發(fā)。

  根據(jù)生產(chǎn)需要,可在HMI上將現(xiàn)場(chǎng)按鈕等手控設(shè)備設(shè)為無(wú)效狀態(tài),所有手、自動(dòng)操作均在DCS上進(jìn)行。考慮到如通信網(wǎng)絡(luò)遭到癱瘓等嚴(yán)重故障時(shí),需保證現(xiàn)場(chǎng)電氣設(shè)備正常啟停,又增加了通信狀態(tài)定時(shí)偵測(cè)程序,在規(guī)定時(shí)間(10秒)內(nèi)網(wǎng)絡(luò)上如無(wú)信號(hào),PLC自動(dòng)將現(xiàn)場(chǎng)按鈕等手控設(shè)備設(shè)為有效,同時(shí)DCS故障報(bào)警,直到網(wǎng)絡(luò)恢復(fù)正常為止。

四、結(jié)束語(yǔ)

  當(dāng)前分布式控制系統(tǒng)通信網(wǎng)絡(luò)的設(shè)備、軟件及整體架構(gòu),大部分是由專業(yè)廠商生產(chǎn)提供的,其總體性能較好。但如前所述,它們也有系統(tǒng)配置可選性小、網(wǎng)絡(luò)架構(gòu)適應(yīng)面窄、價(jià)格較高等缺點(diǎn)。筆者采用Modbus協(xié)議這一成熟通信技術(shù),選用PLC的可編程模塊,進(jìn)行基于Modbus通信協(xié)議的自主程序設(shè)計(jì),架構(gòu)起本自控系統(tǒng)的通信網(wǎng)絡(luò)。該網(wǎng)絡(luò)易擴(kuò)展、易維護(hù),具有結(jié)構(gòu)簡(jiǎn)單、應(yīng)用靈活、編程方便、造價(jià)低廉等特點(diǎn)。這套系統(tǒng)在某化纖生產(chǎn)線一次投運(yùn)成功,實(shí)際運(yùn)行狀態(tài)良好,證明其穩(wěn)定可靠,能完全滿足系統(tǒng)設(shè)計(jì)要求。到目前為止,該系統(tǒng)已在多個(gè)工程項(xiàng)目上投入使用,全部運(yùn)行正常,取得了良好的經(jīng)濟(jì)效益。

  本文創(chuàng)新點(diǎn):采用工業(yè)領(lǐng)域通用的Modbus通信協(xié)議標(biāo)準(zhǔn),利用可編程的PLC特殊功能模塊,并進(jìn)行通信程序設(shè)計(jì),低成本的解決了本系統(tǒng)的通信架構(gòu)問(wèn)題,可為分布式控制系統(tǒng)通信網(wǎng)絡(luò)兼容性設(shè)計(jì)的一個(gè)思路。

參考文獻(xiàn):

  1. Modicon. Modbus Protocol Reference Guide. 1996

  2. Omron. C200H-ASCII UNITS Operation Manual. 1998

  3. Omron. SYSMAC CS1 Series Programmable Controllers Operation Manual. 1999

  4. 橫河CS3000 Reference Manual. 2001

  5. 其其格 利用VC實(shí)現(xiàn)Modbus的兩種檢測(cè)方法 《微計(jì)算機(jī)信息》 2004.1

  6. 劉東 循環(huán)冗余校驗(yàn)CRC算法分析及程序?qū)崿F(xiàn). 《計(jì)算機(jī)與信息技術(shù)》2002.9
 

 

轉(zhuǎn)載請(qǐng)注明出處。

暫無(wú)關(guān)鍵詞
免責(zé)聲明

① 凡本網(wǎng)未注明其他出處的作品,版權(quán)均屬于激光制造網(wǎng),未經(jīng)本網(wǎng)授權(quán)不得轉(zhuǎn)載、摘編或利用其它方式使用。獲本網(wǎng)授權(quán)使用作品的,應(yīng)在授權(quán)范圍內(nèi)使 用,并注明"來(lái)源:激光制造網(wǎng)”。違反上述聲明者,本網(wǎng)將追究其相關(guān)責(zé)任。
② 凡本網(wǎng)注明其他來(lái)源的作品及圖片,均轉(zhuǎn)載自其它媒體,轉(zhuǎn)載目的在于傳遞更多信息,并不代表本媒贊同其觀點(diǎn)和對(duì)其真實(shí)性負(fù)責(zé),版權(quán)歸原作者所有,如有侵權(quán)請(qǐng)聯(lián)系我們刪除。
③ 任何單位或個(gè)人認(rèn)為本網(wǎng)內(nèi)容可能涉嫌侵犯其合法權(quán)益,請(qǐng)及時(shí)向本網(wǎng)提出書(shū)面權(quán)利通知,并提供身份證明、權(quán)屬證明、具體鏈接(URL)及詳細(xì)侵權(quán)情況證明。本網(wǎng)在收到上述法律文件后,將會(huì)依法盡快移除相關(guān)涉嫌侵權(quán)的內(nèi)容。

網(wǎng)友點(diǎn)評(píng)
0相關(guān)評(píng)論
精彩導(dǎo)讀