SCL中功能块数据块为什么生成不了

在网上找到了一个程序是关于FB嵌套调用的,
  FUNCTION_BLOCK FB10 


  VAR_INPUT 
   sel_fb10 : INT; 
   i_1_fb10 : BOOL; 
   i_2_fb10 : BOOL; 
   i_3_fb10 : BOOL; 
   i_4_fb10 : BOOL; 
   i_5_fb10 : BOOL; 
   i_6_fb10 : BOOL; 
  END_VAR 
  VAR_OUTPUT 
   ret_fb10 : BOOL; 
   o_1_fb10 : BOOL; 
   o_2_fb10 : BOOL; 
   o_3_fb10 : BOOL; 
   o_4_fb10 : BOOL; 
   o_5_fb10 : BOOL; 
   o_6_fb10 : BOOL; 
  END_VAR 

  BEGIN 
  CASE sel_fb10 OF
   1 : o_1_fb10 := i_1_fb10;
   o_2_fb10 := i_2_fb10;
   ret_fb10 := TRUE;
   2 : o_3_fb10 := i_3_fb10;
   o_4_fb10 := i_4_fb10;
   ret_fb10 := TRUE;
   3 : o_5_fb10 := i_5_fb10;
   o_6_fb10 := i_6_fb10;
   ret_fb10 := TRUE;
  ELSE : ret_fb10 := FALSE;
  END_CASE ; 
  END_FUNCTION_BLOCK
 
  DATA_BlOCK DB10 FB10
  BEGIN
  END_DATA_BLOCK

 
  FUNCTION_BLOCK FB11 
   TITLE = 'call' 
   NAME : call 
   FAMILY : SCL 
   AUTHOR : CS 
   VERSION : '0.0' 
 
  VAR_INPUT 
   sel_fb11 : INT; 
   i_1_fb11 : BOOL; 
   i_2_fb11 : BOOL; 
   i_3_fb11 : BOOL; 
   i_4_fb11 : BOOL; 
   i_5_fb11 : BOOL; 
   i_6_fb11 : BOOL; 
  END_VAR 
  VAR_OUTPUT 
   ret_fb11 : BOOL;  
   o_1_fb11 : BOOL; 
   o_2_fb11 : BOOL; 
   o_3_fb11 : BOOL; 
   o_4_fb11 : BOOL; 
   o_5_fb11 : BOOL; 
   o_6_fb11 : BOOL; 
   rv_sfc : INT;  
   time_m : DT; 
   ctv_o : INT; 
  END_VAR 
  VAR 
   ct : BOOL; 
   rs : BOOL; 
   ctv : INT; 
   max : INT; 
   instance_1 : FB10; 
   instance_2 : FB10; 
  END_VAR

  BEGIN 
   FB10.DB10(sel_fb10 := sel_fb11, 
   i_1_fb10 := i_1_fb11, 
   i_2_fb10 := i_2_fb11,
   i_3_fb10 := i_3_fb11, 
   i_4_fb10 := i_4_fb11,
   i_5_fb10 := i_5_fb11,
   i_6_fb10 := i_6_fb11); 
   
   o_1_fb11 := DB10.o_1_fb10;
   o_2_fb11 := DB10.o_2_fb10;
   o_3_fb11 := DB10.o_3_fb10;
   o_4_fb11 := DB10.o_4_fb10;
   o_5_fb11 := DB10.o_5_fb10;
   o_6_fb11 := DB10.o_6_fb10;
   ret_fb11 := DB10.ret_fb10;
   
   instance_1(sel_fb10 := sel_fb11, 
   i_1_fb10 := i_1_fb11, 
   i_2_fb10 := i_2_fb11, 
   i_3_fb10 := i_3_fb11, 
   i_4_fb10 := i_4_fb11,
   i_5_fb10 := i_5_fb11,
   i_6_fb10 := i_6_fb11); 
   
   o_1_fb11 := instance_1.o_1_fb10; 
   o_2_fb11 := instance_1.o_2_fb10;
   o_3_fb11 := instance_1.o_3_fb10;
   o_4_fb11 := instance_1.o_4_fb10;
   o_5_fb11 := instance_1.o_5_fb10;
   o_6_fb11 := instance_1.o_6_fb10 
为什么点编译按钮并没有生成FB10,DB10这些块呢,以前在源文件中编然后编译就会生成了,麻烦大家讲讲啊,谢谢了

最佳答案

试了一下,确实不能编译。
按照所给的代码重新编写后成功,应该是直接复制时格式不对。而且你FB11中o_6_fb11 := instance_1.o_6_fb10 后面没有“;”,也没有END_FUNCTION_BLOCK。
 max 是关键字,不能用关键字定义变量名。

提问者对于答案的评价:
谢谢

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2018年12月1日 下午2:27
下一篇 2018年12月1日 下午2:27

相关推荐