您的位置:控制工程论坛网论坛 » 西门子社区 » 与仪表自由通讯问题!

wuwei01

wuwei01   |   当前状态:在线

总积分:3850  2024年可用积分:0

注册时间: 2010-03-25

最后登录时间: 2023-08-11

空间 发短消息加为好友

与仪表自由通讯问题!

wuwei01  发表于 2016/9/8 15:44:58      1467 查看 3 回复  [上一主题]  [下一主题]

手机阅读

226 CPU与第三方仪表通讯,开始用9600波特率通讯时,仪表返回的数开始几个字节都是错误的,但有时所有接到的字节都正确的,每秒轮询一次仪表,超时时间为500MS。后来我把波特率都给提高了,发现接到的错误率低了,现在通讯的波特率是57600(仪表已是最高了)虽然大部分接收的都正确,但是还是有错误,这个问题已经困扰我好几天了,所有想到的都试了,还是没有解决。请大神们帮着分析下是什么原因呢!

仪表通过串口调试助手试过最高速率设置为200MS发送,返回的没有错误,如果在低的话有时会返回错误字节!

请大神帮助!

1楼 0 0 回复
  • atmupkeep

    atmupkeep   |   当前状态:在线

    总积分:5759  2024年可用积分:0

    注册时间: 2011-05-08

    最后登录时间: 2023-08-15

    空间 发短消息加为好友

    atmupkeep   发表于 2016/9/9 16:00:29

    波特率不正确是收不到正确字符的。 如果在多种波特率下均可收到正确字符,对方要有侦测波特率的机制,一般仪表是很难做到的。 你把通讯双方的参考地连起,看看错误是否会消除?
    2楼 回复本楼

    引用 atmupkeep 2016/9/9 16:00:29 发表于2楼的内容

  • bonbo

    bonbo   |   当前状态:在线

    总积分:4881  2024年可用积分:0

    注册时间: 2013-06-20

    最后登录时间: 2023-08-10

    空间 发短消息加为好友

    bonbo   发表于 2016/9/11 14:43:54

    一般老说,如果你的程序写得正确合理,波特率低出现错误的机率小,而你的情况恰恰相反,只能说你的程序写得不够合理。 试着调整RCV、XMT这2个指令所在网络段在整个程序中的位置,或许可以解决问题。
    3楼 回复本楼

    引用 bonbo 2016/9/11 14:43:54 发表于3楼的内容

  • fung

    fung   |   当前状态:在线

    总积分:7506  2024年可用积分:1

    注册时间: 2006-11-24

    最后登录时间: 2023-08-16

    空间 发短消息加为好友

    fung   发表于 2016/9/11 16:45:19

    我也有二楼的感觉。 可能是一些较为隐含的时序不合理造成个别出错。具体很难说,好像有些中断出现在很接近end指令的时候出错机会会大减,而中断出现在程序开始位置时,出错机会会很大。这是不同流程之间不同步引出的必须的同步问题。
    4楼 回复本楼

    引用 fung 2016/9/11 16:45:19 发表于4楼的内容

总共 , 当前 /