CODESYS 控制虚拟单轴运动

本人小白,正在开始学习codesys,将自己的学习过程中的一些进行记录和分享,有问题一起交流学习呀

本文是运动控制的第一部分,在本文阅读前,默认已经安装好codesys软件了,那么我们开始吧

1.在SoftMotion General Axis Pool下方的设备树中插入一个名为drive的虚拟轴。
在这里插入图片描述

2.在设备树中添加一个名为MOTION_PRG 的POUs,类型选择程序,语言选择为ST,同时添加到MainTask中,将系统自建的PLC_PRG删除。
这一步是在双击MainTask,在图中框选的位置将PLC_PRG删除,将MOTION_PRG添加进来。
当然在这个位置也可以不做这一步的操作,直接在PLC_PRG中进行编程。为了更好的突出是进行的运动控制,故添加了其他的POUs。
在这里插入图片描述
3.在MOTION_PRG中,进行程序编写。在变量声明区域声明以下变量并对某些变量赋初值。

PROGRAM Motion_PRG VAR iStatus : INT; Power :MC_Power; MoveAbsolute: MC_MoveAbsolute; p : REAL := 100; END_VAR 

在程序段中编写一些程序。

CASE iStatus OF 0: Power( Axis:= Drive, Enable:= TRUE, bRegulatorOn:= TRUE, bDriveStart:= TRUE, Status=> , bRegulatorRealState=> , bDriveStartRealState=> , Busy=> , Error=> , ErrorID=> ); IF power.Status THEN iStatus := iStatus+1; END_IF 1: MoveAbsolute( Axis:=Drive , Execute:= TRUE, Position:= p, Velocity:= 100, Acceleration:= 100, Deceleration:= 100, Jerk:= , Direction:= , BufferMode:= , Done=> , Busy=> , Active=> , CommandAborted=> , Error=> , ErrorID=> ); IF MoveAbsolute.Done THEN MoveAbsolute(axis := drive,execute := FALSE); iStatus := iStatus +1; END_IF 2: MoveAbsolute( Axis:= Drive, Execute:= TRUE, Position:= 0, Velocity:= 100, Acceleration:= 100, Deceleration:= 100, Jerk:= , Direction:= , BufferMode:= , Done=> , Busy=> , Active=> , CommandAborted=> , Error=> , ErrorID=> ); IF MoveAbsolute.Done THEN MoveAbsolute(Axis := Drive,Execute := FALSE); iStatus := 1; END_IF END_CASE 

4.下载至控制器中,并启动它。
5.双击名为Drive的虚拟轴,在通用选项卡中的在线,可以看到轴在运动。
在这里插入图片描述蓝色块即模拟的虚轴的位置,会在0–100之间进行运动。

有问题一起交流吧

类似文章

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理

在线客服
在线客服
QQ客服