Codesys.运动控制电子齿轮

news2024/10/7 18:29:13

文章目录

一. 电子齿轮概念应用

二. 电子齿轮耦合功能块

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
VAR
	vmc_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.coloradmin.cn/o/1501846.html

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

相关文章

.NET开源的两款第三方登录整合库

前言 我相信做开发的同学应该都对接过各种各样的第三方平台的登录授权,来获取用户信息(如:微信登录、支付宝登录、QQ登录、GitHub登录等等)。今天大姚分享两款.NET开源的第三方登录整合库。 MrHuo.OAuth MrHuo.OAuth是.NET项目…

Tcp标志位 笔记240309

Tcp标志位 TCP(传输控制协议)的标志位是用于指示TCP报文段中特定控制信息的位字段。这些标志位存在于TCP报头中,用于控制TCP连接的建立、数据传输和终止等过程。以下是TCP标志位的详细说明: SYN(同步标志)…

Android应用界面

概述:由于学校原因,估计会考,曹某人就浅学一下。 目录 View概念 创建和使用布局文件 相对布局 线性布局 水平线性布局 垂直线性布局 表格布局 帧布局 扁平化布局 Android控件详解 AdapterView及其子类 View概念 安卓中的View是所…

设计模式-行为型设计模式-命令模式

命令模式(Command),将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。[DP] // 命令接口 interface Command {void execute(); }// 具体命…

隐私与创新的交汇点:Partisia Blockchain 重绘技术蓝图

正当我们在这个信息泛滥的时代寻找稳固的信任锚点时,区块链技术应运而生,然而,正如任何科技革命都会遇到的挑战,一个重要的问题摆在了我们面前:如何在不牺牲个人隐私的前提下,享受区块链技术带来的好处&…

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

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

MySQL安装使用(mac)

目录 一、下载MySQL 二、环境变量 三、启动 MySql 四、初始化密码设置 一、下载MySQL 打开 MySql 官方下载页面 我是macOS12,所以选择了8.0.30 下载完成之后,打开安装,一直下一步安装完成,在最后安装完成时,会弹出…

基于Docker搭建Maven私服仓库(Linux)详细教程

文章目录 1. 下载镜像并启动容器2. 配置Nexus3. 配置本地Maven仓库 1. 下载镜像并启动容器 下载Nexus3镜像 docker pull sonatype/nexus3查看Nexus3镜像是否下载成功 docker images创建Nexus3的挂载文件夹 mkdir /usr/local/nexus-data && chown -R 200 /usr/local…

基于SSM的校园疫情管理系统的设计与实现(有报告)。Javaee项目。ssm项目。

演示视频: 基于SSM的校园疫情管理系统的设计与实现(有报告)。Javaee项目。ssm项目。 项目介绍: 采用M(model)V(view)C(controller)三层体系结构,…

鸿蒙开发-UI-动画-页面内动画

鸿蒙开发-UI-组件2 鸿蒙开发-UI-组件3 鸿蒙开发-UI-气泡/菜单 鸿蒙开发-UI-页面路由 鸿蒙开发-UI-组件导航-Navigation 鸿蒙开发-UI-组件导航-Tabs 鸿蒙开发-UI-图形-图片 鸿蒙开发-UI-图形-绘制几何图形 鸿蒙开发-UI-图形-绘制自定义图形 文章目录 前言 一、概述 二、页面内…

【LakeHouse】LakeHouse 架构指南

LakeHouse 架构指南 1.什么是数据湖,为什么需要数据湖2.数据湖、数据仓库和 LakeHouse 之间有什么区别3.数据湖的组件3.1 存储层 / 对象存储(AWS S3、Azure Blob Storage、Google Cloud Storage)3.2 数据湖文件格式(Apache Parque…

C#,老鼠迷宫问题的回溯法求解(Rat in a Maze)算法与源代码

1 老鼠迷宫问题 迷宫中的老鼠,作为另一个可以使用回溯解决的示例问题。 迷宫以块的NN二进制矩阵给出,其中源块是最左上方的块,即迷宫[0][0],目标块是最右下方的块,即迷宫[N-1][N-1]。老鼠从源头开始,必须…

R语言 | 复数 相关函数

问题 大家好&#xff0c;我有一个问题&#xff0c;我看到一个函数如下&#xff1a; L2_distance <- function(A, B){rowA <- apply(A*A, 1, sum)matrixA <- matrix(rep(rowA, eachlength(rowA)), nrowlength(rowA), byrowT)rowB <- apply(B*B, 1, sum)matrixB &l…

Elasticsearch:什么是 DevOps?

DevOps 定义 DevOps 是一种现代软件开发方法&#xff0c;它将公司软件开发 (Dev) 和 IT 运营 (Ops) 团队的工作结合起来并实现自动化。 DevOps 提倡这样一种理念&#xff1a;这些传统上独立的团队在协作方面比在孤岛中更有效。 理想情况下&#xff0c;DevOps 团队共同努力改进…

App拉起微信小程序参考文章

App拉起微信小程序参考文章h5页面跳转小程序-----明文URL Scheme_weixin://dl/business/?appid*appid*&path*path*&qu-CSDN博客文章浏览阅读561次&#xff0c;点赞16次&#xff0c;收藏5次。仅需两步&#xff0c;就能实现h5跳转小程序&#xff0c;明文 URL Scheme&…

Java面试——Netty

优质博文&#xff1a;IT-BLOG-CN 一、BIO、NIO 和 AIO 【1】阻塞 IO(Blocking I/O)&#xff1a; 同步阻塞I/O模式&#xff0c;当一条线程执行 read() 或者 write() 方法时&#xff0c;这条线程会一直阻塞直到读取一些数据或者写出去的数据已经全部写出&#xff0c;在这期间这条…

HybridCLR热更新介绍

官方文档 参照视频 HybridCLR介绍 HybridCLR是一个特性完整、零成本、高性能、低内存的近乎完美的Unity全平台原生c#热更方案 HybridCLR与ToLua/XLua、ILRuntime有什么不同 什么是游戏热更新&#xff1a;有热更的游戏更新流程 游戏热更新的种类 资源热更新&#xff1a;主要…

Stable Diffusion WebUI 中英文双语插件(sd-webui-bilingual-localization)并解决了不生效的情况

本文收录于《AI绘画从入门到精通》专栏&#xff0c;专栏总目录&#xff1a;点这里。 大家好&#xff0c;我是水滴~~ 本文介绍一款中英文对照插件 sd-webui-bilingual-localization&#xff0c;该插件可以让你的 Stable Diffusion WebUI 界面同时显示中文和英文&#xff0c;让我…

设计模式学习笔记 - 设计原则 - 10.实战:针对非业务的通用框架开发,如何做需求分析和设计及如何实现一个支持各种统计规则的性能计数器

前言 接下来我们在结合一个支持各种统计规则的性能计数项目&#xff0c;学习针对一个非业务的通用框架开发&#xff0c;如何来做需求分析、设计和实现&#xff0c;同时学习如何灵活应用各种设计原则。 项目背景 设计开发一个小的框架&#xff0c;能够获取接口调用的各种统计信…

Compose UI 之 MediumLarge TopAppBar

Medium&Large TopAppBar 前面文章介绍了 Small 类型的 TopAppBar&#xff1a;TopAppBar CenterAlignedTopAppBar 。下来介绍 Medium 和 Large 类型的 TopAppBar&#xff1a;MediumTopAppBar LargeTopAppBar 。 MediumTopAppBar 上面介绍了Small 类型的 TopAppBar (TopAp…