记录使用MC403连接松下驱动器进行闭环控制的过程,两个设备都是第一次用,有不对的地方请大佬指出。
驱动器:
松下A6 MCD多功能型伺服(型号8位F,位置控制型E和通用通讯型G不支持模拟量输入)。将控制器调整为速度模式:
P0.01 改成1,需要上电生效,参考松下设置该类参数的方法
P3.02 可以调整模拟量与转速之间的关系
P3.03 可以调整指令的方向
P0.11 可以修改电机每圈旋转输出的脉冲数,记录下来后边在trio中设置要用
P4.22 调整零漂
连接线:
按速度模式接线,由于主要测试用,son等I/O没有接,主要是将编码器AB项和模拟量输入接到TRIO上。网上有资料说信号地要接(5口),不然会损坏控制器,谨慎起见就接了ps:后来细看松下说明书,这里是强调过要接的。
TRIO
M403控制器P823(motion perfect软件里读出来是P824,但装置背后铭牌写的P823,也不知道到底是哪个),支持两路模拟量输出;三个db9接口可配置成编码器输入,其中两个可作为伺服反馈,因此可以做两个模拟量伺服控制。
在使用模拟量输出时,要注意需要将trio的中间IO端子24v供电。模拟量输入输出和该IO端子使用同样的电源。
在trio中将轴类型设为ATYPE=44,事实上对与模拟量轴,还有别的可以选,这里虽然没接z但选了这种。我是在MC_CONFIG文件里写的,之前直接写在程序里也行。
UNITS 是单位的设定,设定方法参考P0.11,如P0.11=2500,认为电机转一圈为360deg,考虑四倍频,UNITS=4*2500/360。连接完成后,伺服上电,可以使用trio的axis parameter调整零漂——静止时观察ENCODER不动即可。
在进行闭环控制前,要确认模拟量输出方向和编码器方向是否相同,可以先SERVO=OFF,使用DAC指令输出一个正电压,看编码器值是否增大。如果相反可以用encoderratio=(-1,1)更改编码器方向。如果上来就用闭环,在模拟量方向和 编码器方向相反会形成正反馈,导致飞车。
编写简单的运动程序,测试电机运动,让电机以360u/s运动,即60rpm,通过驱动器D01.SPD查看电机转速为60,调试完成。这里的servo=on意思为使用伺服控制,如果为off,可以用dac指令单独让模拟量输出,调试开始时可以用这个方法验证模拟量输出是否正确。M403是12位的模拟量输出,1024时输出为5V。此外也可通过trio的oscilloscope查看曲线
楼主最近还看过