回复:s7-200smart自由口通讯

holdkcsxyz

西门子1847工业学习平台

  • 帖子

    1560
  • 精华

    24
  • 被关注

    162

论坛等级:至圣

注册时间:2015-06-03

钻石 钻石 如何晋级?

发布于 2019-11-22 10:58:48

2楼

自由口的帖子很多包括集合贴,你可以搜搜。

我提供几点看法。

1:自由口串行通讯和主程序是异步的,主从站接收发送也是异步的(因为主从硬件接口上没有统一的时钟节拍接线而且是一问一答异步模式)。

2:定时发送可能不是最好的方案(因为定时发送并不能稳定的按照定时计划获得采样时间均匀的数据(可以缩短定时采样周期但也有下限限制),而且会使通讯进程走走停停,冷冷热热。

3:较优的主站方案是:A:首次上电启动一次发送命令主动发起一次整个上电周期的通讯进程(出错了可采用某种机制再发起一次)。 B:每一次的发送完成OB中启动一次接收(可起到我问时不听你的说话,问完后才接收你的信息的作用) 。C : 在接收完成OB中处理一次收回来的数据得到从站数据(判断,校验,运算三个处理流程这些流程非必须)并且在出接收完成OB前的最后一个网络中启动一次发送命令(可起到我处理时不会理会你说什么也不会问你什么,处理完毕后择机再问你话)。D:数据处理OK后,此时按你所说可以在100ms(采样时间可根据需要改变但不能小于整个发收周期)的循环中断中定时采样早已接收好的从站数据(可以对数据进行缩放/滤波/变换等处理,如果没严格的采样时序要求直接放在主OB中处理好了,不用放在循环OB中了)。

4:这样的通讯过程对于现有的软硬件结构来讲是紧密的,无间断的,当然要做好出错判断等。

5:对于很复杂的判断处理协议可启用接收字符中断(每收到一个字符判断处理一次),这个非必须用,但是说明了S7-200Smart对付复杂自由协议的能力。

6 : 个人在实践中发现要尽量避免用帧超时等来判断实时接收完成。(这是个人多次掉坑之后的看法,不一定完全正确;这个超时判断机制手册上可以这样用而且MB库应该也有针对不同波特率设置不同的超时时间,包括有些有经验的工程师也有这样用的,但我觉得可用超时条件判断字符的好坏以及帧的好坏,但尽量避免用时间判断接收开始及完成)。

评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200 SMART

共有8941条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。