【SOEM主站】EtherCAT主站时钟偏移补偿

         在进行EtherCAT主从通讯测试时,比较容易在DC配置出现错误,特别是使用到从站DC模式时,有时会报同步错误,有时即使没报错误伺服从站运行过程中也会出现电机轴的抖动。引起同步错误其中一个原因就是主站发送数据帧时间存在较大的抖动,导致数据帧在从站收到SYNC信号之后才到达从站。因此,需要对EtherCAT主站的时钟进行偏移补偿。

1、DC时钟的工作原理 

       DC时钟可以使所有EtherCAT设备使用相同的系统时间,从而控制各设备任务的同步执行。DC时钟机制使所有的从站都同步于一个参考时钟。一般将主站连接的第一个具有DC时钟功能的从站作为参考时钟,以参考时钟同步其他设备和主站的从时钟。具体原理可参考《工业以太网现场总线EtherCAT驱动程序设计及应用》书籍。

      从站间的同步一般通过ESC的DC单元来保证,也即SYNC0(输出同步)和SYNC1信号(输入同步),这些信号同步精度可以达到很高,一般远远低于1us的,实践中可以做到几个ns。SYNC0/1频率一般与EtherCAT通讯周期相同,例如EtherCAT通讯周期1ms,SYNC脉冲频率通常也设置为1kHz。 

2、主站时钟 

       EtherCAT主站也具有计时功能, 称为主站时钟。通常情况下,EtherCAT主站协议栈通过在其控制硬件中的硬件计时器来循环发送输出数据。例如对于STM32主站而言,一般采用定时器中断来控制。如果系统通讯周期为1ms,那么定时器中断周期应设置为1ms。由于STM32定时器来源于系统时钟,而系统时钟又是基于外部晶振PLL得到,会存在时间偏移。

       对于从站而言,接收到主站通讯帧后会产生SM中断信号,这个SM信号与主站的通讯周期直接相关,而从站的SYNC0/1信号是从站ESC产生的。由于主站定时器时钟与从站ESC的SYNC0/1存在偏差,因此SM信号和SYNC0/1信号会存在时间偏差,且这个偏差会随时间偏移。当从站先收到SYNC信号,数据帧才到达从站后,就会引起同步错误。

3、主站时钟偏移补偿

      为保证主站发送数据周期与系统DC周期保持一致,需要调整主站器的发送周期,实时进行时钟偏移补偿,从而减少系统抖动。当主站数据帧发送周期大于DC同步信号周期时,减少主站定时器的Period值;当主站数据帧发送周期小于DC同步信号周期时,增大主站定时器的Period值。具体方法可以:周期性计算EtherCAT主站时间和DC时钟主站时间之间的差异,基于PI控制算法计算主站定时器的补偿值,然后修改定时器的Period。

EtherCAT开发学习板:https://shop461235811.taobao.com

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

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

相关文章

Hadoop+Spark大数据技术(微课版)总复习

图1 Hadoop开发环境 图2 HDFS 图3 MapReduce 图4 HBase 图5 Scala 图6 Spark 图7 Spark RDD 图8 (不考) 图9 Spark SQL 图10 Spark Streaming 图11 Spark GraphX 第一章 Hadoop大数据开发环境 hadoop是什么? (判断题&#…

二维数组与指针【C语言】

二维数组与指针 一维数组一维数组与指针二维数组二维数组与指针总结补充判断以下方式是否正确打印二维数组一维数组 int arr[] = {11, 22, 33, 44};arr:首地址(第一个元素的地址) 一维数组与指针 int arr[] = {11, 22, 33, 44};因为,arr表示的是首地址,等价于 int* p =…

基于springboot实现交通管理在线服务系统项目【项目源码+论文说明】

基于springboot实现交通管理在线服务系统演示 摘要 传统办法管理信息首先需要花费的时间比较多,其次数据出错率比较高,而且对错误的数据进行更改也比较困难,最后,检索数据费事费力。因此,在计算机上安装交通管理在线服…

Linux常用操作大全(上)

Linux常用操作 文章目录 Linux常用操作一、各类小技巧**1.ctrl c 强制停止****2.ctrl d 退出或登出**3.历史命令搜索4.光标移动快捷键5.清屏6.复制Ctrlshiftc7.粘贴Ctrlshiftv 二、软件安装1.概念2.yum与apt 三、systemctl控制服务四、软链接ln五、日期时区1.date查看日期2.修…

【算法】某赛车游戏中的组合计数问题及其扩展。推导思路:层层合并

文章目录 引言所有人都能完成可能有人未完成扩展问题参考资料 引言 在某款人称赛车界原神的赛车游戏中有组队竞速赛。共有n个人,n为偶数,分为人数相等的红队和蓝队进行比赛。结果按排名得分的数组为pts,单调递减且均为正整数。比如pts [10,…

【LeetCode】LCR 124. 推理二叉树

题目链接: 题目描述:某二叉树的先序遍历结果记录于整数数组 preorder,它的中序遍历结果记录于整数数组 inorder。请根据 preorder 和 inorder 的提示构造出这棵二叉树并返回其根节点。 注意:preorder 和 inorder 中均不含重复数字…

Stable Diffusion3 开源!一文教你玩转 Stable Diffusion3

节前,我们组织了一场算法岗技术&面试讨论会,邀请了一些互联网大厂朋友、今年参加社招和校招面试的同学。 针对大模型技术趋势、大模型落地项目经验分享、新手如何入门算法岗、该如何准备面试攻略、面试常考点等热门话题进行了深入的讨论。 汇总合集…

[C++]使用yolov10的onnx模型结合onnxruntime和bytetrack实现目标追踪

【官方框架地址】 yolov10yolov10框架:https://github.com/THU-MIG/yolov10 bytetrack框架:https://github.com/ifzhang/ByteTrack 【算法介绍】 Yolov10与ByTetrack:目标追踪的强大组合 Yolov10和ByTetrack是两种在目标追踪领域具有显…

OceanBase 金融项目优化案例

领导让我帮忙支持下其他项目的SQL优化工作,呦西,是收集案例的好机会。😍 下面SQL都是在不能远程的情况下,按照原SQL的逻辑等价改写完成发给现场同学验证。 案例一 慢SQL,4.32秒: SELECT MY_.*, RM FROM (SE…

C语言:链表

链表 介绍单向链表节点结构创建节点插入节点删除节点遍历链表尾部插入查找节点链表反转示例程序程序1程序2 介绍 链表是一种常见的数据结构,用于存储一系列线性数据。与数组不同,链表中的元素在内存中不必是连续存放的,而是通过指针将每个元…

Jackson的使用

一引入依赖 <!--Jackson是spring-boot-starter-json的一个依赖&#xff08;spring-boot-starter-web中包含spring-boot-starter-json&#xff09;。也就是说&#xff0c;当项目中引入spring-boot-starter-web后会自动引入spring-boot-starter-json --> <dependency&g…

4款好用的文本扩展器!!提高工作效率!【送源码】

今天的文章中为大家带来几款好用的文本扩展器&#xff0c;帮助大家提供工作效率&#xff0c;减少重复劳动&#xff5e; Beeftext Beeftext 是一个文本扩展工具&#xff0c;可以帮助用户快速输入短语、段落或者常用的文本片段。它允许你创建自定义的缩写和对应的文本替换&…

使用tkinter创建带有图标的菜单栏

使用tkinter创建带有图标的菜单栏 效果代码代码解析创建主窗口加载图标创建菜单栏添加文件菜单添加带图标的菜单项 Tkinter 的默认菜单外观较为简单&#xff0c;可以通过自定义和添加图标&#xff0c;让菜单显示更好看。 效果 代码 import tkinter as tk from tkinter import …

课时154:项目发布_手工发布_手工发布

1.2.3 手工发布 学习目标 这一节&#xff0c;我们从 基础知识、简单实践、小结 三个方面来学习 基础知识 简介 为了合理的演示生产环境的项目代码发布&#xff0c;同时又兼顾实际实验环境的资源&#xff0c;我们这里将 B主机和C主机 用一台VM主机来实现&#xff0c;A主机单…

Arduino入门2——常用函数及用法

Arduino入门2——串口驱动函数及用法 IO串口 上期&#xff0c;我们简单的认识了一下Arduino&#xff0c;浅浅的入了个门&#xff0c;这一期我们介绍以下Arduino串口常用的函数及用法 IO 常用串口库函数如下&#xff1a; 函数名用法及解析pinMode()用于IO口初始化digitalWrite…

2024050802-重学 Java 设计模式《实战模板模式》

重学 Java 设计模式&#xff1a;实战模版模式「模拟爬虫各类电商商品&#xff0c;生成营销推广海报场景」 一、前言 黎明前的坚守&#xff0c;的住吗&#xff1f; 有人举过这样一个例子&#xff0c;先给你张北大的录取通知书&#xff0c;但要求你每天5点起床&#xff0c;12点…

Proteus 新建工程

Proteus 新建工程 新建简单工程 首先在File工具栏中点击New Project&#xff0c;弹出新建工程向导程序(New Proteus Wizard) 填写工程名称与存储路径&#xff0c;选择New Proteus并点击Next进行下一步设置 我们不需要生成PCB文件&#xff0c;一路默认&#xff0c;点击Next即…

实战计算机网络02——物理层

实战计算机网络02——物理层 1、物理层实现的功能2、数据与信号2.1 数据通信模型2.2 通信领域常用术语2.3 模拟信号和数字信号 3、信道和调制3.1 信道3.2 单工通信、半双工通信、全双工通信3.3 调制3.4 奈式准则3.5 香农定律 4、传输媒体4.1 导向传输媒体4.2 非导向传输媒体 5、…

高级人工智能复习 题目整理 中科大

题目整理 填空 1.准确性&#xff0c;复杂性&#xff0c;验证集 2. 3 2 n 3^{2^n} 32n 3 C 2 n m 3^{C^m_{2n}} 3C2nm​ 3 m 3^m 3m n 1 n1 n1 3. 状态 从状态s采取行动a后继续采用策略 π \pi π的收益 环境 4. 语法 语义 推理规则 5. 参与者&#xff0c;策略集&#xff…

Elasticsearch 8.1官网文档梳理 - 十一、Ingest pipelines(管道)

Ingest pipelines 管道&#xff08;Ingest pipelines&#xff09;可让让数据在写入前进行常见的转换。例如可以利用管道删除文档&#xff08;doc&#xff09;的字段、或从文本中提取数据、丰富文档&#xff08;doc&#xff09;的字段等其他操作。 管道&#xff08;Ingest pip…