VSOA Server 端 CODESYS 开发

更新时间:
2024-04-26
下载文档

VSOA Server 端 CODESYS 开发

本节主要介绍 VSOA Server 端如何使用 CODESYS 开发环境进行开发。

前提条件

  1. 请确保 IGC1503-1 固件版本大于 V1.0.2,否则无法使用本章节的例程。(当前发布的V1.0.1版本 IGC1503-1 不具备 CODESYS VSOA 功能)

  2. 本章节依赖于 CODESYS EtherCAT 开发 章节操作,必须先按照其内容完成 Server 端功能代码,再结合后续的操作步骤将功能代码加入 VSOA 微服务框架,实现 VSOA Server 端周期性发布电机数据功能。

操作步骤

步骤 1:创建 IEC 工程

根据“CODESYS EtherCAT 开发”章节中 步骤 4 的操作,创建 codesys_ethercat_vsoa 空白工程并扫描网络、连接设备。

步骤 2:安装依赖环境

原生 CODESYS 上位机并不具备 VSOA 开发环境,用户需要安装翼辉信息提供的 Acoinfo CODESYS Functionality.package 安装包,获取 CODESYS VSOA 功能库。

  1. 连接设备后,双击 Device ,进入 PLC Shell 界面。通过 version 指令确认 IGC1503-1 固件版本为 V1.0.2 及以上,若不符合,请 联系我们open in new window 进行相关处理。

  2. 下载 Acoinfo CODESYS Functionality.packageopen in new window, 双击安装包,在界面勾选并单击 Next

  3. 选择 Complete setup 进行完整安装功能包。

  4. 安装结束,单击 Finish 关闭安装界面。也可单击 Next 查看安装日志。

  5. 完成安装后,查看 CODESYS 的 Device Repository 中可以查看到增加了含有翼辉信息提供的 Miscellaneous 分支。

步骤 3:编辑 IEC 工程

  1. 参考“CODESYS EtherCAT 开发”中的 步骤 2步骤 3 操作,将上位机环境的 EtherCAT 相关依赖安装完成。

  2. 参考“CODESYS EtherCAT 开发”中的 步骤 5步骤 10 操作,将 codesys_ethercat_vsoa 工程的设备拓扑和伺服运动控制代码编写完成。

步骤 4:编辑 VSOA 代码

  1. 双击 Library Manager 库管理器,选择 Add Library 进行翼辉信息 VSOA 库的添加操作。

  2. Add Library 界面中,搜索 Acoinfo VSOA 关键字,添加 Acoinfo VSOA Library

  3. 添加成功后,工程的库管理界面会加入 CmpAcoinfoVsoa 组件。

  4. 右击 Application,选择 Add Object > POU 创建新的功能块。

  5. 新功能块命名为 VSOA_MOTOR,并选择实现 ITF_VSOA_MOTOR 接口,实现语言均选择 ST 语言。

    说明:

    • 在功能库 CmpAcoinfoVsoa 中,翼辉信息提供了一组 VSOA 物模型接口,接口中定义了方法(METHOD)与属性(PROPERTY),分别对应 VSOA 中的远端过程调用方法(RPC)与主题发布(Publish)概念,使 PLC 工程师更方便地体验与使用 VSOA 协议栈。
    • CODESYS VSOA 物模型接口仍处于不断丰富与迭代的阶段,本章节以电机模型为例,完成 VSOA 数据通信示例。

    ITF_VSOA_MOTOR 接口包含的方法与属性如下:

    名称类型含义返回值 / 数据类型
    CONTROL方法电机启停方法BOOL
    INDEX属性电机编号UINT
    NAME属性电机名STRING
    PUB_CYCLE属性数据发布周期DINT
    VELOCITY属性运行速度LREAL
  6. 双击 VSOA_MOTOR 功能块,打开代码编辑界面,声明所需要的本地变量,如下图所示。

  7. 实现 VSOA_MOTOR 功能块中 ITF_VSOA_MOTOR 接口定义的方法(METHOD)与属性(PROPERTY)。

    说明:

    以下接口实现仅用作参考示例,用户可以按照自己场景的实际需求实现接口。

    • VSOA_MOTOR.CONTROL

    • VSOA_MOTOR.INDEX.Get

    • VSOA_MOTOR.NAME.Get

    • VSOA_MOTOR.PUB_CYCLE.Get

    • VSOA_MOTOR.PUB_CYCLE.Set

    • VSOA_MOTOR.RUNNING_FLAG.Get

    • VSOA_MOTOR.VELOCITY.Get

    • VSOA_MOTOR.VELOCITY.Set

  8. 右击 Application,选择 Add Object > Global Variable List 新建一个全局变量列表 GVL。

  9. GVL 中声明一个功能块实例,类型为 VSOA_MOTOR,并命名为 fbVsoaMotor

  10. 右击 Application,选择 Add Object > POU 新建一个 PRG,命名为 PRG_VSOA_SERVER,使用 CFC 语言。

  11. 进入 PRG_VSOA_SERVER,在变量声明区域声明 VSOA 相关功能块实例与通信参数变量,在编码区实现如下代码逻辑。

  12. 右击 Task Configuration 选择 Add Object > Task 添加一个任务,命名为VSOA_SERVER_TASK

  13. 双击 VSOA_SERVER_TASK 进入任务设置界面,设置优先级设定为 10,任务类型为 FreeWheeling(自由滑行),并将 PRG_VSOA_SERVER 挂在 VSOA_SERVER_TASK 任务下。

  14. 进入 PLC_PRG,如下修改伺服电机的控制逻辑代码。

步骤 5:全览 IEC 工程

完整 VSOA Server 端 CODESYS 开发工程的结构及代码请参考 codesys_ethercat_vsoa 工程示例open in new window

步骤 6:查看运行效果

登录并下载 IEC 程序至控制器内,启动程序,CODESYS VSOA Server 便周期性对外发布该电机模型的属性数据。

说明:

具体通信效果请结合下一章节 VSOA Client 开发查看。

文档内容是否对您有所帮助?
有帮助
没帮助