EtherCAT主站SDO写报文抓包分析

0 工具准备

1.EtherCAT主站
2.EtherCAT从站(本文使用步进电机驱动器)
3.Wireshark

1 抓包分析

1.1 报文总览

本文设置从站1的对象字典,设置对象字典主索引为0x2000,子索引为0x00,设置值为1500。主站通过发送SDO写报文实现对该对象字典的写入,这一过程使用Wireshark抓包如下:
在这里插入图片描述

1.2 SDO读取阶段1:检查SM1缓冲区是否空闲

在这里插入图片描述

这一阶段主站通过FPRD报文去读取SM1缓冲区是否空闲。当bit3为0时表示当前SM1缓冲区为空闲状态,没有需要读取的邮箱信息,如果bit3为1表示当前SM1缓冲区满有需要读取的邮箱信息。
在这里插入图片描述
本例中返回的数据为0x80,也就是SM1缓冲区空闲,没有需要读取的消息,可以直接进入下一阶段。否则需要先将邮箱内消息读出。
在这里插入图片描述

1.3 SDO读取阶段2:检查SM0缓冲区是否空闲

在这里插入图片描述

这一阶段主站通过FPRD报文去读取SM0缓冲区是否空闲。当bit3为0时表示当前SM0缓冲区为空闲状态,表示可以写入邮箱消息,如果bit3为1表示当前SM0缓冲区满要一直等到从站将邮箱消息取走缓冲区空闲。
在这里插入图片描述
本例中返回的数据为0x02,也就是SM0缓冲区空闲,从站没有需要读取的消息,可以直接进入下一阶段。
在这里插入图片描述

1.3 SDO读取阶段3:发送CoE请求给从站

在这里插入图片描述

这一阶段主站通过FPWR报文发送CoE请求给从站请求从站下载SDO(服务数据对象)信息。

1.4 SDO读取阶段4:检查SM1缓冲区是否满

在这里插入图片描述

这一阶段主站间隔一小段时间发送FPRD报文去读取SM1状态寄存器,检查其缓冲区是否已满,已满则代表从站已经处理完毕了CoE请求,将邮箱内的SDO设置信息下载完成,对象字典设置完毕。
在这里插入图片描述

可以看到最后一次FPRD报文返回的SM1状态寄存器值为0x09,这表示有SDO数据可以从邮箱读取了。

1.5 SDO读取阶段5:读取邮箱数据

在这里插入图片描述

最后一个阶段的操作就是去读取邮箱数据,去哪里读呢?去主站初始化阶段获取到的主站读邮箱偏移地址处去取。
在这里插入图片描述

可以看到从站返回的FPRD报文内已经填充了SDO数据,显示了对象字典正确的主索引、子索引、SDO处理结果:3。
值得一提的是,如果设置的值超过了对象字典的允许范围导致设置不成功,会返回传输中止请求:
在这里插入图片描述
使用SDO写报文时可以利用这一特点,判断自己写入的值是否合理。

2 总结

EtherCAT主站SDO写报文可以分为以下5个阶段:
①检查SM1缓冲区是否空闲,不空闲则先将邮箱消息读出
②检查SM0缓冲区是否空闲,不空闲则等待从站将邮箱消息读走
③发送CoE请求给从站
④检查SM1缓冲区是否满,满则代表已经可以从邮箱读出SDO数据
⑤读取邮箱数据,查看返回结果是否正常

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

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

相关文章

STM32-LCD液晶显示

目录 LCD液晶显示 ILI9341液晶控制器简介 液晶屏的信号线和8080时序 使用STM32的FSMC外设模拟8080接口时序 FSMC 功能框图 通讯引脚 存储器控制器 时钟控制逻辑 FSMC的地址映射 FSMC控制异步Nor Flash的时序 FSMC模拟8080时序 FSMC结构体 NOR FLASH时序结构体 F…

由Django-Session配置引发的反序列化安全问题

漏洞成因 漏洞成因位于目标配置文件settings.py下 关于这两个配置项 SESSION_ENGINE: 在Django中,SESSION_ENGINE 是一个设置项,用于指定用于存储和处理会话(session)数据的引擎。 SESSION_ENGINE 设置项允许您选择不…

Python基础教程:内置函数之字典函数的使用方法

嗨喽~大家好呀,这里是魔王呐 ❤ ~! python更多源码/资料/解答/教程等 点击此处跳转文末名片免费获取 len(字典名): 返回键的个数,即字典的长度 # len(字典名): # 返回键的个数,即字典的长度dic {a:123,b:456,c:789…

大疆智图(PC):新一代高效率高精度摄影测量软件

大疆智图是一款以二维正射影像与三维模型重建为主的软件,同时提供二维多光谱重建、激光雷达点云处理、精细化巡检等功能。它能够将无人机采集的数据可视化,实时生成高精度、高质量三维模型,满足事故现场、工程监测、电力巡线等场景的展示与精…

UI设计师的主要工作内容优漫动游

一、UI设计师 UI设计师的主要工作内容 1.什么是UI设计师 是现代的一种新兴职业,指从事对软件的人机交互、操作逻辑、界面美观的整体设计工作。 随着科技产品的日益更新和智能手机的普及,社会对软件设计类人才(UI设计师)提…

抖音热搜榜:探索热门话题的奥秘

抖音热搜榜是抖音平台根据用户观看、点赞、评论、分享等行为数据,综合计算得出的热门话题排行榜。它反映了当前平台上最热门、最受欢迎的话题和内容。抖音热搜榜有以下几个作用和意义: 1. 满足用户需求:抖音热搜榜为用户提供了丰富的热门话题…

华为云云耀云服务器L实例评测|使用clickhouse-benchmark工具对ClickHouse的性能测试

目录 引言 1 ClickHouse简介 2 利用docker安装ClickHouse 2.1 安装Docker 2.2 下载ClickHouse Docker镜像 2.3 创建ClickHouse容器 2.4 访问ClickHouse 3 创建测试表 4 运行 clickhouse-benchmark 5 分析结果 结语 引言 利用华为云的云耀云服务器L实例&#xff0c…

RustDay05------Exercise[51-60]

51.使用?当作错误处理符 ? 是 Rust 中的错误处理操作符。通常用于尝试解析或执行可能失败的操作,并在出现错误时提前返回错误,以避免程序崩溃或出现未处理的错误。 具体来说,? 用于处理 Result 或 Option 类型的返回值。 // errors2.rs…

【Objective-C】浅析Block及其捕获机制

目录 Block的基本使用Block的声明Block的实现Block的调用 Block作为形参使用Block作为属性使用给Block起别名Block的copy Block的捕获机制auto类型的局部变量__block浅析static类型的局部变量全局变量 其他问题 Block的基本使用 什么是Block? Block (块…

【技术分享】RK356X Ubuntu 推流USB摄像头

本文适用与触觉智能所有RK356X ubuntu系统的主板。 IDO-SBC3566基于瑞芯微RK3566研发的一款高性能低功耗的智能主板,采用四核A55,主频高达1.8GHz,专为个人移动互联网设备和AIOT设备而设计,内置了多种功能强大的嵌入式硬件引擎,为…

MyBatis篇---第一篇

系列文章目录 文章目录 系列文章目录一、什么是MyBatis二、说说MyBatis的优点和缺点三、#{}和${}的区别是什么?一、什么是MyBatis (1)Mybatis是一个半ORM(对象关系映射)框架,它内部封装了JDBC,开发时只需要关注SQL 语句本身,不需要花费精力去处理加载驱动、创建连接、…

ChatGPT:Spring Boot和Maven——Java应用开发的关键工具和区别

ChatGPT:Spring Boot和Maven——Java应用开发的关键工具和区别 Springboot是什么? ChatGPT: Spring Boot是一个用于构建Java应用程序的开源框架,它是Spring Framework的一部分,但旨在简化Spring应用程序的开发。Sprin…

2020年亚太杯APMCM数学建模大赛A题激光标记舱口轮廓生成求解全过程文档及程序

2020年亚太杯APMCM数学建模大赛 A题 激光标记舱口轮廓生成 原题再现: 激光是20中的一项重要发明世纪,它被称为“最锋利的刀”、“最精确的尺子”和“最不寻常的光”。 激光已越来越多地应用于工业加工, 其中可以是就业在各种加工业务例如作…

「Qt中文教程指南」如何创建基于Qt Widget的应用程序(三)

Qt 是目前最先进、最完整的跨平台C开发工具。它不仅完全实现了一次编写,所有平台无差别运行,更提供了几乎所有开发过程中需要用到的工具。如今,Qt已被运用于超过70个行业、数千家企业,支持数百万设备及应用。 本文描述了如何使用…

Maven的详细安装步骤说明

Step 1: 下载Maven 首先,您需要从Maven官方网站(https://maven.apache.org/)下载Maven的最新版本。在下载页面上,找到与您操作系统对应的二进制文件(通常是.zip或.tar.gz格式),下载到本地。 St…

学信息系统项目管理师第4版系列34_10大管理49过程ITTO

整合管理 组 过程 输入 工具和技术 输出 启动 制定项目章程 立项管理文件协议事业环境因素组织过程资产 专家判断数据收集人际关系与团队技能会议 项目章程假设日志 计划 2.制定项目管理计划 项目章程其他知识领域规划过程的输出事业环境因素组织过程资产 专家…

10.16 校招 实习 内推 面经

绿*泡*泡: neituijunsir 交流裙 ,内推/实习/校招汇总表格 1、校招 | 司南导航2024校园招聘火热进行中 校招 | 司南导航2024校园招聘火热进行中 2、校招 | 万集科技秋季校园招聘(内推) 校招 | 万集科技秋季校园招聘&#xff…

设计链表复习

设计链表 class ListNode {int val;ListNode next;public ListNode() {}public ListNode(int val) {this.val val;}public ListNode(int val, ListNode next) {this.val val;this.next next;}}class MyLinkedList {//size存储链表元素的个数int size;//虚拟头节点ListNode…

ROS2的cv_bridge和opencv版本不匹配问题

1. 问题 /usr/bin/ld: warning: libopencv_imgcodecs.so.4.2, needed by /opt/ros/foxy/lib/libcv_bridge.so, may conflict with libopencv_imgcodecs.so.4.5/usr/bin/ld: warning: libopencv_core.so.4.2, needed by /opt/ros/foxy/lib/libcv_bridge.so, may conflict with …

花生好车基于 KubeSphere 的微服务架构实践

公司简介 花生好车成立于 2015 年 6 月,致力于打造下沉市场汽车出行解决方案第一品牌。通过自建直营渠道,瞄准下沉市场,现形成以直租、批售、回租、新能源汽车零售,四大业务为核心驱动力的汽车新零售平台,目前拥有门店…