注册 登录
编程论坛 VB6论坛

VB与台达PLC通讯问题

h1305833 发布于 2013-10-09 12:11, 425 次点击
我将下面的程序放在Private Sub Form_Load()里面,就可以读取并显示PLC的运行状态,
Private Sub Form_Load()
    Dim s1 As String
    Dim s2 As String
    Dim s22 As String
    Dim s3 As String
    Dim s4 As String
     
    s2 = "01020C300001"
    s22 = LRC(s2)
    s1 = ":" + s2 + s22 + Chr$(13) + Chr$(10)
    MSComm1.InBufferCount = 0
    MSComm1.OutBufferCount = 0
    MSComm1.Output = s1
    延时 200
    s3 = MSComm1.Input
    s4 = Mid$(s3, 8, 2)
    If s4 = "31" Then
        plc = 1
    Else: If s4 = "30" Then plc = 0
    End If
    If plc = 1 Then
        Label2.Caption = "PLC Running"
        Shape1.FillColor = RGB(0, 255, 0) 'green
    Else
        Label2.Caption = "PLC Stopped!"
        Shape1.FillColor = RGB(255, 0, 0) 'red
    End If
End Sub
但是放在TIMER里面就不可以的?
Private Sub Timer1_Timer()
Dim s1 As String
    Dim s2 As String
    Dim s22 As String
    Dim s3 As String
    Dim s4 As String
     
    s2 = "01020C300001"
    s22 = LRC(s2)
    s1 = ":" + s2 + s22 + Chr$(13) + Chr$(10)
    MSComm1.InBufferCount = 0
    MSComm1.OutBufferCount = 0
    MSComm1.Output = s1
    延时 200
    s3 = MSComm1.Input
    s4 = Mid$(s3, 8, 2)
    If s4 = "31" Then
        plc = 1
    Else: If s4 = "30" Then plc = 0
    End If
    If plc = 1 Then
        Label2.Caption = "PLC Running"
        Shape1.FillColor = RGB(0, 255, 0) 'green
    Else
        Label2.Caption = "PLC Stopped!"
        Shape1.FillColor = RGB(255, 0, 0) 'red
    End If
End Sub
请问这有什么区别?
2 回复
#2
Artless2013-10-10 12:14
Timer1.Interval = 0?
Timer1.Enabled = False?
#3
vbvcr512013-11-04 21:53
timer时间间隔够吗,plc的数据来得及传吗?
1