登录
首页 PLC论坛 PLC论坛
回帖 发帖
正文

主题:急!PLC为何和PC通信不成功

点击:1645 回复:7

我用VB做PC与FX1SPLC通信,1对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
再次谢谢各位了!
07-06-13 22:16
该用户被锁定!
07-06-14 09:03
我不知fx1的协议,但疑问:
1.传送给PLC的数据是字符串还是二进制?
2.传送后PLC有没指示接收灯?表示PLC能收到.
3.PLC有没输出指示,没有,说明PLC不了解命令,协议或数据错误
4.用oncomm事件接收数据
07-06-14 09:11
小弟弟们:PC与三菱PLC通讯有专用VB控件
安装MXLINK就可以
最后修改:2007-6-14 16:40:03
07-06-14 16:39
谢谢各位,这个问题我已经解决了,PLC进行参数设置后要断一下电才行!
PLC接收数据是字串的;我发送的数据是对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里面却没有,导致出错 !    
  请问,这是哪里出问题了啊?    
07-06-14 21:21
我有自己写的DLL,经测试完全可用
07-07-15 18:42
6楼
该帖内容不符合相关规定!
07-07-15 20:23
用编程口即可,编程口DLL支持VB、VC、Delphi
QQ:157610979
wjun7610@yahoo.com.cn
07-09-05 00:37

工控新闻

更多新闻资讯