第一章:计算机网络基础知识回顾
常见的网络模型包括:
应用层 | 其作用是通过应用程序间的交互来完成特定的网络应用。 |
表示层 | 该层提供的服务主要包括数据压缩,数据加密以及数据描述。 |
会话层 | 会话层就是负责建立、管理和终止表示层实体之间的通信会话。 |
传输层 | 传输会话层的报文,传输层建立了主机端到端的链接,传输层的作用是为上层协议提供端到端的可靠和透明的数据传输服务,包括处理差错控制和流量控制等问题。 TCP协议以及UDP协议 |
网络层 | 网络层的主要任务就是选择合适的 网络层负责对子网间的数据包进行路由选择。 基本数据单位为IP数据报。通讯协议为IP协议 |
数据链路层 | 数据链路层在不可靠的物理介质上提供可靠的传输。该层的作用包括:物理地址寻址、数据的成帧、流量控制、数据的检错、重发等。 以太网协议,使用MAC地址 |
物理层 |
|
MAC地址与IP地址:
MAC地址,全称为媒体访问控制地址(Media Access Control Address),是网络设备制造商为网络硬件(如无线网卡或以太网网卡)分配的唯一代码。每个网络设备都有一个全球唯一的MAC地址,用于在数据链路层标识网络中的每个设备。
MAC地址通常由48位二进制数组成,并以16进制格式展示,表现为六组双字符,组与组之间用冒号分隔,例如:00:1B:44:11:3A:B7。MAC地址是烧录在网卡(NIC)中的,是全球唯一的,每个网卡在出厂时都会被分配一个独特的MAC地址。
在网络通信中,MAC地址用于Ethernet协议,属于数据链路层。
IP地址则用于Internet协议,属于网络层,两者之间没有直接联系。
TCP通信协议:
通讯需要先建立一个可靠的链接。
UDP通信协议:
UDP用户数据报协议,是面向无连接的通讯协议,UDP数据包括目的端口号和源端口号信息,由于通讯不需要连接,所以可以实现广播发送。
UDP通讯时不需要接收方确认,属于不可靠的传输,可能会出现丢包现象,实际应用中要求程序员编程验证。
UDP与TCP位于同一层,但它不管数据包的顺序、错误或重发。因此,UDP不被应用于那些使用虚电路的面向连接的服务,UDP主要用于那些面向查询---应答的服务,例如NFS。相对于FTP或Telnet,这些服务需要交换的信息量较小。
UDP的头部如下图所示:
参考文献:
第二章:基于计算机网络的工业通信协议
EtherCat
Ethernet & Control Automation Technology,EtherCAT是以以太网为基础的现场总线系统。自动化对通讯一般会要求更短的资料更新时间、资料同步时的更低的通讯抖动量,EtherCat开发的目的就是让以太网可以运用在工业当中。
传统的数据交换方式:存储转发
存储转发是一种经典的数据交换方式,主要用于网络设备处理和转发数据帧。广泛地被应用到ethernet/profinet中,其核心流程如下:
- 接收完整数据帧:设备需要将整个数据帧接收并暂存到内存中,等待完全接收后才能处理。
- 数据验证:设备检查帧的完整性(例如通过 CRC 校验)。
- 分析帧内容:解析帧头信息以确定该帧的目标地址。
- 转发数据:根据解析结果,将数据帧转发到相应的端口或设备。
EtherCAT的数据交换方式:按需处理(On-the-Fly)
- 不需要完整接收数据帧。从站设备直接在数据帧经过时提取相关数据或更新帧中的内容。
- 从站设备不对整帧执行 CRC 校验。CRC 校验由物理层和主站完成(EtherCAT 使用标准以太网的 FCS 校验来检测帧传输错误)。从站设备仅会检测与自身相关的数据是否有效。
- 从站设备无需完整解析帧头。EtherCAT 主站在创建数据帧时,已经将数据的位置和从站的访问地址(偏移量)预定义。从站仅需根据帧中的预定偏移量提取或插入与自身相关的数据,而不需要复杂的地址解析。
- 从站设备不会主动转发数据帧。EtherCAT 的数据帧在网络中“自然流动”,由链路层的硬件机制实现自动传递,无需从站节点干预。每个从站通过硬件在帧经过时直接修改数据帧,无需重新发送。
EtherCAT的数据交换可以比作一群人在传递信息,大家都排成一队,信息像小纸条一样传递给每个人。这个队伍中的每个人(也就是“从站”)都负责处理特定的任务,然后将信息传给下一个人,直到最后一个人(也就是“主站”)处理完所有的任务。也可以比作接力赛跑,它把信息快速地传递给每个“从站”设备,然后每个设备完成自己的任务,再把信息传给下一个设备。这样整个系统就能以超快的速度处理大量的任务。在工厂里,如果需要控制很多机器和传感器,EtherCAT可以让这些机器和传感器非常快速地交换数据,确保工厂里的所有设备都能协调工作,就像大家在接力赛中都非常迅速地完成自己的任务。
参考文章:
https://zh.wikipedia.org/wiki/EtherCAT
EtherCAT解析,让你全面了解EtherCAT-CSDN博客
Profinet
Profinet 是一种工业以太网通信协议,由 Profibus & Profinet International (PI) 开发。用于连接自动化设备,实现实时数据交换。
Profinet一共有两种通信模式, RT (Real-Time) 满足一般自动化需求的实时通信。IRT (Isochronous Real-Time) 用于高精度运动控制的超低延迟通信。
Profinet支持多种拓扑:线型、星型、树型等。支持 TCP/IP 通信,兼容 IT 系统和 OT 系统。
Profinet相比ethernet,实时性稍弱,但具有更好的灵活性,兼容更多的自动化系统。
参考文章:
https://en.wikipedia.org/wiki/Profinet
OPC UA
OPC Unified Architecture
OPC UA is a platform-independent, service-oriented architecture specification that integrates all functionality from the existing OPC Classic specifications, providing a migration path to a more secure and scalable solution.
什么是OPC?
OPC标准是“OLE for Process Control”的缩写,即应用于过程控制的OLE。它是一种工业标准接口,用于工业控制和生产自动化领域中硬件和软件之间的通信。OPC基于微软的OLE/COM和DCOM技术,为自动化应用提供了一整套接口、属性和方法的标准集。OPC 主要运行在windows的工业PC上。
OPC UA 是OPC 的后继标准,只是后面增加了UA ,意指”统一架构”(Unified Architecture),它的主要目的是摆脱windows,实现与平台无关的OPC。OPC UA作为一种跨平台的通信协议,可以与EtherCAT和Profinet等现场总线技术相结合,以实现更广泛的系统集成和数据交换。
OPC UA的信息模型:
节点是OPC UA数据交互的基本单元,客户端和服务器之间的交互通信,都是基于节点进行的。OPC UA中预定义了8种节点。
除此之外,OPC UA还定义了三种reference的形式。分别是
- hasTypeDefinition
- hasSubType
- hasComponents
OPC UA中的服务可以看作是OPC 提供的API的集合。服务使用了类似Web的请求-应答机制,当客户端调用一个服务时,客户端发送一个请求给服务器,服务器处理完成请求后,返回响应消息给客户端。
OPC UA Application SDK
参考文章:
OPC UA技术通俗理解、案例体验_opcua-CSDN博客
第三章 实时操作系统
VxWorks:
VxWorks是由美国Wind River System公司推出的一个实时操作系统。它是一个确定性、基于优先级的抢占式实时操作系统,具有低延迟和最小抖动,非常适合硬实时嵌入式应用。VxWorks提供多任务调度、任务间同步、进程间通信机制、中断处理以及定时器和内存管理机制等功能。它还支持多核处理器,能够实现非对称多处理(AMP)与对称多处理(SMP)操作系统配置,以及硬件优化多核加速性能。
INtime:
INtime是一个动态的、确定性的硬实时操作系统,用于多核x86兼容处理器上的非对称多处理(AMP)。INtime RTOS是完整的操作系统,具有开发人员期望在现代开发环境中使用的系统服务和功能,包括动态控制多个主机上多个节点(核心)上的进程,以及系统所有节点之间的丰富进程间通信(IPC)等。INtime可以与Windows操作系统在同一台PC上并行运行,提供高性能和优化的嵌入式解决方案。它支持从早期的16位、32位到64位版本的升级,适应了硬件和软件技术的不断提升。