您的位置:控制工程论坛网论坛 » 西门子社区 » 多重背景调用是否要填写实参?

yujie0612

yujie0612   |   当前状态:在线

总积分:3617  2024年可用积分:0

注册时间: 2015-01-29

最后登录时间: 2023-08-15

空间 发短消息加为好友

多重背景调用是否要填写实参?

yujie0612  发表于 2016/2/18 8:48:52      1466 查看 3 回复  [上一主题]  [下一主题]

手机阅读

  很少用多重背景...今天去网上搜了下,部分说明如下(摘自知名工控前辈博客):
  ...
  先建立一个FB10。完成内容X*Y=Z
  定义形式参数
  IN:X,Y
  OUT:Z
  保存
  然后再建立FB20,形式参数STAT 里定义
  NAME:MUL
  Data Type:FB10
  程序中写以反复的写 call MUL。保存
  OB1 中写 CALL FB20,DB10
  DB10 为多重背景数据块
  注意一点,多重背景调用等同于FC 的调用,call MUL 下的参数填写一定不能空着,必须有实际地址,否则用 DB10 的数据程序会混乱。
  ...
  最后一句,也就是“注意一点”后面:是不是说在FB20中调用FB10,FB10的接口必须写入实参?
  认为管脚已经有相应的全局变量地址了,不用再填写实参,同时验证了下:
  1、FB1:很简单的起保停控制;
  2、FB100:STAT定义FB1数据类型;
  3、OB1中调用FB100,相应实例块DB201;
  4、在有限的测试过程中,没有发现问题,每组数据独立,想停就停想启就启;
  5、是我理解错了吗?

1楼 0 0 回复
  • aaing

    aaing   |   当前状态:在线

    总积分:27966  2024年可用积分:0

    注册时间: 2007-04-27

    最后登录时间: 2023-08-21

    空间 发短消息加为好友

    aaing   发表于 2016/2/18 14:53:53

    记得视频学习中心里关于step7的使用教程视频里也说过fb块的in_out接口不能为空,如果in_out接口为空编译时不会报错,但在程序执行时会报错。和楼主的这个问题是一样的,结果没有报错,不知道究竟是怎么回事?

    2楼 回复本楼

    引用 aaing 2016/2/18 14:53:53 发表于2楼的内容

  • yujie0612

    yujie0612   |   当前状态:在线

    总积分:3617  2024年可用积分:0

    注册时间: 2015-01-29

    最后登录时间: 2023-08-15

    空间 发短消息加为好友

    yujie0612   发表于 2016/2/18 14:54:56

    补充

    3楼 回复本楼

    引用 yujie0612 2016/2/18 14:54:56 发表于3楼的内容

  • zhanghe

    zhanghe   |   当前状态:在线

    总积分:3518  2024年可用积分:0

    注册时间: 2010-03-22

    最后登录时间: 2023-08-14

    空间 发短消息加为好友

    zhanghe   发表于 2016/2/19 9:08:05

    仅从单个FB块调用来说,简单数据类型的接口可以为空的吧?

    4楼 回复本楼

    引用 zhanghe 2016/2/19 9:08:05 发表于4楼的内容

总共 , 当前 /