摘要:工業(yè)以太網(wǎng)以其特有的低成本,高實(shí)效,高擴(kuò)展性及高智能的魅力,吸引著越來越多的制造業(yè)的廠商。因此通過MODBUS/TCP協(xié)議實(shí)現(xiàn)諸如PLC的I/O模塊,以及連接其它簡單域總線或 I/O模塊的網(wǎng)關(guān)服務(wù)有重要的意義。本文基于VB討論P(yáng)LC與監(jiān)控計(jì)算機(jī)的通信問題。
關(guān)鍵詞:VB MODBUS/TCP協(xié)議 可編程控制器 以太網(wǎng)
1、 引言
在網(wǎng)絡(luò)的各個層上,隨著自動化和控制工程師需要與網(wǎng)絡(luò)打交道的機(jī)會越來越多,聯(lián)網(wǎng)的愿望和需要也正在逐漸高漲。而且,在監(jiān)控和數(shù)據(jù)采集應(yīng)用中,大多數(shù)工程師已將以太網(wǎng)協(xié)議應(yīng)用于數(shù)據(jù)采集與監(jiān)視控制系統(tǒng)(SCADA)和工廠的診斷、測試及維護(hù)。如何簡便地實(shí)現(xiàn)與PLC的交互已經(jīng)成為眾多廠商新的競爭戰(zhàn)場。由此產(chǎn)生了人機(jī)界面及各種組態(tài)軟件產(chǎn)品,這些產(chǎn)品的出現(xiàn)簡化了對PLC的控制、操作,使PLC的應(yīng)用更加方便。但也有其共同的缺點(diǎn),價格普遍偏高和可二次開發(fā)性較差。VB作為“原始”的編程語言,兼具了上述兩方面的優(yōu)勢。本文結(jié)合一個簡單的案例來粗略討論如何通過VB實(shí)現(xiàn)PC機(jī)與PLC的以太網(wǎng)通信問題。
2、以太網(wǎng)通信的基本概念
2.1以太網(wǎng)的標(biāo)準(zhǔn)
以太網(wǎng)是一種局域網(wǎng)。早期標(biāo)準(zhǔn)為IEEE 802.3,數(shù)據(jù)鏈路層使用CSMA/CD,10Mb/s速度物理層有:
(1)10 Base 5粗同軸電纜,RG-8,一段最長為500m。
(2)10 Base 2細(xì)同軸電纜,RG-58,一段最長為185m。
(3)10 Base T雙絞線,UTP或STP,一段最長為100m。
2.2工業(yè)以太網(wǎng)與商用以太網(wǎng)的區(qū)別
什么是工業(yè)以太網(wǎng)?技術(shù)上,它與IEEE802.3兼容,故從邏輯上可把商用網(wǎng)和工業(yè)網(wǎng)看成是一個以太網(wǎng),而用戶可根據(jù)現(xiàn)場情況,靈活裝配自己的網(wǎng)絡(luò)部件。但從工業(yè)環(huán)境的惡劣和抗干擾的要求,設(shè)計(jì)者希望采用市場上可找到的以太網(wǎng)芯片和媒介,兼顧考慮下述工業(yè)現(xiàn)場的特殊要求:首先要考慮高溫、潮濕、振動。二是對工業(yè)抗電磁干擾和抗輻射有一定要求,如滿足EN50081-2、EN50082-2標(biāo)準(zhǔn),而辦公室級別的產(chǎn)品未經(jīng)這些工業(yè)標(biāo)準(zhǔn)測試,表1列出了一些常用工業(yè)標(biāo)準(zhǔn)。為改善抗干擾性和降低輻射,工業(yè)以太網(wǎng)產(chǎn)品多使用多層線路板或雙面電路板,且外殼采用金屬如鑄鋁屏蔽干擾。三是電源要求,因集線器、交換機(jī)、收發(fā)器多為有源部件,而現(xiàn)場電源的品質(zhì)又較差,故常采用雙路直流電或交流電為其供電,另外考慮方便安裝,工業(yè)以太網(wǎng)產(chǎn)品多數(shù)使用DIN導(dǎo)軌或面板安裝。四是通信介質(zhì)選擇,在辦公室環(huán)境下多數(shù)配線使用UTP,而在工業(yè)環(huán)境下推薦用戶使用STP(帶屏蔽雙絞線)和光纖。

2.3 使用TCP/IP協(xié)議的原因及其概述
最主要的一個原因在于它能使用在多種物理網(wǎng)絡(luò)技術(shù)上,包括局域網(wǎng)和廣域網(wǎng)技術(shù)。TCP/IP協(xié)議的成功,很大程度上取決于它能適應(yīng)幾乎所有底層通信技術(shù)。20世紀(jì)80年代初,先在X.25上運(yùn)行TCP/IP協(xié)議;而后又在一個撥號語音網(wǎng)絡(luò)(如電話系統(tǒng))上使用TCP/IP協(xié)議,又有TCP/IP在令牌環(huán)網(wǎng)上運(yùn)行成功;最后又實(shí)現(xiàn)了TCP/IP遠(yuǎn)程分組無線網(wǎng)點(diǎn)與其他Internet網(wǎng)點(diǎn)間TCP/IP通信。所以TCP/IP協(xié)議極其靈活,具備連接不同網(wǎng)絡(luò)的能力。另外,使用TCP/IP也簡化了OSI模型,因?yàn)樗÷粤吮硎緦雍蜁拰印H绻F(xiàn)在把以太網(wǎng)的物理層和數(shù)據(jù)鏈路層加到OSI模型,就構(gòu)成了基于以太網(wǎng)的TCP/IP網(wǎng),如圖1所示。用以太網(wǎng)實(shí)現(xiàn)TCP/IP也是經(jīng)濟(jì)的一種方式。

IP是Internet最基本的協(xié)議。IP是面向報文的協(xié)議,它獨(dú)立處理每個報文包,每個報文包必須含有完整的尋址信息。IP報文包的格式如圖2所示。
圖2 IP報文包的格式
IP地址的類型共有4種(如圖3所示):A類用于處理超大型網(wǎng)絡(luò),最多16387064個主機(jī)(1~126);B類網(wǎng)絡(luò)最多可有64516個主機(jī)(網(wǎng)絡(luò)地址的第一段為128~191);C類用于小型網(wǎng)絡(luò),最多可有254個主機(jī)(網(wǎng)絡(luò)地址的第一段為192~223);D類用于多點(diǎn)播送,用于多目的信息的傳輸。全零(“0.0.0.0”)地址對應(yīng)于當(dāng)前主機(jī),全1地址(“255.255.255.255”)是當(dāng)前子網(wǎng)的廣播地址。

TCP是基于傳輸層的協(xié)議,協(xié)議文件可從RFC793得到,使用廣泛,面向連接的可靠協(xié)議。它能把報文分解為數(shù)段,在目的站再重新裝配這些段,支持重新發(fā)送未被收到的段,提供兩臺設(shè)備間的全雙工連接,允許它們高效地交換大量數(shù)據(jù)。TCP使用滑動窗口協(xié)議來高效使用網(wǎng)絡(luò)。由于TCP很少干預(yù)底層投遞系統(tǒng)的工作,它適應(yīng)各種投遞系統(tǒng),且提供流量控制,能使各種不同速率的系統(tǒng)進(jìn)行通信。報文段是TCP所使用的基本傳輸單元,用于傳輸數(shù)據(jù)或控制信息。
3、MODBUS數(shù)據(jù)幀格式
在TCP/IP以太網(wǎng)上傳輸,支持Ethernet II和802.3兩種幀格式。圖3所示,Modbus TCP數(shù)據(jù)幀包含報文頭、功能代碼和數(shù)據(jù)3部分。
4、 MODBUS功能代碼
4.1 3種類型
(1)公共功能代碼(如表2所示):已定義好的功能碼,保證其唯一性,由Modbus.org認(rèn)可。
(2)用戶自定義功能代碼有兩組,分別為65~72和100~110,無需認(rèn)可,但不保證代碼使用的唯一性。如變?yōu)楣泊a,需交RFC認(rèn)可。
(3)保留的功能代碼,由某些公司使用在某些傳統(tǒng)設(shè)備的代碼,不可作為公共用途。
表2 Modbus常用公共代碼功能
4.2功能代碼劃分:按應(yīng)用深淺,可分為3個類別。
(1)類別0,對于客戶機(jī)/服務(wù)器最小的可用子集:讀多個保持寄存器(fc.3);寫多個保持寄存器(fc.16)。
(2)類別1,可實(shí)現(xiàn)基本互易操作的常用代碼:讀線圈(fc.1);讀開關(guān)量輸入(fc.2);讀輸入寄存器(fc.4);寫線圈(fc.5);寫單一寄存器(fc.6)。
(3)類別2,用于人機(jī)界面、監(jiān)控系統(tǒng)的例行操作和數(shù)據(jù)傳送功能:
(4)強(qiáng)制多個線圈(fc.15);讀通用寄存器(fc.20);寫通用寄存器(fc.21);屏蔽寫寄存器(fc.22);讀寫寄存器(fc.23)。
5、VB的基本概念
VB(Visual Basic)是面向?qū)ο蟮某绦蛟O(shè)計(jì)語言,用它來開發(fā)Windows操作系統(tǒng)下的應(yīng)用程序,它提供了很多接口成員,對象、屬性、事件、方法就是4個重要的接口,VB提供了許多常用的控件。
5.1卷標(biāo)控件
卷標(biāo)控件如圖4(a)所示,該控件專用于顯示文字、數(shù)字用,顯示如圖4(b)所示。