EPICS motor模块

news/2024/5/6 22:13:15/文章来源:https://blog.csdn.net/yuyuyuliang00/article/details/129271803

一、概要

1) 在EPICS motor模块中的是什么并且它为了什么?

2) 支持的电机控制器和模型

3)电机记录特性

4)配置示例

5)反馈

6) 重试

7) 回程差矫正

8)发行

二、术语

1) MM                <-->        电机模块发行

2) MR                <-->        电机记录

3) EGU              <-->        工程单位

4)RPS                <-->        每秒分辨率

5)步进电机步长和编码器刻度

6)回读                <-->        反馈

7)目标位置:用户请求的,静态的,绝对的位置(VAL)

8)  命令的位置:电机控制器的当前,动态,绝对参考位置(RMP)。

三、在Motor模块中的是什么?

1)用户窗口:medm, CSS/Boy, caQtDm(主要是调试,某些程序专用,例如:飞行扫描)(位置:<motor>/motorApp/op/*)

2)数据库:(被*.substitution文件引用的模板)(位置:<motor>/motorApp/Db)

3) MR(*.dbd和4000+.cc)和公共的设备/驱动代码,由所有设备/驱动共享(位置:<motor>/motorApp/MotorSrc)。

  • 3种不同的电机模块设备/驱动架构
  • Model 1(唯一设备),Model 2和3(公共设备)
  • 网址:Motor Device and Driver Support

4) 厂家专用命令,设备/驱动代码和*.dbd(README docs)(位置:<motor>/motorApp/<vendor-name>Src)。

5) 保存/恢复*.req文件(位置:<motor>/motorApp/Db)。

6) 电机设备/驱动(构建选项)带的两个IOC构建示例(w/和w/o asyn)

7)iocBoot示例(控制器专用st.cmd和进行支持的*.cmd文件)(构建选项)(位置:<motor>/iocBoot/*)

8) 文档(发行注意,motor记录和设备/驱动信息)(位置:<motor>/documention)

四、Motor模块为了什么?

1) 设备无关--电机硬件对用户是透明的

2) 对于所有设备,相同的用户窗口和电机移动行为

从以上窗口可用操作:

  • 进行绝对或增量移动
  • 定义当前位置
  • 停止当前移动

没有任何控制器专用的信息。

3)对于所有支持的控制器,公共的设备和驱动层软件

4)不受支持的MR特性在设备/驱动被处理,一般,通过忽略这个请求。

五、支持的制造商 

 

六、特性

1)范围

MR的范围受限于单轴,非协调,点到点移动

2) 坐标系统

1) 某些控制器使用raw单位用于通信。

  • MR用raw单位与设备支持进行通信
  • 用step, steps/sec和steps/sec^2传递位置,速度和加速度MR命令给设备支持。

2) 其它控制控制器用工程单位(EGU's)进行通信;例如:英寸,毫米,角度。设备支持处理转换。

3) 电机分辨率字段(MRES)转换raw值为dial值。转换raw目标位置(RVAL)为dial目标(DVAL):

        DVAL[EGU's] = RVAL[steps] * MRES[EGU's/step]

4) 用户单位是基于dial单位,用户方向字段(DIR)和用户偏移字段(OFF)。

        转换dial目标位置(DVAL)为用户目标(VAL):

        VAL = (DVAL * DIR) + OFF; 此处DIR=+/-1。

3) 移动类型

1) 绝对(VAL, DVAL, RVAL)

2) 相对(RLV)

3) 增量(TWF, TWR, TWV)

 4) homing, jogging(归位,轻碰)

1) 归位搜索(HOMF, HOMR, HVEL)

2) 轻碰(JOGF, JOGR, JVEL, JAR)

3) 安全问题:

  • 执行第一阶段?首先检查硬件限位开关。
  • 加伤风险,远程操作,伺服系统

5) 设置位置,软行程限位

1) 定义当前位置(SET, OFF)

2) 软行程限位(HLM, LLM, DHLM, DLLM)(如果DHLM=DLLM=0,则禁用)

 

6) 其余特性

1) 在初始时,移动前和移动后,发送电机控制器命令原语(INIT, PREM, POST)。

2)通过设备指令驱动功率监视和电机同步DB Puts。

3) 通过状态更新字段(STUP)用户初始更新。

4) 一些字段是电机类型专用的:

  • PID参数(PCOF/ICOF/DCOF)用于伺服电机(倍归一化位0 -> 1)。
  • 对于步进电机的起始速度(VBAS)。
  • 对于软通道,结束移动输入链接(DINP)。

5) 来自一个EPICS PV链接或者一个电机控制器的位置反馈。

七、配置示例

1) 设置工程单位字段(EGU);inch,mm,degree

2) 设置电机分辨率(MERS)字段,以以下为单位:

  • 对于步进电机(EGU's / motor step)
  • 对于伺服电机(EGU's / encoder tick)

3) MRES应该被设置成说明?

4) 对于导杆直接被步进电机驱动的简单线性平台。

  1. UREV = EGU's / 1 leadscrew rev. 
  2. SREV = motor steps / 1 motor rev. > 0 
  3. MRES = UREV /SREV
  4. MRES和UREV允许负值,因而这个记录的坐标系统可以被设置为电机控制器的反向极性。
  5. 当电机移动时,不要更改MRES。

八、变速箱示例

传动比定义:一个传动链的动力齿轮和最后或者驱动齿轮的比率。因而,一个3:1传动比表示导杆每1个分辨率,电机产生3个分辨率。

对一个电机安装编码器的伺服电机, 更改电机步长为编码器刻度。

九、反馈

1) 输入位置反馈给电机记录的两种方式

  1. 从驱动支持,通过电机控制器
  2. 从一个EPICS PV,通过独立,反馈设备。

2) 对于来自驱动支持的反馈:

  1. 初始化时驱动层代码在电机状态字段(MSTA)设置编码器为存在位(EA_PRESENT)。
  2. Raw编码器位置字段(REP)有电机控制器的raw编码器值(ticks)。

3) 配置来自驱动支持的反馈:

  1.  设置编码器分辨率字段(ERES)转换编码器ticks为EGU's
  2.  如果使用编码器存在字段(UEIP)决定是否使用REP(Yes/No)。

4) 配置来自EPICS PV的反馈:

  1. 设置回读PV链接(RDBL)
  2. 设置回读分辨率(RRES)来转换RDBL PV单位为EGU's
  3. 使用恢复如果村扎起字段(URIP)确定是否使用RDBL PV链接[Yes/No]

5)  Raw电机位置(RMP)是从电机控制器读取的当前命令位置。如果电机记录闭环控制是off(UEIP和URIP都为No),则在每次移动后RVAL=RMP。

6) Raw回读值字段(RRBV)可以以steps或ticks为单位。

7) 反馈数据流

 

九、重试

1) 它不是什么。重试不是连续的,动态闭环。

2) 它是什么。重试尝试通过基于DIFF字段进行,一直性,相对移动来消除dial位置误差(DIFF)。

3) DIFF = DVAL - DRBV

4) 如果[RTRY != 0,并且((EA_PRESENT = True, 并且 UEIP == Yes )或者URIP=Yes)]是真,则所有电机记录移动是相对移动。

5) 设置重试:

  • 对于一个伺服电机,通常设置UEIP == No。
  • 设置重试死区(RDBD); 如果(DIFF>RDBD,重试)
  • 设置最大重试次数(RTRY) -- 重试的最大次数
  • 当前重试次数(RCNT) -- 在每次移动开始时被清除。

 

十、齿隙

1) 齿隙:由于机械缺陷,丢失运动

2) 齿隙配置:

  • 齿隙距离(BDST)确定齿隙移动的幅度和方向。
  • 齿隙有它自己的速度(BVEL)和加速度(BACC)参数。

3) 齿隙矫正算法:

  • 选择方向--BDST方向
  • 回转参数--回转速度(VELO)和加速度(ACCL)
  • 齿隙参数:BVEL和BACC

齿隙矫正逻辑

1) 考虑移动到一个称为目标的位置:

IF 禁用齿隙(0=|BDST| < |MRES|) 或者(移动是按选择方向,并且齿隙参数==回转参数),则跳过齿隙,使用回转参数移动到目标。

ELSE IF 增量距离 > |BDST| 或者移动不是选择方向,则使用回转参数移动到位置(Target - BDST),接着使用齿隙参数移动到目标。

ELSE IF 增量距离 <= |BDST|, 并且移动是按照选择的方向,则认为齿隙已经被消除;使用齿隙参数移动到目标。

ENDIF

 

十一、motor模块发行和构建自定义

电机模块构建自定义

1) 要构建示例,取消注释在<motor>/Makefile中一"#!"开始的三行。

2) <motor>/configure/RELEASE:

  • 如果仅定义了EPICS_BASE,仅OMS和软通道模型#1 设备/驱动被构建。
  • 别的其它所有东西,需要Asyn

3) <motor>/motorApp/Makefile:定义构建哪些设备/驱动模块

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

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

相关文章

webrtc拥塞控制算法对比-GCC vs BBR vs PCC

1.前言现有集成在webrtc中的拥塞控制算法有三种, 分别是: 谷歌自研发的gcc, 谷歌自研发的BBR算法, 斯坦福大学提出的基于机器学习凸优化的PCC算法. 本文将探讨一下三个算法的区别和优缺点。2.背景迈聆会议从17年到现在, 一直使用的是基于谷歌的gcc算法自研的Omcc算法(optimizat…

[软件测试]如何使用Eclipse导入项目并打开

&#x1f9d1;‍&#x1f393;个人介绍&#xff1a;大二软件生&#xff0c;现学JAVA、Linux、MySQL、算法 &#x1f4bb;博客主页&#xff1a;渡过晚枫渡过晚枫 &#x1f453;系列专栏&#xff1a;[编程神域 C语言]&#xff0c;[java/初学者]&#xff0c;[蓝桥杯] &#x1f4d…

数据结构与算法基础-学习-14-线性表之串

一、串的定义由0-n个字符组成的有限序列。&#xff08;n>0&#xff09;二、串的相关术语1、子串串中任意个连续字符组成的子序列成为该串的子串。2、主串包含子串的串成为主串。3、字符位置字符在序列中的序号为该字符在串中的位置。4、子串位置子串第一个字符在主串中的位置…

[Java·算法·中等]LeetCode17. 电话号码的字母组合

每天一题&#xff0c;防止痴呆题目示例分析思路1题解1分析思路2题解2题目 给定一个仅包含数字 2-9 的字符串&#xff0c;返回所有它能表示的字母组合。答案可以按 任意顺序 返回。 给出数字到字母的映射如下&#xff08;与电话按键相同&#xff09;。注意 1 不对应任何字母。…

CSS简单使用

凡是html中的标签都可以进行选中&#xff0c;p代表标签中所有的p标签都遵从以上格式。<!DOCTYPE html> <html lang"en"> <head><style type"text/css">p{background-color: red;font-size: 40px;}.p1{font-family:楷体;}</styl…

爆品分析第4期 | 从周销12件到3700+件,这款收腰裤热度和口碑都爆了!

衣食住行&#xff0c;衣是排在第一位的&#xff0c;作为复购率最高的类目之一&#xff0c;服饰一直是TikTok上电商选品的风向标&#xff0c;是衡量电商发展情况的重要参考指标。随着疫情的结束和经济的日渐好转&#xff0c;消费者对服装类的需求上升。除了时装、T恤等日常消费的…

关于PPP-RTK技术优势的一些思考与总结

文章目录一、前言二、SSR修正与PPP三、RTK与PPP-RTK的对比四、PPP-RTK的技术优势五、总结参考文章欢迎关注个人公众号&#xff1a;导航员学习札记 一、前言 感觉近几年PPP和PPP-RTK一直都是GNSS比较火的方向&#xff0c;也有越来越多的国内外厂商提供相关服务&#xff0c;播发…

HTTP2.0协议学习

背景 在优化页面加载速度的时候&#xff0c;发现了HTTP1.1并发数的限制&#xff0c;为了解除这个限制&#xff0c;准备把网站协议升级到HTTP2.0. 之前在学习《趣谈网络协议》的时候&#xff0c;有学习过HTTP2.0协议&#xff0c;但是没有输出成文档&#xff0c;因此借这个机会&…

DIY-BETAFPV和DIY(ESP-01F+E19-900M20S2模块)915MHz信号测试对比

DIY-BETAFPV和DIY&#xff08;ESP-01FE19-900M20S2模块&#xff09;915MHz信号测试对比1. 前提条件2. 实测效果2.1 起点附近&#xff08;距离3m左右&#xff09;2.2 30m米距离&#xff08;树梢&#xff09;2.3 80米距离3. 整体比较4. PCBA分析4.1 DIY-BETAFPV4.2 DIY&#xff0…

阿里云服务器ECS的功能特性有哪些?

本文介绍云服务器ECS的功能特性&#xff0c;帮助您更好地了解和使用云服务器ECS。 1、实例 实例是云上的虚拟计算服务器&#xff0c;内含vCPU、内存、操作系统、网络、磁盘等基础组件。您可以使用阿里云提供的控制台、API等管理工具创建和管理ECS实例&#xff0c;像使用本地服…

Java-封装、继承、多态

封装 访问控制权限又成为“封装”&#xff0c;是面向对象三大特征中的一种。核心是&#xff0c;只对需要的类可见。 继承 继承是所有OOP&#xff08;Object Oriented Programming&#xff09;语言和Java语言都不可或缺的一部分。 只要创建一个类&#xff0c;就隐式继承自Obje…

openpnp - configure - 矫正里程碑

文章目录openpnp - configure - 矫正里程碑概述备注ENDopenpnp - configure - 矫正里程碑 概述 进入矫正里程碑了 查找问题 现在第一个问题是X轴的齿隙矫正 根据提示, 将顶部相机移动到主基准点上, 选择容差(就选用默认的0.025), 开始矫正. 正好开机后, 使能了视觉原点归零. …

Puppeteer项目结构梳理

最近接触了一个个人感觉很奈斯的项目&#xff0c;故记录思路如下&#xff1a; puppeteer项目梳理&#xff1a; 入口文件 run.js 入口命令 node run.js YourConfig.json 1、我们可以在自己的config.json里面设置好 ①、登录的用户名密码;aws或其它服务器的access等id,accessKey…

linux--多线程(一)

文章目录Linux线程的概念线程的优点线程的缺点线程异常线程的控制创建线程线程ID以及进程地址空间终止线程线程等待线程分离线程互斥进程线程间的互斥相关概念互斥量mutex有线程安全问题的售票系统查看ticket--部分的汇编代码互斥量的接口互斥量实现原理探究可重入和线程安全常…

校园外卖点餐系统——Day05【套餐管理业务开发】

❤ 作者主页&#xff1a;欢迎来到我的技术博客&#x1f60e; ❀ 个人介绍&#xff1a;大家好&#xff0c;本人热衷于Java后端开发&#xff0c;欢迎来交流学习哦&#xff01;(&#xffe3;▽&#xffe3;)~* &#x1f34a; 如果文章对您有帮助&#xff0c;记得关注、点赞、收藏、…

jQuery 属性操作

jQuery 属性操作 Date: February 28, 2023 Sum: jQuery属性操作、文本属性值、元素操作、尺寸、位置操作 jQuery 属性操作 设置或获取元素固有属性值 prop() 所谓元素固有属性就是元素本身自带的属性&#xff0c;比如 元素里面的 href &#xff0c;比如 元素里面的 type。 …

爆文制造机!小红书热榜3个方向,告诉你选题诀窍!

我们知道&#xff0c;不论是达人创作内容&#xff0c;还是品牌制定Brief&#xff0c;都需要提前调研筛选海量信息&#xff0c;这时候如果有一个自己的内容素材库&#xff0c;就省事多啦。按照内容需求&#xff0c;我们可以按3个角度划分小红书内容素材&#xff1a;笔记类型、竞…

挑战图像处理100问(24)——伽玛校正

伽马校正&#xff08;Gamma Correction&#xff09;是一种图像处理技术&#xff0c;用于校正显示设备的非线性响应。通过对图像进行伽马变换&#xff0c;可以将图像的亮度范围映射到显示设备的亮度范围内&#xff0c;从而提高图像的对比度和细节&#xff0c;改善图像的视觉效果…

【JavaSE】对象的比较

哈喽&#xff0c;大家好&#xff01;我是保护小周ღ&#xff0c;本期为大家带来的是Java中自定义类型&#xff08;对象&#xff09;的三种比较方式&#xff0c;equals 方法, Comparable 泛型接口, Comparator 泛型接口 。在日常编程中&#xff0c;我们常常会需要比较的问题&…

Linux 自带按键驱动

目录 一、内核检查 二、驱动文件 三、设备树 四、验证 一、内核检查 内核一般默认已经使能了 KEY 驱动&#xff0c;但是还是要检查一下。按照如下路径找到相应的配置选项&#xff1a; Device Drivers -> Input device support -> Generic in…