VC程序三菱Act控件访问PLC以太网的奇怪问题 点击:1428 | 回复:4



剑拔弩张

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 59回
  • 年度积分:0
  • 历史总积分:308
  • 注册:2001年4月25日
发表于:2011-07-23 00:58:39
楼主
最近在现场调试发现一奇怪问题,

用VC6 调用三菱Act控件访问Q系列PLC(ActQJ71E71TCP)

程序中开了个线程,调用读写命令读取PLC数据,如下:

lRet1=Act.ReadDeviceBlock("D1",10,&Data1);

lRet2=Act.ReadDeviceBlock("D11",10,&Data2);

--------



以前同样程序一直没有问题,最近突然随机性出现错误,

中断后调试看到的现象是:

1. lRet1报错: Timeout Error; 原来使用的是系统默认值:1000ms

2. 读出来的数据错位,Data2中是原本应该在Data1中的数据;就象是第一条读的指令的返回结果被送给了第二条指令.



不知道有没有碰到过类似问题, 一起讨论一下.




CaoJack

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 1回
  • 年度积分:0
  • 历史总积分:11
  • 注册:2011年6月18日
发表于:2011-11-03 10:57:29
1楼

在c#里调用

Act.ReadDeviceBlock("D11",10,out Data[0]);
在线程里调用,有问题
只能读到第一个(D11)的数,其余都为0,不知道什么原因。用定时器就没事。

 

eagertoma

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 122回
  • 年度积分:0
  • 历史总积分:146
  • 注册:2008年10月19日
发表于:2011-11-03 20:06:33
2楼
执行该函数的时间间隔是多少?

eagertoma

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 122回
  • 年度积分:0
  • 历史总积分:146
  • 注册:2008年10月19日
发表于:2011-11-03 20:07:11
3楼
不行,就试试block2

miy_gongkong

  • 精华:0帖
  • 求助:2帖
  • 帖子:23帖 | 3065回
  • 年度积分:0
  • 历史总积分:12421
  • 注册:2008年9月18日
发表于:2011-11-04 10:00:18
4楼

三菱有ActiveX 控件?  那做的还是蛮人性化的


热门招聘
相关主题

官方公众号

智造工程师