CODESYS Development System
属性:call_before_global_exit_slot 重要 VAR_INPUT 使用该属性的函数或方法中的声明会导致编译错误。原因:在这种情况下,调用时输入变量是未知的,这在在线更改期间隐式发生。 这个 pragma 的效果是所有设置了这个属性的函数和程序都在 GlobalExit . GlobalExit 发生在新下载或重置之前。提供的功能块 FB_Exit 方法受到影响。调用顺序由属
CODESYS Development System
属性:linkalways 语用 {attribute 'linkalways'} 指示编译器始终在编译信息中包含 POU 或库 POU。在构建期间,POU 被编译并且是应用程序代码的一部分。在下载过程中,POU 被下载到 PLC。 句法 : {attribute 'linkalways'} 插入位置:POU或库POU的声明部分的第一行 POU 可能在整个项目期间都有效(保存在 POU 查看)或整
CODESYS Development System
属性:no_check pragma 的作用是检查函数 ( 用于隐式检查的 POU ) POU 不需要。由于检查功能会影响程序的处理速度,因此将属性应用于已检查或经常调用的功能块会很有用。 您将 pragma 添加到 POU 的声明中。 句法 : {attribute 'no_check'} 插入位置:POU 声明部分的第一行 重要 该属性还会自动影响 POU 的子对象! 示例:如果在程序中输入了
CODESYS Development System
属性:no_copy 通常,在线更改需要重新分配 POU 的实例。在此过程中,实例中包含的变量的值被复制。 pragma 防止实例中包含的变量的值在在线更改过程中被复制;相反,该变量会在在线更改过程中重新初始化。这对于指向刚刚被在线更改移动并因此具有更改地址的变量的局部指针变量可能很有用。 句法 : {attribute 'no_copy'} 您将属性插入到相关变量声明行上方的声明部分。 本节内容
CODESYS Development System
属性:no_instance_in_retain pragma 的效果是用它装饰的功能模块不能被实例化为 RETAIN 多变的。 pragma 防止功能块的实例存储在保留内存中。相反,会显示一条错误消息。 句法 : {attribute 'no_instance_in_retain'} 插入位置:上方的行 FUNCTION_BLOCK 在功能块的声明部分声明。 本节内容如下 :
CODESYS Development System
编译器错误 C0209 信息 :您已为设备“<设备名称>”定义了“<编号>”应用程序。最大数量是“<数字>”。因此,您将无法下载所有应用程序。 可能的错误原因 :某些设备仅支持特定数量的应用程序(设备描述)。如果项目包含更多应用程序,则并非所有应用程序都将下载到设备。 错误修正 :从您的项目中删除应用程序或使用其他设备。 本节内容如下 :
CODESYS Development System
编译器错误 C0106 信息 :保留内存不足:变量“<变量名称>”,<字节大小>字节。 (最大连续内存间隙<字节大小>字节) 可能的错误原因 :使用的保留内存多于 PLC 上的可用内存。也有可能是增量编译导致的retain memory过于碎片化。 纠错 : 使用 干净的 用于对内存进行分段的命令。这将强制所有数据和代码在下一次编译时重新分配。 本节内容如下 :
CODESYS Development System
编译器错误 C0045 信息 :在这种情况下不允许使用“THIS” 可能的错误原因 :为了分配给当前实例,THIS 只能用于方法、动作、转换或功能块的主体中。此错误消息出现在所有其他位置。 错误修正 :仅在允许的上下文中使用 THIS。 例 319 . 错误示例: PROGRAM PLC_PRG VAR test1: INT; END_VAR THIS^.test1 := 19; 信息: C001
CODESYS Development System
编译器错误 C0051 信息 :属性值而不是“<值>”应为单字节字符串。 可能的错误原因 :字符串未按预期出现在显示的位置。 错误修正 :用字符串替换当前值。 例 325 . 错误示例: PROGRAM PLC_PRG {IF hasattribute(pou: MyPOU, MyAttribute)} {END_IF} 信息: C0051:属性值而不是 MyAttribute 需要单字节字符串。