[quote=引用 13 楼 L_lxc 的回复:] 你可以通过反馈字符串不一样来区分吧,A1设备反馈结尾加上A...标志,B1设备反馈结尾加上B...标志,通过字符串可以区分的啊
你可以通过反馈字符串不一样来区分吧,A1设备反馈结尾加上A...标志,B1设备反馈结尾加上B...标志,通过字符串可以区分的啊
[quote=引用 7 楼 Z65443344 的回复:] 不过还要看设备本身通信协议做的怎么样了. 如果就是很傻的隔一段时间就发送,就很有可能会出现我前面说过的情况 但是如果设备能够识别出线路上有其他设备在发送数据,从而自身进入等待状态,也可以正常通信. 不过如此一来,A1和A2根本不可能同时发数据,你开多线程接收是没有意义的. 而且你两个线程能同时打开COM1?同一个端口只能打开一次. 就算你用了2个线程同时监视COM1,你线程又如何分辨来的数据应该是哪个线程去处理? 所以说不要费那个劲了,根本没有意义.
不过还要看设备本身通信协议做的怎么样了. 如果就是很傻的隔一段时间就发送,就很有可能会出现我前面说过的情况 但是如果设备能够识别出线路上有其他设备在发送数据,从而自身进入等待状态,也可以正常通信. 不过如此一来,A1和A2根本不可能同时发数据,你开多线程接收是没有意义的. 而且你两个线程能同时打开COM1?同一个端口只能打开一次. 就算你用了2个线程同时监视COM1,你线程又如何分辨来的数据应该是哪个线程去处理? 所以说不要费那个劲了,根本没有意义.
A1和A2不是2个端口号么? 分端口号接受有问题吗?
不能. 串口通信A必须作为主站,A1和A2作为从站 就是A必须主动发送请求到A1或A2读取数据 如果A不发送请求,A1和A2主动向A发送数据,数据会互相干扰,无法收到有效数据
[quote=引用 16 楼 dabinnc 的回复:] 485总线是 半双工的。同一时间只能有一个设备发送数据,要不会有冲突。 你可以上位机主动发送数据,下边的设备回复请求。
485总线是 半双工的。同一时间只能有一个设备发送数据,要不会有冲突。 你可以上位机主动发送数据,下边的设备回复请求。
110,567
社区成员
642,567
社区内容
加载中
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧