基础知识

更新时间:
2023-08-10
下载文档

基础知识

本节简要介绍了 EtherCAT、VSOA 和组态软件的相关知识。

EtherCAT 概述

EtherCAT(Ethernet for Control Automation Technology)是一种基于以太网的开发构架的实时工业现场总线通讯协议,具有高实时、高精度、强灵活、易使用、低成本等特点。EtherCAT 的出现为系统的实时性能和拓扑的灵活性树立了新的标准。

EtherCAT 是最快的工业以太网技术之一,提供纳秒级精确同步。相比于设置了相同循环时间的其他总线系统,EtherCAT 总线通常能减少 25%-30% 的 CPU 负载。在网络拓扑结构中 EtherCAT 没有任何限制,最多可连接 65535 个节点,组成线型、总线型、树型、星型或者任意组合的拓扑结构,且节点地址可自动获取,无需网络调试,集成的诊断信息可以精确定位错误。同时,EtherCAT 无需配置交换机,无需处理复杂的 MAC 或者 IP 地址。此外,EtherCAT 的数据交换完全由硬件设备处理,利用分布式时钟精确校准,为“主-从”设备同步提供了有效的解决方案。

EtherCAT 主站一般采用软件的方式来实现,包括 SOEM、IgH、Acontis、KPA EtherCAT、KingStar、倍福的 TwinCAT 等都是基于一台实时操作系统的 PC,通过以太网卡来实现主站的功能。 目前常见 EtherCAT 开源的主站代码有 RT-LAB 开发的 SOEM(Simple OpenSource EtherCAT Master)和 EtherLab 的 the IgH EtherCAT® Master,SylixOS 对两者都支持。其中 IgH 作为常用的 EtherCAT 开源协议栈,SylixOS 已全面移植,还增加了 modules 支持丰富功能。下面 SylixOS 开发将以 IgH 主站为例进行讲解。

SylixOS-IgH 概述

SylixOS-IgH 的使用方式尽可能的保留了 Linux 下 IgH 风格,延续了其命令行工具的功能。而在应用程序开发方面,借助 SylixOS 集成开发套件的优势,用户可以更方便编辑、调试基于 SylixOS-IgH 的应用程序。

SylixOS-IgH 主要分为 IgH 主站协议栈、实时网卡驱动、IgH 用户层接口库以及用户应用程序。具体介绍如下所述:

IgH 主站协议栈

SylixOS-IgH 主站协议栈源代码经编译后生成 ec_master.ko 内核模块,EtherCAT 功能集中实现在该模块中。该模块注册之后会在“/dev”路径下创建一个 EtherCAT0 字符设备,可通过“devs”命令进行查看设备。

 [root@sylixos:/]# insmod /lib/modules/ec_master.ko
 use MAC addr: 02:81:01:6e:98:96
 module /lib/modules/ec_master.ko register ok, handle: 0x43ea0d10
 [root@sylixos:/apps/app_igh_user]# devs
 device show (minor device) >>
 drv dev open name                
 37   0    0 /dev/EtherCAT0 

用户程序操作 EtherCAT 主站,会通过用户层接口函数最终调用 I/O 系统的 open()、ioctl() 完成 EtherCAT 协议栈的执行。

实时网卡驱动

SylixOS-IgH 的实时网卡驱动源代码经编译后生成 rt_netcard.ko 内核模块。实时网卡驱动绕过网络协议栈中安全性检查、路由、出入队列、分片和重组等相对 EtherCAT 来说非必要的网络传输功能,以此来保证 EtherCAT 数据包“准时出发,路上不耽误”的特性。

 [root@sylixos:/root]# insmod /lib/modules/rt_netcard.ko
 use Dev: gmac EtherCAT port.
 module /lib/modules/rt_netcard.ko register ok, handle: 0x43ea0720
 [root@sylixos:/apps/app_igh_user]# lsmod

             NAME           HANDLE   TYPE  GLB   BASE     SIZE   SYMCNT
 ------------------------- -------- ------ --- -------- -------- ------
 VPROC: kernel             pid:   0 TOTAL MEM: 331776 
 + ec_master.ko            43fd9980 KERNEL YES 8063e000    405a8      9
 + rt_netcard.ko           43e9a580 KERNEL YES 80628000     4098      1

IgH 用户层接口

IgH 用户层接口源代码编译后生成对应的动态库,IgH 源码把对 EtherCAT 主站字符设备的“ioctl”操作全部封装成面向用户的 API,用户只需要了解 IgH 用户层接口函数的意义和使用方式即可编写 IgH 应用程序,避免了学习 IgH 协议栈底层实现的庞大工作量。

IgH 用户应用程序

如图所示,SylixOS-IgH 主站三种状态。主站模块注册之后,主站处于孤立状态;实时网卡驱动模块注册之后,主站处于空闲状态;用户应用程序执行时,会先进行主站请求操作,接着配置从站并建立用户层过程数据和协议栈数据缓冲区的映射关系,最后进行激活主站的操作,主站处于运行状态。主站进入运行态之后,即可进行周期性过程数据收发行为。

如下图所示,是 IgH 用户应用程序主要使用的 API,及相应阶段的功能和主站所处的状态。

VSOA 概述

VSOA 是翼辉信息推出的一款轻量级的适用于任务关键领域的微服务架构。它支持多种编程语言、多 CPU 架构环境与多操作系统平台,同时不依赖任何第三方库;架构简洁、资源占用小、服务响应速度快。使用者无需单独学习 IDL(Interface description language)语言,具有开发成本低、开发效率高等特点。

VSOA 汇集订阅/发布、RPC、高带宽数据流以及自定义数据报等功能于一体,可满足任何分布式应用模型;同时提供非入侵式仿真测试工具与便捷的开发环境,让开发者在享受云计算先进的开发体验以及高效的生产效率的同时,继续保持任务关键领域对业务功能和性能的高可靠需求。

如需详细了解 VSOA 技术,参见 VSOA 微服务架构open in new window

如需详细学习 VSOA 开发 ,参见 任务关键型云原生教培open in new window

组态软件概述

工控行业广泛使用的组态软件,又称为组态监控系统软件,源自于英文 SCADA,全称为 Supervisory Control and Data Acquisition,意为数据采集与监视控制,它位于自动控制系统监控层的最上层,是一种软件平台和开发环境。

组态软件在开发环境方面,提供了丰富的功能模块和使用灵活的组态方式,能够快速开发功能强大的控制系统,可用于工业控制、楼宇自控、环保监测等领域。在软件平台方面,能够从自动化过程和设备中采集各种信息,并将这些信息以图形化等更加直观的方式进行显示,方便用户进行分析和管理。它还可以将重要的信息以各种方式传送给相关人员,并执行必要的分析处理和存储。此外,组态软件还能发出控制指令来协调各个系统设备的运行,提高系统的稳定性和效率。

文档内容是否对您有所帮助?
有帮助
没帮助