先说一下硬件,伺服电机采用定制的关节无框力矩电机,带力矩传感器,EtherCAT通讯,想用在康复机器人上做运动控制研究。
软件方面采用TwinCAT3,这个到倍福官网https://www.beckhoff.com.cn/zh-cn/上搜索下载即可,前置需要安装Visual Studio,我用的是2017版本,具体软件安装我就不具体讲了。
如果软件配置完毕,重启后右下角应该有一个绿色的齿轮图标,这个代表TwinCAT3已经启动了,而在配置模式下则会变为蓝色。
然后打开Visual Studio 2017(TwinCAT3没有单独的应用,是基于VS做的,可以理解为游戏的DLC),会发现新建项目下多了三个TwinCAT的项目,我们选择TwinCAT Projects→TwinCAT XAE Project新建即可,记得不能有中文。
至于TwinCAT3如何操作,我建议大家参考一下倍福官方提供的培训教材,操作有问题或者教材找不到可以联系我。
接下来基于我的课题,简单讲一下如何基于TwinCAT3实现伺服电机控制。
项目新建后会自动生成一堆子目录,其中常用的有MOTION、PLC、I/O这三个。
首先对MOTION右键添加新项,选择NC/PTP NCI Configuration后Ok。
然后对Axes右键添加新项,这个轴对应你要控制的电机轴,我这里只添加了一个,如果是多个电机,这里就应该添加多个。
假设我们已经完成后面PLC和I/O的配置,找到Axis 1下的Settings,首先要Link To I/O并Link To PLC,Axis Type也要根据实际情况修改,我用的是EtherCAT通讯,所以这里选的是CANopen DS402/Profile MDP 742,通讯有问题就可以去找DS402通讯协议手册。因为电机的原因我这里Unit是以°为单位,大家根据实际电机种类修改。
PLC目录下也先右键添加新项,然后就是在References下添加依赖库,在DUTs下创建功能块,在GVLs下定义全局变量,在POUs下编写MAIN主控程序,在VISUs下编写可视化人机交互界面,这些我就不具体说了,大家只要好好看倍福提供的教材一定都能学会。
I/O目录下对Devices右键添加新项,我是用的EtherCAT通讯,大家根据实际通讯协议添加。
然后对Device 1右键添加新项,Type也要根据实际情况选择,我默认选的EK1100这个。
除了上面这些,我还新建了YT NC Scope Project,该项目能对电机的多个运动参数进行实时监控,比如位置、速度、加速度。
PS:新手刚开始接触TwinCAT3难免会遇到下面两个问题
一个是运行时报错AdsWarning:4120
说明电脑VT-X配置不对,此时应找到Real-Time→Settings→Set on Target
把W/O设置为N:1,Set后电脑会重启
重新打开TwinCAT3,点击Read from Target,只勾选CPU Limit为100%的
然后把所有TASK都分配到该内核中,重新运行应该就不会报错了
一个是运行时报错AdsError:1823
说明网卡配置不对,此时应找到I/O→Device→Adapter→Compatible Devices
将实际用到的设备Install一下
再点击Search选择Install的设备即可,重新运行应该就不会报错了
这篇文章只是分享我的经验,不一定能解决所有人的问题,希望大家还是多看看倍福提供的教材,基本问题都能解决!