您当前的位置: 首页 > 

我什么都布吉岛

暂无认证

  • 1浏览

    0关注

    292博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

CODESYS SoftMotion(二)单轴运动实例

我什么都布吉岛 发布时间:2022-03-20 00:55:20 ,浏览量:1

一、CODESYS SoftMotion编程实例

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

3.1 单轴运动

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

Ctrl+N 新建一个工程: 在这里插入图片描述

因为我的设备是树莓派单核,所以选择CODESYS Control for Raspberry pi SL(...)在这里插入图片描述 左侧的设备栏如下图所示: 在这里插入图片描述 找到SoftMotion General Axis Pool,右键添加设备,选择虚拟驱动器,将这个设备重命名为drive在这里插入图片描述

重命名不能用F2,只能按照以下操作: 在这里插入图片描述 配置好了之后就可以编写程序了:点击文件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"状态了): 在这里插入图片描述 启动: 在这里插入图片描述 点击Dirve设备,也就是我们刚刚创建出来的虚拟驱动器。 在这里插入图片描述 非常好可以看到我们轴确实按照我们预想往复运动: 在这里插入图片描述 再通过向Application添加一个监控功能来观察: 在这里插入图片描述 右上角点击配置,选中我们的任务MainTask 在这里插入图片描述 添加一个变量: 在这里插入图片描述

在track图表内点击下载跟踪: 在这里插入图片描述

可以看到跟踪内容: 在这里插入图片描述 你可以根据你的需要添加多个跟踪变量的值。

关注
打赏
1658157489
查看更多评论
立即登录/注册

微信扫码登录

0.0394s