西门子S7-SCL中如何调用动态背景数据块? 点击:965 | 回复:0



    
  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 8回
  • 年度积分:0
  • 历史总积分:206
  • 注册:2007年12月06日
发表于:2018-11-08 10:50:17
楼主

本人使用西门子S7-SCL编制程序,碰到如下问题,请高人解答:

在SCL程序FB1中,如果调用另一个FB程序,假设调用FB2,其对应背景数据块是DB21,DB22,可以简单的如下调用:

     FB2.DB21(In_Start:=M0.0);

     FB2.DB22(In_Start:=M0.1);

但是,本人希望实现DB21、DB22的DB号码通过参数输入,即FB1中的input var 中定义类似的

    DB_NAME:BLOCK_DB ;
    DB_NAME_WORD:WORD;

在程序中使用:

   DB_NAME:=WORD_TO_BLOCK_DB(DB_NAME_WORD)

    当DB_NAME_WORD=21时,DB_NAME实际上就是DB21,可以使用DB21的各个字段,比如                      

                       DB_NAME.DBD12就是DB21.DBD12;

    但是此时调用FB2.db21,却不能写成FB2.DB_NAME(In_Start:=M0.0);此时编译报语法错误。

请问各位高人,此处程序该如何写?

谢谢!






热门招聘
相关主题

官方公众号

智造工程师