CANopen DS402 Homing方法分析

2023-12-30 19:44

本文主要是介绍CANopen DS402 Homing方法分析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本文主要分析CANopen DS402中各种Homing方法。


一 装置通用结构

讲解Homing方法前,需要了解一下装置的通用结构,
在这里插入图片描述

装置一般左右各有一个limit switch,即限位开关,用来控制移动范围,分别叫negative限位开关和positive限位开关。

有时根据需要会有home switch,用来确定home位置,分为negative home开关和positive home开关。

Homing需要运动,运动时则会转动电机,电机通常会连接编码器,转动时会带着编码器一起转动,编码器在转动时会发出index pulse。


二 Homing方法

DS402 Spec里Homing方法有35个,本节挨个分析。

Method 1: Homing on the negative limit switch and index pulse

运动轨迹如下,
在这里插入图片描述
该方法使用negative限位开关和编码器index pulse来找home位置。

起始时,如果negative限位开关的电平为低,那么就会驱动电机往左运动,碰到negative限位开关后电平就会变成高,然后往右运动,等negative限位开关的电平变成低之后编码器发出的第一个index pulse就是home位置,此时运动就会停止。

起始时,如果negative限位开关的电平为高,那么就会直接往右运动,等negative限位开关的电平变成低之后编码器发出的第一个index pulse就是home位置。

Method 2: Homing on the positive limit switch and index pulse

运动轨迹如下,
在这里插入图片描述
该方法使用positive限位开关和编码器index pulse来找home位置,与Method 1类似

起始时,如果positive限位开关的电平为低,那么就会驱动电机往右运动,碰到positive限位开关后电平就会变成高,然后往左运动,等positive限位开关的电平变成低之后编码器发出的第一个index pulse就是home位置,此时运动就会停止。

起始时,如果positive限位开关的电平为高,那么就会直接往左运动,等positive限位开关的电平变成低之后编码器发出的第一个index pulse就是home位置。

Methods 3 and 4: Homing on the positive home switch and index pulse

运动轨迹如下,
在这里插入图片描述
起始时,如果positive home开关电平是低,那么就会往右运动;如果home开关电平是高,那么就会往左运动。这个比较好理解,positive home开关电平为低说明没有运动到positive home开关的位置,那么就会往positive方向运动;positive home开关电平为高说明已经超过positive home开关的位置,那么就会往negative方向运动。

运动过程中,如果home开关电平发生变化(高变低或低变高),那么home开关位置左侧或右侧的index pulse决定home位置。

method 3是由home开关位置左侧的index pulse决定,所以如果positive home开关位置电平由低变高,那么就会往反方向运动去寻找home位置;如果positive home开关位置电平由高变低,那么会继续沿着初始运动方向去寻找home位置。

method 4是由home开关位置右侧的index pulse决定,所以如果positive home开关位置电平由高变低,那么就会往反方向运动去寻找home位置;如果positive home开关位置电平由低变高,那么会继续沿着初始运动方向去寻找home位置。

Methods 5 and 6: Homing on the negative home switch and index pulse

运动轨迹如下,
在这里插入图片描述
与Methods 3 and 4类型。

起始时,如果negative home开关电平是低,那么就会往左运动;如果home开关电平是高,那么就会往右运动。这个比较好理解,negative home开关电平为低说明没有运动到negative home开关的位置,那么就会往negative方向运动;negative home开关电平为高说明已经超过negative home开关的位置,那么就会往positive方向运动。

运动过程中,如果home开关电平发生变化(高变低或低变高),那么home开关位置左侧或右侧的index pulse决定home位置。

method 5是由home开关位置右侧的index pulse决定,所以如果negative home开关位置电平由低变高,那么就会往反方向运动去寻找home位置;如果negative home开关位置电平由高变低,那么会继续沿着初始运动方向去寻找home位置。

method 6是由home开关位置左侧的index pulse决定,所以如果negative home开关位置电平由高变低,那么就会往反方向运动去寻找home位置;如果negative home开关位置电平由低变高,那么会继续沿着初始运动方向去寻找home位置。

Methods 7 to 14: Homing on the home switch and index pulse

method 7,8,9,10运动轨迹如下,
在这里插入图片描述

这个装置比较特殊,其home开关在完整行程中有一部分持续位置是高电平,其全行程运动过程中,home开关会变高一段时间,然后变低,如红框展示。

起始时,如果home开关电平是低,那么都会往右运动。

起始位置分为3种情况,即图中绿色标注的地方。

  • Case 1:起始时,home开关是低电平,即deactive,4种方法都会往右运动。
    • 方法7往右运动,当home开关电平由低变高,会反向往左运动,电平变化处左侧的的第一个index pulse就是方法7的home位置;
    • 方法8往右运动,当home开关电平由低变高,会继续往右运动,电平变化处右侧的的第一个index pulse就是方法8的home位置;
    • 方法9往右运动,当home开关电平由低变高,会继续往右运动,直到home开关电平由高变低,此时会反向往左运动,电平变化处左侧的的第一个index pulse就是方法9的home位置,
    • 方法10往右运动,当home开关电平由低变高,会继续往右运动,直到home开关电平由高变低,会继续往右运动,电平变化处右侧的的第一个index pulse就是方法10的home位置
  • Case 2:起始时,home开关是高电平,即active,方法7和8会往左运动,方法9和10则往右运动。
    • 方法7往左运动,当home开关电平由高变低,会继续运动,电平变化处左侧第一个index pulse就是方法7的home位置
    • 方法8往左运动,当home开关电平由高变低,会反向往右运动,电平变化处右侧第一个index pulse就是方法8的home位置
    • 方法9往右运动,当home开关电平由高变低,会反向往左运动,电平变化处左侧第一个index pulse就是方法9的home位置
    • 方法10往右运动,当home开关电平由高变低,会继续运动,电平变化处右侧第一个index pulse就是方法10的home位置
  • Case 3:起始时,home开关是低电平,即deactive,4种方法都会往右运动,当遇到positive限位开关电平由低变高(说明走到了极限),那么就会都反向往左运动。
    • 方法7往左运动,当home开关电平由低变高,会继续往左运动,直到home开关电平由高变低,继续运动,电平变化处左侧第一个index pulse就是方法7的home位置
    • 方法8往左运动,当home开关电平由低变高,会继续往左运动,直到home开关电平由高变低,会反向往右运动,电平变化处右侧第一个index pulse就是方法8的home位置
    • 方法9往左运动,当home开关电平由低变高,会继续往左运动,电平变化处左侧的的第一个index pulse就是方法9的home位置
    • 方法10往左运动,当home开关电平由低变高,会反向往右运动,电平变化处右侧的的第一个index pulse就是方法10的home位置

method 11,12,13,14运动轨迹如下,
在这里插入图片描述
与方法7,8,9,10类似,只是起始时如果home开关电平是低,就会都往左运动,限位开关是negative的。

Methods 15 and 16: Reserved

Methods 17 to 30: Homing without an index pulse

运动轨迹如下,
在这里插入图片描述
method 17到30和method 1到14类似,只是不需要index pulse,只看home开关。

17对应1, 18对应2,…,30对应14,都是在对应方法里去掉index pulse就行了。如上图中方法19和20对应之前的方法3和4,只是把方法3和4里的index pulse去掉。

Methods 31 and 32: Reserved

Methods 33 to 34: Homing on the index pulse

在这里插入图片描述
method 33的初始运动方向是朝左,method 34的初始运动方向是朝右,home位置是对应运动方向上遇到的index pulse。
注意:Spec里没说是第几个index pulse

Method 35: Homing on the current position

直接把当前位置当做home位置,似乎不需要运动。


三 总结

本文分析了DS402协议中homing操作的各种方法,如果单独看文档,会比较难理解,只有对实际的装置结构有一定的了解,那么就比较容易理解了。

这篇关于CANopen DS402 Homing方法分析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


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

相关文章

Linux系统中查询JDK安装目录的几种常用方法

《Linux系统中查询JDK安装目录的几种常用方法》:本文主要介绍Linux系统中查询JDK安装目录的几种常用方法,方法分别是通过update-alternatives、Java命令、环境变量及目... 目录方法 1:通过update-alternatives查询(推荐)方法 2:检查所有已安装的 JDK方

SQL Server安装时候没有中文选项的解决方法

《SQLServer安装时候没有中文选项的解决方法》用户安装SQLServer时界面全英文,无中文选项,通过修改安装设置中的国家或地区为中文中国,重启安装程序后界面恢复中文,解决了问题,对SQLSe... 你是不是在安装SQL Server时候发现安装界面和别人不同,并且无论如何都没有中文选项?这个问题也

Java Thread中join方法使用举例详解

《JavaThread中join方法使用举例详解》JavaThread中join()方法主要是让调用改方法的thread完成run方法里面的东西后,在执行join()方法后面的代码,这篇文章主要介绍... 目录前言1.join()方法的定义和作用2.join()方法的三个重载版本3.join()方法的工作原

在MySQL中实现冷热数据分离的方法及使用场景底层原理解析

《在MySQL中实现冷热数据分离的方法及使用场景底层原理解析》MySQL冷热数据分离通过分表/分区策略、数据归档和索引优化,将频繁访问的热数据与冷数据分开存储,提升查询效率并降低存储成本,适用于高并发... 目录实现冷热数据分离1. 分表策略2. 使用分区表3. 数据归档与迁移在mysql中实现冷热数据分

Spring Boot从main方法到内嵌Tomcat的全过程(自动化流程)

《SpringBoot从main方法到内嵌Tomcat的全过程(自动化流程)》SpringBoot启动始于main方法,创建SpringApplication实例,初始化上下文,准备环境,刷新容器并... 目录1. 入口:main方法2. SpringApplication初始化2.1 构造阶段3. 运行阶

Olingo分析和实践之EDM 辅助序列化器详解(最佳实践)

《Olingo分析和实践之EDM辅助序列化器详解(最佳实践)》EDM辅助序列化器是ApacheOlingoOData框架中无需完整EDM模型的智能序列化工具,通过运行时类型推断实现灵活数据转换,适用... 目录概念与定义什么是 EDM 辅助序列化器?核心概念设计目标核心特点1. EDM 信息可选2. 智能类

Olingo分析和实践之OData框架核心组件初始化(关键步骤)

《Olingo分析和实践之OData框架核心组件初始化(关键步骤)》ODataSpringBootService通过初始化OData实例和服务元数据,构建框架核心能力与数据模型结构,实现序列化、URI... 目录概述第一步:OData实例创建1.1 OData.newInstance() 详细分析1.1.1

Olingo分析和实践之ODataImpl详细分析(重要方法详解)

《Olingo分析和实践之ODataImpl详细分析(重要方法详解)》ODataImpl.java是ApacheOlingoOData框架的核心工厂类,负责创建序列化器、反序列化器和处理器等组件,... 目录概述主要职责类结构与继承关系核心功能分析1. 序列化器管理2. 反序列化器管理3. 处理器管理重要方

Python错误AttributeError: 'NoneType' object has no attribute问题的彻底解决方法

《Python错误AttributeError:NoneTypeobjecthasnoattribute问题的彻底解决方法》在Python项目开发和调试过程中,经常会碰到这样一个异常信息... 目录问题背景与概述错误解读:AttributeError: 'NoneType' object has no at

postgresql使用UUID函数的方法

《postgresql使用UUID函数的方法》本文给大家介绍postgresql使用UUID函数的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录PostgreSQL有两种生成uuid的方法。可以先通过sql查看是否已安装扩展函数,和可以安装的扩展函数