当前位置: 首页 > news >正文

EtherCAT Module and Slot

目录

  • 简介
  • 官方文档ET9300
  • 6.4.1 模块和插槽
      • 6.4.1.1 插槽
      • 6.4.1.2 模块
  • 实战
      • SLOT创建
      • Module创建
      • 生成代码
  • 未解决的问题:
  • 代码对接

简介

参考 Application Note ET9300 (EtherCAT Slave Stack Code),6.4.1 Modules and Slots

官方文档ET9300

6.4.1 模块和插槽

要定义支持模块和插槽的应用程序,应使用基于xlsx的应用程序描述。该应用程序包含多个表:一个用于基础应用程序,其他用于定义模块。模块表通过表头中的"Module Ident"信息进行标识,该标识在从站应用程序中必须唯一(图10:模块表的Module Ident字段)。基础应用程序表不得包含"Module Ident"字段。
在这里插入图片描述
表格可以在一个文件(多个工作表)中,也可以在单个文件中

6.4.1.1 插槽

插槽通过对象0xF030(配置的模块标识列表),图11:指定插槽。由此产生的ESI插槽元素如图12所示:
ESI文件。
参数说明:
a) 如果对象行中的访问设置为“rw”,则DownloadModuleIdentList为真
b) PDO索引增量根据相关表头信息设置(图10:模块表的模块标识字段,第5行)
c) 对象索引增量根据相关表头信息设置(图10:模块表的模块标识字段,第4行)
d) 槽位名称可通过在描述中使用语法“[Slotname: NAME]”设置。若未定义名称,则槽位将根据相关子索引自动命名。
e) 可分配的模块通过描述列中的语法“[ModuleIds: id]”指定。ID应以十六进制值表示并带前缀“0x”;多个模块ID需用“;”分隔,或重复使用该语法(参见条目4)。
f) 默认分配的模块由“Default”列的值设定。
g) 若要将槽位的MinInstances设置为0,则不应设置默认数据,或将最小值显式设为0。
在这里插入图片描述
在这里插入图片描述

6.4.1.2 模块

每个模块应在单独的表格中定义,且模块标识(module ident)须在表头中声明(见图10)。
若需在模块对象中设置“DependOnSlot”,则增量信息必须在表头中定义(见图13)。这些值将被忽略,因为增量值由基础应用表指定(参见章节6.4.1.1 Slots)。
若设置了“PdoIndexIncrement”属性,则会在PDO映射对象中自动添加“DependOnSlot”属性。
在这里插入图片描述
ET9300的文档描述只到这里

实战

按照上面官方的文档,获取信息如下:
1,使用XLS表格生成带有Module功能的EtherCAT源码和描述文件,Module相关部分要单独建立一个工作表(在同一个文件内)。
2,SLOT通过Module ID连接Module

SLOT创建

0xF030索引用于描述SLOT
这里只创建一个SLOT,Module id设置为0x4711
在这里插入图片描述

Module创建

创建一个新表作为模块表,把基础应用程序表Profile的内容框架复制进去(基础应用程序表Profile里原有的PDO等所有数据删除掉)

新模块表头部增加一个Module Ident,设置为0x4711与基础应用程序表Profile里SLOT的描述一致

新模块表的名字就是这个模块在TC3上显示的名字

新模块表内创建PDO数据,最终绑定到0x1C12和0x1C13中,注意不要和基础应用程序表Profile中的冲突(没试验过冲突之后的会发生什么)。

在这里插入图片描述

生成代码

打开SSC软件,重新导入XLS文件,这里可以看到识别到了两张工作表
在这里插入图片描述
点击生成代码,然后把生成的XML导入到TC3里面
可以看到IO数据都导入进去了
在这里插入图片描述

未解决的问题:

1,SLOT name在XLS里的描述没有生效,需要自己手动到XML里修改,相应的SLOT、Module 图像也要在XML里手动修改

代码对接

下期?

http://www.xdnf.cn/news/888175.html

相关文章:

  • Python训练第四十五天
  • 中国森林地上和地下植被碳储量数据集(2002~2021)
  • 【EN 18031】访问控制机制(ACM - 3):儿童玩具的防护盾
  • 我认为STM32输入只分为模拟输入 与 数字输入
  • 实现基于Yolo的异常聚集算法
  • 会话技术:Cookie 与 Session 详解
  • Ubuntu崩溃修复方案
  • 基于Java(Jsp+servelet+Javabean)+MySQL实现图书管理系统
  • Vue中实现表格吸底滚动条效果,列太多时左右滚动条始终显示在页面中
  • android知识总结
  • 【从0-1的CSS】第1篇:CSS简介,选择器已经常用样式
  • NoSQl之Redis部署
  • 【PhysUnits】15.16 补充to_i32方法的类型级整数表示(basic.rs)
  • wxpython快捷键示例
  • Python cryptography【密码库】库功能与使用指南
  • 模块化架构下的前端调试体系建设:WebDebugX 与多工具协同的工程实践
  • Sublime Text4 4192 安装
  • NGINX `ngx_stream_core_module` 模块概览
  • 数据分析后台设计指南:实战案例解析与5大设计要点总结
  • 实用对比图软件推荐:快速呈现信息差异
  • 【请关注】MySQL 碎片整理提升性能
  • 在Facebook平台有效结合TikTok跨境营销的方法
  • Calendar类日期设置进位问题
  • CSS3相关知识点
  • 《C++ 模板》
  • C# 中的 IRecipient
  • 网络安全全景解析
  • nvidia系列教程-agx-orin安装ros
  • DisplayPort 2.0协议介绍(1)
  • MCP协议在LLM系统中的架构与实现原理研究