<nobr id="zkazv"></nobr>

      午夜精品一区二区三区成人,中文字幕av一区二区,亚洲AVAV天堂AV在线网阿V,肥臀浪妇太爽了快点再快点,国产网友愉拍精品视频手机,国产精品无码a∨麻豆,久久中文字幕一区二区,a级国产乱理伦片在线观看al
      首頁 新聞 工控搜 論壇 廠商論壇 產(chǎn)品 方案 廠商 人才 文摘 下載 展覽
      首 頁 新聞動態(tài) 產(chǎn)品中心 方案與應(yīng)用 技術(shù)文摘 資料下載 關(guān)于我們 臺達(dá)網(wǎng)站 在線視頻
      利用Winscok控件實現(xiàn)VB與PLC的以太網(wǎng)通信

      中達(dá)電通股份有限公司
      收藏本文     查看收藏
      南京寧控系統(tǒng)工程有限公司  熊金香
      摘要:工業(yè)以太網(wǎng)以其特有的低成本,高實效,高擴(kuò)展性及高智能的魅力,吸引著越來越多的制造業(yè)的廠商。因此通過MODBUS/TCP協(xié)議實現(xiàn)諸如PLC的I/O模塊,以及連接其它簡單域總線或 I/O模塊的網(wǎng)關(guān)服務(wù)有重要的意義。本文基于VB討論P(yáng)LC與監(jiān)控計算機(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ù)。如何簡便地實現(xiàn)與PLC的交互已經(jīng)成為眾多廠商新的競爭戰(zhàn)場。由此產(chǎn)生了人機(jī)界面及各種組態(tài)軟件產(chǎn)品,這些產(chǎn)品的出現(xiàn)簡化了對PLC的控制、操作,使PLC的應(yīng)用更加方便。但也有其共同的缺點,價格普遍偏高和可二次開發(fā)性較差。VB作為“原始”的編程語言,兼具了上述兩方面的優(yōu)勢。本文結(jié)合一個簡單的案例來粗略討論如何通過VB實現(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è)計者希望采用市場上可找到的以太網(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上運行TCP/IP協(xié)議;而后又在一個撥號語音網(wǎng)絡(luò)(如電話系統(tǒng))上使用TCP/IP協(xié)議,又有TCP/IP在令牌環(huán)網(wǎng)上運行成功;最后又實現(xiàn)了TCP/IP遠(yuǎn)程分組無線網(wǎng)點與其他Internet網(wǎng)點間TCP/IP通信。所以TCP/IP協(xié)議極其靈活,具備連接不同網(wǎng)絡(luò)的能力。另外,使用TCP/IP也簡化了OSI模型,因為它省略了表示層和會話層。如果現(xiàn)在把以太網(wǎng)的物理層和數(shù)據(jù)鏈路層加到OSI模型,就構(gòu)成了基于以太網(wǎng)的TCP/IP網(wǎng),如圖1所示。用以太網(wǎng)實現(xiàn)TCP/IP也是經(jīng)濟(jì)的一種方式。

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

      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類用于多點播送,用于多目的信息的傳輸。全零(“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è)備的代碼,不可作為公共用途。
      4.2功能代碼劃分:按應(yīng)用深淺,可分為3個類別。
      (1)類別0,對于客戶機(jī)/服務(wù)器最小的可用子集:讀多個保持寄存器(fc.3);寫多個保持寄存器(fc.16)。
      (2)類別1,可實現(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è)計語言,用它來開發(fā)Windows操作系統(tǒng)下的應(yīng)用程序,它提供了很多接口成員,對象、屬性、事件、方法就是4個重要的接口,VB提供了許多常用的控件。
      5.1卷標(biāo)控件
      卷標(biāo)控件如圖4(a)所示,該控件專用于顯示文字、數(shù)字用,顯示如圖4(b)

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

      6、基于Winsock控件的TCP/IP以太網(wǎng)通信
      要完成VB與PLC等設(shè)備的以太網(wǎng)通信要用到Winsock控件,在此有必要對該控件作較詳細(xì)的說明。Winsock是一個ActiveX控件,需要要手動添加許多項目,其步驟如下:
      (1)選擇菜單的【工程】。
      (2)選擇【部件】。
      (3)在彈出的對話框中做如圖6的選擇。
      (4)如圖7所示,在部件選項卡就會出現(xiàn)Winsock控件。
      圖7 Winsock控件
       
      7、Winsock控件的基本屬性
      此控件對于用戶在運行時不可見,提供了一個簡單的途徑訪問TCP及UDP網(wǎng)絡(luò)服務(wù)而無需了解底層細(xì)節(jié),使用時你只需設(shè)置屬性、在恰當(dāng)?shù)臅r候調(diào)用它提供的方法即可。
      主要屬性有:
      BytesReceived:返回當(dāng)前緩沖區(qū)中的字節(jié)數(shù)量,我們可以使用 GetData 方法以接收數(shù)據(jù)。只讀且設(shè)計時不可用。
      LocalHostName:返回本機(jī)名字符串,設(shè)計時不可用。
      LocalIP:返回以(xxx.xxx.xxx.xxx)格式表達(dá)的IP地址串。設(shè)計時不可用,運行時只讀。
      LocalPort :本機(jī)使用接收端口可讀寫,設(shè)計時可用,Long型。對于客戶,如果無需指定端口,則用端口0發(fā)送數(shù)據(jù)。在此情況下,控件將隨機(jī)選擇一個端口。在一個連接確定后,為TCP的端口。對于服務(wù)器,指用于監(jiān)聽的端口。如設(shè)置為0,則用隨機(jī)數(shù)。在調(diào)用Listen 方法后,該屬性自動包含用到的端口。端口0總是用于在兩計算機(jī)間建立動態(tài)連接?蛻粝Mㄟ^端口0獲得一個隨機(jī)端口以”回調(diào)”連接服務(wù)器。
      Protocol :套接字類型,為TCP或UDP二者之一,缺省為TCP類型。設(shè)置為sckTCPProtocol表示TCP協(xié)議sckUDPProtocol表示UDP協(xié)議。在此屬性被重置之前需用Close方法關(guān)閉之。
      RemoteHost:發(fā)送或接收數(shù)據(jù)的主機(jī),你可提供主機(jī)名如:FTP://ftp.microsoft.com,或一IP地址串,例如“100.0.1.1”。
      RemoteHostIP:遠(yuǎn)程主機(jī)的IP地址。對于客戶程序,在連接確定后使用Connect方法,此屬性包含遠(yuǎn)程主機(jī)的IP名串。對于服務(wù)器程序,在引入連接需求后(Connection Request 事件),此屬性包含IP串。當(dāng)使用UDP套接字,在Data Arrival事件發(fā)生后,此屬性為發(fā)送UDP數(shù)據(jù)的機(jī)器IP地址串。
      RemotePort:連接套接字端口值。例如通常HTTP應(yīng)用使用80端口,F(xiàn)TP則使用21。
      State:控件的狀態(tài), 只讀且設(shè)計時不可用?蔀橐韵轮担
      常量描述
      sckClosed 0 缺省值,關(guān)閉套接字
      sckOpen 1 打開套接字
      sckListening 2 正監(jiān)聽端口
      sckConnectionPending 3 正在進(jìn)行未定的連接
      sckResolvingHost 4 正解析主機(jī)地址
      sckHostResolved 5 主機(jī)地址已解析
      sckConnecting 6 正在連接
      sckConnected 7 已連接
      sckClosing 8 連接關(guān)閉
      sckError 9 錯誤
      8、VB與PLC基于MODBUS TCP的以太網(wǎng)通信的實現(xiàn)
      以下舉例說明如何實現(xiàn)VB與PLC的以太網(wǎng)通信。
      (1)控制要求:用交替型按鈕控制Y0,并用指示燈顯示Y0狀態(tài)(綠色為運行,紅色為停止);能夠?qū)100、D200兩個寄存器進(jìn)行數(shù)值寫入與讀出的操作。
      (2)實現(xiàn)思路:同樣Y0的地址分別為H0500。寫入FF00為ON,0000為OFF,按功能碼05操作;D100,D200地址分別為H1064,H10C8,按功能碼03操作即可實現(xiàn)寄存器的讀功能,按功能碼10H操作即可實現(xiàn)寄存器的寫功能。
      (3)VB接口的設(shè)計如圖8所示

      圖8 監(jiān)控程序界面圖
      在界面中用按鈕控制Y0的ON/OFF及D100、D200數(shù)據(jù)的寫與讀;用shape組件做指示燈,指示Y0的ON/OFF狀態(tài);用Winsock控件實現(xiàn)PLC與VB的通信。
      (1)實現(xiàn)功能的代碼構(gòu)成
      (2)建立網(wǎng)絡(luò)連接
      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 '交換識別號高字節(jié),通常為0
      sendstr(1) = &H0 '交換識別號低字節(jié),通常為0
      sendstr(2) = &H0 '協(xié)議識別號高字節(jié),為 0
      sendstr(3) = &H0 '協(xié)議識別號低字節(jié),為 0
      sendstr(4) = &H0 '字節(jié)長度高字節(jié)
      sendstr(5) = &H9 '以下字節(jié)長度低字節(jié)
      sendstr(6) = &HFF '單元識別號,確省為 255
      sendstr(7) = &H5 '寫一個線圈命令代碼
      sendstr(8) = &H0  '寫線圈的起始地址高字節(jié)
      sendstr(9) = &H1'寫線圈的起始地址低字節(jié)
      sendstr(10) = a '=FF打開線圈,=00關(guān)閉線圈
      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 "傳輸數(shù)據(jù)失敗", vbCritical, "網(wǎng)絡(luò)傳輸"
      End Sub
      (3)線圈狀態(tài)顯示及寄存器讀出數(shù)據(jù)顯示
      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)、讀多個寄存器數(shù)據(jù)
      End Sub Private Sub Command4_Click()
      On Error GoTo ErrProc
      Dim str(12) As Byte
      str(0) = &H0 '交換識別號高字節(jié),通常為 0
      str(1) = &H0 '交換識別號低字節(jié),通常為 0
      str(2) = &H0 '協(xié)議識別號高字節(jié),為 0
      str(3) = &H0 '協(xié)議識別號低字節(jié),為 0
      str(4) = &H0 '字節(jié)長度高字節(jié)
      str(5) = &H6 '以下字節(jié)長度低字節(jié)
      str(6) = &HFF '單元識別號,確省為 255
      str(7) = &H3 '讀多個寄存器命令代碼
      str(8) = &H10  '讀數(shù)據(jù)的起始地址高字節(jié)
      str(9) = &HC8 '讀數(shù)據(jù)的起始地址低字節(jié)
      str(10) = &H0 '數(shù)據(jù)長度高字節(jié)
      str(11) = &H1 '數(shù)據(jù)長度低字節(jié)
      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 "傳輸數(shù)據(jù)失敗", vbCritical, "網(wǎng)絡(luò)傳輸"
      End Sub
      D100寄存器的寫入操作類似,由于篇幅所限其他代碼在此就不再贅述。
      9.結(jié)速語
          工業(yè)以太網(wǎng)是工業(yè)自動化網(wǎng)絡(luò)發(fā)展的必然趨勢,為了對工業(yè)設(shè)備進(jìn)行實時的管理與監(jiān)控,工業(yè)以太網(wǎng)設(shè)備大多都支持遠(yuǎn)程管理,而且各廠商業(yè)都有各自的網(wǎng)絡(luò)管理軟件以提供對網(wǎng)絡(luò)設(shè)備進(jìn)行友好的圖形化界面操作。管理員還可以通過遠(yuǎn)程telnet或web界面的方式直接對設(shè)備進(jìn)行調(diào)試。完善的兼容性,可靠的穩(wěn)定性,對惡劣環(huán)境的適應(yīng)性,強(qiáng)大的冗余能力和方便的可管理性,是人們越來越多地在網(wǎng)絡(luò)設(shè)計過程中采用工業(yè)以太網(wǎng)的原因,而這也勢必成為工業(yè)以太網(wǎng)在越來越多的網(wǎng)絡(luò)環(huán)境里大顯身手的重要契機(jī)。借臺達(dá)即將推出以太網(wǎng)模塊之際撰寫此文,希望能夠為其以太網(wǎng)模塊的推廣提供一些幫助。由于本人水平有限本文編寫難免會有錯漏之處,也請讀者給予批評指正。

       
       
      臺達(dá)相關(guān)解決方案:
      臺達(dá)堆垛機(jī)方案:精準(zhǔn)是王道 平穩(wěn)更高效
      不負(fù)期望 強(qiáng)大性能 | 臺達(dá)ASDA-A3伺服高端應(yīng)用面面說
      云端漫游智能制造 低碳方案盡在眼前!
      看臺達(dá)三招化解數(shù)據(jù)中心升級難
      云課堂 | 聽數(shù)據(jù)中心專家開講新一代綠色微模塊
      建設(shè)低碳綠色智能工廠,從優(yōu)化冷水機(jī)開始!
      臺達(dá)在這個智慧園區(qū)上展現(xiàn)的“硬功夫“和”軟實力”
      臺達(dá)澆鑄控制解決方案 助力發(fā)泡橡膠制程大升級
      臺達(dá)為數(shù)據(jù)托管跨國公司提供 28 MW 關(guān)鍵電力解決方案
      低碳模式 綠色主張 臺達(dá)方案與你分享
      臺達(dá)LED直流智能照明解決方案,點亮家門口的“指路燈”
      深化“雙碳”牽引目標(biāo) 臺達(dá)為智能廠務(wù)增加綠色助力
      更多臺達(dá)解決方案...
      通過中華工控網(wǎng)在線留言中達(dá)電通股份有限公司:
      用戶名: 密碼: 免費注冊為中華工控網(wǎng)會員
      請留下您的有效聯(lián)系方式,以方便我們及時與您聯(lián)絡(luò)
       
      中華工控網(wǎng) GKong.com制作發(fā)布 廣告聯(lián)系
      主站蜘蛛池模板: 人妻va精品va欧美va| 日韩av一区二区三区不卡| 国产精品一区二区黄色片| 日韩精品亚洲专在线电影| 国产精品 自在自线| 欧美videos粗暴| 日韩美女视频一区二区三区| 中文字幕国产精品资源| 大尺度国产一区二区视频 | 乱码午夜-极品国产内射| 日韩精品18禁一区二区| 国产迷姦播放在线观看| 最新精品露脸国产在线| 国产精品一区 在线播放| 亚洲人成网网址在线看| 欧美一区二区三区成人久久片| 中文字幕亚洲精品第一页| 国产美女被遭强高潮免费一视频| 亚洲深深色噜噜狠狠网站| 国产国亚洲洲人成人人专区| 亚洲欧美日韩愉拍自拍美利坚| 免费看国产精品3a黄的视频| 色吊丝av熟女中文字幕| 国产乱人伦偷精品视频下| 国产精品自拍自在线播放| 亚洲人妻一区二区精品| 国产在线无码视频一区二区三区 | 野外做受三级视频| 国产18禁黄网站禁片免费视频| 中文字幕自拍偷拍福利视频| 在线国产精品中文字幕| 思思99热精品在线| 极品少妇无套内射视频| 女同AV在线播放| 日本黄色一区二区三区四区| 深夜av免费在线观看| 四虎成人精品无码| 天天爽夜夜爱| 欧美精品亚洲精品日韩专| 91麻豆精品国产91久| 中文字幕国产在线精品|