[CodeSys] Codesys练习-单轴运动控制

[复制链接]
查看79112 | 回复0 | 2024-9-11 09:28:53 | 显示全部楼层 |阅读模式
一、任务描述:

(1)点动控制(速度10u/s,加减速为100u/s²)

1)按下点动正转按钮,电机正转;松开后,电机停止。

2)按下点动反转按钮,电机反转;松开后,电机停止。

(2)速度控制(速度10u/s,加减速为100u/s²)

1)按下速度运行正转按钮,电机匀速正转运行。

2)按下速度运行反转按钮,电机匀速反转运行。

(3)绝对位置控制(速度10u/s,加减速为100u/s²)

1)按下绝对位置正转按钮,电机正向运行并停在绝对位置90°位置

2)按下绝对位置反转按钮,电机反向运行并停在绝对位置-90°位置

(4)相对位置控制(速度10u/s,加减速为100u/s²)

1)按下绝对位置正转按钮,电机正向运行并停在相对位置60°位置

2)按下绝对位置反转按钮,电机正向运行并停在相对位置-60°位置

(5)停止控制。在上述(2)~(4)运行过程中,按下停止按钮,电机减速后停止运行

二、任务实施流程:



指令介绍:

MC_Power 用于启动和禁用轴





MC_Jog 用于点动控制轴运动





MC_MoveVelocity用于控制轴做匀速运动





MC_MoveAbsolute用于控制轴以指定的动态值(速度、加减速、加加速度)移动到绝对位置







MC_MoveRelative用于控制轴以指定的动态值(速度、加减速、加加速度)移动到相对位置





MC_Halt 用于控制轴的停止





三、新建工程:

选择设备时,选择“Codesys SoftMotion Win V3”,则在产生的工程项目树中自动添加“SoftMotion General Axis Pool”,通过它可进行添加和设置轴驱动,编程语言选择ST。

四、添加轴驱动

在设备树下右击选择“SoftMotion General Axis Pool”,在弹出的窗口中选择"添加设备..",将弹出"添加设备窗口,选择"虚拟驱动器-SM_Drive_Virtual"后,单击"添加设备",此时"SM_Drive_Virtual"将添加到设备树"SoftMotion General Axis Pool"下面。



五、轴驱动设置

在设备树选中并单击SM_Drive_Virtual,弹出设置窗口,选择"SoftMotion 驱动:通用",可进行轴类与限位、动态限制、速率斜坡类型设置,本示例仅将动态限制下的速度和加速度进行修改。



六、程序:

变量部分:
PROGRAMPLC_PRGVARFB_MP :MC_Power;bJog_Backward :BOOL;bStop:BOOL;bJog_Forward :BOOL;bMV_Forward :BOOL;bMV_Backward :BOOL;bMA_Forward :BOOL;bMA_Backward :BOOL;bMR_Forward:BOOL;bMR_Backward :BOOL;FB_MJ :MC_Jog;FB_MV_0 :MC_MoveVelocity;FB_MV_1 :MC_MoveVelocity;FB_MA_0:MC_MoveAbsolute;FB_MA_1:MC_MoveAbsolute;FB_MR_0:MC_MoveRelative;FB_MR_1:MC_MoveRelative;FB_MH:MC_Halt;END_VAR
主程序部分:

FB_MP(Axis:=SM_Drive_Virtual,Enable:=TRUE,bRegulatorON:=TRUE,bDriveStart:=TRUE);//使能FB_MH(Axis:=SM_Drive_Virtual,Execute:=bStop,Deceleration:=100);//停止FB_MJ(Axis:=SM_Drive_Virtual,JogForward:=bJog_Forward,JogBackward:=bJog_Backward,Velocity:=10,Acceleration:=100,Deceleration:=100);FB_MV_0(Axis:=SM_Drive_Virtual,Execute:=bMV_Forward,Velocity:=10,Acceleration:=100,Deceleration:=100,Direction:=1);FB_MV_1(Axis:=SM_Drive_Virtual,Execute:=bMV_Backward,Velocity:=10,Acceleration:=100,Deceleration:=100,Direction:=-1);FB_MA_0(Axis:=SM_Drive_Virtual,Execute:=bMA_Forward,Position:=90,Velocity:=10,Acceleration:=100,Deceleration:=100,Direction:=1);FB_MA_1(Axis:=SM_Drive_Virtual,Execute:=bMA_Backward,Position:=-90,Velocity:=10,Acceleration:=100,Deceleration:=100,Direction:=-1);FB_MR_0(Axis:=SM_Drive_Virtual,Execute:=bMR_Forward,Distance:=60,Velocity:=10,Acceleration:=100,Deceleration:=100);FB_MR_1(Axis:=SM_Drive_Virtual,Execute:=bMR_Backward,Distance:=-60,Velocity:=10,Acceleration:=100,Deceleration:=100);

七、可视化:



测试效果:

注意:

记得开仿真机





本文案例取自于《CODESYS编程应用与仿真》

同类文章:

Codesys学习 模拟量单位转换

Codesys练习-基于频率和占空比设置的双灯控制

Codesys练习-基于状态机思路的循环灯控制

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则