一台计算机上的串口接多台仪器<plc>(232转485)。向仪器(plc)发送命令,仪器(plc)返回状态数据,收到返回数据后把数据显示在主窗口的相关区域(每个仪器有专门的数据显示区域),在主窗口中能向仪器发送其它的控制命令,并接收仪器返回的数据。针对这种情况,我的问题是如何判断这个通信线路的忙与闲(要不然当仪器(plc)两个信息同时发送时,由于波形相互影响,导致计算机接收的信息不准。)?
1、用计算机来判断
是否可行?如何判断?
2、由仪器(plc)来判断
当仪器发送信息时,可由plc来判断线路的忙闲状态,来发送相应的信息,这个可否行?如何操作?请教大家!谢谢
不过你在plc上发送数据包校验一下,接收数据的地方也校验就能够保证数据的正确了。
你所说的这个校验是不是对整个数据包(又如说@010000XX ,其中@是起始符,
01是仪器地址,0000是数据信息,xx是校验用的<其值等于@+01+0000 ,用十进制表示可不可行?>)补充请教:
就是一开始,我要对全部仪器(plc)<大概有20台>发送一指令(要群发),
当仪器接收到信号后要向仪器发出回应,在这个发出回应的过程中有可能
两台仪器同时发出照你所说的那样式
(计算机向仪器发送命令,等待返回,然后再处理另一台。
仪器处理逻辑是接收到命令才发送数据。
这样就不会有线路冲突的问题了。)
这样是不是很费时
我是这样想的,
具体没试过另外中途中有可能出现异常情况
因此仪器要向计算机发送指令
但有可能两台同时出现异常情况
同时发一信息
那又该如何<因为这个计算机无法预知,很难控制>?