早上客户说在使用上位机软件对下位机写数据的时候会出现数据错误丢失的情况:对下位机信道写数据,总共十六个信道十六组数据,在无手动更改数据的情况下一直写,会有几台机器的数据不对,就是十六个信道里有一个信道的数据会跟写入的不一样,据说是在第二个第三个信道出现,300个出现十几个有这样的问题。 这样小概率出现而且不会中止程序的BUG我该怎么查找啊我都懵了,我已经测试了一百多次读写了还没遇到这个问题,求各位大神帮帮忙!!!
[quote=引用 楼主 weixin_44246797 的回复:] 早上客户说在使用上位机软件对下位机写数据的时候会出现数据错误丢失的情况:对下位机信道写数据,总共十六个信道十六组数据,在无手动更改数据的情况下一直写,会有几台机器的数据不对,就是十六个信道里有一个信道的数据会跟写入的不一样,据说是在第二个第三个信道出现,300个出现十几个有这样的问题。 这样小概率出现而且不会中止程序的BUG我该怎么查找啊我都懵了,我已经测试了一百多次读写了还没遇到这个问题,求各位大神帮帮忙!!!
300 对十几个 这个概率不小了 这个概率不小,所以可以很快复现。双方记录日志,比对日志。 程序员的习惯是“不相信任何人,甚至不相信自己”--所以我们从不相信“客户说,下位机说”-----我们只相信机器说。所以双方拿出日志比对,当然物理通讯上有错也有,所以通讯协议才会有crc校验。不过300 对十几个这样的概率我不太相信是物理通讯错误
你先这样,你先问他。消息错误是这么样的错误,能带信道设计的下位机,我相信他的协议应该是有校验位的 所以你先问这个错误是,校验失败还是消息体错误。 正常情况我们对于这种东西,还是那套手段,双方对日志。 日志如果查不出错,或者各执一词(这种情况很常见,A说我发了,B说我就没收到,A说我发的是123,B就说我收的是345),对于这种我们说,既然说不清楚,那就找公证 用中间监控程序直接监控: tcp的用Wireshark进行抓包监控 串口的用Bus Hound监控 有理没理用证据说话
110,539
社区成员
642,577
社区内容
加载中
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧