[工业互联-22]:常见EtherCAT主站方案:Acontis公司的商用Windows 解决方案

news2024/11/15 17:38:25

目录

前言:非实时、纯软件解决方案

1.1 概述

1.2 缺点

1.3 实时性思路

方案1:非实时性能的解决方案:etherCAT优化网卡驱动程序

方案2:EtherCAT内核调度模块EcatDrv

方案3:具有硬实时性能的解决方案:EC-Win


前言:非实时、纯软件解决方案

1.1 概述

在Windows系统中,仅需使用一块标准以太网卡即可运行EtherCAT主站协议栈。即Windows系统下配置EtherCAT主站不需调用特殊的接口网卡,可以直接运行在内置于主板中的板载以太网控制器或低成本的外部标准网卡上。

1.2 缺点

Windows并不是一个实时操作系统(RTOS),这意味着用户难以确保实现EtherCAT周期时间具有的确定性、稳定性和实时快速等特性。

EtherCAT在Windows上能够实现大于10毫秒的更新频率,但即使这些相对较慢的周期时间也难以保证用户能顺利稳定地实现,也因此,通常情况下,用户无法在该系统内使用EtherCAT的分布式时钟(DC)功能。

1.3 实时性思路

一个提高Windows性能的思路是把Windows网络驱动程序替换为acontis提供的实时以太网驱动程序,通过替换驱动程序并使用acontis提供的优化驱动程序来消除Windows网络协议栈的影响。这个思路让软实时行为的实时性得到了很大改善,进而能够在系统中使用分布式时钟功能。但是,该方案仍然缺少确定性,因此,不建议在生产过程中使用。

另一个更好的思路是同时运行Windows和EC-Win。EC-Win 指的是一种使用acontis 提供的实时虚拟机管理程序的相关技术技术来同时在Windows 和 RTOS系统运行的硬实时解决方案,从而可以创建出速率快、确定性好、且基于硬实时行为的EtherCAT应用程序,其更新速率可以达到20kHz(50毫秒)。

接下来我们将为您介绍acontis在Windows的不同情况下实现EtherCAT主站协议的三种情形和结果。

方案1:非实时性能的解决方案:etherCAT优化网卡驱动程序

网络驱动程序接口规范 (NDIS) 是网络驱动程序体系结构的规范,它允许传输协议(如 TCP/IP)与底层物理网络适配器进行通信。

etherCAT可以优化驱动程序,并称为NDIS规范的一部分,该规范由微软联合开发,并在Windows中使用。

为了在Windows中发送和接收EtherCAT帧,etherCAT主站包括一个NDIS链路层(emllNdis.dll),以利用作为Windows网络协议栈一部分的以太网驱动程序。

如下图所示:

 在该方案中,只对以太网驱动程序进行了优化,以更加有效、更实时支持etherCAT协议。

但该方案,在应用程序和驱动程序传送数据时,还是必须通过Windows操作系统来进行调度。

更新速率的体系结构 > = 10 毫秒(不能有效保证)。

因此,该方案,只能算是驱动层面的软实时。

实时性能以太网驱动程序(链路层)

  • Windows NDIS filter driver (emllNdis)
  • Intel Pro/1000 (emllI8254x)
  • Realtek Gigabit (emllRTL8169)
  • Beckhoff CCAT (emllCCAT)

方案2:EtherCAT内核调度模块EcatDrv

为了实现更快的更新速度,acontis提供了内核模块EcatDrv和优化的实时以太网驱动程序来取代标准的Windows调度网络驱动程序

EcatDrv 内核模块提供从用户空间直接访问物理网络控制器所需的权限。这样就可以发送和接收EtherCAT帧,而无需在两者之间使用任何Windows软件。

采用这种方案的结果是降低了 CPU 负载,减少了抖动,规避了其他的网络通信过程所产生的不利后果。

该方案,EtherCAT应用程序直接通过RealTime Driver发送数据,可以绕过了Window内核调度程序。

该方案,windows和实时驱动程序使用使用相同的CPU core,因此,Windows非是使用程序的负载、Windows内核本身的调度程序,都会对EtherCAT实时数据造成影响。

因此,该方案,只能算是调度层面的软实时。

更新速率的体系结构:> = 1 毫秒(难以保证)

方案3:具有实时性能的解决方案:EC-Win

把Linux RTOS系统和Windows系统结合起来将在Windows上获得最佳的EtherCAT性能。

Acontis提供了一个可以同时运行在Windows和实时Linux(RT-Linux)上的基于Windows的实时管理程序。

结合EC-Master,我们可以调用这套完整的解决方案来在Windows上实现EtherCAT。

 借助 EC-Win,EtherCAT 主站协议栈关联的EtherCAT应用程序可在 RT-Linux 上运行,从而实现高达20 kHz(50 微秒)的更新速率的硬实时性能。

此外,acontis 还提供了为 Linux系统优化的实时以太网驱动程序,进一步提高了 EtherCAT 的整体性能。

通过acontis的实时管理程序,Windows和RT-Linux被安全地分开,从而为实时Linux应用程序(包括EtherCAT)提供保护,使其免受Windows系统故障的影响。

虽然该方案存在有操作系统层面的拆分,对于Windows上的应用程序和实时Linux系统上的应用程序,用户仍然都可以在用户更为熟悉的Microsoft的Visual Studio软件环境下进行开发与调试。

由EC-WIN负责在Windows和Linux分配非实时或实时程序或任务。

更新速率的体系结构:> = 50微秒

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

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

相关文章

【C++】C++创建动态链接库并调用

😏★,:.☆( ̄▽ ̄)/$:.★ 😏 这篇文章主要介绍。 学其所用,用其所学。——梁启超 欢迎来到我的博客,一起学习,共同进步。 喜欢的朋友可以关注一下,下次更新不迷路🥞 文章目…

车载蓝牙通信开发之各种协议原理解析

车载蓝牙开发需要考虑到蓝牙协议栈集成、连接管理、电话功能集成、媒体播放控制、数据交换和服务发现、安全性和隐私保护等方面。这对于实现车辆与蓝牙设备之间的无线通信和交互功能非常关键。 使车辆能够与蓝牙设备进行通信和交互的开发过程。 蓝牙协议栈集成: …

SpringCloud与SpringBoot版本对应关系

浏览器访问start.spring.io/actuator/info 出现JSON字符串,再访问json.cn,在里面解析该字符串 如果对应不上,可能会出现很多环境上的坑

KKRT16 PSI算法

概念介绍 KKRT16 算法是一种基于OT的轻量级隐私求交协议,用于在半诚实敌手存在的情况下对伪随机函数(OPRF)进行不经意的评估。 在 OPRF 协议中,接收器有一个输入 r r r; 发送方获得输出 s s s,接收方获得…

【Hello mysql】 mysql的基本查询

Mysql专栏:Mysql 本篇博客简介:介绍mysql的基本查询 mysql的基本查询 create单行插入全列插入多行查询指定列查询插入否则更新 (不常用)替换 Retrieveselect列全列查询指定列查询查询字段为表达式结果去重 where条件找到英语小于6…

Unity 分块延迟渲染01 (TBDR)

现代移动端图形体系结构的概述 现代SoC通常会同时集成CPU和GPU。 CPU被用于处理需要低内存延迟的序列、大量分支的数据集,其晶体管用于流控制和数据缓存。 GPU为处理大型,未分支的数据集,如3D渲染。晶体管专用于寄存器和算术逻辑单元&…

Django_内置的用户认证系统

目录 一、用户对象 1. 创建用户 2. 修改密码 3. 用户验证 二、权限与授权 1. 默认权限 2. 用户组 3. 在代码中创建权限 4. 权限缓存 三、在视图中认证用户 1、登录用户 2、注销用户 3、用户登录的访问限制 3.1、原始的办法 3.2、函数视图使用login_required装饰…

【前端】网页开发精讲与实战 CSS Day 1

🚀Write In Front🚀 📝个人主页:令夏二十三 🎁欢迎各位→点赞👍 收藏⭐️ 留言📝 📣系列专栏:前端 💬总结:希望你看完之后,能对你有…

Go 并发模型—Goroutine

前言 Goroutines 是 Go[1] 语言主要的并发原语。它看起来非常像线程,但是相比于线程它的创建和管理成本很低。Go 在运行时将 goroutine 有效地调度到真实的线程上,以避免浪费资源,因此您可以轻松地创建大量的 goroutine(例如每个请…

快速排序—C语言实现

目录 前言 快速排序 实现逻辑 1. hoare版本​编辑 2. 挖坑法 3. 前后指针版本 快速排序优化 1. 三数取中法选key 2. 递归到小的子区间时,可以考虑使用插入排序 快速排序非递归(用栈实现) 快速排序的特性总结 全部代码 前言 &#…

idea-spring boot开发

安装maven与配置配置maven安装插件 已经装好了idea与jdk 安装maven与配置 下载地址: https://maven.apache.org/download.cgi 下载合适的版本 配置maven 打开设置: 直接搜索 :maven 配置变量: 此电脑->属性->高级系统设置->环境变量 新建系统变量 MAVEN_HOME&#xff…

Web安全——渗透测试基础知识下

渗透测试基础 Web安全一、VMware虚拟机学习使用1、虚拟机简单介绍2、网络模式2.1 桥接网络(Bridged Networking)2.2 NAT模式2.3 Host-Only模式 3、通俗理解 二、Kali的2021安装与配置1、简单介绍2、Kali的版本3、配置3.1 安装虚拟机open-vm-tools-deskto…

基于matlab从ROI和蒙版在图像中创建标记(附源码)

一、前言 此示例演示如何从一组 ROI 创建标记的阻止映像。 在此示例中,您使用两种方法来获取和显示标记的数据。一种方法使用多边形ROI对象来存储肿瘤和正常组织区域边界的坐标。该函数将ROI坐标转换为标记的块图像。第二种方法使用掩码来指示图像的二进制分割为组…

能不能推荐个 vue 后台管理系统模板?

前言 下面是我整理的vue2和vue3的一些后台管理系统模板,希望对你有帮助~ Vue2 1、iview-admin Star: 16.4k 基于 iview组件库开发的一款后台管理系统框架,提供了一系列的强大组件和基础模板,方便开发人员快速搭建一套功能丰富、界面美观、…

web入门案例-部门篇

开发流程 完成对应部门管理和员工管理的需求 准备工作 注意:service还要写接口实体类,mapper只写接口即可,controller是实体类 对应的三个注解 RestController(方法返回值作为响应值) Mapper(控制反转IOC&#xff0c…

漏洞深度分析 | CVE-2023-36053-Django 表达式拒绝服务

​ 项目介绍 Django 是一个高级 Python Web 框架,鼓励快速开发和简洁、务实的设计。它由经验丰富的开发人员构建,解决了 Web 开发的大部分麻烦,因此您可以专注于编写应用程序,而无需重新发明轮子。它是免费且开源的。 项目地址…

CodeTop整理-树篇

目录 103. 二叉树的锯齿形层次遍历 236. 二叉树的最近公共祖先 124. 二叉树中的最大路径和 102. 二叉树的层序遍历 94. 二叉树的中序遍历 110. 平衡二叉树 572. 另一个树的子树 96. 不同的二叉搜索树 543. 二叉树的直径 297. 二叉树的序列化与反序列化 199. 二叉树的…

eNSP-VRRP虚拟路由器冗余技术

VRRP-虚拟路由器冗余技术 文章目录 VRRP-虚拟路由器冗余技术一、拓扑结构二、基本配置三、测试验证四、知识点详解1.VRRP路由器2.报文格式3.工作过程 一、拓扑结构 二、基本配置 R1: #配置ip <Huawei>sys [Huawei]sys r1 [r1]int g0/0/0 [r1-GigabitEthernet0/0/0]ip a…

快速排序算法!

快速排序 什么是快速排序&#xff08;quickSort&#xff09;&#xff1f; 主要分成两部分实现&#xff0c;分区、递归操作。 分区 从数组中任意选择一个 “基准”&#xff0c;所有比基准小的元素放在基准前面&#xff0c;比基准大的元素放在基本后面。 递归 递归地对基准…

Todo-List案例版本四

全局事件总线 使用步骤 1.定义全局事件总线 new Vue({...beforeCreated(){Vue.prototype.$busthis //安装全局事件总线&#xff0c;$bus就是当前应用的vm}... }) 2.使用事件总线 a.接收数据&#xff1a;A组件想接收数据&#xff0c;则在A组件中给$bus绑定自定义事件&…