急!急!PLC与PC怎么通不了? 点击:487 | 回复:1



wanwei903

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:10帖 | 16回
  • 年度积分:0
  • 历史总积分:46
  • 注册:2007年3月22日
发表于:2007-06-13 22:02:00
楼主
我用VB做FX1SPLC与PC1对1的通信,采用三菱的专用通信协议格式1,不知道为什么PLC端没有反映,把程序贴上来,各位高手指点一下,问题出在哪里?非常感谢。
Private Sub Form_Load()
  MSComm1.CommPort = 1
  MSComm1.InBufferSize = 1024
 
  MSComm1.InBufferCount = 0
  MSComm1.Settings = "9600,n,8,1"
  MSComm1.PortOpen = True
  MSComm1.InputLen = 0
  
End Sub
Private Sub Command1_Click()
 Dim str As String
 Dim rdw As String
 Dim rdh As String
 Dim rdm As String
 rdw = "00FFBT003Y00111Y00050Y00011"
 str = Chr(5) + rdw + "FA"
 MSComm1.InputLen = 0
 MSComm1.Output = str
 
 Debug.Print str
 
 
 Do
   
   DoEvents
 Loop Until MSComm1.InBufferCount >= 5
 
 Debug.Print "1:" & rdh
 
 rdh = MSComm1.Input
 
 Debug.Print "2:" & rdh
 
 If rdh = Chr(6) + "00FF" Then
   MsgBox ("测试成功!")
 ElseIf rdh = Chr(H15) + "00FF" Then
    MsgBox ("传输数据出错!")
 Else
   MsgBox ("测试失败!")
 End If
  
End Sub



wanwei903

  • 精华:0帖
  • 求助:0帖
  • 帖子:10帖 | 16回
  • 年度积分:0
  • 历史总积分:46
  • 注册:2007年3月22日
发表于:2007-06-14 21:25:00
1楼
这个问题我已经解决了,PLC进行参数设置后要断一下电才行!
现在还有一个问题要请教
      采用oncomm事件时,为何不能接收数据啊?
Private Sub MSComm1_OnComm()
   Dim data As String, rea As String, a As Integer, b As String
    Debug.Print "1:" & data
    data = frm1.MSComm1.Input  
    Debug.Print "2:" & data
     
     a = Val(Asc(Left(data, 1)))
     b = GetSumChk(Mid(data, 2, Len(data) - 3))
    If a = 2 And b = Mid(data, Len(data) - 1, 2) Then
        rea = Mid(data, 6, Len(data) - 8)
        frm1.MSComm1.Output = Chr(&H6) + "00FF"
     Else
        rea = "error"
        frm1.MSComm1.Output = Chr(&H15) + "00FF"
    End If
    Text4.Text = rea
End Sub
程序运行运行成功一次,但是不会退出还在循环,并且第二次到  a = Val(Asc(Left(data, 1)))时,提示错误,“无效的过程调用或参数”;而且以后再试均不成功,错误同上,查看 frm1.MSComm1.Input  里面有数据而,data里面却没有,导致出错 !     
   请问,这是哪里出问题了啊?请教各位高手帮帮忙啊!谢谢了     

热门招聘
相关主题

官方公众号

智造工程师