Codesys.运动控制电子齿轮

文章目录

一. 电子齿轮概念应用

二. 电子齿轮耦合功能块

2.1. MC_GearIn

2.2. MC_GearInPos

2.3. MC_GearOut

三. 电子齿轮案例

3.1. 样例介绍

3.2. 引入虚轴

3.3. 程序框架

3.4. 程序编写

3.5. 程序监控


一. 电子齿轮概念应用

                                                                            

在很多应用场景中有多个牵引轴每个牵引轴要以一定的数据比例同步运行,由于存在机械误差,就需要设置齿轮比,根据物理学关系,假设齿轮1齿数为Z1,转速为n1,假设齿轮2齿数为Z2,转速为n2.则满足关系Z1/Z2=n2/n1

二. 电子齿轮耦合功能块

2.1. MC_GearIn

  • 设定从轴与主轴间的齿轮比,进行电子齿轮动作。

  • 详情可以查看Codesys运动控制手册。

  • 波形测试:

如图所示,设置主从轴齿轮比1:2,则其速度比为2:1,齿轮耦合不改变主轴状态,耦合后从轴状态进入6(同步运行),退出耦合后从轴状态进入5(连续运动)会以当前速度继续运行下去,可以用MC_Stop来停止轴。

2.2. MC_GearInPos

  • 设定主轴与从轴之间的电子齿轮比,进行电子齿轮动作。

  • 指定开始同步的主轴位置、从轴位置、主轴开始同步距离,并以此来完成切入电子齿轮动作。

详情可以查看Codesys运动控制手册。

  • 波形测试:

如图所示,指定开始同步的主轴位置400、从轴位置200、主轴开始同步距离100,并以此来完成切入电子齿轮动作。

2.3. MC_GearOut

  • 终止执行中的 MC_GearIn,MC_GearInPos 指令。

  • 详情可以查看Codesys运动控制手册。

注意:调用该指令只是退出耦合后从轴状态进入5(连续运动)会以当前速度继续运行下去,可以用MC_Stop来停止轴。

三. 电子齿轮案例

                                                                   

3.1. 样例介绍

下图设备设计使用了两个牵引轴,牵引轴的作用在于提供待加工带料的牵引力,如下图所示,每个牵引轴部分都是由两个齿轮啮合在一起,两个齿轮带动两个摩擦力较大的两个棍贴合在一起,带料从两辊之间穿过,,贴合在一起的这两个棍转动起来则可带动带料朝相应方向运转。

                                

  • 牵引轴部分简述

上图设备设计使用了两个牵引轴,牵引轴的作用在于提供待加工带料的牵引力。如右图所示,每个牵引轴部分都是由两个齿轮合在一起,两个齿轮带动两个摩擦力较大的两个辊贴合在一起,带料从两辊之间穿过,贴合在一起的这两个辊转动起来则可带动带料朝相应方向运转。

  • 为什么什么设计两个牵引轴

带料经过牵引轴A之后,带料又走过了很多中间棍,由于设备下侧部分是实现摆臂同步工艺所必须要的机械构造,所以若只有一个牵引轴必然会导致牵引力不均匀和牵引力不足。

  • 两个牵引轴的速度匹配与同步停止

速度匹配:理论上牵引轴A和牵引轴B的线速度应该是相等的。

同步启停:两个牵引轴应当同步启停。

  • 同步张力控制

如上侧图所示,系统中牵引A左侧部分材料的张力通过摆杆A施加,牵引B右侧部分材料张力通过摆杆B施加,在牵引AB之间材料的张力实际上是来源于AB之间材料的形变,即牵引轴AB在单位时间内的位移差。故若需要牵引AB之间材料具备可加工的张力,就需要牵引轴AB存在一定的速度差。

  • 根据左侧设备示意图,写一下牵引A和牵引B部分小例程(其他部分机构程序不用管),支持一键启动、一键停止,牵引AB之间要形成一定的张力,支持在切换方向(停机时有效)

3.2. 引入虚轴

                         

问题:这里为什么不直接让两个牵引轴的一个通过齿轮耦合跟随另一个牵引轴呢?直接耦合行不行?

直接耦合,其实也是可以的,但是一般我们项目上,涉及到多轴同步的场合(电子凸轮 & 电子齿轮)都不这么直接耦合,大都增加一个虚主轴,原因有以下几点:

  • 实轴速度会有波动,导致从轴也跟着波动,加虚轴可以消除抖动的问题,运行实际更平稳。

  • 还有一个响应滞后的问题,假如实轴A做主轴,实轴B做从轴,那么B始终是滞后A的;如果虚轴做主轴,实轴A与B做从轴,那么实轴A与B的参考对象是虚轴,

    就解决了B滞后A的问题。

  • 另外就是更方便的调整工艺需求,比如可以方便的调整虚主轴的速度,这样整机速度就同步调整了。

3.3. 程序框架

  • 新建一个虚轴(主轴)和两个实轴(做牵引,右牵引),轴配置参数如下:

  • 程序目录结构:

  • SCTY_INNER_IO:

  • GVL_Var:

3.4. 程序编写

  • PRG_TaskEct任务程序逻辑:

// 内部变量与实例化:
PROGRAM PRG_TaskEct
VARvmc_MasterPower				: MC_Power;vmc_MasterVelocity			: MC_MoveVelocity;vmc_MasterStop				: MC_Stop;vmc_LeftPower				: MC_Power;vmc_LeftGearIn				: MC_GearIn;vmc_RightPower				: MC_Power;vmc_RightGearIn				: MC_GearIn;	
END_VAR// 程序代码:
vmc_MasterPower(Axis:= 						V_Master, Enable:= 					TRUE, bRegulatorOn:= 				TRUE, bDriveStart:= 				TRUE, Status=> , bRegulatorRealState=> , bDriveStartRealState=> , Busy=> , Error=> , ErrorID=> );vmc_MasterVelocity(Axis:= 						V_Master, Execute:= 					gb_MasterVelocityExecute, Velocity:= 					gf_MasterVelocityValue, Acceleration:= 				gf_TotalAccDec, Deceleration:= 				gf_TotalAccDec, Jerk:= , Direction:= 				gi_MasterDirection, BufferMode:= , InVelocity=> , Busy=> , Active=> , CommandAborted=> , Error=> , ErrorID=> );vmc_MasterStop(Axis:= 						V_Master, Execute:= 					gb_MasterEmyStop, Deceleration:= 				gf_TotalAccDec, Jerk:= , Done=> 						gb_MasterEmyStopDone, Busy=> , Error=> , ErrorID=> );	vmc_LeftPower(Axis:= 						R_LeftAxis, Enable:= 					TRUE, bRegulatorOn:= 				TRUE, bDriveStart:= 				TRUE, Status=> , bRegulatorRealState=> , bDriveStartRealState=> , Busy=> , Error=> , ErrorID=> );	vmc_LeftGearIn(Master:= 					V_Master, Slave:= 					R_LeftAxis, Execute:= 					gb_LeftCoupler, RatioNumerator:= 			gdi_LeftNumerator, RatioDenominator:= 			gudi_LeftRightDenominator, Acceleration:= 				gf_TotalAccDec, Deceleration:= 				gf_TotalAccDec, Jerk:= , BufferMode:= , InGear=>					gb_LeftSyn, Busy=> , Active=> , CommandAborted=> , Error=> , ErrorID=> );vmc_RightPower(Axis:= 						R_RightAxis, Enable:= 					TRUE, bRegulatorOn:= 				TRUE, bDriveStart:= 				TRUE, Status=> , bRegulatorRealState=> , bDriveStartRealState=> , Busy=> , Error=> , ErrorID=> );vmc_RightGearIn(Master:= 					V_Master, Slave:= 					R_RightAxis, Execute:= 					gb_RightCoupler, RatioNumerator:= 			gdi_RightNumerator, RatioDenominator:= 			gudi_LeftRightDenominator, Acceleration:= 				gf_TotalAccDec, Deceleration:= 				gf_TotalAccDec, Jerk:= , BufferMode:= , InGear=> 					gb_RightSyn, Busy=> , Active=> , CommandAborted=> , Error=> , ErrorID=> );	
  • PRG_TaskMain程序逻辑:

3.5. 程序监控

  • Trace跟踪:

 

 

  案例下载链接:Codesys.运动控制电子齿轮案例包资源-CSDN文库

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

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

相关文章

【重温设计模式】备忘录模式及其Java示例

备忘录模式的概述 在软件设计的世界中,备忘录模式是一种行为设计模式,它的主要作用是保存对象的当前状态,以便在将来的某个时间点,可以将对象恢复到这个保存的状态。这种模式的命名源于生活中的备忘录,我们常常用它来…

俄罗斯方块h5源码

上传源码至服务器和空间即可使用,源码无后门,就一天html文件,一个两个css文件以及一个js文件 源码下载:https://download.csdn.net/download/m0_66047725/88897605 更多资源下载:关注我。

148个Chatgpt关键词汇总-有爱AI实战教程(二)

演示站点: https://ai.uaai.cn 技能模块 官方论坛: www.jingyuai.com 京娱AI 导读:在使用 ChatGPT 时,当你给的指令越精确,它的回答会越到位,举例来说,假如你要请它帮忙写文案,如…

devops-Maven【部署及配置】

1、准备maven工具包,Maven官网下载Maven的安装包 Maven – Download Apache Maven Index of /maven (apache.org) 选择后缀是.bin.tar.gz的文件下载,此处下载的版本是3.9.6。 2、安装maven的目录下,建一个Maven路径,然后把压缩…

JAVA虚拟机实战篇之内存调优[5](诊断和解决问题-两种方式总结)

文章目录 版权声明诊断和解决问题 - 两种方案在线定位问题步骤在线定位问题 – btrace 总结内存溢出&内存泄漏内存溢出原因解决内存泄漏方法 版权声明 本博客的内容基于我个人学习黑马程序员课程的学习笔记整理而成。我特此声明,所有版权属于黑马程序员或相关权…

探索数据可视化:Matplotlib 基础指南

图形绘制 import numpy as np import pandas as pd import matplotlib.pyplot as pltx np.linspace(0,2 * np.pi,100)# 说明:正弦波。x:NumPy数组 # 所有的数据,进行正弦计算 y np.sin(x)plt.plot(x,y)# 指定x轴范围 plt.xlim(-1,10) # 指…

746. 使用最小花费爬楼梯 (Swift版本)

题目 给你一个整数数组 cost,其中 cost[i] 是从楼梯第 i 个台阶向上爬需要支付的费用。一旦你支付此费用,即可选择向上爬一个或者两个台阶。 你可以选择从下标为 0 或下标为 1 的台阶开始爬楼梯。 请你计算并返回达到楼梯顶部的最低花费。 限制条件 2…

智能合约语言(eDSL)—— proc_macro实现合约init函数

我们通过属性宏来实现合约的init函数,call函数其实和init是类似的; GitHub - XuHugo/xwasm 构建属性宏,要在cargo.toml里面设置一些参数,这是必须的。一般来说,过程宏必须是一个库,或者作为工程的子库&…

thingsboard如何自定义udp-transport

0、参考netty实现udp的文章 https://github.com/narkhedesam/Netty-Simple-UDP-TCP-server-client/blob/master/netty-udp/src/com/sam/netty_udp/server/MessageDecoder.java 调试工具使用的是:卓岚TCP&UDP调试工具 1、在common\transport下面创建udp模块,仿照mqtt的创…

Linux配置.bashrc文件导致各种命令(vim、sudo)失效。

Linux配置.bashrc文件导致各种命令(vim、sudo)失效。 起因是 nvcc-V一直报错:-bash:nvcc: command not found 踩坑记录:上网一查说是没有配置cuda的环境变量。于是去修改了bashrc文件,在最下面…

一次生产环境上的dockerd启动失败原因分析

今夜原计划对 生产环境 上的 SDN 组件进行一次紧急扩容操作的,但业务基础环境中的 Docker-Engine 启动不起来了、原定计划也就无法继续进行了。 尽管查清了基础业务环境中的故障原因,但金主DD说今天先不干了,那就整理整理思路写篇流水账吧 。…

【漏洞复现】帮管客 CRM jiliyu SQL注入漏洞

免责声明:文章来源互联网收集整理,请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失,均由使用者本人负责,所产生的一切不良后果与文章作者无关。该…

ubuntu下vscode+STM32CubeMX+openocd+stlinkv2搭建STM32开发调试下载环境

1、换源 清华源 # 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释 deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restr…

nginx-排查一次大文件无法正常下载问题

目录 问题现象&报错信息 问题现象以及分析 nginx报错信息 问题解决 方法1:配置proxy_max_temp_file_size 方法2:关闭proxy_buffering 参考文档 问题现象&报错信息 问题现象以及分析 文件正常从后端服务器直接下载时,一切正常…

通过esp32cam拍摄图片上传至PC并通过YOLO进行目标检测

通过esp32cam拍摄图片上传至PC并通过YOLO进行目标检测 一.通过esp32cam拍摄照片并上传至PC二.训练自己的数据集三.AutoDL AI算力云的使用1.账号注册2.GPU选取3.GPU使用4.开机训练 四.数据集的使用 一.通过esp32cam拍摄照片并上传至PC 文章链接: https://blog.csdn.net/qq_6297…

北京市气象站点日值数据(降雨气温风速日照蒸发气压地温湿度)

气象数据一直是一个价值较高的数据,它被广泛用于各个领域的研究当中。气象数据包括有气温、气压、相对湿度、降水、蒸发、风向风速、日照等多种指标,但是包含了这些全部指标的气象数据却较难获取,即使获取到了也不能随意分享。 北京&#xf…

学习JavaEE日子 Day24 TreeSet,内置比较器,外置比较器,HashMap

Day24 TreeSet 1.TreeSet 1.1 TreeSet的使用 注意&#xff1a;TreeSet的使用和HashSet一样 public class Test01 {public static void main(String[] args) {//创建TreeSet集合的对象TreeSet<String> set new TreeSet<>();//添加元素set.add("麻生希"…

机器学习-可解释性机器学习:随机森林与fastshap的可视化模型解析

一、引言 机器学习在当今社会扮演着日益重要的角色&#xff0c;但黑盒模型的不可解释性限制了其应用范围。因此&#xff0c;可解释性机器学习成为研究热点&#xff0c;有助于提高模型的可信度和可接受性。本文旨在探讨随机森林和fastshap作为可视化模型解析工具的应用&#xff…

【生态适配】亚信安慧AntDB数据库与OpenCloudOS、TencentOS Server五款产品完成兼容互认

日前&#xff0c;亚信安慧AntDB数据库与OpenCloudOS8、OpenCloudOS9、TencentOS Server 2、TencentOS Server 3、TencentOS Server 4五款操作系统完成兼容互认。经过严格测试&#xff0c;亚信安慧AntDB数据库与这五款操作系统兼容良好&#xff0c;整体运行稳定。 图1&#xff1…

在Anaconda3的conda中创建虚拟环境下载opencv

opencv下载全流程 一、下载Anaconda 记得从官方网格站进行下载&#xff0c;会有一些慢 下载后进行配置 b站讲解视频&#xff08;非本人&#xff08;平台大神讲解&#xff09;&#xff09; 二、打开conda控制台 这里的两个都可以进行下载 通常我们受用anaconda prompt 三、…