以TwinCAT3和A6BF进行全闭环测试,带有编码器和绝对式光栅尺,实测有效;
扫描硬件
首先安装EtherCAT网口驱动:
点击安装网卡驱动(TWINCAT-Show Realtime Ethercat Compatibel Devices,然后选中某个设备,点击Install;
将官网下载的Panasonic_MINAS-A6BF_V1_3.xml文件导入D:\TwinCAT\3.1\Config\Io\EtherCAT,注意型号,我这里是A6BF;
https://device.panasonic.cn/ac/c/dl/manual/index.jsp?series_cd=3514
扫描硬件,若出现如下,可能是导入的xml有误(官网有两个文件,一个中文一个英文):
点击YES:
更换网卡后:
PANATERM试运行
PANATERM设置
参数设置
PANATERM ver.6.0打开
设置脉冲数
Pr3.24为编码器一圈的脉冲数=2^23(编码器分辨率)=8388608;
丝杠:
Pr3.25为电机转一圈光栅尺的脉冲数=10mm(螺距)/8(减速比)*1000/0.5(光栅尺分辨率)=2500;
齿轮齿条:
Pr3.25=48(分度圆直径)*π(分度圆周长)/120(减速比)*1000/0.5(光栅尺分辨率)≈2513;
在设定值内输入后,点击“回车”按键;
设置过速度等级
Pr5.13过速度等级设定设置为较大值,如500r/min,否则会出现过速度保护警告;
Pr6.15第2过速度等级设定Pr6.15;
设置光栅尺反向
Pr3.26光栅尺反向,若需要;
设置自动整定
Pr0.02设置实时自动调整设定,设置为1;
手动设定刚性,测定模式,次数,时间,然后开始测定(用试运行),完成后EEP写入整定的参数即可;
设置限位
默认设置:
设置方法:
正方向限位-常闭:00818181h(十进制8487297);
负方向限位-常闭:00828282h(十进制8553090);
正方向限位-常开:00010101h(十进制65793);
负方向限位-常开:00020202h(十进制131586);
可根据实际情况设置,例如接线为SI1、SI2,则设置Pr4.00,Pr4.01。Pr4.02设置为0,否则报错;
若报警可能限位与设置相反;
设置绝对式编码器
Pr0.15=1;
点击EEP下载参数;参数若有效需重新上电;
设置再生电阻Pr0.16
全闭环控制模式设定
Pr0.01=6;
Pr3.23=2;
电机位置保持
上电时序图
先打开倍福,后上电;
上电后,假设倍福一直给驱动器发送伺服开启命令,伺服开启后,2ms内制动器动作,处于抱闸状态,2ms后动态制动器解决,再过64ms制动器解除,此时使能已开启,电机静态力矩可保持位置;
电机停止时,伺服关闭的时序图
伺服停止后,t1设置为0ms,Pr4.37=0;1-6ms后动态制动器和外部制动器动作,保持位置,所以会有1-6ms无法保持位置;Pr5.06=0;
电机旋转时,伺服关闭的时序图
对象编辑器设置
对象编辑器和TwinCAT中的Coe参数一致,都可以设置;
在其他-对象编辑器(不要和参数对话框同时打开)-找到6092H,设置为8388608(注意不是8838608);
(用PANATERM试运行时,若设置过大则脉冲数达到设定值后即停止,只能重新使能再运动,试运行可适当减小,但是正常运行还是设置为默认值);
3011H(对应Pr0.11)随便设置例如125000;
读取光栅尺脉冲数
4F49H
6063H
TwinCAT设置
工作模式设置
在伺服驱动器的‘Startup’下点右键添加0x6060 Modes of operation,如下图所示:
添加完成后,根据驱动器实际的工作模式,设置0x6060。
位置模式则0x6060的值设置为8;速度模式则设置为9。
比例因子设置
光栅尺分辨率:0.5 um/脉冲=0.0005
速度设置
激活配置文件。激活完后,就可以正常使能和控制运动了。
通过TwinCAT读取驱动器报警和温度
导入库
1 //读取温度报警 2 fb_CoeRead :FB_EcCoESdoRead; 3 4 sNetId : T_AmsNetId := '192.168.43.157.1.1'; (* NetId of EtherCAT Master *) 5 nSlaveAddr_ElecCyld_1 : UINT := 1009; (* Port Number of EtherCAT Slave *) 6 nSlaveAddr_ElecCyld_2 : UINT := 1010; (* Port Number of EtherCAT Slave *) 7 nSlaveAddr_InterCyld : UINT := 1011; (* Port Number of EtherCAT Slave *) 8 nSlaveAddr_OuterCyld : UINT := 1012; (* Port Number of EtherCAT Slave *) 9 10 nErr : WORD := 16#603F; (* CoE Object Index *) 11 bufErr AT%I* : ARRAY[1..4] OF UINT; 12 bReadError AT%I* : ARRAY[1..4] OF BOOL; 13 14 nAmplTem : WORD := 16#4F62; (* CoE Object Index *) 15 bufAmplTem AT%I* : ARRAY[1..4] OF DINT; 16 bReadAmplTem AT%I* : ARRAY[1..4] OF BOOL; 17 18 nEncTem : WORD := 16#4F63; (* CoE Object Index *) 19 bufEncTem AT%I* : ARRAY[1..4] OF DINT; 20 bReadEncTem AT%I* : ARRAY[1..4] OF BOOL;
nSlaveAddr_ElecCyld_1在驱动器界面找到:
16#603F:可通过官网下载的文档《SX-DSV03244_R8_0C》找到;
驱动器限位信号读取
限位开关按下后,其中某一位发生变化:
100001100000100000000000000010
100001000000100000000000000010
100001100000100000000000000000