为什么在激活的块注释中无法识别注释的结束?

描述:
在块注释的情况下,S7-SCL中如果一行中有行注释“//”,且注释中输入了“(*”和“*)”,则无法识别注释的起始和结束。图 01 显示了在最后一行包含行注释(//…//)的块注释样例。而且,最后一行中的块注释以“*)”结束。下一个IF语句则无法被识别(没有标记成蓝色),并只被编译器编译为注释。在某些情况下信息“Source end reached before block end”在编译过程中显示。

为什么在激活的块注释中无法识别注释的结束?
图 01

在S7-SCL V5.3及更高版本中不再允许这种注释输入方法,因为在先前的S7-SCL版本中,该方法曾导致程序崩溃。块注释的结尾不能直接位于行注释之后。

补救措施:
将块注释的结尾挪到下一行中(如图 02 所示)。

为什么在激活的块注释中无法识别注释的结束?
图 02

在S7-SCL源中不仅要检查起始块注释字符“(*”和结束块注释字符“*)”的数量,还要检查以逻辑限制开始和结束的注释。跨块的注释不能在一个块中开始然后跨越块限制被创建。

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年11月5日
下一篇 2021年4月12日

相关推荐

发表回复

登录后才能评论