您现在所在的是:

PLC论坛

回帖:7个,阅读:1557 [上一页] [1] [下一页]
1078
cclgd
文章数:31
年度积分:50
历史总积分:1078
注册时间:2007/5/11
发站内信
发表于:2007/6/13 22:16:00
#0楼
我用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

再次谢谢各位了!
匿名用户
文章数:N/A
年度积分:0
历史总积分:0
注册时间:2002/9/12
发站内信
发表于:2007/6/14 9:03:00
#1楼
该用户被锁定,回复内容不予显示!
19870
pqsh 版主
文章数:7499
年度积分:486
历史总积分:19870
注册时间:2006/8/22
发站内信
2018论坛解答高手
发表于:2007/6/14 9:11:00
#2楼
我不知fx1的协议,但疑问:
1.传送给PLC的数据是字符串还是二进制?
2.传送后PLC有没指示接收灯?表示PLC能收到.
3.PLC有没输出指示,没有,说明PLC不了解命令,协议或数据错误
4.用oncomm事件接收数据
如果我忘了我
请帮忙记得我
pqsh@163,326199298@v&q同号
5314
jczwfy 版主
文章数:2259
年度积分:50
历史总积分:5314
注册时间:2005/5/7
发站内信
09工控人生征文
发表于:2007/6/14 16:39:00
#3楼
小弟弟们:PC与三菱PLC通讯有专用VB控件
安装MXLINK就可以


[此贴子已经被作者于2007-6-14 16:40:03编辑过]
日本人说中日友好,中国人民笑了:你丫骗谁呢?
日本人说自己爱和平,亚洲人民笑了:说的是人话吗?
日本人说自己要维护世界和平,美国人民笑了:问你大爷没?
日本人说自己是人,全世界的狗都叫了:兄弟,做狗要厚道,不能忘本!
欢迎访问我的博客http://blog.gkong.com/blog.asp?name=jczwfy
在线PLC触摸屏问题解答加Q号2*7*5*4*7*0*0*6,加好友注明工控网
1078
cclgd
文章数:31
年度积分:50
历史总积分:1078
注册时间:2007/5/11
发站内信
发表于:2007/6/14 21:21:00
#4楼
谢谢各位,这个问题我已经解决了,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里面却没有,导致出错 !    
  请问,这是哪里出问题了啊?    
1282
wjun7610
文章数:138
年度积分:53
历史总积分:1282
注册时间:2004/6/19
发站内信
发表于:2007/7/15 18:42:00
#5楼
我有自己写的DLL,经测试完全可用
1050
HaveGood
文章数:-11
年度积分:-729
历史总积分:1050
注册时间:2006/9/18
发站内信
发表于:2007/7/15 20:23:00
#6楼
此楼内容不符合板块规定,不予显示! 查看原帖内容>>
1282
wjun7610
文章数:138
年度积分:53
历史总积分:1282
注册时间:2004/6/19
发站内信
发表于:2007/9/5 0:37:00
#7楼
用编程口即可,编程口DLL支持VB、VC、Delphi
QQ:157610979
wjun7610@yahoo.com.cn

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2025 Gkong.com, All Rights Reserved

78.0005