Skip to main content

打开 V2.3 项目

提示

A CoDeSys V2.3 项目只能使用 32 位版本进行转换 CODESYS V3。为此,需要将 CODESYS V2.3 Converter 软件包必须安装在 CODESYS V3。该软件包可在 CODESYS Store International

如果您使用的是 64 位版本 CODESYSV3,那么您还需要安装32位版本进行转换。转换完成后,您可以在以下位置打开项目 CODESYS 64 位。

要求:您已安装并启动 CODESYS V3。这 CODESYS V2.3 Converter 附加组件已安装。

  1. 点击 文件 → 打开项目.

  2. 在里面 打开项目 对话框,单击任意 CoDeSys V2.3 文件系统中的项目或项目存档。对于搜索,您可以在对话框的右下角设置文件过滤器。

    如果另一个项目仍然打开, CODESYS 指示您相应地关闭它。在那之后 CoDeSys V2.3 转换器自动启动。

  3. V2.3 转换器检查项目是否可以无错误地编译。如果是这样,那么它会自动处理项目。

  4. 笔记:

    如果项目包含具有转换器无法解析的占位符变量的可视化对象,则相应的可视化将显示为一个组来代替可视化引用。

  5. 设备转换:当在要打开的项目中引用了一个设备(目标系统)并且没有为该设备定义转换规则时,则 设备转换 对话框打开。在此处指定转换器是否以及如何将先前的设备引用替换为当前设备引用。

    为了替换,转换器在转换项目的设备树中添加了新设备来代替旧设备。

  6. 库转换:如果在要打开的项目中引用了一个尚未定义转换规则的库,则 库参考转换 对话框打开。在此处指定转换器是否以及如何将现有库引用替换为当前库引用。

    如果您选择缺少项目信息的库,则 输入项目信息 对话框打开以指定此信息。

    转换器加载适配的项目。注意:最近定义的库引用可以在位于 POUs 视图的全局库管理器中找到。

重复使用时的限制 CoDeSys V2.3 项目在 CODESYS

汇编

该项目必须是可编译的,没有错误 CoDeSys V2.3.笔记: CODESYS Stills 发出警告 V3 编译时。这些是由隐式转换引起的,这可能导致信息丢失(例如通过符号更改)。

CODESYS V3 根据 switch 变量检查“case”语句: CASE USINT OF INT 未签入 CoDeSys V2.3, 但导入时会发出错误消息 V3.

控制器配置

控制器配置 一个 CoDeSys V2.3 项目无法导入 V3.您必须重新创建设备配置并重新声明控制器配置中使用的变量。

网络变量

对于网络变量, CODESYS 创建 V3 GVL 对象并导入变量声明。但是,不会导入网络属性。请参阅网络变量交换的描述。

图书馆

库中使用的所有变量和常量也必须在库中声明。必须可以在 CoDeSys V2.3 没有错误。

句法和语义限制,因为 CoDeSys V2.3

  • FUNCTIONBLOCK 不是有效的关键字,而不是 FUNCTION_BLOCK.

  • TYPE (结构声明)后面必须跟一个“:”。

  • ARRAY 初始化** 必须有括号。

  • INI 不再支持(您必须在代码中用 Init 方法替换它)。

  • 在函数调用中,不再可能将显式参数分配与隐式参数分配混合在一起。因此可以更改参数输入分配的顺序:

    fun(formal1 := actual1, actual2); // -> error message

    fun(formal2 := actual2, formal1 := actual1); // same semantics as the following line:

    fun(formal1 := actual1, formal2 := actual2);

  • CoDeSys V2.3 pragma 不会被转换。他们在 V3.

  • TRUNC 运算符现在转换为数据类型 DINT 代替 INT. CODESYS 自动为 a 添加相应的类型转换 CoDeSys V2.3 进口。

可视化

占位符及其替换

  • 占位符: PLC_PRG.$LocalVar$.aArr[0]

    VAR_INPUT: localVar: MyStruct;

    用法: localVar.aArr[0]

    代换: localVar := PLC_PRG.myStructVar

  • 占位符: $Var$.aArr[0]

    VAR_INPUT: Var : MyStruct;

    用法: Var.aArr[0]

    代换: Var := PLC_PRG.myStructVar

  • 占位符: PLC_PRG.myStructVar.aArr[$Index$]

    VAR_INPUT: Index : INT;

    用法: PLC_PRG.myStructVar.aArr[Index]

    代换: Index := 0

有问题的占位符

  • 文本中的占位符

    文本: $axle$-Axis

    更正:

    localVar : STRING;

    文本: %s-Axis

    文本变量: localVar

  • 占位符仅描述变量名的一部分

    axis$axis$spur$spur$.fActPosition

    更正:

    只定义一个占位符 axis$axis$spur$spur$ 占位符。

    axis_spur : MyFunctionBlock;

    然后直接调用相应的功能块实例。

    axis_spur := PLC_PRG.axis1spur2;

  • 占位符被表达式替换

    $Expression$ -> PLC_PRG.var1 + PLC_PRG.var2

    更正:

    您必须将表达式传输到辅助变量,然后将此辅助变量作为实例传输。

  • 占位符描述程序名称:$Program$.bToggle - PLC_PRG.bToggle D

    转换器无法将这种形式的设置占位符转移到 V3.但是,您很少会在实践中使用它。

  • 占位符被不同的类型替换:

    $Var$

    -> 替换 1: PLC_PRG.n (INT)

    -> 替换 2: PLC_PRG.st (细绳)

    更正:

    为此在界面中定义两个不同的占位符。

  • 可视化位于库中。当您在那里使用可视化时,您可以稍后从任何所需项目中替换占位符。

    更正:

    在这里你必须更换 TYPE_NONE 数据类型手动。但是,您也可以将库集成到项目中并正确替换占位符。如果您现在导入此项目,则数据类型也会在库中正确确定。

不可导入元素

趋势,ActiveX:导入是不可能的,因为实现有很大不同。在 V3,发出相应的警告,需要进行相应的人工复制。

编程语言:ST、IL、FBD

无限制

编程语言:LD

CODESYS 以这样的方式导入具有并行分支的功能块,即每个分支都重复分支之前的部分。这对应于生成的代码 CoDeSys V2.3 为并行分支创建。

_cds_img_v23import_ld_example.png

编程语言:SFC

  • 用户显式声明的步变量必须在 SFC 编辑器中本地声明。您不能将它们声明为 VAR_INPUT、VAR_OUTPUT 或 VAR_INOUT,因为 CODESYS 无法自动调整呼叫。说明:步骤不再使用布尔变量来管理内部状态 V3, 也是类型的结构 SFCStepType.

  • 标识符:以下标识符不能以下划线字符开头:

    • 树中 IEC 动作的名称

    • 在 IEC 关联列表中调用的变量

    • 已编程的转换名称

解释: 在 V3, 隐含变量 CODESYS 为动作创建的下划线字符作为前缀。将产生带有双下划线字符的无效标识符。

编程语言:CFC

  • 大箱子:大箱子的布局可能会因进口而失去质量。这些框可能彼此重叠太多。 (计划更正。)

  • 宏:不能导入宏。 (计划更正。)