日本在线www-日本在线播放一区-日本在线不卡免费视频一区-日本在线不卡视频-成人影院久久久久久影院-成人影院一区二区三区

最新廣告
關注中國自動化產業發展的先行者!
工業智能邊緣計算2025年會
CAIAC 2025
2025工業安全大會
OICT公益講堂
當前位置:首頁 >> 案例 >> 案例首頁

案例頻道

利用Winscok控件實現VB與PLC的以太網通信
  • 企業:控制網     領域:工業以太網    
  • 點擊數:1928     發布時間:2007-09-19 10:28:07
  • 分享到:
工業以太網以其特有的低成本,高實效,高擴展性及高智能的魅力,吸引著越來越多的制造業的廠商。因此通過MODBUS/TCP協議實現諸如PLC的I/O模塊,以及連接其它簡單域總線或 I/O模塊的網關服務有重要的意義。本文基于VB討論PLC與監控計算機的通信問題。



關鍵詞:VB  MODBUS/TCP協議  可編程控制器  以太網

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:控件的狀態, 只讀且設計時不可用。可為以下值:

    常量描述

    sckClosed 0 缺省值,關閉套接字

    sckOpen 1 打開套接字

    sckListening 2 正監聽端口

    sckConnectionPending 3 正在進行未定的連接

    sckResolvingHost 4 正解析主機地址

    sckHostResolved 5 主機地址已解析

    sckConnecting 6 正在連接

    sckConnected 7 已連接

    sckClosing 8 連接關閉

    sckError 9 錯誤

8、VB與PLC基于MODBUS TCP的以太網通信的實現

    以下舉例說明如何實現VB與PLC的以太網通信。

    (1)控制要求:用交替型按鈕控制Y0,并用指示燈顯示Y0狀態(綠色為運行,紅色為停止);能夠對D100、D200兩個寄存器進行數值寫入與讀出的操作。

    (2)實現思路:同樣Y0的地址分別為H0500。寫入FF00為ON,0000為OFF,按功能碼05操作;D100,D200地址分別為H1064,H10C8,按功能碼03操作即可實現寄存器的讀功能,按功能碼10H操作即可實現寄存器的寫功能。

    (3)VB接口的設計如圖8所示
 

    在界面中用按鈕控制Y0的ON/OFF及D100、D200數據的寫與讀;用shape組件做指示燈,指示Y0的ON/OFF狀態;用Winsock控件實現PLC與VB的通信。

    (1)實現功能的代碼構成

    (2)建立網絡連接

    Private Sub Command1_Click()
    Winsock1.Close
    Winsock1.Connect Text1, 502
    Label2.Caption = "Version: 1.0 : " + Format(Now, "mmm dd yyyy Hh:Nn:Ss")
    Command1.Enabled = False
    Command1.Enabled = False
    Text1.Enabled = False
    End Sub
    (2)、Y0的ON/OFF控制
    Private Sub Comd_send_Click()
    On Error GoTo ErrProc
    Dim sendstr(14) As Byte
    sendstr(0) = &H0 '交換識別號高字節,通常為0
    sendstr(1) = &H0 '交換識別號低字節,通常為0
    sendstr(2) = &H0 '協議識別號高字節,為 0
    sendstr(3) = &H0 '協議識別號低字節,為 0
    sendstr(4) = &H0 '字節長度高字節
    sendstr(5) = &H9 '以下字節長度低字節
    sendstr(6) = &HFF '單元識別號,確省為 255
    sendstr(7) = &H5 '寫一個線圈命令代碼
    sendstr(8) = &H0  '寫線圈的起始地址高字節
    sendstr(9) = &H1'寫線圈的起始地址低字節
    sendstr(10) = a '=FF打開線圈,=00關閉線圈
    sendstr(11) = &H0 '
    Dim aStr As String
    Dim i, j As Integer
    For i = 0 To 11
    aStr = aStr & Chr(sendstr(i))
    Next
    Winsock1.SendData aStr
    Exit Sub
    ErrProc:
    MsgBox "傳輸數據失敗", vbCritical, "網絡傳輸"
    End Sub

    (3)線圈狀態顯示及寄存器讀出數據顯示

    Private Sub winsock1_DataArrival(ByVal bytesTotal As Long)
    Dim strdata() As Byte
    Dim i, j As Integer
    Dim s As String
    Dim s1 As String
    Dim IO As Byte
    i = Winsock1.BytesReceived
    ReDim strdata(i)
    Winsock1.GetData strdata, vbByte, i
    For j = 0 To i - 1
    s = s + Hex(strdata(j))
    Next
    If s Like "*5*" Then
    s1 = Mid(s, 12, 2)
    If s1 = "FF" Then
    IO = 1
    a = &H0
    Else
    IO = 0
    a = &HFF
    End If
    If IO = 1 Then
    Shape1.FillColor = RGB(0, 255, 0) 'green
    Labl3.Caption = "IO點接通"
    Else
    Shape1.FillColor = RGB(255, 0, 0) 'red
    Labl3.Caption = "IO點斷開"
    End If
    End If If s Like "*3*" Then
    Text3.Text = Text3.Text + Mid(s, 11) + ""
    End If

    (4)、讀多個寄存器數據

    End Sub Private Sub Command4_Click()
    On Error GoTo ErrProc
    Dim str(12) As Byte
    str(0) = &H0 '交換識別號高字節,通常為 0
    str(1) = &H0 '交換識別號低字節,通常為 0    
    str(2) = &H0 '協議識別號高字節,為 0
    str(3) = &H0 '協議識別號低字節,為 0
    str(4) = &H0 '字節長度高字節
    str(5) = &H6 '以下字節長度低字節
    str(6) = &HFF '單元識別號,確省為 255
    str(7) = &H3 '讀多個寄存器命令代碼
    str(8) = &H10  '讀數據的起始地址高字節
    str(9) = &HC8 '讀數據的起始地址低字節
    str(10) = &H0 '數據長度高字節
    str(11) = &H1 '數據長度低字節
    Dim bStr As String
    Dim i As Integer
    For i = 0 To 11
    bStr = bStr & Chr(str(i))
    Next
    Winsock1.SendData bStr
    Exit Sub
    ErrProc:
    MsgBox "傳輸數據失敗", vbCritical, "網絡傳輸"
    End Sub
    D100寄存器的寫入操作類似,由于篇幅所限其他代碼在此就不再贅述。

9.結速語

    工業以太網是工業自動化網絡發展的必然趨勢,為了對工業設備進行實時的管理與監控,工業以太網設備大多都支持遠程管理,而且各廠商業都有各自的網絡管理軟件以提供對網絡設備進行友好的圖形化界面操作。管理員還可以通過遠程telnet或web界面的方式直接對設備進行調試。完善的兼容性,可靠的穩定性,對惡劣環境的適應性,強大的冗余能力和方便的可管理性,是人們越來越多地在網絡設計過程中采用工業以太網的原因,而這也勢必成為工業以太網在越來越多的網絡環境里大顯身手的重要契機。借臺達即將推出以太網模塊之際撰寫此文,希望能夠為其以太網模塊的推廣提供一些幫助。由于本人水平有限本文編寫難免會有錯漏之處,也請讀者給予批評指正。

    南京寧控系統工程有限公司  熊金香

熱點新聞

推薦產品

x
  • 在線反饋
1.我有以下需求:



2.詳細的需求:
姓名:
單位:
電話:
郵件:
主站蜘蛛池模板: 国产又黄又爽又猛的免费视频播放-国产又黄又爽视频免费观看-国产又黄又湿又刺激不卡网站-国产又黄又a又潮娇喘视频-亚洲国产美女福利直播秀一区二区-亚洲国产乱码在线精品 | 一区二区视频在线观看高清视频在线-一区二区三区无码高清视频-一区二区三区无码被窝影院-一区二区三区四区国产-久久re视频精品538在线-久久re热在线视频精99 | 久久99国产精品一区二区,欧美日韩另类在线,婷婷四月开心色房播播网,收集最新中文国产中文字幕,亚洲综合激情六月婷婷在线观看,欧美一级淫片 | 欧美成人国产一区二区-欧美成人黄色-欧美成人黄色片-欧美成人家庭影院-欧美成人精精品一区二区三区-欧美成人精品a8198v无码 | 日本免费在线观看视频-日本免费在线-日本免费一区二区在线观看-日本免费一区二区视频-2017国产小视频-2017能在线观看的网站 | 欧美人与性动交a欧美精品-欧美人与物另类-欧美人与牲动交a欧美精品-欧美人与禽片免播放-国产福利在线观看永久免费-国产福利在线播放 | 国产三级在线观看视频-国产三级在线免费-国产三级在线免费观看-国产三级自拍亚洲性爱在线-国产三级做爰在线播放-国产三級三級三級A片视频 | 六月婷婷国产精品综合-六六影院午夜伦理-六级黄色片-六度影院最新-最近的2019中文字幕国语完整版-最近的2019中文字幕国语版 | 六月婷婷国产精品综合-六六影院午夜伦理-六级黄色片-六度影院最新-最近的2019中文字幕国语完整版-最近的2019中文字幕国语版 | 五月婷婷六月丁香,国产免费高清mv视频在线观看,久久青草18免费观看网站,欧美一级爱爱,色青五月天,国产欧美另类久久精品91 | 久热久热精品在线观看-久青草影院-久青草国产在线视频亚瑟影视-久青草国产在线视频-正在播放黑人杂交派对卧槽-正在播放国产尾随丝袜美女 | 国产久操视频-国产久草视频-国产久热精品-国产久热香蕉在线观看-青青青青娱乐-青青青青在线成人视99 | 五月天婷婷缴情五月免费观看,久久综合热,高清中国一级毛片免费,国产一级高清免费观看,普通话对白国产精品一级毛片,日韩在线不卡视频 | 一区二区在线视频观看-一区二区在线免费视频-一区二区在线看-一区二区在线电影-久久精品久久精品国产大片-久久精品久久精品 | 亚洲A片一区日韩精品无码-亚洲H成年动漫在线观看不卡-亚洲VA欧美VA天堂V国产综合-亚洲VA天堂VA欧美片A在线-亚洲爆乳精品无码AAA片-亚洲不卡高清免v无码屋 | 欧美综合亚洲,欧美激情91,亚洲 欧美 成人日韩,国产亚洲精品成人婷婷久久小说,国内精品久久久久影院不卡,曰韩在线 | 久久这里只有精品国产99-久久这里只有精品2-久久这里只有精品1-久久这里只精品热在线99-在线少女漫画-在线涩涩免费观看国产精品 国产精选一区二区-国产精选一区-国产精选污视频在线观看-国产精选91热在线观看-特级黄色视频毛片-特级黄色免费片 | 亚洲黄色网页-亚洲黄色三级视频-亚洲黄色片免费看-亚洲黄色免费在线观看-国产中文字幕免费观看-国产中文字幕乱码一区 | jjzz日本女人-jjzz网站-jjzz亚洲亚洲女人-jjzz在线观看-jlzzjizz-jlzzjlzz亚洲日本 | www五月天,国产精品视频网站你懂得,精品国产你懂的在线观看,久久伊人成人,国产精品黄页网站在线播放免费,国产va在线 | 成人综合网久久-成人综合网亚洲伊人-成人综合网站-成人综合网站一区二区三区四区-成人综合网站在线-成人综合网址 | 成人a毛片手机免费播放-成人a毛片在线看免费全部播放-成人a视频高清在线观看-成人a视频片在线观看免费-欧美三级中文字幕hd-欧美三极 | 国产免费看-国产免费久久精品久久久-国产免费久久精品99-国产免费久久精品44-天天干天天天天-天天干天天爽天天射 | 伊人精品国产,久久久国产精品视频,国产1页,国产精品亚洲综合一区,国产成人高清亚洲一区91,久久久一区二区三区不卡 | 激情综合五月亚洲婷婷,国内亚州视频在线观看,成人国产精品免费网站,欧美性猛交99久久久久99,久久国产欧美日韩精品,国产精品无码久久av | 亚洲青草,日本成人a,欧美视频一区二区在线观看,国产精品porn,欧美国产精品va在线观看,精品一区二区三区的国产在线观看 | 国产精选一区二区-国产精选一区-国产精选污视频在线观看-国产精选91热在线观看-特级黄色视频毛片-特级黄色免费片 | 中文无码熟妇人妻av在-中文无码视频三区四区在线观看-中文无码视频-中文无码肉感爆乳在线-中文无码日韩欧免费视频-中文无码日韩欧毛 | 2015天堂网-2014天堂网-19国产精品麻豆免费观看-18视频在线观看网站-18黄免app网站-18成网站www在线观看 | 国产精品v欧美精品v日本精品动漫-国产精品porn-国产精品jizzjizz-国产精品h片在线播放-热久久伊人-热久久亚洲 | 五月天婷婷基地,久久精品1,中文字幕第一页亚洲,99精品国产高清一区二区三区香蕉,国产视频观看,日韩精品在线第一页 | 国产精品视_精品国产免费-国产精品视-国产精品深夜福利免费观看-国产精品三区四区-四虎成人4hutv影院-四虎成年永久免费网站 | 国产成人无码影视-国产成人无码专区-国产成人无码综合-国产成人无码综合亚洲日韩-国产成人无码综合亚洲日韩榴莲-国产成人无套精品在线观看 | 人妻不敢呻吟被中出A片视频-人妻超级精品碰碰在线97视频-人妻换人妻AA视频-人妻寂寞按摩中文字幕-人妻精品国产一区二区-人妻久久久精品99系列A片毛 | 免费的成人a视频在线观看-免费岛国小视频在线观看-免费岛国-免费大香伊蕉在人线国产-免费大片黄在线观看日本-免费大片黄手机在线观看 | 日韩久久精品一区二区三区-日韩久久精品视频-日韩久草视频-日韩久草-国产成人短视频-国产成人调教视频在线观看 | 欧美成人国产一区二区-欧美成人黄色-欧美成人黄色片-欧美成人家庭影院-欧美成人精精品一区二区三区-欧美成人精品a8198v无码 | 激情文学综合,美女视频在线观看网站,丁香综合五月,色在线国产,久久亚洲国产欧洲精品一,五月婷婷丁香 | 极品少妇粉嫩小泬啪啪AV-极品少妇粉嫩小泬啪啪小说-极品少妇高潮啪啪AV无码-极品少妇伦理一区二区-极品少妇小泬50PTHEPON-极品夜夜嗨久久精品17c | 国产婷婷视频-国产婷婷丁香久久综合-国产天天在线-国产天天操-小草在线免费观看视频-小草在线观看视频免费2019 | 欧美日韩中文综合v日本-欧美日韩中文字幕久久-欧美日韩中文在线-欧美日韩中文一区二区三区-欧美日韩中文国产一区二区三区-欧美日韩在线视频观看 |