Ethercat系列(1)COE非周期性数据通信

news2025/2/20 22:42:57

Ethercat主站通过读写邮箱数据SM通道

实现非周期性数据通信。

  1. 邮箱数据定义

邮箱数据单元结构

邮箱数据头各字段含义如下表

  1. 非周期性邮箱数据通信

EtherCAT协议中非周期性数据通信称为邮箱数据通信,它可以双向进行---主站到从站和从站到主站。它支持全双工,两个方向独立通信和多用户协议。邮箱通信数据头中包括一个地址域,使主站可以重寄邮箱数据。邮箱数据通信是实现参数交换的标准方式,如果需要配置周期性过程数据通信或需要其他非周期性服务时需要使用邮箱数据通信。

  • 主站到从站通信,写邮箱命令

主站发送写数据区命令将发送邮箱数据给从站。主站需要检查从站邮箱命令应答报文中工作计数器WKC。如果工作计数器为1,表示写命令成功。反之,如果工作计数器没有增加,通常因为从站没有读完上一个命令,或在限定的时间内没有响应,主站必须重发写邮箱数据命令。

  • 从站到主站通信,读邮箱命令

从站有数据要发送给主站,必须先将数据写入输入邮箱缓存区,然后由主站来读取。主站发现从站ESC输入邮箱数据区有数据等待发送时,会尽快发送适当的读命令来读取从站数据。主站有两种方法来测定从站是否已经将邮箱数据填入数据区。一种是使用FMMU周期性地读某一标志位。使用逻辑寻址可以同时读取多个从站的标志位,但其缺点是每个从站都需要一个FMMU单元。另一个方法就是简单地轮询ESC输入邮箱的数据区。读命令的工作计数器增加1表示从站已经将新数据填入了输入数据区。

  1. CoE邮箱数据结构

  1. SDO服务

CoE通信服务类型为2和3是SDO通信服务,SDO数据结构如下图所示,

SDO通信服务的3种类型,如下图所示,

  1. SDO下载传输请求

SDO下载传输请求数据格式如下图所示,

如果要传输的数据小于4个字节,则使用SDO快速SDO传输服务,它完全兼容CANOpen协议,使用8个字节数据,其中4个字节为数据区,有效字节数为4-x(位2和3表示的数值)。

如果要传输的数据大于4个字节,则使用常规传输服务。在常规传输时,用快速传输时的4个数据字节表示要传输的数据的完整大小,用扩展数据部分传输有效数据,有效数据的最大容量为邮箱容量减去16(邮箱头6+CoE命令2字节+8字节数据 = 16),实际大小为邮箱头中长度数据n-10(CoE命令2字节+8字节数据=10)。

SDO下载传输请求服务的数据帧内容如下表:

  1. SDO分段下载传输

在常规下载传输时,如果传输数据对象的总数量大于本次传输的允许数据数量,则必须使用后续的分段下载传输服务,数据元素描述如下表,

  1. SDO下载传输响应

从站收到SDO下载请求后执行相应处理,然后将响应数据写入输入邮箱SM1中,由主站读走。主站只有得到正确的响应之后才能执行下一步SDO操作。正确的SDO下载响应数据格式如下图,

响应数据描述如下表:

  1. 终止SDO传输

在SDO传输过程中,如果某一方发现有错误,可以发起SDO终止传输请求,对方收到此请求后,停止当前SDO传输。SDO终止传输请求不需要应答。下表描述了该请求的相关数据元素。

其中SDO数据中有4个字节的终止码,表示终止传输的具体原因,如下表所列。

  1. SDO下载传输举例

1)有效数据不大于4字节

2)有效数据大于4字节且小于邮箱容量

3)有效数据大于邮箱容量,需分段传输

  1. 紧急事件

紧急事件由设备内部的错误事件触发,将诊断信息发送给主站。当诊断事件消失之后,从站应该将诊断事件和错误复位码再发送一次。紧急事件数据帧格式如下图,

其各个数据元素描述如下表,

紧急事件的错误码如下表所列,

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

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

相关文章

存储介质还是存储载体,这不是个问题

在档案领域中,“介质”和“载体”到底有什么区别?能不能混用?这个问题曾经困扰了笔者10几年,直到最近才发觉原来根本不是一个问题。我们先来看两句话: 1、磁盘、光盘、固态硬盘等常见数据存储载体的寿命无法满足电子档…

RabbitMQ快速入门和使用

文章目录1. 基础理论1.1. 同步调用与异步调用1.2. RabbitMQ 安装与运行1.2.1. 常见消息模型2. 基本消息队列的应用2.1. 消息发送流程2.2. 消息接收流程3. SpringAMQP的基础理论与应用(想快速应用看这里)3.1. 基础理论3.2. 【案例一】实现HelloWorld中的基础消息队列功能3.3. 【…

Neo4j数据库模糊查询

1、Neo4j单个查询条件模糊查询1.1使用 ~’.模糊匹配对象.’ 进行表示1.1.1 查询节点MATCH(n:Author) WHERE n.name ~.*梦.* RETURN n1.1.2 查询关系MATCH p({title:锆石U-Pb和Lu-Hf同位素研究内蒙乌努格吐山斑岩型铜钼矿岩浆岩特征})-[r:has_illustration]->(i:Illustration…

Python应用开发——制作bin文件

Python应用开发——制作bin文件 目录Python应用开发——制作bin文件前言1 环境搭建2 代码编写与测试结束语前言 什么是bin? bin是二进制文件,其用途依系统或应用而定。一种文件格式binary的缩写。一个后缀名为".bin"的文件,只是表…

无代码配置态势感知分析应用,预判你的预判

森林发生火势灾情时,应急管理中心快速做出部署,实时监测并分析演变趋势大型交通事故发生,应急指挥中对前端人员、车辆的远程调度线路规划实时监测无人机对电站电厂的运维工作公安警务对嫌疑人、嫌疑车辆等目标的跟踪侦查……以上这些&#xf…

Acwing---基础算法(一)

文章目录 快速排序归并排序整数二分浮点数二分一、快速排序 #include<iostream>using namespace std;const int N 1e6 10;int n; int q[N];void quick_sort(int q[], int l, int r) {//此时区间只有一个数或者没有数不需要排序了if (l > r) return;int x q[l], i…

【QCA】【实例】高通DTS中添加BLSP设备节点的基本配置

文章目录0. env1. 简介2. 需求及资料2.1 需求2.2 资料3. DTS实际配置及简述0. env IPQ601x SPF11.5cs 1. 简介 BLSP(BAM Low-Speed Peripheral) 不同chip有不止一组的BLSP&#xff0c;每个BLSP又有多个端口供使用。 每个端口功能可以复用为&#xff1a;SPI 或者 I2CUART 2. 需求…

计算机网络知识详解之:TCP连接原理详解

网络知识详解之&#xff1a;TCP连接原理详解 文章目录网络知识详解之&#xff1a;TCP连接原理详解TCP连接三次握手一、准备工作二、一次握手三、二次握手四、三次握手为什么TCP客户端最后还要发送一次确认呢&#xff1f;为什么要3次握手?握手中的SYN超时重试TCP协议缺陷四次挥…

HECS 安装mqtt

下载(hecs &#xff0c;centos8的样子&#xff0c;对mosquitto 版本高了安装不了)wget https://mosquitto.org/files/source/mosquitto-1.5.9.tar.gztar -zxvf mosquitto-1.5.9.tar.gz安装前置工具yum install gcc-cyum install cmakeyum install openssl-devel编译cd mosquitt…

Vue项目启动后跳转到制定路由页面

前言 今天把自己的项目布局完成了&#xff0c;但是想在项目启动的时候默认跳转到登录页面。 这其实需要借助路由实现跳转 开始编写之前&#xff0c;大家可以看下我的布局&#xff1a; 安装并使用路由 关于如何安装并使用路由&#xff0c;可以参考&#xff1a;Vue安装并使用路…

LeetCode_单周赛_330

6337. 统计桌面上的不同数字 代码 后面出现的数字都是小于 n 的。 n 1 时&#xff0c;答案是 1。 n > 1时&#xff1a; 第一天&#xff0c;n % (n - 1) 1&#xff0c;n - 1会被加入第二天&#xff0c;(n - 1) % (n - 2) 1&#xff0c;n - 2 被加入 递推&#xff0c;一…

Java 8 Optional 介绍

1. 前言 空指针确实会产生很多问题&#xff0c;我们经常遇到空的引用&#xff0c;然后又想从这个空的引用上去获取其他的值&#xff0c;接着理所当然的碰到了 NullPointException。这是你可能会想&#xff0c;这报错很好处理&#xff0c;然后你看了眼报错行数&#xff0c;对比了…

聚合函数学习

文章目录聚合函数介绍理解类型语法AVG和SUMMIN和MAX函数COUNT函数GROUP BY基本使用使用多个列分组GROUP BY中使用WITH ROLLUPHAVING基本使用WHERE和HAVING的对比SELECT执行顺序查询结构SELECT执行顺序SQL 的执行原理聚合函数介绍 理解 聚合&#xff08;或聚集、分组&#xff…

java集合类-Map

Map-增强的Map集合 Map用于保存具有映射关系的数据&#xff0c;因此Map集合里保存着两组值&#xff0c;一组值用于保存Map里的key&#xff0c;另外一组值用于保存Map里的value&#xff0c;key和value都可以是任何引用类型的数据。Map的key不允许重复&#xff0c;即同一个Map对象…

【Linux】TCP三次握手,四次挥手原理

今天在书中找到了比较详细的解释&#xff0c;记录一下 三次握手 在可以使用TCP链路之前&#xff0c;必须在客户端和主机之间显式建立连接。如上所述&#xff0c;在主动&#xff08;active&#xff09;和被动&#xff08;passive&#xff09;连接的建立方式是有区别的。 内核…

生鲜巨变:每日优鲜、叮咚买菜、盒马“分道扬镳”?

此前&#xff0c;在疫情影响下&#xff0c;人们出门购物频次减少&#xff0c;传统买菜模式也受到了一定的冲击。在此背景下&#xff0c;既能够解决人们买菜难题又能够减少人与人接触的生鲜电商&#xff0c;赢得了众多消费者的青睐。而随着大量用户涌入其中&#xff0c;整个生鲜…

【GD32F427开发板试用】硬件IIC读取SHT40温湿度传感器

本篇文章来自极术社区与兆易创新组织的GD32F427开发板评测活动&#xff0c;更多开发板试用活动请关注极术社区网站。作者&#xff1a;烟花易冷 介绍 很荣幸又能再次的参加技术社区的开发板试用活动&#xff0c;此次参加用的是GD32F427系列的芯片&#xff0c;该芯片相较于GDF31…

OpenPPL PPQ量化:原理与实践

目录 量化原理 为什么需要量化&#xff1f; 量化粒度 框架综述 算子划分 量化中的图融合操作 量化实践&#xff1a;以pytorch mobilenet v2 模型为例 源码阅读 torch模型和onnx量化过程中的区别 后记 量化原理 为什么需要量化&#xff1f; 1、减少内存带宽和存储空…

C++Morris遍历

一、关于Morris算法 简介 Morris算法是针对二叉树实现的一个遍历算法&#xff0c;它是一种空间复杂度为O(1)的遍历算法 通常情况下使用迭代或递归的方式遍历二叉树的空间开销都是O(N)级别的&#xff0c;较为理想的情况下可以做到O(logn)级别&#xff0c;而Morris算法通过更改…

Windows Kerberos客户端配置并访问CDH

安装 Kerberos 客户端 配置 hosts 1、配置集群 hosts 到 Windows&#xff08;C:\Windows\System32\drivers\etc\hosts&#xff09;&#xff1b; 2、调整windows环境变量&#xff0c;将系统环境变量 PATH 中的 C:\Program Files\MIT\Kerberos\bin 放置在最前边&#xff0c;建…