本人使用西门子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);此时编译报语法错误。
请问各位高人,此处程序该如何写?
谢谢!