Beckhoff EL7037参数设置及寻参模块的测试

参数设置

I/O-Devices-Device 3 (找到对应的设备)-Term1(EK1100)-Term2(EL7031)-Coe Online
在这里插入图片描述
8010:01 最大电流设置为600mA;
8010:02 保持电流设置为300mA;
8010:03 正常电压设置为24000mV;
8010:06 满步设置为200,表示1圈走200个脉冲;
备注:以上参数和具体电机型号有关。
在这里插入图片描述
8012:01:操作模式设置为Automatic;
8012:08:反馈模式设置为Encoder(外部光栅尺反馈);
8012:05:基频设置为2000,表示1秒走2000个脉冲,即1秒走10圈,即速度为3600°/s。

比例因子设置

按长度设置(默认)

假设减速比12:1,丝杆导程1mm,Axis1-Enc-Parameter-Scaling Factor Numerator设置为 0.0005,表示1个脉冲走0.0005mm,Scaling Factor Denominator设置为默认值1。
电机转12圈
= 减速机输出轴转动1圈
= 平移台移动1mm
= 光栅尺输出2000个脉冲
Scaling Factor Numerator=1/2000=0.0005
在Motion-NC-Task 1 SAF – Axes – Axis 1 – Parameter 中的Reference Velocity 和Maximum Velocity设置为0.83333333mm/s(1s走10圈,电机12圈走1mm,对应1s走0.8333mm)(单位只是参考,没有实际意义)。

按角度设置

假设减速比12:1,丝杆导程1mm ,Axis1-Enc-Parameter-Scaling Factor Numerator设置为0.18,表示1个脉冲走0.18°,Scaling Factor Denominator设置为默认值1。
电机转12圈
= 减速机输出轴转动1圈
= 平移台移动1mm
= 光栅尺输出2000个脉冲
Scaling Factor Numerator=360/2000=0.18
在Motion-NC-Task 1 SAF – Axes – Axis 1 – Parameter 中的Reference Velocity 和Maximum Velocity设置为3600°/s(单位只是参考,没有实际意义)。
在这里插入图片描述

光栅尺反向

根据光栅尺的安装情况设置。
在这里插入图片描述

寻参

链接零位检测信号和PLC地址,EL7037-ENC Status compact-Status-Status of input C,链接到PLC程序Main.Axis_13_CaliCam中。
设置寻参速度为0.02mm/s(寻参速度经过测试,要很慢,不然读不出来)
在这里插入图片描述
设置NC和PLC的周期为5ms(因为扫描周期过长的话,参考零点的IO量读取不到)
刚开始测试时,偶尔可以读到参考点信号,大部分读不出来,后来发现是采样频率过低(PLC和NC的周期过长),寻参速度降低并扫描周期缩短后,可以读到参考点信号。
在这里插入图片描述
在这里插入图片描述
参考零位的信号,从Input C读取。
在这里插入图片描述
最终的参考点信号,如下图所示
在这里插入图片描述
寻参模块的思路如下:
寻参时,先快速走到负向极限位置,再快速正向走9mm接近参考点,然后运行寻参模块MC_Home,先正向走,过零位后出现脉冲,再正向走一点,再反向走再次到达零位后停止。
在这里插入图片描述
寻参PLC程序如下:
FB模块变量定义:

FUNCTION_BLOCK Axis13_PTP EXTENDS Axis_Base_PTP
VAR_INPUT
END_VAR
VAR_OUTPUT
END_VAR
VAR
	mcHome: MC_Home;
	mcHaltStep: MC_Halt;
	mcMoveRelaStep2: MC_MoveRelative;
	mcMoveRelaStep1: MC_MoveRelative;
	mcResetStep: MC_Reset;
END_VAR
VAR_STAT
	bStep1 :BOOL :=FALSE;
	bStep2 :BOOL :=FALSE;
	bHome :BOOL  :=FALSE;
END_VAR

Method模块变量定义:

METHOD PUBLIC M_Home : BOOL
VAR_INPUT
	bExcute 	: BOOL;
	bCalibrationCam : BOOL;
END_VAR

VAR_OUTPUT
    bDone    : BOOL; (* B *)
    bBusy    : BOOL; (* V *)
    bActive  : BOOL; (* V *)
    bError   : BOOL; (* B *)
    dErrorID : UDINT;(* E *)
END_VAR

在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/woshigaowei5146/article/details/106531086