Bootstrap

汇川使用笔记5:伺服点动测试

目录

 

1、用户程序创建

1.1 创建程序

1.2 程序添加到任务中 

 2、伺服功能块测试

2.1 伺服使能程序

 2.2 添加其他轴控功能

2.3 测试

3 电机内部参数设置问题

3.1 齿轮比问题

 3.2 电机启停速度曲线选择

工程下载


1、用户程序创建

1.1 创建程序

在Application目录下添加新的文件夹“用户程序”,添加程序 : MotionTest

1.2 程序添加到任务中 

将新创建的程序MotionTest,添加到任务配置中

 2、伺服功能块测试

       伺服的功能块,使用IEC61131-3标准的PLCOpen方式开发。功能块分为单轴控制、多轴控制、伺服状态等。功能块库保存在库文件:SM3_Basic=SM3_Basic,4.2.2.0中。

2.1 伺服使能程序

 输入助手使用:在程序编辑框中,按键盘F2。

然后生成功能块程序,添加关联变量

 下载程序、运行。然后监视环境下测试

 2.2 添加其他轴控功能

使用上述方法分别添加MC_JOG、MC_Stop、MC_Reset功能块,添加其它相关变量

PROGRAM MotionTest
VAR
	//轴控变量
	bi_Power:							BOOL;				//控制使能		
	bi_Reset:							BOOL;
	bi_Stop:							BOOL;
	bi_Jog_Forward:						BOOL;				//正向点动
	bi_Jog_Reverse:						BOOL;				//反向点动	
	bi_MoveAdditive:					BOOL;
	
	//轴控参数
	di_Jog_Velocity:					LREAL:=10;			//单位	转/秒
	di_Jog_Acceleration:				LREAL:=20;
	di_Jog_Deceleration:				LREAL:=20;
	di_Jog_Jerk:						LREAL:=0;
	di_MoveAdditive_Distance:			LREAL:=1000;
	di_MoveAdditive_Velocity:			LREAL:=20;
	di_MoveAdditive_Acceleration:		LREAL:=10;
	di_MoveAdditive_Deceleration:		LREAL:=10;
	di_MoveAdditive_Jerk:				LREAL:=0;
	di_Stop_Deceleration:				LREAL:=4000;		//停机减速度
	di_Stop_Jerk:						LREAL:=0;			//停机减减速度
	
	//轴控变量	
	MC_Power_0:							MC_Power;			//MC_Power功能块变量
	MC_JOG_0:							MC_JOG;	
	MC_Reset_0:							MC_Reset;
	MC_Stop_0:							MC_Stop;		
	MC_MoveAdditive_0:					MC_MoveAdditive;
			
END_VAR

 轴控功能块代码实现如下



//轴使能
MC_Power_0(
	Axis:= Axis_1, 							//轴变量
	Enable:= TRUE, 
	bRegulatorOn:= bi_Power, 
	bDriveStart:= bi_Power, 
	Status=> , 
	bRegulatorRealState=> , 
	bDriveStartRealState=> , 
	Busy=> , 
	Error=> , 
	ErrorID=> );
	
//轴点动	
MC_JOG_0(
	Axis:= Axis_1, 
	JogForward:= bi_Jog_Forward, 			//正向dJog,	TRUE旋转 FALSE停止
	JogBackward:= bi_Jog_Reverse, 			//反向Jog,	TRUE旋转 FALSE停止
	Velocity:= di_Jog_Velocity,             //单位	转/秒
	Acceleration:= di_Jog_Acceleration, 
	Deceleration:= di_Jog_Deceleration, 
	Jerk:= di_Jog_Jerk, 
	Busy=> , 
	CommandAborted=> , 
	Error=> , 
	ErrorId=> );
	
//轴停止	
MC_Stop_0(
	Axis:= Axis_1, 
	Execute:= bi_Stop, 
	Deceleration:= di_Stop_Deceleration, 
	Jerk:= di_Stop_Jerk, 
	Done=> , 
	Busy=> , 
	Error=> , 
	ErrorID=> );	

//轴复位	
MC_Reset_0(
	Axis:= Axis_1, 
	Execute:= bi_Reset, 
	Done=> , 
	Busy=> , 
	Error=> , 
	ErrorID=> );	
	
//轴增量运动	
MC_MoveAdditive_0(
	Axis:= Axis_1, 
	Execute:= bi_MoveAdditive,                   //上升沿信号触发,执行完成再次给上升沿有效
	Distance:= di_MoveAdditive_Distance, 
	Velocity:= di_MoveAdditive_Velocity, 
	Acceleration:= di_MoveAdditive_Acceleration, 
	Deceleration:= di_MoveAdditive_Deceleration, 
	Jerk:= di_MoveAdditive_Jerk, 
	Done=> , 
	Busy=> , 
	CommandAborted=> , 
	Error=> , 
	ErrorID=> );

然后保存工程、编译、下载、在线运行。

2.3 测试

设置轴参数和将轴使能。  注意:轴参数Jerk表示加加速度,设置为0,则表示加速度值固定。

(1)Jog点动,将电机使能、设置点动速度和加减速

 (2)正向点动,bi_Jog_Forward设置为TRUE。发现电机不转并且报错。

 (3)故障原因:轴控程序和ETHERCAT不在一个任务程序中。即上图中的⑤,这两个应当放在一个Task中。修改后重新保存、编译、下载。

再次Jog点动操作不在报错。bi_Jog_Forward设置TRUE旋转、设置成FALSE停止旋转。

 

3 电机内部参数设置问题

3.1 齿轮比问题

在Axis配置中,默认不使用变速装置。则给定的速度、位置单位即1转/秒。

修改如下参数,可以起到改变电机输出速度。

将(2)设置成60,即程序中给60个数值单位那么电机旋转1圈(做精确控制使用)

将(1)设置成10,即程序中给1个数值单位那么电机旋转10圈

 3.2 电机启停速度曲线选择

伺服默认使用梯形速度曲线,优点是响应快,不足的是运动不够圆滑。

Sin²优点是运动圆滑、减轻设备震动,不足的是响应稍慢。

工程下载

链接:https://download.csdn.net/download/panjinliang066333/68870636

创作不易,请多多支持

 

;