功能块和背景数据块迷惑(1)

我想问一下,例如我在功能块FB2输出参数定义一个形参变量OUT2,而在OB1中调用该块FB2,并分配实参。生成的背景数据块为DB1,而该形参变量OUT2在背景数据块中对应的地址为DB1.DBX2.0
1、当我通过输入实参变量M4.0接通为1在断开,输出实参M4.2为1,同时背景数据块中输出DB1.DBX2.0也为1
当我在主程序中用一变量恒为1使M4.2复位0,M4.2变为0.看到背景数据块中DB1.DBX2.0仍然为1.断开该变量后,M4.2又返回1.而当我用一变量恒为1使DB1.DBX2.0复位0时,DB1.DBX2.0变为0,M4.2也被复位0。断开该变量后,DB1.DBX2.0和M4.2仍然为0.
为什么实参M4.2变为0,背景数据对应的DB1.DBX2.0不变为0呢?反而背景数据块DB1.DBX2.0变为0的时候,M4.2也为0.是不是形参输出对应背景数据块中地址DB1.DBX2.0决定实参M4.2,

问题补充:
要是我把形参定义输入输出类型变量时,情况是相反的。

图片说明:

功能块和背景数据块迷惑(1)    功能块和背景数据块迷惑(1)    功能块和背景数据块迷惑(1)   

最佳答案

为什么实参M4.2变为0,背景数据对应的DB1.DBX2.0不变为0呢?
out2是输出类型的变量,它的值只能有程序来决定,不是由外部数据改变的,只有它去改变外部数据。因为m4.2是保存的db1.dbx2.0的值,即由db1.dbx2.0决定m4.2的状态,反过来你强制了m4.2的值db1.dbx2.0是不会变得。
是不是形参输出对应背景数据块中地址DB1.DBX2.0决定实参M4.2。
是的。

提问者对于答案的评价:
但是把形参定义为输入输出时,情况就相反了!这是不是说明与形参定义的类型有关联!以前没注意到这个问题

最佳答案作者回复:
是的,输入输出类型的对于本程序块来说是可读可写的,输入类型的是对于本程序块来说是只读的,不能修改,输出类型的是本程序块可以读写,但外部程序只能读,不能写。

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc206789.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2017年11月4日 下午5:45
下一篇 2017年11月4日 下午5:46

相关推荐

  • 类似下降沿触的问题

    如图,用PLCSIM测试,当M0.1由接通到断开(1秒的时间)后,为什么M0.1(N)下降沿不会触发?程序的目的是MW10输入1,MW20输入2,M0.1接通1秒,然后M0.2在接…

    2020年10月31日
  • 如何打开由德国版STEP7V5.4编辑的软件

    有一份德国工程师编写的西门子STEP7V5.4版本的用户软件.我尝试用V5.4英文版把它在自定义项目中设置德文和在控制面板上设置为德文都无法打开用户程序,请问还需要设置什么内容?才…

    自动化系统综合 2020年11月1日
  • SCL编译器有无条件编译的功能?

    SCL编译器有无通过给出的条件满足情况,来控制程序某部分是否编译的功能呢?就像我们在写c的时候可以通过:#if —-#else…#endif;#ifdef….…

    自动化系统综合 2020年11月1日
  • 802D中怎样自定义变量

    怎样将外部的I/O点指定到系统中,类似FANUC的宏变量那样 最佳答案 可以用V49000000.0~V49000512.7接口地址,在加工程序中可以利用$A_DBB[n]&nbs…

    自动化系统综合 2018年12月5日
  • 紧急:2AO U 标准型

    2AO U 标准型的输出如何确定是2线或4线? 请举例说明 谢谢 最佳答案 2AO U 是电压输出的 2AO&…

    自动化系统综合 2020年11月1日
  • 以太网提问

    请问,交换机,HUB,路由器的应用和区别是什么?     一般的控制系统的以太网框架中,采用以上的哪个作为各个操作站,工程师站,D…

    自动化系统综合 2021年7月5日
  • 轧机速度

    轧机调速一直没有弄明白,暂先不说活套吧,就说一条线如果有10台轧机,静态计算按照秒流量相等的原则,设定最后一台的速度为V10,那么,其他分别为它对应的函数,那么动态呢,由直流调速装…

    自动化系统综合 2020年11月1日
  • 局域网不同网段的Web Navigator问题

    单位局域网内wincc服务器和我要做的WebNavigator 客户机在不同网段,直接ping不通,问怎样处理设置WebNavigator ?另外一直没下载到W…

    自动化系统综合 2020年11月1日
  • 802DSL调试报分辨率故障

    802DSL调试的时候出现:[26002]轴1,编码器2用于伺服的分辨率和位置控制分辨率出错?请各位高手帮忙解决一下 问题补充:MD1005/MD1007,MD1022/MD103…

    自动化系统综合 2020年10月31日
  • 关于编码器疑问

    对于绝对值编码器有一些疑问,请高手帮忙解答一下:1.一般绝对值编码器都是24位的,那么它能计的最大脉冲数就能算出来应该是2^24-1=16777215,是固定的。转一圈的脉冲数知道…

    自动化系统综合 2020年10月31日