Ehercat代码解析中文摘录<7>

11 测试应用程序

测试应用程序是一个特定的从站协议栈,它提供了大多数指定的EtherCAT从站功能,并包含一种机制来生成从站行为(也包括不符合标准的行为)。这可用于检查主站在从站行为不正确时的反应。

本章涉及可能的配置。可能的(错误)行为组织在索引范围从0x2000到0x2FFD的CoE对象中(表11和表12)。

对象0x8000中列出了协议栈配置(需要EtherCAT主站支持SDO信息)。

用于EL9800 EtherCAT评估板的测试应用程序的发布版本位于"SSC_Vxixx/hex"中。要创建新的测试应用程序从站文件,请在SSC工具中选择测试应用程序配置。

表11:测试对象

属性
索引 0x2000 至 0x2FFD
名称 测试对象
对象代码 记录
最大子索引 1-255

表12:测试对象条目

子索引 描述 数据类型 访问 PDO映射 描述 / 默认值
n (每个测试相同) 控制/计数器 无符号16位整数 读写/只读 控制测试行为
位0:启用/禁用测试 0: 测试禁用 1: 测试启用
位1-7:保留供将来使用
位8-15:计数器(指示测试执行次数)

11.1 从站行为控制

有三种可能性可用于控制从站行为:直接更新测试对象的启用/禁用位(表12:测试对象条目),或通过测试控制对象(第11.1.1章),或通过更新ESC寄存器0xF80:0xF83(第11.1.2章)。

11.1.1 测试控制对象

测试控制对象结构(表13和表14)类似于PDO映射对象。测试控制对象的每个子索引(条目)将一个启用/禁用功能(位0)映射到从站设备的一个物理数字输入。

如果应用程序是为EL9800_4 EtherCAT评估套件编译的,则控制对象包含7个条目(SII-7),这些条目映射到开关2至8(开关1是全局测试功能启用开关)。如果协议栈不是为EL9800编译的,则控制元素包含16个条目,这些条目映射到GPO寄存器(0xF10:0xF11)。

表13:测试控制对象

属性
索引 0x2FFF
名称 测试控制对象
对象代码 数组
最大子索引 16(为EL9800编译时为7)

表14:测试控制对象条目

子索引 描述 数据类型 访问 PDO映射 描述 / 默认值
1 -- 最大子索引 (见表13) 链接的测试对象条目 无符号32位整数 读写 链接的测试对象条目
位0-7:保留供将来使用
位8-15:测试对象条目的子索引
位16-32:测试对象的索引

11.1.2 用户RAM 0xF80:0xF83

主站可以将要激活的行为的对象索引和子索引写入寄存器(表15:测试应用程序 | ESC寄存器 0xF80:0xF83)。该值由应用程序在从INIT到任何状态(也包括INIT到INIT)的触发时读取,如果行为被接受,则0xF83的第一个位被设置。

表15:测试应用程序 | ESC寄存器 0xF80:0xF83

描述 用途
0:15 对象索引 由主站更新
16:23 子索引 由主站更新
24 1: 行为激活 主站写入新的索引/子索引时应设置为0。由从站应用程序设置为1
25:31 保留供将来使用

11.2 ESM测试(0x2000 -- 0x200F)

表16:测试对象 0x2000 (ESM组 1)

子索引 描述 目的
1 从INIT到PreOP的无效状态转换 AL状态码 0x16 (无效邮箱)
2 从PreOP到SafeOP的无效状态转换 AL状态码 0x1D (无效输出同步管理器配置)
3 从PreOP到SafeOP的无效状态转换 AL状态码 0x1E (无效输入同步管理器配置)
4 在从PreOP到SafeOP的转换期间,不解除SM3(过程数据输入同步管理器)缓冲区的锁定。 检查主站是否在没有初始化输入过程数据的情况下启动过程数据通信。

11.3 CoE测试(0x2020 -- 0x202F)

表17:测试对象 0x2020 (CoE组 1)

子索引 描述 目的
1 在SDO上传和SDO信息列表请求时,使用最大邮箱大小为16字节。 将物理邮箱大小与邮箱数据长度解耦。
2 在每次状态更改时创建诊断消息。
3 在每次应用程序循环时创建诊断消息。
4 "模拟"庞大的对象字典。对象数量由"DUMMY_OD_LENGTH"指定(默认为1000)。所有对象的索引均为0x1000。 此行为用于测试主站和SSC的列表分段处理。
5 在通过完全访问进行SDO上传时,始终基于最大子索引返回完整的对象数据(忽略SI0的值)。

11.4 通用对象

本章描述的对象用于测试从站和主站正确的SDO处理。表18:通用对象包括所有已定义的对象。

表18:通用对象

(表格内容详细描述了索引从0x3001到0x300A的多个测试对象的子索引、数据类型、访问权限、描述和测试目的,这些对象用于测试数据对齐、访问权限、枚举类型、大对象处理等不同场景。)

相关推荐
离离茶6 分钟前
【笔记1-11】Qt 关闭QToolbar的拓展菜单
开发语言·笔记·qt
了一梨1 小时前
SQLite3学习笔记6:UPDATE(改)+ DELETE(删)数据(C API)
笔记·学习·sqlite
霸王蟹1 小时前
Uni-app 跨端开发框架Unibest快速体验
前端·笔记·微信·uni-app·unibest
mango_mangojuice2 小时前
C++ 学习笔记(string类)
开发语言·c++·笔记·学习
hetao17338372 小时前
2026-01-27~28 hetao1733837 的刷题记录
c++·笔记·算法
蓝田生玉1232 小时前
Deepstack论文阅读笔记
论文阅读·笔记
淬炼之火2 小时前
基于Docker Desktop 和 Ubuntu 在 Windows上部署轻量化大模型(Qwen-LLM)
笔记·ubuntu·docker·语言模型·容器
AI视觉网奇3 小时前
Delaying 20 processes from spawning due to memory pressure
笔记·学习·ue5
myloveasuka3 小时前
分离指令缓存(I-Cache)和数据缓存(D-Cache)的原因
笔记·缓存·计算机组成原理·硬件
Hammer_Hans3 小时前
DFT笔记25
笔记