倍福TwinCAT CNC轴如何做NC轴的主轴

CNC轴和NC轴虽然都在Twin CAT的软件中,但是分属不同的系统,如何实现CNC轴做NC的主轴,实现联动呢?


首先来看下NC轴的联动:


1.电子齿轮


单主轴电子齿轮,固定速度系数


倍福TwinCAT CNC轴如何做NC轴的主轴

倍福TwinCAT CNC轴如何做NC轴的主轴

​编辑


单主轴电子齿轮,动态速度系数


倍福TwinCAT CNC轴如何做NC轴的主轴

倍福TwinCAT CNC轴如何做NC轴的主轴

​编辑


多主轴电子齿轮,动态系数


倍福TwinCAT CNC轴如何做NC轴的主轴

倍福TwinCAT CNC轴如何做NC轴的主轴

​编辑


电子齿轮解耦


倍福TwinCAT CNC轴如何做NC轴的主轴

倍福TwinCAT CNC轴如何做NC轴的主轴

​编辑


2.电子凸轮


倍福TwinCAT CNC轴如何做NC轴的主轴

倍福TwinCAT CNC轴如何做NC轴的主轴

​编辑


倍福TwinCAT CNC轴如何做NC轴的主轴

倍福TwinCAT CNC轴如何做NC轴的主轴

​编辑


倍福TwinCAT CNC轴如何做NC轴的主轴

倍福TwinCAT CNC轴如何做NC轴的主轴

​编辑


不管是电子齿轮还是电子凸轮,都是实现对应的FB来实现的。


CNC轴的耦合


CNC轴的耦合也有两种方式,


通过HLI命令实现,如下代码,实现了将CNC中的X轴做Y轴主轴的耦合和解耦操作,



pAC[2]^.addr^.McControlLr_Data.MCControlAxisCouplingUnit_AxisCoupling.X_Enable := TRUE;
pAC[2]^.addr^.McControlLr_Data.MCControlAxisCouplingUnit_AxisCoupling.AxisCouplingCommand.desc[1].AxisNumber := 1;
pAC[2]^.addr^.McControlLr_Data.MCControlAxisCouplingUnit_AxisCoupling.AxisCouplingCommand.desc[1].FractDenominator := 1;
pAC[2]^.addr^.McControlLr_Data.MCControlAxisCouplingUnit_AxisCoupling.AxisCouplingCommand.desc[1].FractNumerator := 1;

CASE eCoupledStep OF
0:
	IF bCoupled THEN
		pAC[2]^.addr^.McControlLr_Data.MCControlAxisCouplingUnit_AxisCoupling.AxisCouplingCommand.desc[1].CouplingMode := HLI_AXIS_COUPLING_DIRECT ;
		eCoupledStep := 100;
	END_IF

100:
	pAC[2]^.addr^.McControlLr_Data.MCControlAxisCouplingUnit_AxisCoupling.AxisCouplingCommand.X_Semaphor := TRUE;
	IF pAC[2]^.addr^.McControlLr_Data.MCControlAxisCouplingUnit_AxisCoupling.AxisCouplingState.X_State THEN
		pAC[2]^.addr^.McControlLr_Data.MCControlAxisCouplingUnit_AxisCoupling.AxisCouplingCommand.X_Semaphor := FALSE;
		eCoupledStep := 200;
	END_IF

200:
	IF NOT bCoupled THEN
		pAC[2]^.addr^.McControlLr_Data.MCControlAxisCouplingUnit_AxisCoupling.AxisCouplingCommand.desc[1].CouplingMode := HLI_AXIS_COUPLING_INACTIVE ;
		eCoupledStep := 300;
	END_IF

300:
	pAC[2]^.addr^.McControlLr_Data.MCControlAxisCouplingUnit_AxisCoupling.AxisCouplingCommand.X_Semaphor := TRUE;
	IF NOT pAC[2]^.addr^.McControlLr_Data.MCControlAxisCouplingUnit_AxisCoupling.AxisCouplingState.X_State THEN
		pAC[2]^.addr^.McControlLr_Data.MCControlAxisCouplingUnit_AxisCoupling.AxisCouplingCommand.X_Semaphor := FALSE;
		eCoupledStep := 0;
	END_IF

END_CASE


倍福TwinCAT CNC轴如何做NC轴的主轴


代码说明:


使能CNC轴耦合功能
pAC[2]^.addr^.McControlLr_Data.MCControlAxisCouplingUnit_AxisCoupling.X_Enable := TRUE;

指定CNC主轴的轴号
pAC[2]^.addr^.McControlLr_Data.MCControlAxisCouplingUnit_AxisCoupling.AxisCouplingCommand.desc[1].AxisNumber := 1;

系数比列设置(分子、分母)
pAC[2]^.addr^.McControlLr_Data.MCControlAxisCouplingUnit_AxisCoupling.AxisCouplingCommand.desc[1].FractDenominator := 1;

pAC[2]^.addr^.McControlLr_Data.MCControlAxisCouplingUnit_AxisCoupling.AxisCouplingCommand.desc[1].FractNumerator := 1;


倍福TwinCAT CNC轴如何做NC轴的主轴


耦合方式


直接耦合
pAC[2]^.addr^.McControlLr_Data.MCControlAxisCouplingUnit_AxisCoupling.AxisCouplingCommand.desc[1].CouplingMode := HLI_AXIS_COUPLING_DIRECT ;

解耦		pAC[2]^.addr^.McControlLr_Data.MCControlAxisCouplingUnit_AxisCoupling.AxisCouplingCommand.desc[1].CouplingMode := HLI_AXIS_COUPLING_INACTIVE ;


触发命令,上升沿有效	pAC[2]^.addr^.McControlLr_Data.MCControlAxisCouplingUnit_AxisCoupling.AxisCouplingCommand.X_Semaphor


倍福TwinCAT CNC轴如何做NC轴的主轴


耦合方式还有一下几种,有兴趣的可以测试下


HLI_AXIS_COUPLING_INACTIVE = 0,

HLI_AXIS_COUPLING_ZERO = 1,

HLI_AXIS_COUPLING_DIRECT = 2,

HLI_AXIS_COUPLING_MIRROR = 3

HLI_AXIS_COUPLING_FRACT = 4


倍福TwinCAT CNC轴如何做NC轴的主轴


通过G代码实现的耦合


轴名称使用方式

#SET AX LINK [ , [ =,G [,, limit_2>] ]
{, [ =,G [,, limit_2>] ] } ]

轴序号方式
#AX LINK [NBR] [ , [ =,G [,, limit_2>] ]
{, [ =,G [,, limit_2>] ] } ]


参数定义:
 耦合组序号;
 耦合组中的 从轴名;
耦合组中的主轴名;
NBR 耦合组必须以轴序号命名主轴从轴;
G 耦合组按照GANTRY轴类型;
 第一段限位,可通过RESET消除的报警段设置;
 第二段限位,不可通过reset消除,重启twincat消除报警,手动纠正变差。


倍福TwinCAT CNC轴如何做NC轴的主轴


CNC轴做NC轴主轴


首先,nc轴的主轴只能是nc轴,现在我们就需要把cnc轴的数据转移到nc轴上。如何实现转移呢?


在nc轴中,创建一个编码器轴,用来接收cn不想像傻子一样。


在prc程序中,创建一个输出的变量,用来接收CNC轴的位置。


VisualY_Pos AT %Q* :  UDINT;

VisualY_Pos :=  (pAC[2]^.addr^.StateLR_Data.D_ActivePositionACS) ;


倍福TwinCAT CNC轴如何做NC轴的主轴


变量链接到NC轴的编码器轴上去,如此以来, NC轴便获取到了CNC轴的数据。


倍福TwinCAT CNC轴如何做NC轴的主轴

倍福TwinCAT CNC轴如何做NC轴的主轴

​编辑


这样一来。便可以用NC轴的方式来实现多轴联动了。

发表评论
留言与评论(共有 0 条评论) “”
   
验证码:

相关文章

推荐文章