回复:在子程序调用时,如果突然停止调用,out类型的接口变量的值怎么变化?

Z雨生

  • 帖子

    32
  • 精华

    0
  • 被关注

    2

论坛等级:侠客

注册时间:2018-01-13

普通 普通 如何晋级?

发布于 2019-08-19 21:18:14

3楼

展开查看
以下是引用芳季在2019-08-19 17:25:30的发言 >2楼

2.1 OFF的话Q就会保持最后的状态。96可能不然。


另外说一下,我发现你子程序里面的LW6的值有点危险,碍于没知道你全部LW6有关的程序。这里只能说危险。当LW6前面的触点off之后,沿用我上面的话,LW6会保持最后状态。但是这是个out变量,是没有最后状态的,所以这个LW6将会有可能是任何不可控的值。这个与Q稍有不同。同时,AQW96也是一个同理的危险对象。

说来话长,无法醍醐灌顶。当你真的发现有异于你想象的时候,回来聊。

试着再说一句,看你能延伸到哪里去用。

mov指令不执行的时候,输出的值可以是任意值。

这个感觉理解不了,芳季大神的意思是这样的吗:调用子程序(程序1)时,如果突然停止调用,且之后没有调用。当其他子程序(程序2)嵌套了这个没有被调用的子程序(程序1);且把这个子程序(程序1)的OUT变量接口,引用为自身(程序2)的OUT变量类型。则这个程序(程序2)的OUT变量接口输出的值是以子程序(程序1)被停止调用时所保存的接口变量的值作为计算的值。
所以  以上图第一个程序为例:当还有一个相似结构的网络段,但AQW96,变为AQW98,当这个相似的子程序被调用时,AQW98的值会变得不确定。

是不是这么理解的?

还有问题就是为什么不调用子程序时非BOOL变量的值会变得随机呢?


评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200 SMART

共有8945条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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