rs485多机通信问题 点击:0 | 回复:42



phil

    
  • 精华:2帖
  • 求助:0帖
  • 帖子:2帖 | 1回
  • 年度积分:0
  • 历史总积分:67
  • 注册:2003年8月05日
发表于:2004-03-01 14:54:00
楼主
最近用rs485做一个系统,现在进行的是测试系统,主要是再pc上通过转接头来把rs232转成了485,然后再用这个485来驱动几个单片机,每个单片机采集各自的数据发回来. 现在我们是用75184的半双工的芯片来做. 我们采用的是主发从受的功能.就是说如果主机呼叫的是从机的地址,从机采回送信号应答主机. 从机地址是用波盘开关,用p2口来查询读入. 现在的问题是单片设为1#号机一对一(pc对一台单片机)没有问题,主机发完同步头再发地址,从机能返回对应的地址和数据,非常正常,但是如果再接上一个2#号单片机,则主机(pc机)发1#机地址,则!#机响应,再发2#机地址,按道理应该2#机响应,但是这个时候没有反映.再发1#号机地址,1#号机子又响应.就好像1#和2#机来了个竞争,开始发了谁,后来发这机就能再响应,而发别的就不可以. 我在单片机程序中每次接受后都有清ri,侧过一个发送回传结束后,两台机子的rs485都是处于接受态.按道理不应该有这种现象.两台单片机程序一样.每次发送结束都有用jbc语句判断并清ti. 且半双工的方向控制确定没有错且都及时调整了,不然一对一发送也不会成功了. 实在不明白为什么会这样,把很多因数都考虑了 ,很茫然现在. 希望大家给点建议. (1#机或2#号机是相对说的,就是说如果先发了2#机那么1#也会出现和上面说的2#机那样的状况,就是不响应对它的地址操作.) 我的email: systemview@sina.com.cn qq:3519425. 希望大家帮帮我,快郁闷死了.谢谢



啊月

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 3回
  • 年度积分:0
  • 历史总积分:10
  • 注册:2003年8月09日
发表于:2003-08-10 18:48:00
1楼
是不是真的啊??

MIND

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 3回
  • 年度积分:0
  • 历史总积分:53
  • 注册:2001年10月06日
发表于:2003-08-13 00:38:00
2楼
来电话,研究,研究.021-65157433

戴陈海

  • 精华:0帖
  • 求助:0帖
  • 帖子:19帖 | 75回
  • 年度积分:0
  • 历史总积分:272
  • 注册:2003年2月19日
发表于:2003-08-15 11:26:00
3楼
我想你的单片机那部分程序一定有问题。我们分析一下: 如果你先发给1#机,那么2#机在收到不属于自己的地址码以后,应该清除自己的状态,成为开始接受地址的状态。而接收缓冲区的指针也应该清零。你要方便,可以把你通信部分的子程序(或中断服务程序)和通信协议发给我,大家探讨探讨。

山羊胡子

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 3回
  • 年度积分:0
  • 历史总积分:3
  • 注册:2003年7月11日
发表于:2003-08-17 16:41:00
4楼
我也估计是你的程序有问题了,比如发送之前没有打开通讯端口之类的小问题,仔细检查一下程序,要不你是不是把2机的地址搞错了, 你试试先给2机发送看能不能收到

IREX

  • 精华:10帖
  • 求助:0帖
  • 帖子:227帖 | 318回
  • 年度积分:13
  • 历史总积分:1224
  • 注册:2003年8月04日
发表于:2003-08-30 10:43:00
5楼
有关你的问题是大家做联机的 恶梦 , 我们将于十月引进一颗连控IC, 专司在一条传输线上可多任务互相传输, 速度不快 5Kbit , 有兴趣您参考这网站 http://comwap.com.tw/IREX_LV.htm 这是成品, 但我们也销售里面连控 IC

gongkongedit

  • 精华:1099帖
  • 求助:0帖
  • 帖子:14399帖 | 54471回
  • 年度积分:0
  • 历史总积分:579
  • 注册:2008年9月08日
发表于:2003-09-28 10:38:00
6楼
在下有一个问题想请各位帮忙: 我想实现LG K10S1 PLC计算机的通讯,但是前者的指令中我找不到与计算机的通讯命令:比如:SEND 指令其格式为,[SEND st s d n ] 其中st 指定的站号只包括K10S1, K10S, K30S, K60S, K100S, K500 or K1000 有哪位仁兄知道请不吝赐教 谢谢

酸梅汤

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 1回
  • 年度积分:0
  • 历史总积分:51
  • 注册:2003年9月28日
发表于:2003-09-28 13:28:00
7楼
建议你使用MODBUS通讯协议,这种协议对于你这种方式最合适!

无法连接

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 1回
  • 年度积分:0
  • 历史总积分:10
  • 注册:2003年8月04日
发表于:2003-10-08 22:10:00
8楼
我们同样是用rs485做了一个系统,在一台工控pc上通过通讯转接卡把rs232转成了rs485,然后再用这个485来驱动4个单片机系统(C196系统),每个单片机系统采集各自的数据并发回来。   我们也是采用主发从受,就是只有主机呼叫,对应包中有从机的地址,对应的从机接收信号后回送数据来应答主机。在4台正常工作时,通讯正常,可是只要有一台单片机系统出了问题,造成多次复位后,就影响了整个的通讯,PC上根本收不到任何有效的数据,主机要求重发也没有用。   因此怀疑这种连接方案的可行性,急欲寻求好的解决方案。

feihongl

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 112回
  • 年度积分:0
  • 历史总积分:122
  • 注册:2002年3月09日
发表于:2003-10-08 23:57:00
9楼
类似的问题我前几天在工控论坛的电源栏里见过,你应该在单片机上下功夫。1、把单片机设计成复位时就把通信输出置成高电平;2、所有485的输入、输出串接20欧姆电阻;

中毒

  • 精华:0帖
  • 求助:0帖
  • 帖子:5帖 | 54回
  • 年度积分:0
  • 历史总积分:152
  • 注册:2003年8月29日
发表于:2003-10-09 10:47:00
10楼
异步串行通信最容易忽视异步时间需要同步的问题: 1,收发数据都需要时间,此间单片机和PC机执行了多少指令? 2,是否需要延时等待以保持同步,避免时序混乱?

hans0938

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 12回
  • 年度积分:0
  • 历史总积分:18
  • 注册:2003年10月12日
发表于:2003-10-12 16:15:00
11楼
在485线路上再挂一个节点,连接到PC com port,使用串口精灵来监视所有的数据并分析,同时要注意查看各数据的收发时间。

托蒂

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 2回
  • 年度积分:0
  • 历史总积分:2
  • 注册:2003年11月06日
发表于:2003-11-11 21:19:00
12楼
你做2个秒脉冲分别为1000,1000,1000,1000,1000,……和0010,0010,0010,0010,0010……用要的时候来分别带2个不同的点就可以了!如再多一样的方法间隔一下

helpyou

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 1回
  • 年度积分:0
  • 历史总积分:1
  • 注册:2003年11月14日
发表于:2003-11-14 11:12:00
13楼
下位机的通讯模式在通讯过程中要改变, 从地址接收模式改成数据接收模式

沧海剑

  • 精华:2帖
  • 求助:0帖
  • 帖子:6帖 | 49回
  • 年度积分:0
  • 历史总积分:246
  • 注册:2003年11月17日
发表于:2003-11-18 21:23:00
14楼
运用485的半双工的模式下,同一时间只能有一条数据信息在数据线上传输,如果你对延时和信息处理不好的情况下,极有可能造成混乱,建议你仔细查看自己的程序,还有最好在485总线上加一个终端电阻。

LEVEL METER

  • 精华:0帖
  • 求助:0帖
  • 帖子:6帖 | 202回
  • 年度积分:0
  • 历史总积分:842
  • 注册:2003年8月05日
发表于:2003-11-20 15:38:00
15楼
我是新手,我怕谁.我有一个不太清楚的地方想请教,如果有错,请大家一笑置之.据我所知,RS485-232只是一个转换头,用来改变数据传输时的数据传输方式,并行到串行的转换,那么他怎么会有驱动功能,能驱动单片机呢?只是采集数据吧!

zsbs

  • 精华:0帖
  • 求助:0帖
  • 帖子:7帖 | 145回
  • 年度积分:0
  • 历史总积分:233
  • 注册:2003年11月27日
发表于:2003-11-29 19:38:00
16楼
完全同意 戴戴 的说法,本人做过一台工控机与近1000台单片机通讯,采用RS485(要用到中继器),实际证明这种方法可行

sb6159

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 13回
  • 年度积分:0
  • 历史总积分:23
  • 注册:2003年11月16日
发表于:2003-12-02 18:19:00
17楼
我公司做串口转以太网通讯设备产品可以为一些工业通讯现场设备解决远程数据采集和共享难题有兴趣合作就与我公司联系。 北京中新创科 李振龙 sb6159@sina.com.cn

寻求支持

  • 精华:0帖
  • 求助:0帖
  • 帖子:14帖 | 13回
  • 年度积分:0
  • 历史总积分:55
  • 注册:2003年11月30日
发表于:2003-12-03 23:55:00
18楼
你的串口通讯是否用中断写的?估计你的数据帧格式有问题,1、2号机同时认为自己收到有效帧了.最好你用MODBUS协议做,这样不会冲突。

子轩

  • 精华:0帖
  • 求助:0帖
  • 帖子:6帖 | 9回
  • 年度积分:0
  • 历史总积分:77
  • 注册:2003年5月26日
发表于:2003-12-07 11:31:00
19楼
zsbs朋友,请问你用的485中继器是买的还是自己开发的? 如果是买的,中继器与本系统的协议有没有关系。 如果可以,请告诉我中继器的原理。

zsbs

  • 精华:0帖
  • 求助:0帖
  • 帖子:7帖 | 145回
  • 年度积分:0
  • 历史总积分:233
  • 注册:2003年11月27日
发表于:2003-12-07 16:10:00
20楼
子轩:您好,(1)本人采用RS485总线已做了很多的控制系统,开始时在市面上还不能买到能接受的中继器(有产品,但价格太高,一个中继器单元,即1入1出,也要近千元)所以只好自己做,后来,因能买到现成的产品了,就不再自己做了(一个中继器单元,即1入1出不超过400元);(2)中继器只是将收到的数据经驱动后再输出,与通讯协议无关,但有的产品要设置波特率,也有的不用设置波特率

相关主题

官方公众号

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