<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > Modbus通信協(xié)議在分布式控制系統(tǒng)中的應(yīng)用

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

          作者: 時間:2016-12-21 來源:網(wǎng)絡(luò) 收藏

          2、程序設(shè)計

          ASCII模塊支持BASIC語言編程,此外,又附加了多條系統(tǒng)及函數(shù)指令,如接收、發(fā)送緩沖區(qū)操作指令、信息傳輸差錯控制CRC、LRC校驗函數(shù)指令和與CPU單元數(shù)據(jù)交換的讀寫指令等。編程使用WINDOWS操作系統(tǒng)上附帶的Hyperterminal(超級終端)軟件,通過此軟件,PC機可與連接在網(wǎng)絡(luò)上的其它PC機或串口終端設(shè)備進行文本文件的傳輸及顯示。編程時,將PC機串口與ASCII模塊的RS232串口連接,運行該軟件,就能在其界面上對ASCII模塊進行程序編寫、上傳、下載和調(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 //對信息進行分解處理

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

          *JAOY

          GOSUB *CRC //CRC循環(huán)冗余校驗子程序

          IF R=CRC THEN *WORK ELSE *BACK //信息校驗正確判斷

          *WORK

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

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

          *DJS //讀子程序

          ………

          *XJS //寫子程序

          ………

          *CRC //CRC 校驗子程序

          ……….

          *ZFCL //字符處理子程序

          ………

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

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

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

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

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

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

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

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

          四、結(jié)束語

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

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


          上一頁 1 2 下一頁

          評論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();