CODESYS EtherCAT 开发
本节主要介绍在 IGC 系列控制器上如何使用 CODESYS 对 EtherCAT 伺服电机进行控制。
环境准备
设备列表
序号 | 设备名称 | 数量 | 备注 |
---|---|---|---|
1 | IGC1503 控制器 | 1 | 必选 |
2 | EtherCAT 伺服电机系统 | 1 | 必选[1 个伺控制器 + 1 个伺服电机] |
3 | 交换机 | 1 | 可选 |
说明:
- 本节例程的代码适用于 IGC 系列控制器的 IGC1500、IGC1503。
- EtherCAT 伺服电机系统,本例使用 1 套汇川 EtherCAT 伺服电机系统(1 台 SV660NS2R8I 型伺服控制器和 1 台 400W 伺服电机);也可使用其他厂商的支持 EtherCAT 协议的伺服电机系统。
软件列表
序号 | 软件名称 | 数量 | 备注 |
---|---|---|---|
1 | CODESYS 上位机 | 1 | 必选 |
示例工程列表
序号 | 名称 | 数量 | 说明 |
---|---|---|---|
1 | basic_development.projectarchive | 1 | 本章所有操作完成后的示例工程。 |
下载列表
控制电机转动
案例使用 CODESYS 上位机,结合其 EtherCAT 协议栈与 SoftMotion 运动控制算法,对单个电机进行 CSP 模式控制,完成对单个 EtherCAT 伺服电机每秒旋转一圈的匀速运动控制。
前提条件
参照“入门开发”中 CODESYS Modbus 开发 操作,熟悉了 CODESYS 软件的基本操作,并已添加了 IGC 系列控制器的设备描述文件。
步骤 1:连接硬件设备
准备一台 IGC1503 控制器,一根网线。网线一端接入电脑,另一端接入控制器网口 X1,网口 X1 默认 IP 为 192.168.1.253。
准备一套 EtherCAT 伺服电机系统,一根网线(也可使用 EtherCAT 专用网线)。网线一端接入 IGC1503 控制器网口 X2,另一端接入伺服控制器用于 EtherCAT 通讯的 IN 端口。
把 IGC1503 控制器和伺服电机系统上电。
步骤 2:安装依赖环境
下载翼辉信息对 CODESYS EtherCAT 专属支持的 4.3.0.0 版本依赖包,并部署于 CODESYS 上位机开发环境。
打开 CODESYS 上位机,在菜单栏中选择 Tools > Package Manager 打开 Package Manager 控件。
在Package Manager界面中单击 Install,进行安装包。
进入所下载的目录,选择下载的"CODESYS EtherCAT 4.3.0.0.package"文件,单击打开进行包信息的导入。
当上位机检测信息完成后,会跳出确认弹框,单击 OK 确认添加,进行安装操作界面。
勾选确认框,单击 Next 进入下一步。
按照默认选择 Typical setup 安装方式,单击 Next 进入下一步。
按照默认选项,单击 Next 进入下一步。
单击 Finish,根据提示关闭 CODESYS 软件,依赖包开始更改 CODESYS 的环境变量,按照默认选择即可完成依赖包的导入安装。
步骤 3:安装伺服 ESI 文件
打开 CODESYS 上位机,进入主页面。单击 Tools > Device Repository,进入设备存储库界面。
在设备存储库界面单击 Install,安装伺服 ESI 文件。
说明:
ESI(EtherCAT Slave Infomation)文件是 EtherCAT 协议中的一个概念,描述了 EtherCAT 从站的链路层 EtherCAT 特性与应用层特性,格式为 XML。伺服 ESI 文件由伺服厂家提供,本例环境使用的伺服为汇川 SV660NS1R6I,用户请根据自身环境自行联系相应伺服厂家获取文件。
窗口显示如下信息后,表示 ESI 文件已正确安装,用户可关闭控件。
步骤 4:创建 IEC 工程
选择菜单栏 File > New Project 打开新建工程窗口。
选择模板为 Standard project,并填入工程名及工程存放位置,单击 OK 进入下一步。
如图 Device 选择为 IGC1503 型号,PLC_PRG 选择 LD 语言开发,单击 OK 完成新工程的创建。
双击 Device 打开 Communication Settings 界面,双击编辑设备端输入框,输入 IGC1503 X1 网口默认 IP 地址 192.168.1.253,按下 Enter 键,测试与控制器的连接。
步骤 5:添加主站设备
右击 Device,选择 Add Device,进入添加设备界面。
选择 Fieldbuses > EtherCAT > Master > EtherCAT Master Softmotion 设备,单击Add Device 完成添加。
添加成功后,工程列表如下所示。
说明:
添加设备后,Task Configuration 任务列表下会自动挂载一个 EtherCAT_Task 任务。
步骤 6:配置主站设备
双击 EtherCAT_Master_Softmotion,进入 General 界面,单击 Select... 选择设备的 EtherCAT 通信网口。
选择 _X2 网卡的 MAC 地址,单击 OK完成。
展开 Distributed Clock 界面,将 cycle time 设定为 1000 us。
说明:
EtherCAT 是一种高速实时以太网,1ms 为典型的通讯周期,可以覆盖绝大多数的运动控制场景。
步骤 7:扫描从站设备
单击主菜单中的 Online > Login,登录到 IGC1503。
在弹框中,单击 Yes 编译下载程序,将程序停留在 Stop 阶段。
右击 EtherCAT_Master_Softmotion 设备,单击 Scan for Devices... 进行从站设备的扫描。
单击 Copy All Devices to project,将扫描到的伺服设备添加至左侧工程设备树中。
工程最终的设备树,如下图所示。
步骤 8:添加电机轴
单击 Online > Logout 退出在线模式。
右击伺服设备 InoSV660N,单击 Add SoftMotion CiA402 Axis,添加一个电机轴。
点击确定,完成工程设备树中电机轴的添加。
工程最终的设备树,如下图所示。
步骤 9:配置电机轴
双击 Add SoftMotion CiA402 Axis 电机轴设备,进入 Scaling/Mapping 界面。
配置电机轴的单位计量。设置脉冲增量 increments 为 16#800000,设置应用程序单位 units in application 为 1。此参数表示 1 个应用程序单位对应 16#800000 个脉冲,伺服电机可转动 1 圈。
说明:
单位计量是伺服编码器脉冲数与 IEC 编程中的应用程序单位的比例关系,它决定了 IEC 编程中一个应用程序单位(u)对应多少个伺服脉冲(p)。
案例的目标伺服使用的是 23 位编码器(2^23 = 16#800000),即 16#800000 个脉冲增量预示电机转动 1 圈。
步骤 10:编写逻辑代码
双击 PLC_RPG,进入 IEC 编程界面。单击梯形图网络区域后右击,选择 Insert Box 添加一个功能块。
在 Input Assistant 输入助手界面,切换到 Text Search 文本搜索,搜索 MC_Power(大小写不敏感)。选择 SM3_Basic.MC_Power 功能块,单击 OK,向梯形图网络中添加一个 MC_Power 功能块。
如下图所示,在变量声明编辑区,声明刚添加的变量名和变量类型,完成功能块变量的实例化。
选择 MC_Power_0 功能块的 Status 引脚后右击,单击 Insert Box 添加一个 MC_MoveVelocity 功能块。
在 Input Assistant 输入助手界面,切换到 Text Search 文本搜索,搜索 MC_MoveVelocity(大小写不敏感)。 单击 OK,进行 MC_MoveVelocity 功能块的添加。
声明 MC_MoveVelocity 变量。如下图所示,在变量声明编辑区,声明刚添加MC_MoveVelocity 功能块,完成功能块变量的实例化。
如下设置各功能块的输入输出引脚参数。可通过输入助手进行选择,也可直接手动输入。
右击 Main_Task,选择 Delete 删除该任务。
右击 EtherCAT_Task,选择 Add Object > Program Call… 添加新任务。
在弹框中,单击 … 设置 POU to Call 为 Application 下的 PLC_RPG POU。单击 Add 完成 EtherCAT_Task 任务下的 PLC_RPG 挂在。
最终设备上结构如下图所示。
说明:
本操作目的是对齐电机轴数据的更新周期与 EtherCAT 任务循环周期。
步骤 11:查看运行效果
登录并下载 IEC 程序至控制器内,启动程序。CODESYS 上位机监控界面可实时观察伺服电机的各项数据,实际电机也以每秒1转(1 RPM)的转速匀速运行。