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

485与温控议通信问题??? 点击:1870 | 回复:50



周军华

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:7帖 | 40回
  • 年度积分:0
  • 历史总积分:114
  • 注册:2003年8月29日
发表于:2004-05-26 08:50:00
楼主
问题是:在485和温控议通信时,有时没有电脑接收不到温控议的实际值,有时候温控议又接收不到工控机发送的数据(当然这种情况出现的慨率不大,但是这样的问题在我们的要求上是不允许的)。请问高手们我应该怎样用程序解决它呢? 说明:如果我是一个一个的送或接数据时,是不会出现上述情况的,但是我们是以一秒钟频率对温控议进行通信的(取和写数据),由于是这样才出现的有时候送不出去(就是温控议没有收到计算机所发送给他的值)或接收不到的情况。但是如果过一些时间的话又可以了(因为时间在不断的向前走,送的数也在递增或递减)。 希望高手们能帮助我??谢谢!!非常感谢谢!!!



GaryLin

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 1186回
  • 年度积分:0
  • 历史总积分:1263
  • 注册:2003年4月15日
发表于:2004-05-26 09:52:00
1楼
您可以再多接一颗 I-7520 + PC 来监视 RS-485 上的信号. 看看是不是 command 有正常送出/信号冲突? 看看 device 有没有回应/冲突? http://www.icpdas.com.cn/products/7000/i-7520_c.htm

gongkongedit

  • 精华:1099帖
  • 求助:0帖
  • 帖子:14392帖 | 54470回
  • 年度积分:0
  • 历史总积分:622
  • 注册:2008年9月08日
发表于:2004-05-26 10:32:00
2楼
电脑和前端设备用485通讯时,一般都用主从方式,多点时必须如此。所以问题中的“有时电脑接收不到温控议的实际值”应当理解为发送指令后接收不到返回的数据。这种问题我们遇到过很多,分析出的原因也很多,这里先不谈。解决的办法是发送指令后延时一段时间,再去读数,以及每个通讯过程之间都加上延时,这样处理后基本没再出现过这种错误。延时时间应根据不同系统进行调整。一般2ms.

周军华

  • 精华:0帖
  • 求助:0帖
  • 帖子:7帖 | 40回
  • 年度积分:0
  • 历史总积分:114
  • 注册:2003年8月29日
发表于:2004-05-26 17:30:00
3楼
TO:css 延时?有时不但返回的数收不到,而且有时送的数温控议也没有收到,不断送也没有,只用过了一些时间才有。送和接收不会同时出现。 高手,那你看应应该怎解决!??

gongkongedit

  • 精华:1099帖
  • 求助:0帖
  • 帖子:14392帖 | 54470回
  • 年度积分:0
  • 历史总积分:622
  • 注册:2008年9月08日
发表于:2004-05-27 09:23:00
4楼
不知是新开发的项目在实验室实验,还是老系统出现的故障。 若是老系统,既原来工作正常应分步更换通讯板和温控仪以确定故障部位,再详细检查;若是新项目,则应根据通讯板和温控仪(主要是温控仪)的特点具体分析试验,比如调整通讯协议、改变地址、使用不同的指令、对指令中可缺省部分进行调整等等。 另外,不论新老系统都应当对485线路终端电阻(120Ω)进行调整试验。既原来有就摘掉;原来没有就加上。

周军华

  • 精华:0帖
  • 求助:0帖
  • 帖子:7帖 | 40回
  • 年度积分:0
  • 历史总积分:114
  • 注册:2003年8月29日
发表于:2004-05-27 09:36:00
5楼
to:css 我们现在用的是全新的系统! 按到温控议上的说明书,是一定加一个不大于200的电阻的。问是大部分时间是通信正常的,只是偶尔不行(过一会儿它自动有行了)。这样就会引起浪费资源及金钱等!(我们每做一次实验就要化上个2000元左右!)一天要做好完这样的实验啊,所以这个小小的问题如果不是实时对温控议控制的话就不会有问题的,因为我用手点击送数的话都是正常的,关键是我们要全自动的控制啊!!请高手帮我想一想办法啊!今天国家高科司司长要来我们所里视察啊,好郁闷啊!! 高手快帮我想一想啊,是不是可以通过修改程序来操制,怎么编写?

gongkongedit

  • 精华:1099帖
  • 求助:0帖
  • 帖子:14392帖 | 54470回
  • 年度积分:0
  • 历史总积分:622
  • 注册:2008年9月08日
发表于:2004-05-27 09:52:00
6楼
TO:css 他这个问题在485论坛上也有,可去看看。

周军华

  • 精华:0帖
  • 求助:0帖
  • 帖子:7帖 | 40回
  • 年度积分:0
  • 历史总积分:114
  • 注册:2003年8月29日
发表于:2004-05-27 09:56:00
7楼
TO:css 是新开发的项目!!以前没有此项目。 温控议说明书的说一定在加一个不大于200的电阻。所以这应该不是问题的关键吧! 我认为这不应该是什么硬件上的问题,理由是: 1 在手工方式下(就是在程中做一个“发送”按钮的控件,放在点击事件里)它能正常的发送和接收返回的值! 2 在自动方式下(就是用时间来控制自动的连续不断的的发送一个递增的数据,也就是让温控随时间的变化而变化或增或减)大部分时间是能通信的,但是只是有时(比如一天可能就一次或者一次都没有过几天又会出现!!)不能送和接收数据,过一会儿或更多的一些时间后,在没有人为的操作下,它自动又回恢复到正常的通信。 请高手帮我想一想办法啊!!

gongkongedit

  • 精华:1099帖
  • 求助:0帖
  • 帖子:14392帖 | 54470回
  • 年度积分:0
  • 历史总积分:622
  • 注册:2008年9月08日
发表于:2004-05-27 10:32:00
8楼
用两个通讯口,一发一收,检查自动和手动送出的指令有何区别,因为温控仪可不管是谁发的指令,对了就执行。 我想问题有两个:一个是指令尾部的回车符;另外就是自动时指令是否及时送出。可能还在缓存中,攒了一大堆,一块送出去了。

gongkongedit

  • 精华:1099帖
  • 求助:0帖
  • 帖子:14392帖 | 54470回
  • 年度积分:0
  • 历史总积分:622
  • 注册:2008年9月08日
发表于:2004-05-27 11:20:00
9楼
我写字慢,上贴发完才看到后面的介绍。 上面的办法取消,因为手动和自动都正常。 现在的问题是系统不稳,在暂时找不到原因的情况下,建议先加一通讯监控程序,发现中断马上人为干预。

周军华

  • 精华:0帖
  • 求助:0帖
  • 帖子:7帖 | 40回
  • 年度积分:0
  • 历史总积分:114
  • 注册:2003年8月29日
发表于:2004-05-27 17:52:00
10楼
TO:CSS 答 1 温控仪的说明书:http://www.rkcinst.co.jp/english/pdf_manual/imcb03_e4.pdf 2 指令是否在缓冲区(我怀疑也是),我不知道,有什么办法可以测得到??? 很感谢谢你的帮助!!!!谢谢!!1

gongkongedit

  • 精华:1099帖
  • 求助:0帖
  • 帖子:14392帖 | 54470回
  • 年度积分:0
  • 历史总积分:622
  • 注册:2008年9月08日
发表于:2004-05-28 08:15:00
11楼
TO:周军华 1、本人几乎文盲(英)所以说明书看的很累。 2、“查指令是否在缓冲区”,可以在发指令后查一下发送缓冲区就可以了,更简单的是大部分通讯板都有“发送/接收”(TX/RX)LED指示灯,发指令时看它闪不闪就行了。 另外,可用我前面提到的用两个通讯口(比如研华的PCL745B),将两口并一起,一口发完后检查另一口收到的指令,注意要逐位转换成ASC码来看,不要直接显示,否则特殊字符及回车符等看不到。 突然又想起一个,检查通讯口的中断号是否与其它设备冲突(无论你是否用中断),个别冲突时通讯板也能用,但有时指令发出后没有反应(指示灯不闪)几分钟甚至十几分钟后突然送出。此问题当初困扰了我半个月。 (要按中断号去核实,不要看windows提示的是否有冲突。)

周军华

  • 精华:0帖
  • 求助:0帖
  • 帖子:7帖 | 40回
  • 年度积分:0
  • 历史总积分:114
  • 注册:2003年8月29日
发表于:2004-05-28 09:02:00
12楼
我相信应该不会有中断号冲突的可能,因为在通信成功之前,我们就是因为中断号没有设对,总是通信不成功而化了我们二个我星期的时间。所在我认为这种可能性几乎不存在,更何况,我们有的PCL和PCI的卡的地址都不各不相同。 真的希望你能看一下温控议的说明书,不要全看,看下关键的,比如说明书的第17页和第19页那上面的那几个图。是说在通信的时候要有一个什么“询问(ENQ)--应答”的过程(握手),我在程序中没有这个过程,我只管发送数据给温控议,而没有管我的数送还是没有送到。接收也是一样的,不管温控议的缓冲区里有没有数,都是同样的发送接取数据的指令给温控议的。你说问题是不是存在这里?? 高手,谢谢你了!真的很感受谢你!!!

gongkongedit

  • 精华:1099帖
  • 求助:0帖
  • 帖子:14392帖 | 54470回
  • 年度积分:0
  • 历史总积分:622
  • 注册:2008年9月08日
发表于:2004-05-28 09:53:00
13楼
我没去看说明书,我想等我看完时你已经分析透了,因为你想到了这里。 既然想到这个问题,那么先不要去完善它,先分析一下缺少这个过程在什么情况下会产生什么样的故障,然后给它制造更大的麻烦,比如更频繁的送更大量的数据或指令,以确定是否由此产生的问题。

GaryLin

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 1186回
  • 年度积分:0
  • 历史总积分:1263
  • 注册:2003年4月15日
发表于:2004-05-28 12:16:00
14楼
即然说明书有定义通信协议, 那您就应该照着协议去作才是. 除非您对那玩意非常的了解, 确认自己的作法不会影响/干扰到该玩意, 那您才可以照自己的想法去作.

周军华

  • 精华:0帖
  • 求助:0帖
  • 帖子:7帖 | 40回
  • 年度积分:0
  • 历史总积分:114
  • 注册:2003年8月29日
发表于:2004-05-28 13:21:00
15楼
TO;css 你去看一下嘛,只有二页!!高手,就帮我一下嘛,也就算是对你知识的加深嘛!帮帮,好吗? 你说:“更频繁的送更大量的数据或指令”,我以前是这样做过了,但是还是会出现重样的情况啊!!我的做法是在更短的时间里送的指令比原来的更多!!但实践证明没有用,问题一样的存在!! 那个“询问(ENQ)--应答”的过程我只知道发指令给它,但是我不知道有什么指令来知道它收到没有,就是温控是否准备好的接收数据。我把我的程序给你看一看,没有放询问的指令。 TO;GaryLin 我是按到协议进行编程的,但是还有个什么事件的(就是答应)我不太清楚啊,请高手帮我看一下,谢谢!!!

gongkongedit

  • 精华:1099帖
  • 求助:0帖
  • 帖子:14392帖 | 54470回
  • 年度积分:0
  • 历史总积分:622
  • 注册:2008年9月08日
发表于:2004-05-28 13:59:00
16楼
TO:周军华 你理解错了,“更频繁的送更大量的数据或指令”不是为了解决问题,而是为了让问题更多的出现,以此确定问题是否由这个过程引起的。因为你的问题是一天或几天才出现一次,是随机的,那么我们只能想办法让问题更多的出现,才能找出原因。 那么你上面说“这么做以后问题一样的存在”,是和原来一样还是严重了?和原来一样,就是和它无关;如果严重了就是由它引起的。 如分析到其他原因,同样要这么做,这是解决问题的路子。

GaryLin

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 1186回
  • 年度积分:0
  • 历史总积分:1263
  • 注册:2003年4月15日
发表于:2004-05-28 14:27:00
17楼
css 的想法非常优. 的确, 问题必须能够被重现, 才能找到解决的方式.

周军华

  • 精华:0帖
  • 求助:0帖
  • 帖子:7帖 | 40回
  • 年度积分:0
  • 历史总积分:114
  • 注册:2003年8月29日
发表于:2004-05-28 15:02:00
18楼
对不起,我没有说清楚! 就是按照你上面说的做,结果是和原来一样,就是没有任何变化,问题的出现也是一样的(随机出现)。所以应该和它无关!!

周军华

  • 精华:0帖
  • 求助:0帖
  • 帖子:7帖 | 40回
  • 年度积分:0
  • 历史总积分:114
  • 注册:2003年8月29日
发表于:2004-05-28 15:08:00
19楼
程序我总发不上去!》》》》????

周军华

  • 精华:0帖
  • 求助:0帖
  • 帖子:7帖 | 40回
  • 年度积分:0
  • 历史总积分:114
  • 注册:2003年8月29日
发表于:2004-05-28 15:18:00
20楼
我现在把程序发到你们的邮箱里了,帮我看一看!!谢谢!

热门招聘
相关主题

官方公众号

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