赵建玲吧 关注:1贴子:76
  • 2回复贴,共1

崩溃的问题

只看楼主收藏回复

用ModbusSlave模拟下位机接收到的数据都很正常
但是用施耐德PLC接收的时候反应很慢,延迟在8秒,天..
而且有的数据反应快,有的反应慢.....


IP属地:浙江1楼2014-07-14 17:03回复
    嘿嘿,今天终于搞定这个看似奇怪的问题了.谜底是只差了一句代码!!
    记录下找Bug的过程.
    通信流程是在线程里反复执行一个switch case的"心跳",分3个步,写,读,写,最后一个写操作只有在某个条件成立时才写入,因为它的数据平常运行时只要给定好就行.改变的时候写一下!
    因为在下位机模拟软件里反应良好而实物中有问题...于是又找个一个西门子200的PLC,写了个Modbus从站程序,只有一个通信口,没法监视...只把一个数据映射到了Q区..,我不管数据是多少,只要能及时响应就能说明问题. 结果,还是慢半拍...这下,专心Debug程序吧.肯定程序有问题!


    IP属地:浙江2楼2014-07-15 11:17
    回复
      通信就这个3步,一步一步试,
      1.先让心 跳 一下,只执行写操作..嗯,监视数据..嗯, 没有问题,反应很快.
      2.然后跳2下,读数据,跳不动了....;
      3.跳一下,反复读数据,读数据没有问题..
      4.把条件写数据放到第2跳,跳两下,下位机监视没有问题..
      找到问题了,写数据没问题,读就有问题!,单独读数据也没问题,放在一起就有问题!!
      ,嘿嘿,灵光一闪,它们结合的太紧密了稍微留点空隙.
      Thread.Sleep(50);
      仿真,监视..嘿嘿.从来没有这么舒心过


      IP属地:浙江3楼2014-07-15 11:23
      回复