EtherCAT逐渐成为工业控制的主流总线,本节采用树莓派4B硬件,安装Codesys支持库,采用EtherCAT通讯方式,控制锐特机电的总线步进驱动器ECR60,实现对步进电机的运动控制。
主要参考:http://bbs.hicodesys.com/thread-7357-1-1.html
一、Codesys环境安装
1、前往中文官网下载最新的Codesys环境,按照提示完成安装。
2、下载树莓派运行环境:CODESYS Control for Raspberry PI 3.5.16.0
3、在codesys中安装Raspberry PI package,点击“Install”,选择下载好的package,等等安装完成。
4、新建项目,选择好项目名称和路径,接下来选择树莓派作为主机,
在项目中,首先安装raspberry 支持库到树莓派,
设置好树莓派用户名,密码,IP地址,点击“Install”即可,等等安装完成
5、扫描树莓派主机,选择对应的树莓派设备即可。
6、添加深圳锐特机电技术有限公司的EtherCAT步进驱动器ECR60描述文件。
在Tool -> Device Repository,中“Install”,选择对应的ECR60V200.xml文件,安装完成后如下图:
7、添加EtherCAT Master主占,在Device右键“Add Device”,选择“EtherCAT Master”。双击“EtherCAT_Master”进行设置,选择网口为”eth0″:
二、EtherCAT驱动器及树莓派准备
2.1 将ECR60连接好电源,EtherCAT In网口通过网线连接至树莓派的有线网口,保持无线网络连接,记录下此时的IP地址。
2.2 接好电机
2.3 给驱动器通电,此时驱动器的PWR绿色灯常亮,网口的橙色灯亮起,表示网线连接正常。
2.4 扫面步进驱动器。Online —> Login。然后再Ether_Master 选项,右键“Scan devices”,如下图,可以查找到ECR60驱动器:
选择驱动器,点击“Copy device to project”,将驱动器添加到项目中。
2.5 ECR60设置
本单元首先进行简单的EtherCAT IO测试。ECR60具有6个光电隔离的输入。IN3~IN6输入端口共阳接法,24V电平逻辑。我们做一个测试,读取IN3端口的状态,反应到程序中,并依据输入状态,设置树莓派的输出端口状态。
首先,退出登陆:Online —> Logout。在项目中默认的POU中编写简单的程序:
双击“ECR60”,在“EtherCAT I/O Mapping”中映射变量,
Pi4 需要更改树莓派GPIO的版本,在项目的GPIOs_A_B中右键,选择“Update device”,选择“GPIOs B+/Pi2”。
在GPIOs_A_B中,首先在GPIOs Parameters中,双击 GPIO4 的Value选项,将它设置为输出“Output”,然后设置GPIOs I/O Mapping,我们将Bit4映射到变量Xlight。
找一个LED灯,LED正极串接1个点2K的限流电阻,再连接到GPIO4引脚,我的PI B版本位于左侧向下第4引脚,LED负极接左侧最下面的GND引脚。引脚的分配可以通过指令:gpio readall读取。
将PLC_PRG任务拖动到“EtherCAT_Task”,编译项目,再次登陆PI,将程序下载到树莓派。点击“Debug”—>Start。如果一切设置正确,PLC将运行如下图:
在ECR60 I/O Mapping界面可以监控IN3的输入状态,此时在ECR60的驱动器输入接口,COM+接入24V正极,IN3接入24V电源的负极,可以观察到Bit0 变成“TRUE”,断开IN3,变为FALSE。
在PLC_PRG里面可以监控到对应变量的变化,此时LED灯依据IN3的输入状态发生变化。
至此,树莓派和锐特机电的总线步进驱动器ECR60可以正常连接。
下一节介绍树莓派对ECR60的CIA402运动控制功能。