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

相关文章

SQL中redo log 刷⼊磁盘的常见方法

《SQL中redolog刷⼊磁盘的常见方法》本文主要介绍了SQL中redolog刷⼊磁盘的常见方法,将redolog刷入磁盘的方法确保了数据的持久性和一致性,下面就来具体介绍一下,感兴趣的可以了解... 目录Redo Log 刷入磁盘的方法Redo Log 刷入磁盘的过程代码示例(伪代码)在数据库系统中,r

Python实现图片分割的多种方法总结

《Python实现图片分割的多种方法总结》图片分割是图像处理中的一个重要任务,它的目标是将图像划分为多个区域或者对象,本文为大家整理了一些常用的分割方法,大家可以根据需求自行选择... 目录1. 基于传统图像处理的分割方法(1) 使用固定阈值分割图片(2) 自适应阈值分割(3) 使用图像边缘检测分割(4)

Java中Switch Case多个条件处理方法举例

《Java中SwitchCase多个条件处理方法举例》Java中switch语句用于根据变量值执行不同代码块,适用于多个条件的处理,:本文主要介绍Java中SwitchCase多个条件处理的相... 目录前言基本语法处理多个条件示例1:合并相同代码的多个case示例2:通过字符串合并多个case进阶用法使用

Python中__init__方法使用的深度解析

《Python中__init__方法使用的深度解析》在Python的面向对象编程(OOP)体系中,__init__方法如同建造房屋时的奠基仪式——它定义了对象诞生时的初始状态,下面我们就来深入了解下_... 目录一、__init__的基因图谱二、初始化过程的魔法时刻继承链中的初始化顺序self参数的奥秘默认

html5的响应式布局的方法示例详解

《html5的响应式布局的方法示例详解》:本文主要介绍了HTML5中使用媒体查询和Flexbox进行响应式布局的方法,简要介绍了CSSGrid布局的基础知识和如何实现自动换行的网格布局,详细内容请阅读本文,希望能对你有所帮助... 一 使用媒体查询响应式布局        使用的参数@media这是常用的

Java程序进程起来了但是不打印日志的原因分析

《Java程序进程起来了但是不打印日志的原因分析》:本文主要介绍Java程序进程起来了但是不打印日志的原因分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Java程序进程起来了但是不打印日志的原因1、日志配置问题2、日志文件权限问题3、日志文件路径问题4、程序

Spring 基于XML配置 bean管理 Bean-IOC的方法

《Spring基于XML配置bean管理Bean-IOC的方法》:本文主要介绍Spring基于XML配置bean管理Bean-IOC的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一... 目录一. spring学习的核心内容二. 基于 XML 配置 bean1. 通过类型来获取 bean2. 通过

基于Python实现读取嵌套压缩包下文件的方法

《基于Python实现读取嵌套压缩包下文件的方法》工作中遇到的问题,需要用Python实现嵌套压缩包下文件读取,本文给大家介绍了详细的解决方法,并有相关的代码示例供大家参考,需要的朋友可以参考下... 目录思路完整代码代码优化思路打开外层zip压缩包并遍历文件:使用with zipfile.ZipFil

Python处理函数调用超时的四种方法

《Python处理函数调用超时的四种方法》在实际开发过程中,我们可能会遇到一些场景,需要对函数的执行时间进行限制,例如,当一个函数执行时间过长时,可能会导致程序卡顿、资源占用过高,因此,在某些情况下,... 目录前言func-timeout1. 安装 func-timeout2. 基本用法自定义进程subp

Java字符串操作技巧之语法、示例与应用场景分析

《Java字符串操作技巧之语法、示例与应用场景分析》在Java算法题和日常开发中,字符串处理是必备的核心技能,本文全面梳理Java中字符串的常用操作语法,结合代码示例、应用场景和避坑指南,可快速掌握字... 目录引言1. 基础操作1.1 创建字符串1.2 获取长度1.3 访问字符2. 字符串处理2.1 子字