首页 上一页 1 2 下一页 尾页

一个关于vb和三菱plc的通讯问题 点击:3746 | 回复:21



王昊

    
  • 精华:1帖
  • 求助:0帖
  • 帖子:3帖 | 4回
  • 年度积分:0
  • 历史总积分:68
  • 注册:2003年7月09日
发表于:2003-11-06 15:34:00
楼主
做了一个vb和三菱的通讯程序 大部分是好的 其中有一部分是每隔0.5秒做一次针对大概几十个点的读出(这些点有 字也有位),但有时候会出现不能读出也就是显示的数字不随着plc 内点的改变而改变,这种现象有时出现有时不出现 这种方法的实现是用timer来实现的 如果把几十个点的个数减少为一半左右这种现象就不会出现 请问怎么解决 非常感谢



xwxwxw

  • 精华:0帖
  • 求助:0帖
  • 帖子:18帖 | 69回
  • 年度积分:0
  • 历史总积分:136
  • 注册:2002年12月02日
发表于:2003-08-31 17:04:00
1楼
使用通讯控件返回的串口的状态,检测串口存储区的大小,作一下改写。

王昊

  • 精华:1帖
  • 求助:0帖
  • 帖子:3帖 | 4回
  • 年度积分:0
  • 历史总积分:68
  • 注册:2003年7月09日
发表于:2003-08-31 22:08:00
2楼
可以说详细一点吗 我也想到可能是串口存储区的问题 可是怎么检测,怎么改写我不太明白 非常感谢

hzx_ah

  • 精华:0帖
  • 求助:0帖
  • 帖子:7帖 | 5回
  • 年度积分:0
  • 历史总积分:26
  • 注册:2003年8月18日
发表于:2003-09-01 11:51:00
3楼
是不是妳0.5秒的循環周期太快,改成0.8或1秒看一下,如果還是不行就肯是緩沖沒清空.

王昊

  • 精华:1帖
  • 求助:0帖
  • 帖子:3帖 | 4回
  • 年度积分:0
  • 历史总积分:68
  • 注册:2003年7月09日
发表于:2003-09-01 13:01:00
4楼
是这样 由于有很多个点要扫描 我是每一个开始扫描的时候都先对缓冲清零了 1秒也试过 还是这样 不然把程序拿上来看一下,很简单的 Private Sub Timer1_Timer() Dim pc_read11 As String Dim timwr11 As Single Dim A As String Dim B As String Dim C As String MSComm1.InBufferCount = 0 MSComm1.OutBufferCount = 0 MSComm1.Output = Chr(5) + "00FFWR0D0120022E" timwr11 = Timer Do If Timer > timwr11 + 0.1 Then: GoTo err_check11 Loop Until MSComm1.InBufferCount = 16 pc_read11 = MSComm1.Input If Mid(pc_read11, 1, 5) = Chr(2) + "00FF" Then A = Mid(pc_read11, 8, 2) B = "&h" + A C = Val(B) Text5.Text = C Else MsgBox "传输错误!" End If err_check11: pc_read11 = MSComm1.Input 然后还有若干个类似的通讯命令 在每个开始的时候都有 MSComm1.InBufferCount = 0 MSComm1.OutBufferCount = 0 来清零呀

hzx_ah

  • 精华:0帖
  • 求助:0帖
  • 帖子:7帖 | 5回
  • 年度积分:0
  • 历史总积分:26
  • 注册:2003年8月18日
发表于:2003-09-01 16:03:00
5楼
//---------------- 如果把几十个点的个数减少为一半左右这种现象就不会出现 //--------------- 給你一個簡單方法,分兩次讀,一次讀一半,看看是否可行.

gongkongedit

  • 精华:1099帖
  • 求助:0帖
  • 帖子:14392帖 | 54470回
  • 年度积分:0
  • 历史总积分:622
  • 注册:2008年9月08日
发表于:2003-11-06 15:34:00
6楼
我现在用vb实现计算机和LG的PLC的串口通信,但是不知道为什么一点反映都没有,我考虑了半天,怎么也查不出毛病在什么地方,是不是在PLC上还要进行一番设置,我现在只是用VB编了个小程序,然后就接到PLC上,我是学生,没有经验,不知哪位高手能帮助一下,不盛感激!

月上

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 1回
  • 年度积分:0
  • 历史总积分:1
  • 注册:2005年12月24日
发表于:2006-05-14 14:16:00
7楼
我有源码.需要请联系QQ:342012946

N95

  • 精华:0帖
  • 求助:0帖
  • 帖子:14帖 | 231回
  • 年度积分:0
  • 历史总积分:290
  • 注册:2006年4月11日
发表于:2006-05-14 15:23:00
8楼
请问各位一下什么是VB啊???
谢谢~~~~~~~~~~~~~~~~~~~~~!

gongkongedit

  • 精华:1099帖
  • 求助:0帖
  • 帖子:14392帖 | 54470回
  • 年度积分:0
  • 历史总积分:622
  • 注册:2008年9月08日
发表于:2006-07-29 23:38:00
9楼
    本软件用VB6.0编写,有带注释的源代码,适用于电脑通过RS-232串行通讯
口与日本三菱电机自动化公司的FX系列PLC的编程口进行通讯.有五种主要功能: 
     1.批量监视X、Y、M、S的实时状态; 
     2.置位单个位元件,包括M、S、Y、T、C;
     3.复位单个位元件,包括M、S、Y、T、C;
     4.实时读取字元件(无符号的16位数,可升级增加有符号、32位、浮点);
     5.单个写入字元件 (无符号的16位数,可升级增加有符号、32位、浮点).
    需要者可联系刘方亮先生,电话至021-59886508 转806;邮件至
liuflamp@126.com; 短信至13817334515;旨在相互学习,广交业界朋友,软件
免费奉送!

星哗

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 18回
  • 年度积分:0
  • 历史总积分:44
  • 注册:2005年4月28日
发表于:2006-08-12 08:17:00
10楼
长知识啊,呵呵

大名。。

  • 精华:0帖
  • 求助:0帖
  • 帖子:86帖 | 154回
  • 年度积分:0
  • 历史总积分:666
  • 注册:2006年3月12日
发表于:2006-08-12 09:35:00
11楼
好牛,还能自己写程序,能教几招吗?还有,在电脑上我都可以用什么编程,来与plc进行通讯呢?所编的程序都能实现什么功能呢,入门要多长时间?

canfly

  • 精华:0帖
  • 求助:0帖
  • 帖子:12帖 | 195回
  • 年度积分:0
  • 历史总积分:321
  • 注册:2005年5月12日
发表于:2006-08-17 11:26:00
12楼
是不是速度不够呀!我在用编程口通讯是读一次信息,大约15~67ms之间,可以一次多读的,比如将X的数据一次读完,Y的数据一次读完,可以节省点时间. 串口的通信,没有做过的。

StoneChen

  • 精华:0帖
  • 求助:0帖
  • 帖子:25帖 | 330回
  • 年度积分:0
  • 历史总积分:852
  • 注册:2003年10月23日
发表于:2006-08-18 14:45:00
13楼
MSCOM不用每次清零的,下一次自动替换上一次的数据,还有不可以一边发送,一边接收,你可以试着0.5秒发,0.5秒收。试试看,我不用MSCOM的太慢了,现在有USB和ETHERNET快多了。有问题发邮件给我吧,jackychenboy@msn.com愿意帮你的忙。

曾文

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 4回
  • 年度积分:0
  • 历史总积分:57
  • 注册:2006年8月12日
发表于:2006-09-03 19:53:00
14楼
我想问一下你这个程序是用SC-09连接的吗

canfly

  • 精华:0帖
  • 求助:0帖
  • 帖子:12帖 | 195回
  • 年度积分:0
  • 历史总积分:321
  • 注册:2005年5月12日
发表于:2006-09-03 22:00:00
15楼
这是通信口的通信协议,编程口有另外的协议,不会是采用SC-09

68669211

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 39回
  • 年度积分:0
  • 历史总积分:0
  • 注册:1900年1月01日
发表于:2006-09-07 11:47:00
16楼
是这样
  由于有很多个点要扫描
  我是每一个开始扫描的时候都先对缓冲清零了
  1秒也试过
  还是这样
  不然把程序拿上来看一下,很简单的
  Private Sub Timer1_Timer()
  Dim pc_read11 As String
  Dim timwr11 As Single
  Dim A As String
  Dim B As String
  Dim C As String
    [color=#FF0000]Timer1.Enabled=0[/color]     
    MSComm1.InBufferCount = 0
  MSComm1.OutBufferCount = 0
  MSComm1.Output = Chr(5) + "00FFWR0D0120022E"
  timwr11 = Timer
  Do
   If Timer > timwr11 + 0.1 Then: GoTo err_check11
  Loop Until MSComm1.InBufferCount = 16
  pc_read11 = MSComm1.Input
  If Mid(pc_read11, 1, 5) = Chr(2) + "00FF" Then
   A = Mid(pc_read11, 8, 2)
   B = "&h" + A
   C = Val(B)
   Text5.Text = C
  Else
   MsgBox "传输错误!"
  End If
  err_check11:
   pc_read11 = MSComm1.Input
  然后还有若干个类似的通讯命令
  在每个开始的时候都有
  MSComm1.InBufferCount = 0
  MSComm1.OutBufferCount = 0
  来清零呀
    [color=#FF0000]Timer1.Enabled=1[/color]

StoneChen

  • 精华:0帖
  • 求助:0帖
  • 帖子:25帖 | 330回
  • 年度积分:0
  • 历史总积分:852
  • 注册:2003年10月23日
发表于:2006-09-09 19:49:00
17楼
在这里说一下,不是很明白的同仁不要让别人产生误解!
FX系列是协义的,RS232和RS422的都可以用,也就是说SC-09是可以用的,也可以RS232BD来通讯!还有问题请E_mail:jackychenboy@msn.com
 一起学习!
谢谢大家!

PLC技术网

  • 精华:1帖
  • 求助:0帖
  • 帖子:31帖 | 121回
  • 年度积分:0
  • 历史总积分:258
  • 注册:2006年3月19日
发表于:2006-09-12 18:05:00
18楼
http://bbs.gongkong.com/detail_old.asp?id=349914
最彻底的解决办法:使用Visual Basic 6实现真正实用的多线程串行通讯

hua71281

  • 精华:0帖
  • 求助:0帖
  • 帖子:21帖 | 1296回
  • 年度积分:0
  • 历史总积分:1509
  • 注册:2004年6月13日
发表于:2007-02-09 18:26:00
19楼
[color=#FF0000]好消息:三菱GX Developer Version 8.26中文PLC软件已通过工控网审核,以下为下载路径:
文件地址:[/color][color=#0000FF]http://download.gongkong.com/file/2007/2/7/MITSUBISHIGX8.26PLC.rar[/color]

小陈--

  • 精华:1帖
  • 求助:0帖
  • 帖子:13帖 | 271回
  • 年度积分:1
  • 历史总积分:453
  • 注册:2005年1月01日
发表于:2007-12-31 19:56:00
20楼
见到很多工控方面的兄弟都在找
[color=#FF0000]三菱全系列编程软件GX Developer Version 7.08j 中文版[/color]
这里有个免费下载的,分享一下
http://www.m8002.cn/Content.Asp?ID=2

热门招聘
相关主题

官方公众号

智造工程师
    首页 上一页 1 2 下一页 尾页