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之间进行运动。

有问题一起交流吧

  • 5
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值