描述:
在块注释的情况下,S7-SCL中如果一行中有行注释“//”,且注释中输入了“(*”和“*)”,则无法识别注释的起始和结束。图 01 显示了在最后一行包含行注释(//...//)的块注释样例。而且,最后一行中的块注释以“*)”结束。下一个IF语句则无法被识别(没有标记成蓝色),并只被编译器编译为注释。在某些情况下信息“Source end reached before block end”在编译过程中显示。
在S7-SCL V5.3及更高版本中不再允许这种注释输入方法,因为在先前的S7-SCL版本中,该方法曾导致程序崩溃。块注释的结尾不能直接位于行注释之后。
补救措施:
将块注释的结尾挪到下一行中(如图 02 所示)。
在S7-SCL源中不仅要检查起始块注释字符“(*”和结束块注释字符“*)”的数量,还要检查以逻辑限制开始和结束的注释。跨块的注释不能在一个块中开始然后跨越块限制被创建。
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc339362.html