目录
1、用户程序创建
1.1 创建程序
1.2 程序添加到任务中
2、伺服功能块测试
2.1 伺服使能程序
2.2 添加其他轴控功能
2.3 测试
3 电机内部参数设置问题
3.1 齿轮比问题
3.2 电机启停速度曲线选择
工程下载
在Application目录下添加新的文件夹“用户程序”,添加程序 : MotionTest
将新创建的程序MotionTest,添加到任务配置中
伺服的功能块,使用IEC61131-3标准的PLCOpen方式开发。功能块分为单轴控制、多轴控制、伺服状态等。功能块库保存在库文件:SM3_Basic=SM3_Basic,4.2.2.0中。
输入助手使用:在程序编辑框中,按键盘F2。
然后生成功能块程序,添加关联变量
下载程序、运行。然后监视环境下测试
使用上述方法分别添加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=> );
然后保存工程、编译、下载、在线运行。
设置轴参数和将轴使能。 注意:轴参数Jerk表示加加速度,设置为0,则表示加速度值固定。
(1)Jog点动,将电机使能、设置点动速度和加减速
(2)正向点动,bi_Jog_Forward设置为TRUE。发现电机不转并且报错。
(3)故障原因:轴控程序和ETHERCAT不在一个任务程序中。即上图中的⑤,这两个应当放在一个Task中。修改后重新保存、编译、下载。
再次Jog点动操作不在报错。bi_Jog_Forward设置TRUE旋转、设置成FALSE停止旋转。
在Axis配置中,默认不使用变速装置。则给定的速度、位置单位即1转/秒。
修改如下参数,可以起到改变电机输出速度。
将(2)设置成60,即程序中给60个数值单位那么电机旋转1圈(做精确控制使用)
将(1)设置成10,即程序中给1个数值单位那么电机旋转10圈
伺服默认使用梯形速度曲线,优点是响应快,不足的是运动不够圆滑。
Sin²优点是运动圆滑、减轻设备震动,不足的是响应稍慢。
链接:https://download.csdn.net/download/panjinliang066333/68870636
创作不易,请多多支持