技術頻道

      利用Winscok控件實現VB與PLC的以太網通信

      1、 引言

      在網絡的各個層上,隨著自動化和控制工程師需要與網絡打交道的機會越來越多,聯網的愿望和需要也正在逐漸高漲。而且,在監控和數據采集應用中,大多數工程師已將以太網協議應用于數據采集與監視控制系統(SCADA)和工廠的診斷、測試及維護。如何簡便地實現與PLC的交互已經成為眾多廠商新的競爭戰場。由此產生了人機界面及各種組態軟件產品,這些產品的出現簡化了對PLC的控制、操作,使PLC的應用更加方便。但也有其共同的缺點,價格普遍偏高和可二次開發性較差。VB作為“原始”的編程語言,兼具了上述兩方面的優勢。本文結合一個簡單的案例來粗略討論如何通過VB實現PC機與PLC的以太網通信問題。

      2、以太網通信的基本概念

      2.1以太網的標準

      以太網是一種局域網。早期標準為IEEE 802.3,數據鏈路層使用CSMA/CD,10Mb/s速度物理層有:

      (1)10 Base 5粗同軸電纜,RG-8,一段最長為500m。

      (2)10 Base 2細同軸電纜,RG-58,一段最長為185m。

      (3)10 Base T雙絞線,UTP或STP,一段最長為100m。

      2.2工業以太網與商用以太網的區別

      什么是工業以太網?技術上,它與IEEE802.3兼容,故從邏輯上可把商用網和工業網看成是一個以太網,而用戶可根據現場情況,靈活裝配自己的網絡部件。但從工業環境的惡劣和抗干擾的要求,設計者希望采用市場上可找到的以太網芯片和媒介,兼顧考慮下述工業現場的特殊要求:首先要考慮高溫、潮濕、振動。二是對工業抗電磁干擾和抗輻射有一定要求,如滿足EN50081-2、EN50082-2標準,而辦公室級別的產品未經這些工業標準測試,表1列出了一些常用工業標準。為改善抗干擾性和降低輻射,工業以太網產品多使用多層線路板或雙面電路板,且外殼采用金屬如鑄鋁屏蔽干擾。三是電源要求,因集線器、交換機、收發器多為有源部件,而現場電源的品質又較差,故常采用雙路直流電或交流電為其供電,另外考慮方便安裝,工業以太網產品多數使用DIN導軌或面板安裝。四是通信介質選擇,在辦公室環境下多數配線使用UTP,而在工業環境下推薦用戶使用STP(帶屏蔽雙絞線)和光纖。

      2.3 使用TCP/IP協議的原因及其概述

      最主要的一個原因在于它能使用在多種物理網絡技術上,包括局域網和廣域網技術。TCP/IP協議的成功,很大程度上取決于它能適應幾乎所有底層通信技術。20世紀80年代初,先在X.25上運行TCP/IP協議;而后又在一個撥號語音網絡(如電話系統)上使用TCP/IP協議,又有TCP/IP在令牌環網上運行成功;最后又實現了TCP/IP遠程分組無線網點與其他Internet網點間TCP/IP通信。所以TCP/IP協議極其靈活,具備連接不同網絡的能力。另外,使用TCP/IP也簡化了OSI模型,因為它省略了表示層和會話層。如果現在把以太網的物理層和數據鏈路層加到OSI模型,就構成了基于以太網的TCP/IP網,如圖1所示。用以太網實現TCP/IP也是經濟的一種方式。

      IP是Internet最基本的協議。IP是面向報文的協議,它獨立處理每個報文包,每個報文包必須含有完整的尋址信息。IP報文包的格式如圖2所示。

      圖2 IP報文包的格式


      IP地址的類型共有4種(如圖3所示):A類用于處理超大型網絡,最多16387064個主機(1~126);B類網絡最多可有64516個主機(網絡地址的第一段為128~191);C類用于小型網絡,最多可有254個主機(網絡地址的第一段為192~223);D類用于多點播送,用于多目的信息的傳輸。全零(“0.0.0.0”)地址對應于當前主機,全1地址(“255.255.255.255”)是當前子網的廣播地址。

      TCP是基于傳輸層的協議,協議文件可從RFC793得到,使用廣泛,面向連接的可靠協議。它能把報文分解為數段,在目的站再重新裝配這些段,支持重新發送未被收到的段,提供兩臺設備間的全雙工連接,允許它們高效地交換大量數據。TCP使用滑動窗口協議來高效使用網絡。由于TCP很少干預底層投遞系統的工作,它適應各種投遞系統,且提供流量控制,能使各種不同速率的系統進行通信。報文段是TCP所使用的基本傳輸單元,用于傳輸數據或控制信息。

      3、MODBUS數據幀格式

      在TCP/IP以太網上傳輸,支持Ethernet II和802.3兩種幀格式。圖3所示,Modbus TCP數據幀包含報文頭、功能代碼和數據3部分。

      4、 MODBUS功能代碼

      4.1 3種類型

      (1)公共功能代碼(如表2所示):已定義好的功能碼,保證其唯一性,由Modbus.org認可。

      (2)用戶自定義功能代碼有兩組,分別為65~72和100~110,無需認可,但不保證代碼使用的唯一性。如變為公共代碼,需交RFC認可。

      (3)保留的功能代碼,由某些公司使用在某些傳統設備的代碼,不可作為公共用途。

      表2 Modbus常用公共代碼功能

      4.2功能代碼劃分:按應用深淺,可分為3個類別。

      (1)類別0,對于客戶機/服務器最小的可用子集:讀多個保持寄存器(fc.3);寫多個保持寄存器(fc.16)。

      (2)類別1,可實現基本互易操作的常用代碼:讀線圈(fc.1);讀開關量輸入(fc.2);讀輸入寄存器(fc.4);寫線圈(fc.5);寫單一寄存器(fc.6)。

      (3)類別2,用于人機界面、監控系統的例行操作和數據傳送功能:

      (4)強制多個線圈(fc.15);讀通用寄存器(fc.20);寫通用寄存器(fc.21);屏蔽寫寄存器(fc.22);讀寫寄存器(fc.23)。

      5、VB的基本概念

      VB(Visual Basic)是面向對象的程序設計語言,用它來開發Windows操作系統下的應用程序,它提供了很多接口成員,對象、屬性、事件、方法就是4個重要的接口,VB提供了許多常用的控件。

      5.1卷標控件

      卷標控件如圖4(a)所示,該控件專用于顯示文字、數字用,顯示如圖4(b)所示。

      5.2 按鈕控件

      按鈕控件如圖5(a)所示,該控件使用率很高,提供一個供系統用戶操作用的按鈕,如圖5(b)所示。

      6、基于Winsock控件的TCP/IP以太網通信

      要完成VB與PLC等設備的以太網通信要用到Winsock控件,在此有必要對該控件作較詳細的說明。Winsock是一個ActiveX控件,需要要手動添加許多項目,其步驟如下:

      (1)選擇菜單的【工程】。

      (2)選擇【部件】。

      (3)在彈出的對話框中做如圖6的選擇。

      圖6 對話框界面

      (4)如圖7所示,在部件選項卡就會出現Winsock控件

      7、Winsock控件的基本屬性

      此控件對于用戶在運行時不可見,提供了一個簡單的途徑訪問TCP及UDP網絡服務而無需了解底層細節,使用時你只需設置屬性、在恰當的時候調用它提供的方法即可。

      主要屬性有:

      BytesReceived:返回當前緩沖區中的字節數量,我們可以使用 GetData 方法以接收數據。只讀且設計時不可用。

      LocalHostName:返回本機名字符串,設計時不可用。

      LocalIP:返回以(xxx.xxx.xxx.xxx)格式表達的IP地址串。設計時不可用,運行時只讀。

      LocalPort :本機使用接收端口可讀寫,設計時可用,Long型。對于客戶,如果無需指定端口,則用端口0發送數據。在此情況下,控件將隨機選擇一個端口。在一個連接確定后,為TCP的端口。對于服務器,指用于監聽的端口。如設置為0,則用隨機數。在調用Listen 方法后,該屬性自動包含用到的端口。端口0總是用于在兩計算機間建立動態連接。客戶希望通過端口0獲得一個隨機端口以”回調”連接服務器。

      Protocol :套接字類型,為TCP或UDP二者之一,缺省為TCP類型。設置為sckTCPProtocol表示TCP協議sckUDPProtocol表示UDP協議。在此屬性被重置之前需用Close方法關閉之。

      RemoteHost:發送或接收數據的主機,你可提供主機名如:
      FTP://ftp.microsoft.com,或一IP地址串,例如“100.0.1.1”。

      RemoteHostIP:遠程主機的IP地址。對于客戶程序,在連接確定后使用Connect方法,此屬性包含遠程主機的IP名串。對于服務器程序, 在引入連接需求后(Connection Request 事件),此屬性包含IP串。當使用UDP套接字,在Data Arrival事件發生后,此屬性為發送UDP數據的機器IP地址串。

      RemotePort:連接套接字端口值。例如通常HTTP應用使用80端口,FTP則使用21。

      State:控件的狀態, 只<

      文章版權歸西部工控xbgk所有,未經許可不得轉載。

      主站蜘蛛池模板: 91国在线啪精品一区| 2022年亚洲午夜一区二区福利 | 久久精品国产一区二区电影| 鲁丝丝国产一区二区| 国产一区二区三区日韩精品| 精品无码一区二区三区水蜜桃| 亚洲狠狠久久综合一区77777| 亚洲国产日韩一区高清在线| 国产成人精品a视频一区| 亚洲熟妇av一区二区三区| 狠狠爱无码一区二区三区| 色欲综合一区二区三区| 一区二区三区电影网| 久久青青草原一区二区| 亚洲视频一区网站| 日本不卡免费新一区二区三区| 国产A∨国片精品一区二区| 无码视频免费一区二三区| 无码播放一区二区三区| 一区高清大胆人体| 91video国产一区| 久久99精品免费一区二区| 日韩精品无码中文字幕一区二区| 亚洲av乱码一区二区三区| 波多野结衣中文字幕一区 | 久久久精品人妻一区二区三区| 色一乱一伦一图一区二区精品| 无码人妻一区二区三区av| 97精品国产福利一区二区三区| 亚洲av无码片vr一区二区三区| 亚洲国产精品成人一区| 亚洲AV无码一区二区大桥未久| 一区二区三区在线免费观看视频| 久久久精品人妻一区亚美研究所| 国模精品一区二区三区视频 | 日韩一区二区三区射精| 中文字幕无线码一区| 韩国一区二区三区| 亚洲国产成人久久综合一区77| 亚洲日韩精品无码一区二区三区| 久久一区不卡中文字幕|