當前位置:機電之家首頁 >> PLC技術>> PLC文案資料 >> PLC試題庫 >> 如何通過vb實現(xiàn)pc機與plc的以太網通信
如何通過vb實現(xiàn)pc機與plc的以太網通信

1、 引言

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

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

2.1以太網的標準

以太網是一種局域網。早期標準為ieee 802.3,數(shù)據(jù)鏈路層使用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與商用以太網的區(qū)別

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

2.3 使用tcp/ip協(xié)議的原因及其概述

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

ip是internet最基本的協(xié)議。ip是面向報文的協(xié)議,它獨立處理每個報文包,每個報文包必須含有完整的尋址信息。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是基于傳輸層的協(xié)議,協(xié)議文件可從rfc793得到,使用廣泛,面向連接的可靠協(xié)議。它能把報文分解為數(shù)段,在目的站再重新裝配這些段,支持重新發(fā)送未被收到的段,提供兩臺設備間的全雙工連接,允許它們高效地交換大量數(shù)據(jù)。tcp使用滑動窗口協(xié)議來高效使用網絡。由于tcp很少干預底層投遞系統(tǒng)的工作,它適應各種投遞系統(tǒng),且提供流量控制,能使各種不同速率的系統(tǒng)進行通信。報文段是tcp所使用的基本傳輸單元,用于傳輸數(shù)據(jù)或控制信息。

3、modbus數(shù)據(jù)幀格式

在tcp/ip以太網上傳輸,支持ethernet ii和802.3兩種幀格式。圖3所示,modbus tcp數(shù)據(jù)幀包含報文頭、功能代碼和數(shù)據(jù)3部分。

4、 modbus功能代碼

4.1 3種類型

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

(2)用戶自定義功能代碼有兩組,分別為65~72和100~110,無需認可,但不保證代碼使用的唯一性。如變?yōu)楣泊a,需交rfc認可。

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

表2 modbus常用公共代碼功能

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

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

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

(3)類別2,用于人機界面、監(jiān)控系統(tǒng)的例行操作和數(shù)據(jù)傳送功能:

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

5、vb的基本概念

vb(visual basic)是面向對象的程序設計語言,用它來開發(fā)winoows操作系統(tǒng)下的應用程序,它提供了很多接口成員,對象、屬性、事件、方法就是4個重要的接口,vb提供了許多常用的控件。

5.1卷標控件

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

5.2 按鈕控件

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

6、基于winsock控件的tcp/ip以太網通信

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

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

(2)選擇【部件】。

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

圖6 對話框界面

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

7、winsock控件的基本屬性

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

主要屬性有:

bytesreceived:返回當前緩沖區(qū)中的字節(jié)數(shù)量,我們可以使用 getdata 方法以接收數(shù)據(jù)。只讀且設計時不可用。

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

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

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

protocol :套接字類型,為tcp或udp二者之一,缺省為tcp類型。設置為scktcpprotocol表示tcp協(xié)議sckudpprotocol表示udp協(xié)議。在此屬性被重置之前需用close方法關閉之。

remotehost:發(fā)送或接收數(shù)據(jù)的主機,你可提供主機名如:ftp://ftp.microsoft.com,或一ip地址串,例如“100.0.1.1”。

remotehostip:遠程主機的ip地址。對于客戶程序,在連接確定后使用connect方法,此屬性包含遠程主機的ip名串。對于服務器程序, 在引入連接需求后(connection request 事件),此屬性包含ip串。當使用udp套接字,在data arrival事件發(fā)生后,此屬性為發(fā)送udp數(shù)據(jù)的機器ip地址串。

remoteport:連接套接字端口值。例如通常http應用使用80端口,ftp則使用21。

作者:未知 點擊:3219次 [打印] [關閉] [返回頂部]
本文標簽:如何通過vb實現(xiàn)pc機與plc的以太網通信
* 由于無法獲得聯(lián)系方式等原因,本網使用的文字及圖片的作品報酬未能及時支付,在此深表歉意,請《如何通過vb實現(xiàn)pc機與plc的以太網通信》相關權利人與機電之家網取得聯(lián)系。
電子樣本

SN系列樣冊
:鞏經理
:13915946763
:南京塞姆泵業(yè)有限公司
個人求購

張揚瓊 【求購】  ABB火檢...  2025-11-27
張雪根 【求購】  固體除垢劑  2025-11-26
趙經理 【求購】  變壓器  2025-11-26
羅經理 【求購】  巡邏車跟蹤...  2025-11-26
趙經理 【求購】  柴油發(fā)電機  2025-11-26
沈雙 【求購】  柴油過濾紙  2025-11-26
陳經理 【求購】  濰柴船用發(fā)...  2025-11-26
 【求購】  移動電源  2025-11-25
VIP公司推薦