回复:双线圈问题

已锁定

xyvsjay

  • 帖子

    208
  • 精华

    0
  • 被关注

    4

论坛等级:侠士

注册时间:2017-11-05

钻石 钻石 如何晋级?

发布于 2025-03-08 11:57:58

31楼

展开查看
以下是引用Zane在2025-03-08 10:51:11的发言 >30楼

这不是典型的结果导向吗?


缅北电诈骗到你的钱算犯罪,没骗到你的钱就不是犯罪了?


多线圈其实质就是对同一布尔变量的多次赋值,无论是条件执行还是无条件执行,前者可能是形式上的,逻辑上可能在同一时刻或同一扫描周期还是单次赋值,后者无论形式还是逻辑上妥妥的都是

以下是引用阳春节拍在2025-03-08 08:11:00的发言 >29楼:何谓双线圈,就是指...

引用29楼详细内容:

何谓双线圈,就是指程序执行结果与某个指令的执行结果是不一致的。

为啥不一致?因为后边有程序把结果给覆盖了。

这个覆盖,就是双线圈的实际表现。

扩展点说,没发生覆盖就可以认为不是双线圈。

再扩展点说,没发生引起结果改变的覆盖就可以认为不是双线圈。

再扩展点说,不仅位,字也可以有双线圈。

所以,双线圈,是对一种容易引起错误结果的编程方法的俗称

有些人就喜欢下一个以为很精准的定义,随意扩充内容。大家讨论的双线圈就是同个bool变量,线圈形式输出多个。不含其他数据类型也不含置位复位。

为什么双线圈会成为问题,是因为线圈的输出是始终执行的,不是1就是0,多个线圈就存存在多个确定的0或1,会先后执行顺序的覆盖。

不同于其他赋值,置位复位,不满足时不执行,就像没有这段程序一样,多次赋值多次置位复位最多造成阅读混乱,不会造成绝对的覆盖问题。

评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200 SMART

共有8936条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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