📄 form1.vb
字号:
Dim index As Integer = 2
If mStream.Read(buf, 0, len) > 0 Then
Dim i1 As Integer = BitConverter.ToInt16(buf, index - 1)
index += 2
Dim i2 As Integer = BitConverter.ToInt16(buf, index - 1)
index += 2
Dim i3 As Integer = BitConverter.ToInt16(buf, index - 1)
'MessageBox.Show(String.Format("{0} {1} {2}", i1, i2, i3))
Label8.Text = "接收到的数据为:" & vbNewLine
Label8.Text &= Conversion.Str(i1)
'Label8.Text &= Label8.Text + vbNewLine
'+ ":" + i2.ToString + ":" + i3.ToString
End If
Catch ex As Exception
Finally
mReadthread = Nothing
If IsRunning Then
stopcommunication()
End If
End Try
End Sub
'写线程
Private Sub Writethread()
Try
Dim senddata As Int16 = &H800
'Int16.Parse(TextBox9.Text)
Dim bytes() As Byte = BitConverter.GetBytes(senddata)
mStream.Write(bytes, 0, 2)
Catch ex As Exception
Finally
mWritethread = Nothing
If IsRunning Then
stopcommunication()
End If
End Try
End Sub
'是否正在运行
ReadOnly Property IsRunning() As Boolean
Get
Return mRunning
End Get
End Property
'停止通信
Private Sub stopcommunication()
If Not Me.IsRunning Then
Exit Sub
End If
' 发送关闭命令
mTerminate = True
Thread.Sleep(1000) ' 等待线程停止
' 关闭 NetWork 流
If Not Me.mStream Is Nothing Then
mStream.Close()
mStream = Nothing
End If
' 释放 Tcp Socket
If Not mtcpcli Is Nothing Then
mtcpcli.Close()
mtcpcli = Nothing
End If
'监听停止
If Not mTcplisten Is Nothing Then
mTcplisten.Stop()
mTcplisten = Nothing
End If
' 等写线程停止
If Not Me.mWritethread Is Nothing Then
mWritethread.Join()
mWritethread = Nothing
End If
' 等读线程停止
If Not Me.mReadthread Is Nothing Then
mReadthread.Join()
mReadthread = Nothing
End If
' 设置一些状态
mRunning = False
End Sub
'关闭
Private Sub Button13_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button13.Click
Me.Close()
End Sub
#End Region
#Region "冒泡排序法"
'写入数据
Dim a1(11) As Integer
Dim i4, j4, temp3 As Integer
Private Sub Button17_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button17.Click
Label9.Text = "要排序的数组:" & vbNewLine
For i4 = 1 To 10
a1(i4) = InputBox("请输入要排序的数组")
Label9.Text &= Val(a1(i4)) & " "
Next i4
Label9.Text &= "------------------" & vbNewLine
End Sub
'从小到大排序
Private Sub Button15_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button15.Click
For i4 = 1 To 9
For j4 = 1 To 10 - i4
If a1(j4) > a1(j4 + 1) Then
temp3 = a1(j4 + 1)
a1(j4 + 1) = a1(j4)
a1(j4) = temp3
End If
Next j4
Next i4
Label9.Text &= "排序后的数组为:" & vbNewLine
For i4 = 1 To 10
Label9.Text &= Val(a1(i4)) & " "
Next i4
Label9.Text &= "------------------" & vbNewLine
End Sub
'从大到小排序
Private Sub Button16_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button16.Click
For i4 = 1 To 9
For j4 = 1 To 10 - i4
If a1(j4) < a1(j4 + 1) Then
temp3 = a1(j4 + 1)
a1(j4 + 1) = a1(j4)
a1(j4) = temp3
End If
Next j4
Next i4
Label9.Text &= "排序后的数组为:" & vbNewLine
For i4 = 1 To 10
Label9.Text &= Val(a1(i4)) & " "
Next i4
Label9.Text &= "------------------" & vbNewLine
End Sub
#End Region
#Region "创建和使用对象"
Dim p As New Merchandise("001 火车模型 120 5 ")
Private Sub Button18_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button18.Click
MessageBox.Show(p.count)
MessageBox.Show(p.ToStr)
End Sub
Private Sub Button19_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button19.Click
Dim bb As New Merchandise
bb = p
p.ID = "000"
MsgBox(bb.ToStr)
End Sub
#End Region
#Region "菜单退出按钮"
Private Sub 退出ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 退出ToolStripMenuItem.Click
Me.Close()
End Sub
#End Region
#Region "PLC通信试验"
Private sip As IPAddress = IPAddress.Parse("192.168.0.218")
Private sport As Integer = 2000
Private sTcp As TcpListener = Nothing
Private sStream As NetworkStream = Nothing
Private sTerminate As Boolean = False
Private sReadthread As Thread
Private sWritethread As Thread
Private sRunning As Boolean = False ' 是否在运行
Private Sub Button20_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button20.Click
If sTcp Is Nothing Then
sTcp = New TcpListener(sip, sport)
End If
Try
sTcp.Start()
Dim PLCSocket As TcpClient = sTcp.AcceptTcpClient
sStream = PLCSocket.GetStream
''启动写线程
'sTerminate = False
'sWritethread = Nothing
'sWritethread = New Thread(AddressOf Me.wWritethread)
'sWritethread.Start()
''启动读线程
'sTerminate = False
'sReadthread = Nothing
'sReadthread = New Thread(AddressOf Me.wReadthread)
'sReadthread.Start()
Catch ex As Exception
MessageBox.Show("不能连接到PLC")
End Try
While True
'发送数据
Try
Dim senddata As Int16 = &H800
'Dim bytes() As Byte = BitConverter.GetBytes(senddata)
sStream.Write(BitConverter.GetBytes(senddata), 0, 2)
Catch ex As Exception
End Try
Exit While
End While
'接收数据
Dim buf(1024) As Byte
Try
Dim len As Integer = 6
Dim index As Integer = 2
'If sStream.Read(buf, 0, len) > 0 Then
sStream.Read(buf, 0, len)
Dim i1 As Integer = BitConverter.ToInt16(buf, index - 1)
index += 2
Dim i2 As Integer = BitConverter.ToInt16(buf, index - 1)
index += 2
Dim i3 As Integer = BitConverter.ToInt16(buf, index - 1)
'MessageBox.Show(String.Format("{0} {1} {2}", i1, i2, i3))
Label10.Text = "接收到的数据为:" & vbNewLine
Label10.Text &= Conversion.Str(i1) & " " & Conversion.Str(i2) & " " & Conversion.Str(i3)
'End If
Catch ex As Exception
End Try
End Sub
#End Region
#Region "数据类型转换"
Private Sub Button22_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button22.Click
Dim x As Double = 78.9
TextBox11.Text = CInt(x)
End Sub
#End Region
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
End Sub
End Class
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -