本实例中功能FC,功能块FB中IN,OUT,INOUT)嵌套使用时参数相互传递的困惑?

已锁定

zgd211

  • 帖子

    497
  • 精华

    0
  • 被关注

    3

论坛等级:侠士

注册时间:2006-11-08

普通 普通 如何晋级?

本实例中功能FC,功能块FB中IN,OUT,INOUT)嵌套使用时参数相互传递的困惑?

2053

9

2008-01-31 11:30:39

对于功能FC,功能块FB中IN,OUT,INOUT的困惑?
今天突然心血来潮,测试了一下下面程序(本来IN参数只是作为只读参数,OUT参数只是作为只写参数,可是某些时候把它们当做IN_OUT参数,好像执行结果一致),有点困惑???以下第1,2程序为把IN参数作为IN-OUT使用,在FC,FB程序执行结果不一样!以下第3,4程序为把out参数作为IN-OUT使用,在FC,FB程序执行结果是一样的!

1、OB1程序如下:
CALL FC1
IN1:=MD10
FC1程序如下:
L #IN1
L 100
+D
T #IN1
其中IN1为FC1中定义的IN形参,可是这里程序却不断执行(即MD10不断地累加100,即MD10的结果为100,200,300...)
2、OB1程序如下:
CALL FB1,DB1
IN1:=MD10
FC1程序如下:
L #IN1
L 100
+D
T #IN1
其中IN1为FB1中定义的IN形参,可是这里程序却总是结果一致,MD10总是为初始值,而DB1中对应IN1 位置为恒值(MD10初始值+100)

而对于OUT参数,下面的程序MD10的执行结果一致
3、OB1程序如下:
CALL FC1
OUT1:=MD10
FC1程序如下:
L #OUT1
L 100
+D
T #OUT1
其中OUT1 为FC1中定义的OUT形参,可是这里程序却不断执行(即MD10不断地累加100,即100,200,300...)
4、OB1程序如下:
CALL FB1,DB1
OUT1:=MD10
FC1程序如下:
L #OUT1
L 100
+D
T #OUT1
其中OUT1 为FB1中定义的OUT1形参,(即MD10不断地累加100,即100,200,300...)
本实例中功能FC,功能块FB中IN,OUT,INOUT)嵌套使用时参数相互传递的困惑? 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54616条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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