VSOA Server 端 CODESYS 开发
本节主要介绍 VSOA Server 端如何使用 CODESYS 开发环境进行开发。
前提条件
请确保 IGC1503-1 固件版本大于 V1.0.2,否则无法使用本章节的例程。(当前发布的V1.0.1版本 IGC1503-1 不具备 CODESYS VSOA 功能)
本章节依赖于 CODESYS EtherCAT 开发 章节操作,必须先按照其内容完成 Server 端功能代码,再结合后续的操作步骤将功能代码加入 VSOA 微服务框架,实现 VSOA Server 端周期性发布电机数据功能。
操作步骤
步骤 1:创建 IEC 工程
根据“CODESYS EtherCAT 开发”章节中 步骤 4 的操作,创建 codesys_ethercat_vsoa 空白工程并扫描网络、连接设备。
步骤 2:安装依赖环境
原生 CODESYS 上位机并不具备 VSOA 开发环境,用户需要安装翼辉信息提供的 Acoinfo CODESYS Functionality.package 安装包,获取 CODESYS VSOA 功能库。
连接设备后,双击 Device ,进入 PLC Shell 界面。通过
version
指令确认 IGC1503-1 固件版本为 V1.0.2 及以上,若不符合,请 联系我们 进行相关处理。下载 Acoinfo CODESYS Functionality.package, 双击安装包,在界面勾选并单击 Next。
选择 Complete setup 进行完整安装功能包。
安装结束,单击 Finish 关闭安装界面。也可单击 Next 查看安装日志。
完成安装后,查看 CODESYS 的 Device Repository 中可以查看到增加了含有翼辉信息提供的 Miscellaneous 分支。
步骤 3:编辑 IEC 工程
参考“CODESYS EtherCAT 开发”中的 步骤 2 至 步骤 3 操作,将上位机环境的 EtherCAT 相关依赖安装完成。
参考“CODESYS EtherCAT 开发”中的 步骤 5 至 步骤 10 操作,将 codesys_ethercat_vsoa 工程的设备拓扑和伺服运动控制代码编写完成。
步骤 4:编辑 VSOA 代码
双击 Library Manager 库管理器,选择 Add Library 进行翼辉信息 VSOA 库的添加操作。
Add Library 界面中,搜索 Acoinfo VSOA 关键字,添加 Acoinfo VSOA Library。
添加成功后,工程的库管理界面会加入 CmpAcoinfoVsoa 组件。
右击 Application,选择 Add Object > POU 创建新的功能块。
新功能块命名为 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 双击 VSOA_MOTOR 功能块,打开代码编辑界面,声明所需要的本地变量,如下图所示。
实现 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
右击 Application,选择 Add Object > Global Variable List 新建一个全局变量列表 GVL。
在 GVL 中声明一个功能块实例,类型为 VSOA_MOTOR,并命名为 fbVsoaMotor。
右击 Application,选择 Add Object > POU 新建一个 PRG,命名为 PRG_VSOA_SERVER,使用 CFC 语言。
进入 PRG_VSOA_SERVER,在变量声明区域声明 VSOA 相关功能块实例与通信参数变量,在编码区实现如下代码逻辑。
右击 Task Configuration 选择 Add Object > Task 添加一个任务,命名为VSOA_SERVER_TASK。
双击 VSOA_SERVER_TASK 进入任务设置界面,设置优先级设定为 10,任务类型为 FreeWheeling(自由滑行),并将 PRG_VSOA_SERVER 挂在 VSOA_SERVER_TASK 任务下。
进入 PLC_PRG,如下修改伺服电机的控制逻辑代码。
步骤 5:全览 IEC 工程
完整 VSOA Server 端 CODESYS 开发工程的结构及代码请参考 codesys_ethercat_vsoa 工程示例。
步骤 6:查看运行效果
登录并下载 IEC 程序至控制器内,启动程序,CODESYS VSOA Server 便周期性对外发布该电机模型的属性数据。
说明:
具体通信效果请结合下一章节 VSOA Client 开发查看。