目录
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
创作不易,请多多支持
原文链接:https://blog.csdn.net/panjinliang066333/article/details/122086216