提供一個(gè)VB.NET與OMRON以太網(wǎng)通訊的代碼,是我項(xiàng)目里面復(fù)制出來(lái)的:

為木蘭等地區(qū)用戶提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及木蘭網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站建設(shè)、木蘭網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!
Dim?Handle1?As?Int32?'PLC的連接句柄
Dim?EntLink?As?Boolean?'連接標(biāo)志
Dim?PLC?As?New?FinsTcp.PlcClient?'引用OMRON的通訊組件
Private?Sub?butLink_Click(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?butLink.Click
Dim?re?As?Short
Dim?restr?As?String?=?""
re?=?PLC.EntLink(Trim(txtLocalIP.Text),?Val(txtLocalPort.Text),?Trim(txtRemoteIP.Text),?Val(txtRemotePort.Text),?"DEMO",?Handle1)
txtReLink.Text?=?re.ToString
If?re?=?0?Then
EntLink?=?True
MsgBox("PLC聯(lián)接成功!?")
Else
EntLink?=?False
MsgBox("PLC聯(lián)接失敗:?"??restr)
End?If
End?Sub
Private?Sub?butClose_Click(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?butClose.Click
Dim?re?As?Short
EntLink?=?False
re?=?PLC.DeLink(Handle1)
txtReClose.Text?=?re.ToString
End?Sub
Private?Sub?butRead_Click(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?butRead.Click
Dim?re?As?Short
Dim?i?As?Short
Dim?RD()?As?Object
ReDim?RD(Val(txtReadCnt.Text?-?1))
If?Not?EntLink?Then
MsgBox("還未與PLC建立聯(lián)接!")
Exit?Sub
End?If
Dim?mry?As?FinsTcp.PlcClient.PlcMemory?=?cmbReadMry.SelectedIndex?+?1
Dim?typ?As?FinsTcp.PlcClient.DataType?=?cmbReadType.SelectedIndex?+?1
re?=?PLC.CmdRead(Handle1,?mry,?typ,?CUShort(Val(txtReadAdd.Text)),?CUShort(Val(txtReadCnt.Text)),?RD)
txtReRead.Text?=?re.ToString
lstRead.Items.Clear()
For?i?=?0?To?UBound(RD)?Step?1
If?Not?IsNothing(RD(i))?Then?lstRead.Items.Add(RD(i))
Next?i
If?re??0?Then
Timer1.Enabled?=?False
butScan.Text?=?"Cycle?R/W"
End?If
End?Sub
Private?Sub?butWrite_Click(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?butWrite.Click
Dim?re?As?Short
Dim?i?As?Short
Dim?temp()?As?String
Dim?WD()?As?Object
If?Not?EntLink?Then
MsgBox("還未與PLC建立聯(lián)接!")
Exit?Sub
End?If
ReDim?WD(Val(txtWriteCnt.Text)?-?1)
temp?=?Split(txtWrite.Text,?vbCrLf)
For?i?=?0?To?UBound(WD)?Step?1
If?i??UBound(temp)?Then
WD(i)?=?0
Else
WD(i)?=?Trim(temp(i))
End?If
Next?i
Dim?mry?As?FinsTcp.PlcClient.PlcMemory?=?cmbWriteMry.SelectedIndex?+?1
Dim?typ?As?FinsTcp.PlcClient.DataType?=?cmbWriteType.SelectedIndex?+?1
re?=?PLC.CmdWrite(Handle1,?mry,?typ,?CUShort(Val(txtWriteAdd.Text)),?CUShort(Val(txtWriteCnt.Text)),?WD)
txtReWrite.Text?=?re.ToString
If?re??0?Then
Timer1.Enabled?=?False
butScan.Text?=?"Cycle?R/W"
End?If
End?Sub
1.0 通訊組件概述
通訊組件用于PC與可編程控制器(PLC)、智能儀表等進(jìn)行數(shù)據(jù)通訊,適用于基于PC高級(jí)語(yǔ)言的工業(yè)自動(dòng)化控制系統(tǒng)。組件采用動(dòng)態(tài)鏈接庫(kù)文件(*.DLL)的形式,在PC系統(tǒng)的項(xiàng)目工程里引用該組件,調(diào)用相應(yīng)的屬性與方法函數(shù),即可快速實(shí)現(xiàn)PC與PLC的高效數(shù)據(jù)交換。
DLL通訊組件無(wú)須安裝,直接復(fù)制到工程文件目錄,方便打包安裝部署;無(wú)須任何配置,直接調(diào)用函數(shù),與應(yīng)用開發(fā)無(wú)縫銜接;多年工程經(jīng)驗(yàn)的軟件團(tuán)隊(duì)開發(fā)測(cè)試,經(jīng)過(guò)本公司及客戶的海量實(shí)際工程應(yīng)用檢驗(yàn),穩(wěn)定可靠;采用穩(wěn)定高效的內(nèi)部協(xié)議,無(wú)須編寫PLC內(nèi)部程序配合,直接訪問(wèn)PLC的內(nèi)存,通訊響應(yīng)快速;內(nèi)建動(dòng)態(tài)管理的多獨(dú)立線程連接,同時(shí)支持外部應(yīng)用的多線程結(jié)構(gòu)調(diào)用;兼容WINDOWS系統(tǒng)下的所有開發(fā)環(huán)境,包括各種版本的VB.NET、C#、VC++,以及DEIPHI 、VB、LabView等;支持幾乎所有PLC的CPU自帶通訊口、通訊擴(kuò)展模塊。
你可以在技成看視頻教程,這個(gè)案例比較經(jīng)典,看視頻更容易理解。
我想了兩種思路,winform沒有findControl,只有個(gè)this.Controls.Contains("textBox1"),因此除了遍歷沒辦法了。。。
思路1:遍歷Controls,具體你自己完善下,
if(this.Controls.Count0)
{
foreach(Control c in this.Controls)
if(c.GetTepy==Tepyof(TextBox))
string str += ((TextBox)c).Text;
}
用 vb.net socket通信
Dim th As Threading.Thread
2 Dim tcpl As System.Net.Sockets.TcpListener
3
4 Private Sub Form1_Load()Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
5 th = New System.Threading.Thread(New System.Threading.ThreadStart(AddressOf MyListen))
6 th.Start()
7 End Sub
8
9 Public Sub SendMessage()Sub SendMessage(ByVal IP As String, ByVal SendMsg As String)
10 Try
11 If IP "" Then
12 Dim tcpc As New System.Net.Sockets.TcpClient(IP, 5656)
13 Dim tcpStream As Net.Sockets.NetworkStream = tcpc.GetStream
14 Dim reqStream As New IO.StreamWriter(tcpStream)
15 reqStream.Write(SendMsg)
16 reqStream.Flush()
17 tcpStream.Close()
18 tcpc.Close()
19 End If
20 Catch ex As Exception
21 MsgBox(ex.Message.ToString)
22 End Try
23 End Sub
24 Private Sub MyListen()Sub MyListen()
25 Try
26 Dim ipAddress As System.Net.IPAddress = System.Net.Dns.Resolve(System.Net.Dns.GetHostName).AddressList(0)
27 tcpl = New System.Net.Sockets.TcpListener(ipAddress, 5656)
28 tcpl.Start()
29 While True
30 Dim s As System.Net.Sockets.Socket = tcpl.AcceptSocket()
31 Dim MyBuffer(1024) As Byte
32 Dim i As Integer
33 i = s.Receive(MyBuffer)
34 If i 0 Then
35 Dim lstrRec As String
36 Dim j As Integer
37 For j = 0 To i - 1
38 TextBox1.Text += Chr(MyBuffer(j)) ","
39 Next
40 End If
41 End While
42 Catch ex As Exception
43 MsgBox(ex.Message.ToString)
44 End Try
45 End Sub
46
47 Private Sub Button1_Click()Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
48 SendMessage("192.168.0.61", TextBox2.Text)
49 End Sub
當(dāng)前標(biāo)題:vb.net的通訊組件 VB net
URL鏈接:http://chinadenli.net/article14/dodpede.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名、云服務(wù)器、ChatGPT、品牌網(wǎng)站設(shè)計(jì)、標(biāo)簽優(yōu)化、企業(yè)建站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)