《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 其他 > 設(shè)計(jì)應(yīng)用 > Modbus 通信協(xié)議在分布式控制系統(tǒng)中的應(yīng)用
Modbus 通信協(xié)議在分布式控制系統(tǒng)中的應(yīng)用
中國(guó)自動(dòng)化網(wǎng)
摘要: 本文就一種DCS與PLC作為上下位機(jī)的分布式控制系統(tǒng),介紹基于Modbus協(xié)議的通信網(wǎng)絡(luò)在其中的應(yīng)用,以及該網(wǎng)絡(luò)的硬件構(gòu)成及程序設(shè)計(jì)。
Abstract:
Key words :

摘 要:本文就一種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)過程的分布式工業(yè)自動(dòng)控制系統(tǒng),。在此系統(tǒng)中,現(xiàn)場(chǎng)通信技術(shù)堪稱關(guān)鍵,。但由于開始沒有統(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)公開化,,可無償使用。經(jīng)過多年發(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)過程進(jìn)行集中監(jiān)控;下位機(jī)采用Omron的CS1H系列PLC,,分布在3個(gè)電氣控制室,負(fù)責(zé)現(xiàn)場(chǎng)電機(jī),、OCV閥,、流量開關(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ī)均無面向同一協(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è)備查詢通訊過程見圖二,。


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


  它沒有起始位和停止位,,而是由至少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和寫字存儲(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è),。通過對(duì)該模塊的編程,可實(shí)現(xiàn)與外圍設(shè)備的各種通信,。本系統(tǒng)通過ASCII模塊與DCS基于Modbus協(xié)議的通信,,將DCS的讀、寫指令及數(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)控,,需通過DCS I/O物理地址對(duì)現(xiàn)場(chǎng)儀表信號(hào)的采集來實(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ù)交換的讀寫指令等。編程使用WINDOWS操作系統(tǒng)上附帶的Hyperterminal(超級(jí)終端)軟件,,通過此軟件,PC機(jī)可與連接在網(wǎng)絡(luò)上的其它PC機(jī)或串口終端設(shè)備進(jìn)行文本文件的傳輸及顯示,。編程時(shí),,將PC機(jī)串口與ASCII模塊的RS232串口連接,運(yùn)行該軟件,,就能在其界面上對(duì)ASCII模塊進(jìn)行程序編寫,、上傳、下載和調(diào)試等工作,。也可先通過WINDOWS系統(tǒng)的寫字板編寫程序,,并保存為文本格式,然后再通過Hyperterminal將程序下載到ASCII模塊,。通信程序的主工作流程見圖五,。


  部分程序代碼如下:
  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 //判斷是否本站信息
  *JAOY
  GOSUB *CRC //CRC循環(huán)冗余校驗(yàn)子程序
  IF R=CRC THEN *WORK ELSE *BACK //信息校驗(yàn)正確判斷
 ?。猈ORK
  IF (FU=3) THEN GOTO *DJS //讀功能碼判斷,,調(diào)寫操作子程序
  IF (FU=6) THEN GOTO *XJS ELSE GOTO *BACK //寫功能碼判斷,調(diào)讀操作子程序
 ?。狣JS //讀子程序
  ………
 ?。猉JS //寫子程序
  ………
  *CRC //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ā)送讀寫請(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è)為無效狀態(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ò)上如無信號(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)問題,,可為分布式控制系統(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

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載,。