⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 frmdatacollect1.vb

📁 这是一个用VB编写的数据采集源码程序.主要是对TPC/IP设备的数据进行采集的文件.
💻 VB
📖 第 1 页 / 共 3 页
字号:
        Me.AutoScaleBaseSize = New System.Drawing.Size(6, 14)
        Me.BackColor = System.Drawing.Color.AliceBlue
        Me.ClientSize = New System.Drawing.Size(1028, 746)
        Me.Controls.Add(Me.BtnShow)
        Me.Controls.Add(Me.Label1)
        Me.Controls.Add(Me.ComboBox1)
        Me.Controls.Add(Me.BtnEnd)
        Me.Controls.Add(Me.BtnStart)
        Me.Controls.Add(Me.GridControl1)
        Me.Name = "FrmDataCollect1"
        Me.Text = "数据实时采集"
        Me.WindowState = System.Windows.Forms.FormWindowState.Maximized
        CType(Me.GridControl1, System.ComponentModel.ISupportInitialize).EndInit()
        CType(Me.DataSet11, System.ComponentModel.ISupportInitialize).EndInit()
        CType(Me.GridView1, System.ComponentModel.ISupportInitialize).EndInit()
        Me.ResumeLayout(False)

    End Sub

#End Region

    Private Sub FrmDataCollect1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        If conn.State <> ConnectionState.Open Then
            conn.Open()
        End If
        SelectCmd = "select value from canshu where name='col_time'"
        Cmd = New OracleCommand(SelectCmd, conn)
        myDatareader = Cmd.ExecuteReader
        Cmd = Nothing
        While myDatareader.Read
            Timer1.Interval = myDatareader.Item(0) * 1000
        End While
        Station_Show = 1
        BindAdd()
        Dim ServerIP As IPAddress
        ServerIP = IPAddress.Parse(IP)
        Dim RemoteEP As New IPEndPoint(ServerIP, DuanKou)
        data_index = 0
        arConnect = clientSocket.BeginConnect(RemoteEP, AddressOf Connected, clientSocket)
        ReDim SendBuffer(3)
        SendBuffer(2) = "&H02"
    End Sub
    Private Sub BindAdd()
        SelectCmd = "SELECT STATION_NUM, WAY, CURRENT_DATA, PREVIOUS_DATA, SET_DATA, SET_TIME FROM DATA_COLLECT WHERE STATION_NUM=" & Station_Show
        myAdapter = New OracleDataAdapter(SelectCmd, conn)
        DataSet11.DATA_COLLECT.Clear()
        myAdapter.Fill(DataSet11.DATA_COLLECT)
        GridControl1.DataSource = DataSet11.DATA_COLLECT
    End Sub
    Private Sub BindClear()
        DataSet11.Clear()
        GridControl1.DataBindings.Clear()

    End Sub
    Private Sub Connected(ByVal ar As IAsyncResult)
        'Bsend.Enabled = True
        MsgBox("网络连接成功!")
    End Sub
    Protected Overrides Sub Finalize()
        clientSocket.EndConnect(arConnect)
        clientSocket.Close()
    End Sub

    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        'SendBuffer = System.Text.Encoding.ASCII.GetBytes(TxtInput.Text)

        SendBuffer(0) = "&H55"
        SendBuffer(1) = "&H55"
        If SendBuffer(2) = "&H02" Then
            SendBuffer(2) = "&H01"
        ElseIf SendBuffer(2) = "&H01" Then
            SendBuffer(2) = "&H02"
        End If
       
        SendBuffer(3) = "&H22"
        Try
            clientSocket.BeginSend(SendBuffer, 0, SendBuffer.Length, SocketFlags.None, AddressOf SendComplete, clientSocket)

        Catch ex As Exception

            MsgBox("网络地址出错或网络连写出现故障!")

        End Try

        'SendBuffer(0) = "&H55"
        'SendBuffer(1) = "&H55"
        'SendBuffer(2) = "&H02"
        'SendBuffer(3) = "&H22"
        'clientSocket.BeginSend(SendBuffer, 0, SendBuffer.Length, SocketFlags.None, AddressOf SendComplete, clientSocket)
        'clientSocket.BeginReceive(ReceiveBuffer, 0, 1000, SocketFlags.None, AddressOf getData, clientSocket)
    End Sub
    Private Sub SendComplete(ByVal ar As IAsyncResult)
        clientSocket.EndSend(ar)
        clientSocket.BeginReceive(ReceiveBuffer, 0, 1000, SocketFlags.None, AddressOf getData, clientSocket)
    End Sub

    Private Sub getData(ByVal ar As IAsyncResult)
        clientSocket.EndReceive(ar)
        If ReceiveBuffer(0) = &H55 And ReceiveBuffer(1) = &H55 And ReceiveBuffer(2) = &H55 Then
            Station = "&H" & ReceiveBuffer(3)
            If conn.State <> ConnectionState.Open Then
                conn.Open()
            End If
            SelectCmd = "select * from data_collect where station_num=" & Station
            Cmd = New OracleCommand(SelectCmd, conn)
            myDatareader = Cmd.ExecuteReader
            Cmd = Nothing
            While myDatareader.Read
                UpdateCmd = "update data_collect set previous_data=" & myDatareader.Item("current_data") & " where station_num=" & Station & " and way=" & myDatareader.Item("way")
                Cmd = New OracleCommand(UpdateCmd, conn)
                Cmd.ExecuteNonQuery()
                Cmd = Nothing
            End While

            SelectCmd = "select * from data_collect where station_num=" & Station
            Cmd = New OracleCommand(SelectCmd, conn)
            myDatareader = Cmd.ExecuteReader
            Cmd = Nothing

            If myDatareader.Read Then
                For i = 1 To 24
                    Number = ReceiveBuffer(4 * i) + (ReceiveBuffer(4 * i + 1)) * 256 + (ReceiveBuffer(4 * i + 2)) * 65536 + (ReceiveBuffer(4 * i + 3)) * 16777216
                    UpdateCmd = "update data_collect set current_data=" & Number & " where station_num=" & Station & " and way=" & i
                    Cmd = New OracleCommand(UpdateCmd, conn)
                    Cmd.ExecuteNonQuery()
                    Cmd = Nothing
                Next
            Else
                For i = 1 To 24
                    Number = ReceiveBuffer(4 * i) + (ReceiveBuffer(4 * i + 1)) * 256 + (ReceiveBuffer(4 * i + 2)) * 65536 + (ReceiveBuffer(4 * i + 3)) * 16777216
                    InsertCmd = "insert into data_collect(station_num,way,current_data) values (" & Station & "," & i & "," & Number & ")"
                    Cmd = New OracleCommand(InsertCmd, conn)
                    Cmd.ExecuteNonQuery()
                    Cmd = Nothing
                Next
            End If
           

        End If
        
        'ReceiveBuffer.Clear(ReceiveBuffer, 0, 10000)
        'If SendBuffer(2) = "&H01" Then
        '    SendBuffer(0) = "&H55"
        '    SendBuffer(1) = "&H55"
        '    SendBuffer(2) = "&H02"
        '    SendBuffer(3) = "&H22"
        '    clientSocket.BeginSend(SendBuffer, 0, SendBuffer.Length, SocketFlags.None, AddressOf SendComplete, clientSocket)
        'End If

        If Station = Station_Show Then
            BindClear()
            BindAdd()
        End If

    End Sub


    Private Sub BtnStart_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnStart.Click
        Timer1.Enabled = True
    End Sub

    Private Sub BtnEnd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnEnd.Click
        Timer1.Enabled = False

    End Sub

    Private Sub BtnShow_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnShow.Click
        Station_Show = ComboBox1.Text
        BindClear()
        BindAdd()
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
        clientSocket.BeginReceive(ReceiveBuffer, 0, 1000, SocketFlags.None, AddressOf getData, clientSocket)
        'data_index = DataIndex
        BindClear()
        BindAdd()
    End Sub

    Private Sub FrmDataCollect1_Closed(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Closed
        clientSocket.Close()
    End Sub

    Private Sub Button1_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs)
        ReDim SendBuffer(3)
        SendBuffer(0) = "&H55"
        SendBuffer(1) = "&H55"
        SendBuffer(2) = "&H01"
        SendBuffer(3) = "&H22"
        clientSocket.BeginSend(SendBuffer, 0, SendBuffer.Length, SocketFlags.None, AddressOf SendComplete, clientSocket)
        'SendBuffer(0) = "&H55"
        'SendBuffer(1) = "&H55"
        'SendBuffer(2) = "&H02"
        'SendBuffer(3) = "&H22"
        'clientSocket.BeginSend(SendBuffer, 0, SendBuffer.Length, SocketFlags.None, AddressOf SendComplete, clientSocket)
    End Sub
End Class

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -