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



周军华

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



持之以恒

  • 精华:0帖
  • 求助:0帖
  • 帖子:29帖 | 35回
  • 年度积分:0
  • 历史总积分:260
  • 注册:2003年8月05日
发表于:2004-05-30 15:17:00
21楼
能给我说具体的示例,用三菱PLC用RS发送和接收、校验,研华的通信地址在PLC中的编写。

周军华

  • 精华:0帖
  • 求助:0帖
  • 帖子:7帖 | 40回
  • 年度积分:0
  • 历史总积分:114
  • 注册:2003年8月29日
发表于:2004-05-31 16:10:00
22楼
我有的是研华的啊,实例一定不相同的!

周军华

  • 精华:0帖
  • 求助:0帖
  • 帖子:7帖 | 40回
  • 年度积分:0
  • 历史总积分:114
  • 注册:2003年8月29日
发表于:2004-06-01 17:27:00
23楼
TO:css 我们今天做了对发送数据和接收数延时的实验,但是还是会出现同样的情况,而且还更加不行。我们的做法是这样的(发和接收数据都需要发送指令的(不同的指令): 说明:发送数据用Timer1事件控制,发送接收数据指令用Timer2事件控件.Timer1的时间设为1000(1S) Timer2为100(0.1S) 我们先做发送启动Timer1事件,发送后,再启动Timer2事件,同时关闭Timer1事件,发送接收数据的指令,如果没有接收到数据就等待(继续再发指令)如果收到就关闭Timer2事件,启动Timer1事件。启动发送. 这样一个先后顺序的过程。好像是可以,但是如果把Timer2的时间设为1或0或别的数时有时有有时没有,设为1000时一直都没有(我所说的没有是没有显示接收的数据,但是能发送数据)设为大于900时就好像没有。 高手们你说这时什么情况??? 请高手们能不能说一说485的通信原理啊??????谢谢!!

GaryLin

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 1186回
  • 年度积分:0
  • 历史总积分:1263
  • 注册:2003年4月15日
发表于:2004-06-01 18:01:00
24楼
There has an example in the page 23. Step 1: Host send command. Step 2: Controller send data back. Step 3: Host send [ACK]. Step 4: Controller send next data back. Step 5: Host send [EOT]. In your descriptions, you do Step 1 only??? Where are your step 2 - N? Or, you just let the data fling in the bus? until crash/conflict with other commands?

周军华

  • 精华:0帖
  • 求助:0帖
  • 帖子:7帖 | 40回
  • 年度积分:0
  • 历史总积分:114
  • 注册:2003年8月29日
发表于:2004-06-01 18:46:00
25楼
但是,像你说的那Step 2不是做的吧,应该是controller自已做的事情吧。 那第三步我发什么指令表示[ACK]了呢? 你看说明书上第P20和P21页,发的指令不是一串字符串吗?(其中包挺了[EOF]) 我应该用什么方法来检测温控仪返回的[NAK]??? 还请高手指点!!??

GaryLin

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 1186回
  • 年度积分:0
  • 历史总积分:1263
  • 注册:2003年4月15日
发表于:2004-06-01 19:00:00
26楼
Different command may have different procedures. In this case (page 23): step 2, you should wait the controller to finish the sending, else your new command may crash/conflict with the coming data. [ACK] should be the 0x06 character that defined in ASCII table. But, double check the definition on your manual would be better. ASCII code http://www.cplusplus.com/doc/papers/ascii.html Sorry, I have problem in typing Chinese.

周军华

  • 精华:0帖
  • 求助:0帖
  • 帖子:7帖 | 40回
  • 年度积分:0
  • 历史总积分:114
  • 注册:2003年8月29日
发表于:2004-06-02 08:36:00
27楼
TO; 不要紧,尽管我的英语很差,但是还是看的一点懂的,所以你用英语没有关系,看不懂我会叫别人帮我的,反正我们这里的研究生和博土生有很多(搞材料和物理的)。 真的谢谢你的帮助! 我真的不理解,在23页上的,STX。。。BBC这个字符串怎么是温控仪发送的呢? 而在我的编程里这个字符串是由电脑发的,如下:

周军华

  • 精华:0帖
  • 求助:0帖
  • 帖子:7帖 | 40回
  • 年度积分:0
  • 历史总积分:114
  • 注册:2003年8月29日
发表于:2004-06-02 08:40:00
28楼
strC:=trim(ed10);ed10是要发送给温控仪的温度由别的程序传入

周军华

  • 精华:0帖
  • 求助:0帖
  • 帖子:7帖 | 40回
  • 年度积分:0
  • 历史总积分:114
  • 注册:2003年8月29日
发表于:2004-06-02 08:46:00
29楼
什么会事,我总是发不上去,是不是这个网站有问题!!!??

周军华

  • 精华:0帖
  • 求助:0帖
  • 帖子:7帖 | 40回
  • 年度积分:0
  • 历史总积分:114
  • 注册:2003年8月29日
发表于:2004-06-02 08:50:00
30楼
发代码就发不上去,不知为什么?? 不好意思我发不上去,但我发到这里来了,你去看一下: http://www.gkong.com/gkong_bbs/dispbbs.asp?Boardid=25&id=15720&star=1#79693 我就是不明白23页上说这是由controller send的??? 在23页上的过程好像没有发送要控制温度的数据一样,上位机只是发送ACK和EOF这类的ASCII,就没有控制温度的参数???我不明啊,还请高手指令江山啊???谢谢!!!

周军华

  • 精华:0帖
  • 求助:0帖
  • 帖子:7帖 | 40回
  • 年度积分:0
  • 历史总积分:114
  • 注册:2003年8月29日
发表于:2004-06-02 09:18:00
31楼
24页的又是Host 发送STX...BBC这个字符串,controller 发达ACK或NAK,真是搞不懂??????????????????

GaryLin

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 1186回
  • 年度积分:0
  • 历史总积分:1263
  • 注册:2003年4月15日
发表于:2004-06-02 09:38:00
32楼
Different command may have different procedures/steps.

周军华

  • 精华:0帖
  • 求助:0帖
  • 帖子:7帖 | 40回
  • 年度积分:0
  • 历史总积分:114
  • 注册:2003年8月29日
发表于:2004-06-02 10:03:00
33楼
那你帮我看一下,上面的协议你帮我看一下是怎样的???谢谢!我实在搞不定啊!???

周军华

  • 精华:0帖
  • 求助:0帖
  • 帖子:7帖 | 40回
  • 年度积分:0
  • 历史总积分:114
  • 注册:2003年8月29日
发表于:2004-06-07 09:17:00
34楼
TO:GaryLin 你的英语好强,你那么历害工资一定很高,要向你学习啊! 我的问题你能进一步的帮我解决吗?谢谢!

GaryLin

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 1186回
  • 年度积分:0
  • 历史总积分:1263
  • 注册:2003年4月15日
发表于:2004-06-07 09:53:00
35楼
我只能写写破英文罢了! 但还好, 大伙还看得懂...ccc 至于您所提的问题, 您应该已经知道问题出在哪了! 剩下的就是花时间去读手册, 改程序, 做测试了! 我没有太多时间可去作深入了解, 只能提供您建议. 方向... 给您了, 路... 可得靠您自己去走咧! 以前应该(maybe)也给过您建议... 找厂家要例程. 这个建议, 现在仍然有效!

周军华

  • 精华:0帖
  • 求助:0帖
  • 帖子:7帖 | 40回
  • 年度积分:0
  • 历史总积分:114
  • 注册:2003年8月29日
发表于:2004-06-07 10:07:00
36楼
TO: GaryLin 谢谢!你以前也帮我解决了好多的问题,这次又让你帮真的不好意思,你说的很对,自己的路是靠自己走出来的。我会续继努力的,努力到像你这样,这么强!!!那就好了! 你的意见对我是非常有用的,我会试着去做的,再一次的谢谢你!! 你的英文确是蛮好的,让别人看的懂的就是好的,看不懂的不一定就是深渊的哦!

学习数控

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 167回
  • 年度积分:0
  • 历史总积分:221
  • 注册:2003年2月06日
发表于:2004-06-07 10:53:00
37楼
把你的程序发到我的邮箱,也许我能帮你解决。

周军华

  • 精华:0帖
  • 求助:0帖
  • 帖子:7帖 | 40回
  • 年度积分:0
  • 历史总积分:114
  • 注册:2003年8月29日
发表于:2004-06-07 11:15:00
38楼
好的我马上发给你!

学习数控

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 167回
  • 年度积分:0
  • 历史总积分:221
  • 注册:2003年2月06日
发表于:2004-06-07 22:18:00
39楼
我看了一下说明书,23页上的例程只是用于从controller接收数据的,而27页上的例程才是用来发送数据的,如需发送数据,你需要参考27页的例程。Good Luck.

周军华

  • 精华:0帖
  • 求助:0帖
  • 帖子:7帖 | 40回
  • 年度积分:0
  • 历史总积分:114
  • 注册:2003年8月29日
发表于:2004-06-08 17:01:00
40楼
是的,你说的对,问题是我是这样做的,做是没有一个ACK的过程(我不知道这样取这个指令,不知道用这个值判断是否接收到了?) 你能不能帮我搞定一下,我的主要的原程序已发给你了,还请高手帮我哦??

热门招聘
相关主题

官方公众号

智造工程师