谢谢。我会稍后试试的,我这里有一段程序,不知怎么采集不到数据,请高手帮我看看!!
Option Explicit
Dim pv(0 To 99) As Single
Dim sv(0 To 99) As Single
Dim mv(0 To 99) As Single
Dim t As String
Dim i
Dim var As Variant
Dim rd(9) As Byte
Dim x(0 To 7) As Byte
Private Sub cmdsend_click()
x(0) = 129
x(1) = 129
x(2) = 82
x(3) = 0
x(4) = 0
x(5) = 0
x(6) = 83
x(7) = 0
MSComm1.Output = x
Timer2.Enabled = True
End Sub
Private Sub form_load()
Timer2.Interval = 1000
Picture1.Scale (0, 1800)-(99, 0)
Picture1.AutoRedraw = True
Timer2.Enabled = False
MSComm1.CommPort = 1
If MSComm1.PortOpen = False Then
MSComm1.Settings = "9600,n,8,2"
MSComm1.InputMode = comInputModeBinary
MSComm1.RThreshold = 1
MSComm1.InputLen = 1
MSComm1.PortOpen = True
End If
MSComm1.InBufferCount = 0
cmdsend_click
End Sub
Private Sub mscomm1_oncomm()
Select Case MSComm1.CommEvent
Case comEvReceive
MSComm1.RThreshold = 0
Do
DoEvents
Loop Until MSComm1.inbuffercount >= 10
var = MSComm1.Input
rd(0) = var(0)
var = MSComm1.Input
rd(1) = var(0)
Text1.Text = (rd(0) + rd(1) * 256) / 10
var = MSComm1.Input
rd(2) = var(0)
var = MSComm1.Input
rd(3) = var(0)
Text2.Text = (rd(2) + rd(3) * 256) / 10
var = MSComm1.Input
rd(4) = var(0)
var = MSComm1.Input
rd(5) = var(0)
Text3.Text = rd(4) + rd(5) * 256
var = MSComm1.Input
rd(6) = var(0)
var = MSComm1.Input
rd(7) = var(0)
var = MSComm1.Input
rd(8) = var(0)
var = MSComm1.Input
rd(9) = var(0)
MSComm1.rthreshold = 1
End Select
Exit Sub
End Sub
Private Sub timer2_timer()
cmdsend_click
Picture1.AutoRedraw = True
Picture1.Cls
Picture1.ForeColor = &HFF
For i = 0 To 98
Picture1.Line (i, pv(i))-(i + 1, pv(i + 1))
Next
pv(99) = Val(Trim(Text1.Text)) * 10
For i = 0 To 98
pv(i) = pv(i + 1)
Next
Picture1.ForeColor = &HFF0000
For i = 0 To 98
Picture1.Line (i, sv(i))-(i + 1, sv(i + 1))
Next
sv(99) = Val(Trim(Text2.Text)) * 10
For i = 0 To 98
sv(i) = sv(i + 1)
Next
Picture1.ForeColor = &HC0000
For i = 0 To 98
Picture1.Line (i, mv(i))-(i + 1, mv(i + 1))
Next
mv(99) = Val(Trim(Text3.Text)) * 10
For i = 0 To 98
mv(i) = mv(i + 1)
Next
End Sub