CODESYS SoftMotion(二)单轴运动实例

一、CODESYS SoftMotion编程实例

所有关于SoftMotion都会放在特定位置,可以参考学习,我自己的路径是:D:\CODESYS16\CODESYS\Projects\SoftMotion\4.6.3.0\Examples\Tutorial

3.1 单轴运动

功能块需要:使能功能块MC_Power、绝对运动功能块MC_MoveAbsolute。下面是编程步骤(极其繁琐)

Ctrl+N 新建一个工程:
CODESYS SoftMotion(二)单轴运动实例_第1张图片

因为我的设备是树莓派单核,所以选择CODESYS Control for Raspberry pi SL(...)
CODESYS SoftMotion(二)单轴运动实例_第2张图片
左侧的设备栏如下图所示:
CODESYS SoftMotion(二)单轴运动实例_第3张图片
找到SoftMotion General Axis Pool,右键添加设备,选择虚拟驱动器,将这个设备重命名为drive
CODESYS SoftMotion(二)单轴运动实例_第4张图片

重命名不能用F2,只能按照以下操作:
CODESYS SoftMotion(二)单轴运动实例_第5张图片
配置好了之后就可以编写程序了:点击文件PLC_PRG,将变量区声明内容写成如下:

PROGRAM PLC_PRG
VAR
	iStatus:INT;
	Power:MC_Power;//功能块MC_Power声明
	MoveAbsolute:MC_MoveAbsolute;//绝对运动功能块MC_MoveAbsolute声明
	p:REAL:=1000;//变量p,运动位置
END_VAR

代码区写入:

CASE iStatus OF
	0:
		Power(Enable:=TRUE,bRegulatorOn:=TRUE,bDriveStart:=TRUE,Axis:=Drive);
		IF Power.Status THEN
			istatus:=istatus+1;
		END_IF
	1:
		MOVEAbsolute(Execute:=TRUE,Position:=p,Velocity:=100,Acceleration:=100,Deceleration:=100,Axis:=Drive);
		IF MoveAbsolute.Done THEN
			MOVEAbsolute(Execute:=FALSE,Axis:=Drive);
			istatus:=istatus+1;
		END_IF
	2:
		MOVEAbsolute(Execute:=TRUE,Position:=0,Velocity:=100,Acceleration:=100,Deceleration:=100,Axis:=Drive);
		IF MoveAbsolute.Done THEN
			MOVEAbsolute(Execute:=FALSE,Axis:=Drive);
			iStatus:=1;
		END_IF
END_CASE

连接我们的树莓派(一系列折腾)点击编译F11编译,确定没有问题之后登录(登录之后就能看到"PLC"状态了):
CODESYS SoftMotion(二)单轴运动实例_第6张图片
启动:
在这里插入图片描述
点击Dirve设备,也就是我们刚刚创建出来的虚拟驱动器。
CODESYS SoftMotion(二)单轴运动实例_第7张图片
非常好可以看到我们轴确实按照我们预想往复运动:
CODESYS SoftMotion(二)单轴运动实例_第8张图片
再通过向Application添加一个监控功能来观察:
CODESYS SoftMotion(二)单轴运动实例_第9张图片
右上角点击配置,选中我们的任务MainTask
CODESYS SoftMotion(二)单轴运动实例_第10张图片
添加一个变量:
CODESYS SoftMotion(二)单轴运动实例_第11张图片

在track图表内点击下载跟踪:
CODESYS SoftMotion(二)单轴运动实例_第12张图片

可以看到跟踪内容:
CODESYS SoftMotion(二)单轴运动实例_第13张图片
你可以根据你的需要添加多个跟踪变量的值。

你可能感兴趣的:(#,PLCopen,Codesys,Softmotion,单轴控制)