Codesys单轴控制实现多段速控制功能

news2024/11/20 10:28:12

  b一、序言

        在设备加工行业,很多工艺要用到多段速控制,比如切割,打孔,攻丝等,刀具未碰到工件时可以快速行走,刀具碰到工件时需要慢速加工,而有些工艺在加工时随着刀具越走越深,其进刀的速度也需要变得更慢才能保证工艺的稳定性。

        传统的PLC一般都有自带的可变速脉冲输出控制指令,像三菱,汇川,台达等都可以用PLSV指令,那么Codesys有没有类似的指令呢,目前还没有。但是可以通过指令的组合实现此功能。

二、多段速控制要求

        以钢管打孔为例,如图所示

     左侧灰色钻头初始状态距离蓝色钢管有一定的距离,钻头需要钻穿钢管壁。整个行程分为3端运行,1,钻头与钢管未接触时,可以快速前进,提高效率,当钻头接触钢管时,需要放慢速度,保证钻头的扭力和钻孔的稳定,而当即将钻通时,由于阻力加大,还需要放慢速度,直到钻穿位置。整个过程分三段,快速前进距离,慢速钻孔距离1,慢速钻穿距离2。共有3个速度,依次递减。

三、Codesys实现方法

3.1 指令介绍

        codesys没有类似plsv这样的指令,要实现变速功能,同时还要定位控制,可行的方法有:

a、用Moveadditive指令,该指令的作用是运动叠加,单独使用与相对运动指令MoveRelative功能一直,而与MoveRelative叠加使用时,Moveadditive指令的位置会与相对运动MoveRelative的位置相加,而运Moveadditive指令的运行速度则会代替MoveRelative的运行速度,达到变速的目的。

b、运动控制指令中,专门有缓冲模式的功能,用于控制移动的时间顺序。我们就可以通过运动指令,设定缓冲模式来实现变速功能。

c、其他模式,可以通过电子凸轮设定凸轮曲线跟随虚轴实现,或者采用followposition跟随指令,设定跟随曲线,跟随虚轴实现,原理与凸轮一致。

      本文主要介绍b方法,缓冲模式,是最方便,也最容易理解的实现方式。

3.2 缓冲模式介绍

        以  MoveRelative指令为例,指令功能块左下角有BufferMode引脚,功能块如下图所示:

           

         再看BufferMode的数据设置选项,共有6项,说明如下:

        官网帮助文件翻译如下:

      本例中,我们以选择blendingnext模式试验,看轴的运行效果如何。

3.3 程序编写

        建立虚轴,创建变量,转换,轴使能以及创建可视化画面,这些内容本文不在描述,可以参考之前的文章创建,文章查看地址:https://blog.csdn.net/qq_19979629/article/details/124766915

       本文直接编写三轴运动程序,以相对运动MoveRelative为例,程序如下:

 

 程序解释:

1、本文设置3个相对运动指令,后面两个指令缓冲模式设置blendingNext模式;

2、设置两种试验方法,第一种,前一个移动指令运行完成触发下一个移动指令,第二种,前一个移动指令运行未完成时,提前触发下一个移动指令,可通过开关切换;

3、分别运行,通过可视化仿真查看运行结果及曲线,并通过trace跟踪速度曲线进行对比。

3.4 运行结果

        a、指令完成后再触发运行结果

trace速度跟踪结果:

         b、指令提前动作运行结果

CODESYS多段速缓冲提前动作

trace跟踪结果

 4、结果分析

        通过运行结果发现,前一个指令运行结束后触发,实际上速度已经降到0,所以缓冲模式并没有起作用,速度曲线出现了尖角,实际上是出现了停机,只不过时间很短,无法在曲线上直观的显示出来。而提前触发的运行结果就可以完美的实现多段速的功能,速度曲线降速契合多段速功能的控制要求。

        本文采用Codesys V3.5.18编程设计,需要查看源程序的可在以下地址下载:

https://download.csdn.net/download/qq_19979629/87944558

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/680699.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

掌握Python的X篇_4_开发工具ipython与vscode的安装使用,作业

本篇将会介绍两个工具的安装及使用来提高Python的编程效率。 ipython:比python更好用的交互式开发环境vscode:本身是文本编辑器,通过安装相关的插件vscode可以作为python集中开发环境使用 掌握Python的X篇_4_开发工具ipython与vscode的安装使…

GIT保存记录原理之commit对象

GIT 中提交对象非常的重要,我们通过它记录代码提交过程、进行文件保存、回退等操作,那么它是怎样帮助我们记录这些信息的呢?其实就是都保存在项目根目录的 .git 文件夹中。 新建空项目 gitDemo使用 git init初始化,在文件夹根目录…

57 KVM工具使用指南-制作 LibcarePlus 热补丁

文章目录 57 KVM工具使用指南-制作 LibcarePlus 热补丁57.1 概述57.2 手动制作57.3 通过脚本制作 57 KVM工具使用指南-制作 LibcarePlus 热补丁 57.1 概述 LibcarePlus 支持如下方式制作热补丁: 手动制作通过脚本制作 手动制作热补丁的过程繁琐,对于…

java——反射与注解

文章目录 Java反射基础1. 概念详解2. 示例代码 Java反射进阶1. 框架设计2. 动态代理3. 模板方法 Java注解基础1. 概念2. 基本语法3. 自定义注解4. 反射获取注解信息 Java注解进阶1. 应用场景2. 内置注解3. 第三方注解库4. 总结 Java反射与注解实战1. 实战场景2. 代码实现 Java反…

AutoSAR系列讲解(入门篇)2.3-Ports的类型

Ports的类型 一、接口的类型 二、S/R接口 三、C/S接口 一、接口的类型 Ports是SWC和SWC做接口(Interface)通信使用,或者SWC通过RTE和BSW做接口(Interface)通信使用。 Ports主要分为5种类型,列在下面的图…

【UEFI实战】UEFI图形显示(显示驱动)

显示驱动 OVMF BIOS使用了这个作为显卡驱动,具体图形显示的底层实现不是重点,所以这里只是简单介绍。 QemuVideoDxe是一个UEFI Driver Model,对应的EFI_DRIVER_BINDING_PROTOCOL: EFI_DRIVER_BINDING_PROTOCOL gQemuVideoDriv…

【数据库】事务、事务并发问题、并发事务隔离级别、及sql演示

文章目录 一、事务1.1 事务简介 及 sql 操作1.2 事务的特性 二、事务并发问题三、事务隔离级别四、sql 演示4.1 脏读4.2 不可重复读4.3 幻读 五、演示代码 一、事务 1.1 事务简介 及 sql 操作 事务:数据库执行的一系列操作,这些操作要么全部执行&#x…

【Java技术专题】「入门到精通系列教程」深入探索Java特性中并发编程体系的原理和实战开发指南(内存模型技术专题)

深入探索Java特性中并发编程体系的原理和实战开发指南( 线程进阶技术专题) 前言介绍JVM内存模型运行时数据区域堆内存栈内存 内存访问规则原子性对象类型基本类型 可见性有序性(Happen Before法则)系统内存(MESI协议&a…

【OS】【期末选择题】【2023春】【仅供参考】

文章目录 题型一、选择第一章(10)第二章(19)第三章(23)第四章(32)第五章(15)第六章(15) 二、填空题三、简答题1.信号量2.调度算法3.页面置换4.虚拟地址到物理地址的映射 Reference 题型 题型题量分值选择10%填空25%10%10%解答题210’大题215’ 一、选择 第一章(10) 操作系统…

HuggingFace-RL-Unit2-Part1——Q-learning算法介绍

Q-learning算法介绍 文章目录 Q-learning算法介绍回顾: 什么是RL? 两种基于价值的方法状态价值函数动作价值函数 贝尔曼方程:简化价值计算蒙特卡罗 VS 时序差分学习蒙特卡洛:在一个回合结束后进行学习时序差分算法:在每一步进行学习 学习进展…

定时器的实现原理

文章目录 1.定时器的作用?2.数据结构要求3.时间轮4.分级时间轮5.业界实现方案参考文献 1.定时器的作用? 定时器的主要用途是执行定时任务。 定时任务在很多场景都需要用到,比如游戏的 Buff 实现,Redis 中的过期任务,Linux 中的定时任务&a…

java——多线程

文章目录 Java 的并发基础知识1. 创建线程2. 同步方法和同步代码块3. 线程安全的容器4. volatile 关键字5. Lock 和 Condition 接口 Java 多线程编程的基本框架1. 创建和启动线程2. 线程的状态转换3. 线程安全4. 死锁 Java 并发编程的高级技术1. 线程池2. 并发集合3. 原子类4. …

测试:进阶篇

在本篇章开始之前,先对之前的内容进行一个简单的总结回顾一下: 基于需求设计测试用例,这里有个测试用例的万能公式: 功能(如果是软件,需要参考依据需求规格说明书;如果是物体,这个…

2023年7月电脑选择

文章目录 一、笔记本1.1 确定需求1.2 确定预算1.3 性能指标1.4 其他 二、台式电脑 最近有朋友让我推荐一下能做3D建模的笔记本电脑,本文就讲一下台式机和笔记本怎么选择。 一、笔记本 1.1 确定需求 当我们在选择笔记本时,首先需要确定自己的需求&#x…

CSS基础学习--24 表单

一、一个表单案例&#xff0c;我们使用 CSS 来渲染 HTML 的表单元素 <!DOCTYPE html> <html> <head> <meta charset"utf-8"> <title>CSS基础学习-表单</title> </head> <style> input[typetext], select {width:…

计算机基础--->数据结构(3)【堆(超详细)】

文章目录 堆堆的时间复杂度堆的分类堆的存储堆的操作插入元素删除堆顶元素 堆排序建堆排序 所有操作代码 堆 堆一般分为两种类型&#xff1a;最大堆和最小堆。在最大堆中&#xff0c;父节点的值总是大于或等于子节点的值&#xff0c;而在最小堆中&#xff0c;父节点的值总是小于…

计算机自我介绍500字范文(合集)

计算机自我介绍500字范文1 本人是___大学计算机系统维护专业的学生。大学四年的学习&#xff0c;积累了丰富的专业知识&#xff0c;广泛的人际关系&#xff0c;培养我成为一个敢于承担责任&#xff0c;对待生活乐观积极&#xff0c;吃苦耐劳的青年。在专业方面我的主攻方向是计…

Ffmpeg6.0版本源码解读第一期!

前言&#xff1a; 大家好&#xff0c;最近一直在直播讲解Ffmpeg6.0版本的源码解析&#xff0c;这里要明白学习源码能给我们带来什么好处&#xff1f;我相信很多小伙伴已经用过Ffmpeg去开发&#xff0c;不知道大家有没有在开发的过程&#xff0c;调用接口的时候&#xff0c;是否…

PowerDesigner面向对象建模-常用UML图

1 PowerDesigner简介 PowerDesigner最初由Xiao-Yun Wang&#xff08;王晓昀&#xff09;在SDP Technologies公司开发完成。PowerDesigner是Sybase的企业建模和设计解决方案&#xff0c;采用模型驱动方法&#xff0c;将业务与IT结合起来&#xff0c;可帮助部署有效的企业体系架…