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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 以太網(wǎng)現(xiàn)場總線的跨平臺網(wǎng)絡(luò)通信

          以太網(wǎng)現(xiàn)場總線的跨平臺網(wǎng)絡(luò)通信

          作者: 時間:2012-12-04 來源:網(wǎng)絡(luò) 收藏
          1,引言
          “EAST(Experimental Advanced Superconducting Tokamak)超導(dǎo)TOKMAK裝置”是國家九五重大科學(xué)工程。極向場電源控制系統(tǒng)是托卡馬克主要子系統(tǒng)之一,它為等離子體的產(chǎn)生、約束、維持、加熱,以及等離子體的電流、位置、形狀、分布和破裂的控制,提供必要的工程基礎(chǔ)和控制手段。對裝置運行的性能與安全,物理實驗的成敗與效率,有著至關(guān)重要的作用。其實時性、可靠性、可擴充性要求甚高。為了滿足整個控制系統(tǒng)的這種高要求,整個控制系統(tǒng)由三層網(wǎng)絡(luò)組成:Windows 監(jiān)測層、QNX實時控制層、執(zhí)行層。
          ――――――――――――――――――-----------------------
          基金項目:國家發(fā)展計劃委員會“投資(1998)1303號項目”(子項目)
          作者簡介:蘭魯光(1980-),男,碩士生,研究方向技術(shù)、實時計算機監(jiān)控;傅鵬,研究員、博導(dǎo);楊亞龍,博士生;吳勇,碩士生 E-mail:lanluguang@163.com
          Windows 監(jiān)測層選用Windows 2000平臺作為操作工作站,進行測量、監(jiān)控、故障分析和波形顯示。而QNX實時控制層選用QNX6.20實時操作系統(tǒng),擔(dān)負著電源系統(tǒng)多變量反饋電流反饋控制、系統(tǒng)連鎖控制、保護及各種運行方式的調(diào)配。層由大量的現(xiàn)場總線控制器及現(xiàn)場總線模塊組成,負責(zé)采集大量現(xiàn)場設(shè)備的狀態(tài)通過網(wǎng)絡(luò)傳遞給QNX實時控制層和WINDOWS監(jiān)測層,并接受QNX控制層發(fā)來的控制信號控制現(xiàn)場設(shè)備。

          2,現(xiàn)場總線層構(gòu)建
          現(xiàn)場總線是應(yīng)用在生產(chǎn)現(xiàn)場、在微機化測量控制設(shè)備之間實現(xiàn)雙向串行多節(jié)點數(shù)字通信的系統(tǒng),也被稱為開放式、數(shù)字化、多點通信的底層控制網(wǎng)絡(luò)。現(xiàn)場總線就是利用當(dāng)今世界上最流行的開放式局域網(wǎng)Ethernet作為工業(yè)I/O控制模塊的通信網(wǎng)絡(luò),作為真正開放式的現(xiàn)場總線系統(tǒng)。
          工業(yè)協(xié)議主要有以下幾種:Modbus TCP/IP(Schneider,1998)、Interbus(Phoenix,1999)、EtherNet/IP(ODVA,1999)、IDA(Vendor Alliance,2000)、HSE(Foundation Fieldbus,2000)、ProfiNet(Profibus,2001)。
          EAST極向場電源控制系統(tǒng)由12套電源子系統(tǒng)組成,在空間上具有較強的分散性,需要發(fā)送至現(xiàn)場的控制量信號及采集的狀態(tài)有上千個,如此分散而龐大的信號量要實現(xiàn)實時、可靠的通信最好的解決方法就是采用工業(yè)現(xiàn)場總線??紤]到技術(shù)的成熟性、開放性及高的性價比,極向場電源控制系統(tǒng)使用德國WAGO公司的以太網(wǎng)總線模塊,采用Modbus Tcp/IP協(xié)議,Modbus協(xié)議是應(yīng)用于電子控制器上的一種通用語言。通過此協(xié)議,控制器相互之間、控制器經(jīng)由網(wǎng)絡(luò)(例如以太網(wǎng))和其他設(shè)備之間可以通信,它已成為一種通用工業(yè)標(biāo)準(zhǔn)。通過它,不同廠商生產(chǎn)的控制設(shè)備可以連成工業(yè)網(wǎng)絡(luò)進行集中監(jiān)控。
          MODBUS/TCP協(xié)議是為制造自動化和過程自動化獨立設(shè)計的一種開放的現(xiàn)場總線標(biāo)準(zhǔn)。它是MODBUS協(xié)議的變異,可以通過TCP/IP的連接來優(yōu)化現(xiàn)場的通訊。MODBUS/TCP協(xié)議定義了通過以太網(wǎng)通訊時,服務(wù)器/客戶機請求和響應(yīng)消息的幀格式。如圖1所示:



          通訊標(biāo)識、協(xié)議標(biāo)識、單元標(biāo)識均為16進制0x0000,這是因為底層的IP幀頭中已經(jīng)有類似的標(biāo)識符??刂破魍ㄟ^IP幀頭已經(jīng)可以識別幀是發(fā)給誰的了。消息長度是用來描述此區(qū)域后總共還有多少個字節(jié)。功能代碼是用來描述此幀數(shù)據(jù)是干什么用的。傳輸數(shù)據(jù)是用來描述想要讀寫的I/O通道,及所傳送的數(shù)據(jù)值。此外, 由于TCP/IP 協(xié)議以及鏈路層的求和校驗機制可以保證數(shù)據(jù)包傳遞的正確性,所以MODBUS/TCP協(xié)議中沒有定義CRC- 16 或LRC 校驗。
          WAGO以太網(wǎng)總線通訊時,需要在以太網(wǎng)標(biāo)準(zhǔn)上疊加幾種重要的通訊協(xié)議。在ISO/OSI標(biāo)準(zhǔn)化模型的第三層網(wǎng)絡(luò)層上需疊加IP,ICMP和ARP協(xié)議,在第四層傳輸層視傳輸情況需疊加TCP協(xié)議或UDP協(xié)議。另外,現(xiàn)場總線適配器還包含了幾種額外的用戶協(xié)議以用于傳輸和接收數(shù)據(jù)。其中MODBUS/TCP協(xié)議用于對模塊讀取和寫入數(shù)據(jù),端口號為502;Bootstrap協(xié)議用于配置總線IP地址;HTTP協(xié)議用于訪問總線適配器中存儲的HTML頁面以監(jiān)控總線適配器的狀態(tài),端口號為80。圖2所示為數(shù)據(jù)傳輸時協(xié)議的疊加情況。


          在WAGO以太網(wǎng)總線適配器和控制器的應(yīng)用層有Modbus協(xié)議的多種操作程序,通過這些操作程序?qū)崿F(xiàn)數(shù)字或模擬輸入輸出數(shù)據(jù)的對現(xiàn)場總線模塊的寫入或讀出。在極向場電源控制系統(tǒng)中對WAGO總線模塊的操作既有讀取狀態(tài)量的操作也有發(fā)出控制量的操作,所以通常采用操作程序代碼為FC23: 0x0017.
          極向場電源控制系統(tǒng)現(xiàn)場總線層由多個總線控制器、大量數(shù)字量輸入輸出模塊、少量模擬量輸入輸出模塊組成,分成12組以實現(xiàn)對現(xiàn)場12套極向場電源裝置的控制和狀態(tài)讀取,以達到遠動和監(jiān)控的目的。通過100M以太網(wǎng)很方便的實現(xiàn)了現(xiàn)場總線控制器同12臺極向場電源子系統(tǒng)控制上位機的高速連接,僅僅需要使用普通的網(wǎng)卡、網(wǎng)線和一臺交換機,大大簡化了普通現(xiàn)場總線接線的繁瑣,性價比也較普通現(xiàn)場總線有較大提高。同時,由于TCP/IP協(xié)議應(yīng)用技術(shù)的普遍,能通用于WINDOWS、UNIX、QNX等多種操作系統(tǒng),具有良好的互操作性。

          上一頁 1 2 下一頁

          評論


          相關(guān)推薦

          技術(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); })();