目前有个客户通过以太网模式来远抄热表和阀门的数据,这个网络的布置是这样的:电脑-(以太网)->集中器-(无线)->集中器->热表或阀门,原先这公司测试的时候通讯效果蛮好,基本上数据都能抄回来,但是现在在现场却发现阀门的数据经常抄不回来,但是热表的数据基本上都能抄到,而且反应速度蛮好。现在的问题:1、热表跟阀门以太网接口的处理是一样的,只是一个返回的数据长些,一个短些,我实在是想不出什么原因导致这个结果?(客户说线路没问题)
2、我程序里现在是按抄表列表一个个顺序下来先发后收数据,我知道这种模式不一定好,但是因为第一次做网络抄表,而且现场有1000多的表,用线程怕控制不好。如果换作线程处理接收,发送仍然顺序操作,那么这个接收什么时候结束?因为我收到的数据还要保存计算分摊,不可能一直处于接收状态;

解决方案 »

  1.   

    抄表行业我从2011做到2005,你说的这种情况有可能是硬件程序写得太差了,运行一段时间硬件程序出问题了,你可以测试一下,如果给硬件断电能抄表就是硬件程序出问题了。还有你这个这么多硬件是得采用多线程,要不然会很慢,不过抄表行业到是不要求数据快慢,我们监控行业数据到中心要求5S。所以我们都是采用多线程,欢迎QQ聊聊:81034291
      

  2.   

    是不是得加个解析放在里面?你管它返回多少个字节,只要对返回的数据解析成功了,我就认为已经收全进行相应操作。我觉得楼主的应该还是解析没做好。
    用线程操作读表会更合理些,你用秒表,那你能保证几秒钟数据就抄读上来了?并且还浪费时间,有时还有可能出现抄表不成功的情况。定义一个线程,里面可以有2个事件处理:一个是专门负责发送数据,一个专门负责接收数据,类似的可以在网上下载个CSerialPort类看看。