十五.EtherCAT开发之对象字典的映射原理

news2024/9/29 13:15:57

十五.EtherCAT开发之对象字典的映射原理

15.1 协议栈文件含义

仔细阅读四个代码文件

l 文件el9800appl.c:主函数,数据收发函数所在

l 文件el9800appl.h:对象字典定义所在,包含对象字典的类型、权限、长度、映射关系、链接变量、初值等等

l 文件el9800hw.c:PDI接口函数,定时器/IRQ/DC中断函数

l 文件el9800hw.h:上个文件的一些宏

15.2 对象字典的映射原理

对象字典的映射原理可以简单理解为:

如下图,TxPDO的组成由映射关系16XX的值来决定排序、长度,而映射管理0x1C12的值决定使用哪些映射关系(一个或多个)。同理RxPDO也是如此

在这里插入图片描述

其中TxPDO和RxPDO相当于一个一个变量,0x7010等相当于变量的编号。

映射关系和映射管理,比如共同决定通信时传输哪些变量。

比如开发板例子中:0x1600的值为

PROTO TOBJ1601 sDORxPDOMap

#ifdef EVALBOARD

= {9, {0x70100101, 0x70100201, 0x70100301, 0x70100401,0x70100501, 0x70100601, 0x70100701, 0x70100801, 0x08}}

#endif

9表示,0x1601有9个子索引

其中0x70100101:表示0x7010的子索引0x01中取0x01bit

0x70100201:表示0x7010的子索引0x02中取0x01bit

同理。。。。。。

然后这些截取的数据按顺序拼凑成一包数据,每个周期进行一次数据交互。

其中0x08表示0x0000的子索引0x00中取0x08bit,这个是为了凑齐数据包,0x0000表示无效数据的填充。

注意:所有对象字典的总长度必须是16bit的倍数,否则通信会报错。

0x1C12的值:

PROTO TOBJ1C12 sRxPDOassign

#ifdef EVALBOARD

= {0x01, {0x1601}}

#endif

;

0x01,表示只有一个子索引。

0x1C12的值为0x1601,表示数据包拼凑时,使用0x1601管理的PDO。

若0x1C12下有多个子索引,值为0x1601和0x1602,则,数据通信时,使用0x1601和0x1602管理的PDO。

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

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

相关文章

Restful风格笔记

Restful风格知识点 RestController注解 在类上添加RestController可以默认类中的所有方法都带有ResponseBody注解,可以省去一个个添加的麻烦。 RestController RequestMapping("/restful") //CrossOrigin(origins {"http://localhost:8080"…

第六节 元组、字典

文章目录 掌握知识点1. 元组1.1 元组概述1.2 语法格式1.3 元组场景使用 2. 字典2.1 概述2.2 字典的语法结构与注意2.3 字典CURD2.3.1 字典获取2.3.2 字典添加和修改2.3.3 字典删除2.3.4 字典遍历 2.4 enumerate 函数2.5 扩展练习2.5.1 判断是否能全部购买2.5.2 学生信息的排序2…

图像中的脸部、四肢问题及其解决方法

在SD绘图的时候经常会出现多个头部、多个身体部位或者多个手指的问题这里介绍一些通用的简单的解决办法。 文章目录 多个人物或者部位没有全身出境使用纵向尺寸脸部乱码和眼睛问题人物手指乱问题 多个人物或者部位 绘图基本信息 正面词 <lora:DynastyWarriors_wu_cloth:1…

若依框架学习

1.若依&#xff08;前后端分离版&#xff09; 1.1什么是若依 开源项目&#xff0c;学习开源项目的目的&#xff1a; 1.用别人的&#xff0c;减少自己的工作量 2.学习他的底层编程思想&#xff0c;设计思路&#xff0c;提高自己的编程能力 官网&#xff1a;www.ruoyi.vip …

“AI+RPA+数据+机器人”:深入解析“数字员工”的内涵和价值

世界正进入数字经济快速发展的时期。 2021年12月&#xff0c;中央网络安全和信息化委员会印发《“十四五”国家信息化规划》&#xff0c;提出加快建设数字中国&#xff0c;大力发展数字经济的总体目标&#xff1b;2022年1月&#xff0c;央行印发《金融科技发展规划&#xff08…

第十章 番外篇:DDP

参考教程&#xff1a; what is DDP pytorch distributed overview 文章目录 DDP介绍什么是DDPDistributedSampler()DistributedDataParallel() 使用DDP代码示例multiprocessing.spawn()save and load checkpoints DDP介绍 什么是DDP DDP的全称是DistributedDataParallel&…

Qt控件学习

目录 QPushButton QToolButton QRadioButton QCheckBox QPushButton MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow) {ui->setupUi(this);ui->n1->setText("我的世界");ui->n1->setIcon(QIcon(":/111…

异构广告混排在美团到店业务的探索与实践

转子&#xff1a;https://tech.meituan.com/2022/03/10/exploration-and-practice-of-heterogeneous-ad-mixed-ranking-in-meituan-ads.html 1 背景与简介 1.1 背景 美团到店广告负责美团搜索流量的商业变现&#xff0c;服务于到店餐饮、休娱亲子、丽人医美、酒店旅游等众多…

文言一心,ChatGLM-6B和ChatGPT等模型概述

原文首发于博客文章大语言模型概况 定义 &#xff08;个人理解的&#xff09;大语言模型&#xff08;Large Language Model&#xff09;是一种基于深度学习技术的自然语言处理通用模型&#xff0c;它可以通过学习大规模文本数据的模式和规律&#xff0c;从而实现对自然语言的理…

【面试】你知道数据库能抗多大并发压力吗?

文章目录 前言一、一般业务系统运行流程图二、一台4核8G的机器能扛多少并发量呢&#xff1f;三、高并发来袭时数据库会先被打死吗&#xff1f;四、数据库架构可以从哪些方面优化&#xff1f;4.1、根据业务系统拆分多个数据库机器优化方案4.2、读写分离架构优化方案4.3、分库分表…

华为手表上架(1)HarmonyOS应用 打包 .app

华为手表上架&#xff08;1&#xff09;HarmonyOS应用 打包 .app 初环境与设备先找到配置项目结构的地方&#xff1a; Project Structure配置证书打包 .app 在本文中&#xff0c;我们介绍探讨华为手表上架的流程&#xff0c;并重点介绍HarmonyOS应用的打包过程。了解如何将应用…

locust学习教程(5) - 分布式执行

目录 前言 1、基础 2、操作步骤 2.1、启动主节点 2.2、启动从节点 2.2.1、启动自己电脑的从节点 2.2.2、启动同事电脑的从节点 2.3、开始并发 3、无web界面&#xff0c;定时运行&#xff0c;数据存储在csv中、等待4个节点连接后自动开始 4、有web界面&#xff0c;定时运…

5年测试老鸟整理,企业自动化测试经验,不要再走弯路了...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 2023年&#xff0…

vue-antdesign——实现table单元格合并+换行展示+滚动到指定位置+行样式设置——技能提升

最近在写后台管理系统&#xff0c;遇到一个需求&#xff0c;就是要实现表格table组件的合并单元格&#xff0c;并实现编辑等功能。 效果图如下&#xff1a; 下面做一下记录&#xff1a; 1.表格table组件实现单元格合并 之前写过一篇文章关于单元格合并的功能&#xff0c;这…

倒谱和同态去卷积

本文首发于算法社区&#xff0c;转载请注明出处&#xff0c;谢谢。 前言 倒谱的内容比较少&#xff0c;比较相关的就是同态系统去卷积了&#xff0c;所以把这两个放在一起了。 倒谱 我们考虑一个具有 z z z 变换的序列 { x n } \left \{ x_{n} \right \} {xn​} 。我们假设…

Elasticsearch(十一)搜索---搜索匹配功能②--range查询和exists查询

一、前言 继上一节学习了ES的搜索的查询全部和term搜索后&#xff0c;此节将把搜索匹配功能剩余的2个学习完&#xff0c;分别是range搜索和exists搜索 二、range范围搜索 range查询用于范围查询&#xff0c;一般是对数值型和日期型数据的查询。使用range进行范围查询时&…

创建多线程的四种方式

目录儿 一、创建线程的四种方式1. 继承Thread类2. 实现Runnable接口3. 实现Callable接口4. 线程池禁止使用 Executors 构建线程池构建线程池的正确方式 一、创建线程的四种方式 1. 继承Thread类 ① 创建一个类继承Thread类&#xff0c;重写run()方法 ② 调用start()方法启动线…

AI卷入618战场;印象AI开放次数限制;2023 AIGC人才趋势洞察报告;员工瞒着老板悄悄用AI;超好用的AI头像生成教程 | ShowMeAI日报

&#x1f440;日报&周刊合集 | &#x1f3a1;生产力工具与行业应用大全 | &#x1f9e1; 点赞关注评论拜托啦&#xff01; &#x1f916; 澳洲游戏媒体 Gamurs 招聘AI编辑&#xff0c;被各路媒体口诛笔伐 上周&#xff0c;澳洲知名游戏媒体集团 Gamurs 在官网招聘「AI Edit…

负载测试和压力测试有何区别?资深测试老鸟总结,一篇搞定...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 负载与压力测试 …

js中数组对象去重的几种方式

js中数组对象去重的几种方式 1、方法一&#xff1a;双层for循环2、对象访问属性的方法3、Map()方法4、reduce方法 首先我们定义数组的形式 let arrObj [{ name: "张三", key: 1 },{ name: "李四", key: 2 },{ name: "王五", key: 3 },{ name: &…