回复:这两段程序有什么区别?

已锁定

holdkcsxyz

西门子1847工业学习平台

  • 帖子

    1561
  • 精华

    24
  • 被关注

    162

论坛等级:至圣

注册时间:2015-06-03

白金 白金 如何晋级?

发布于 2021-02-22 09:08:02

29楼

      应该没问题。形参临时变量先赋值后使用,最终再以100%确定的结果反馈到对应的接口实参;线圈输出对于一个布尔量是一个逻辑完备的;楼主的第一张图片考虑了一个布尔量的所有S赋值为1的情况又考虑了所有R赋值为0的情况应该也是逻辑完备的。贴过一个分配了全局变量的可读可写型局部变量的SR,如果是用绝对时钟就是逻辑完备的结果100%确定;如果是用相对时钟其实是有问题的(问题在于采用相对时钟的时候这个可读可写型局部变量的抗干扰不行,满足不了FC外部的”干扰“),这时还要再特殊处理。

      理论上一个OUT型布尔输出型变量在FC/FB执行完毕后应有一个100%确定结论,要得出它到底是0还是1的确切结论(无结论想保持上个周期的扫描值也是不确定结论的一种,也是不被允许的)。楼主的程序是不存在得不出是0还是1的结论的;但有的程序写的虽然也能一直正确运行,但针对OUT型布尔变量有时会得不出是0还是1确切结论的情况,这时这个OUT型变量的形参和实参能不能保持它的上一个扫描周期值就变得不确定。

      FC/FB的OUT型布尔变量在得出确切结论后才可以再被读取使用的,即上面楼主和锋言锋语的帖子提到的“先写后读”,即使这样博途也会智能的提示有警告,因为软件知道并不是每个编程者都能很好的处理好这一点,所以警告编程者要注意有出错的可能,即警告FC/FB的OUT型变量最好只写不读。

      而且对于OUT型变量还应该能抗干扰:即运行到对它所属FC/FB时无论这个变量之前被FB/FC外的逻辑有意或者无意的干扰成什么值了,也不会影响它所属的FC/FB运行完毕后对它的写确切结果。

评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-1500系列

共有10833条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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