PROFINET及其同步实时通讯分析

1    概述


           PROFINET实时以太网是由Profibus International(PI)组织提出的基于以太网的自动化标准。从2004年4月开 始,PI与Interbus Club总线俱乐部联手,负责合作开发与制定标准。PROFINET构成从I/O级直至协调治理级的基于组件的分布式自动化 系统的体系结构方案,并可以将Profibus技术和Interbus现场总线技术在整个系统中无缝地集成。PROFINET能为紧要任务提供最低限度的 性能保证服务,同时也能为非紧要任务提供尽力服务。


2   PROFINET的实时通讯分类


           PROFINET区分两类不同性能的实时周期通讯,一种是实时(RT)通讯,主要用于工厂自动化,这一类没有时间同步要求,一般只要求响应时间为 5-10ms。另一种是等时同步实时(IRT),主要用于有苛刻时间同步要求的场合例如运动控制,电子齿轮。与此对应,PROFINET提供两类实时通讯 通道具体分为RT实时通道和IRT实时通道。另外还包括一个标准通讯通道,标准通道是使用TCP/IP协议的非实时通讯通道,主要用于设备参数化、组态和 读取诊断数据。


           实时通道RT是软实时SRT(Software RT) 方案,它旁路TCP/IP层,同时为优化通讯功能,PROFINET RT帧根据 IEEE802.1Q/P定义了报文的优先级,最多可用7级。PROFINET RT帧中的状况信息域用来标识设备和数据的状况(例如:运行,停止,出 错)。其通讯协议及帧结构如图1。


        



图1 PROFINET RT通讯协议及其帧结构


           实时通道IRT是硬实时HRT(Hardware RT) 方案,实时性是基于一个建立在快速以太网Layer2上的时间触发(time- triggered)协议,由内嵌的Switch-ASIC同步实时交换芯片保证。这样可以进一步缩短通讯栈软件的处理时间,特别适用于高性能传输、过程 数据的等时同步传输、以及快速的时钟同步运动控制。由于基于硬件实现,IRT帧中通常无需RT帧中的IEEE802.1Q VLAN标识。 PROFINET的IRT通讯协议及帧结构如图2。
  


图2 PROFINET IRT通讯协议及其帧结构


           从图1,图2也可以看出,PROFINET 实时数据帧(包括RT和IRT 帧)都是在按IEEE802.3所定义的标准化的帧格式基础上略作改动, 让其L/T字段的值>1500,这是一个保存的EtherTypeⅡ,可以用于唯一地识别PROFINET的实时数据帧以区别于其他采用标准IT协 议的以太网帧,优先进行传输。PROFINE的以太网类型标识中用0x0800标识IP帧,使用0x8892标识PROFINET实时帧。帧中的应用标识 符(frame-ID)域标识所接收的数据的传输,即标识周期传输和非周期传输(报警和事件)。


           按照PROFIBUS国际组织提供的数据[1],PROFINET在IRT通讯方式下应用在同步运动控制场合,其性能比目前的现场总线方案要提升 100倍。这种基于硬件的同步实时(IRT)通讯解决方案能够在大量数据需要传递的情况下保持足够高的时间确定性;同时,可缓解PROFINET设备上处 理器的通讯任务。因此,本文以下对它进行具体分析。


3    PROFINET对IEEE 1588的改进


           PROFINET IRT所采用的时间同步协议是基于改进的IEEE1588[2]。IEEE 1588 的基本功能是使分布式网络内的最精确时钟 (reference clock)与其它时钟保持同步,它定义了一种精确时间协议PTP(Precision Time Protocol),用于对标 准以太网或其它采用多播技术的分布式总线系统中的传感器、执行器以及其他终端设备中的时钟进行亚微秒级同步。


           一个IEEE 1588 精密时钟( PTP) 系统包括多个节点, 可以以为每一个都代表一个时钟,时钟之间经过网络连接。IEEE 1588 将 整个网络内的时钟分为两种,普通时钟OC(Ordinary Clock)和边界时钟BC(Boundary Clock),只有一个PTP 通讯端口的 时钟是普通时钟,有一个以上PTP 通讯端口的时钟是边界时钟,每个PTP端口提供独立的PTP通讯。其中,边界时钟BC通常用在网桥(交换机)和路由器 等这些用来划分子网的网络设备中,用于防止这些网络设备产生大的延迟抖动。普通时钟通常用在节点上。


           随着温度变化和时间推移,发送节点和接收节点的时钟频率将发生偏差,由此会造成漂移(drifts)。为此,在PTP中需要通过一个闭环控制(loop)进行补偿,以如下PI-loop为例。


        


           其中, y[k]是被控量, x[k]是偏差变量, k代表同步循环。 KR,Kn 是 控制参数。T是采样时间,它即是PTP同步信息(Sync信息)之间的发送间隔。每个PTP从属时钟以及BC的每个从属时钟端口都必须含有类似的闭环控 制,闭环控制的设计直接关系到时间同步的精度。如图3上半部分所示,在BC中的时钟振荡器(Oscillator)将会参照PTP Slave,以一定的 函数关系进行调节,调节后的时钟将成为下一个网段的PTP Master。以此类推,反复进行,直至目的节点Time Client。这样,当在总线式拓 扑中有多个网桥链式联结时,这种方式实质上产生了控制循环的级联(cascade),会导致不稳定,从而使得IEEE 1588无法满足苛刻的同步要 求 [3] 


        



图3 IEEE1588边界时钟和PROFINET旁路时钟对比


           相对于IEEE1588的“Boundary Clock”, PROFINET进行了修正,修正后称之为旁路时钟BpC(Bypass clock)[5]。


           时间同步的关键题目是网桥等网络设备中的时延不定常,从而造成时间抖动。假如能找出计算网桥中时延的方法,那么就可以对它进行补偿。如图3下半部分所 示,PROFINET的BpC正是基于这种思想,通过对PTP报文进行必要的操纵和处理(Message processing)来对时延进行补偿,具体 的处理操纵可能涉及贸易秘密,尚未见公然报道。基本思想如下:


           1) 假设一个PTP网桥在端口s收到一个Sync报文,那么接收时间戳Trx,s将会产生, 当BpC的其它端口j开始向下游传递该Sync报文时,发送时间戳Ttx,j将会产生。这样,可以得到所需的时钟校正值(clock correction):Ttx,j -Trx,s 


           2) 如图4所示,使用Ldi代表传输间隔造成的延迟,bdi代表网桥中的时延,将所得到的本网桥内时延bdi和本段传输时延Ldi的信息加进到将要 转发的Sync报文中,这样目的节点就可以得到报文所尽历的精确时延。PTP 主时钟到PTP 从属时钟的累积时延为:


        


           借助这以一方式,就可以把网桥看成具有定常时延的网络组件,从而避开了控制循环的级联。
 


图4 时延叠加


5    


           PROFINET将极大的改善现有自动化技术发展过程中的通讯瓶颈,同时实现自动化技术从以实现控制任务为主导向实现高度集成和优化的信息收集、分析 和处理任务为主导的转移,使得实现控制任务将成为未来自动化平台的低层次要求。本文希看通过对PROFINET实时通讯较具体的分析,能有助于将来我国自 有产业以太网标准的发展。

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

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

相关文章

【剑指offer15.二进制中1的个数】——位操作(左移右移等)

目录 二进制的表示 二进制的位操作 应用: 剑指offer15.统计二进制中1的个数(多种方法,位右移操作、与操作等) 转自:https://www.jianshu.com/p/3a31065a8e58 红色为自己添加 我们都知道在计算机中所有的信息最终都…

java 异常处理机制(java 编程思想)

一、概念  “异常”这个词有“我对此感到意外”的意思。问题出现了,你也许并不清楚该如何处理,但你的确知道不应该置之不理;你要停下来,看看是不是有别人或在别的地方,能够处理这个问题。只是在当前的环境中还没有足够…

怎样在CentOS 7.0上安装和配置VNC服务器

这是一个关于怎样在你的 CentOS 7 上安装配置 VNC 服务的教程。当然这个教程也适合 RHEL 7 。在这个教程里,我们将学习什么是 VNC 以及怎样在 CentOS 7 上安装配置 VNC 服务器 。 我们都知道 这是一个关于怎样在你的 CentOS 7 上安装配置 VNC 服务的教程。当然这个教…

MOTOMAN机器人网络控制的实现

最初程序员在Unix系统下使用Berkeley Socket编写网络程序,随着Windows操作系统的普及,Microsoft、Sun等公司联合开发了Winsock接口API。它实质上是一种进 程间通信,将之从单机环境扩展到网络环境以适合于开发主机/客户机通信程序。网络通信的…

【剑指offer】——【python中return函数中的and和or表达式的返回值】

目录 1、# and 结果为真,返回最后一个表达式的结果,若结果为假返回第一个为假的表达式的结果 2、# or 结果为真,返回第一个为真的表达式的结果,若结果为假,返回最后一个表达式的结果 3、应用[剑指 Offer 64. 求12…n…

Spring Cloud构建微服务架构:消息驱动的微服务(入门)【Dalston版】

2019独角兽企业重金招聘Python工程师标准>>> 之前在写Spring Boot基础教程的时候写过一篇《Spring Boot中使用RabbitMQ》。在该文中,我们通过简单的配置和注解就能实现向RabbitMQ中生产和消费消息。实际上我们使用的对RabbitMQ的starter就是通过Spring C…

CXF 客服端调用报错

服务端已经发布了WSDL,现在在客服端生成web service客服端代码,在eclipse中新建一个project,然后new->web services->web service client生产客户端代码 在调用的时候报如下错误 解决:缺少axis相应的jar包,加入包…

20145225 《信息安全系统设计基础》第10周学习总结

cp1.c 进行复制文件的操作,需要有源文件和目的文件,第一次命令没有加入所以没有正常完成复制文件的操作fileinfo.c 用来实现显示文件信息。先判断命令是否有操作数,有的话才能继续进行下去,如果没有报错就打印出来相关文件信息&am…

做演员是圆梦 做生意学会面对现实

田朴珺是一位拥有多重身份的女性。她是一名演员,也是一位商人,还担任过电影《中国合伙人》的制片人。 作为演员,田朴珺的作品并不是很多,也一直不温不 火。但这并不代表她将放弃演艺生涯。她表示,如果机会合适&…

【深度学习】——模型评估指标MAP计算实例计算

目录 一、知识储备 1、IOU——交集面积与并集面积之比 2、混淆矩阵(TP、FP、FN、TN) 问题1:上面的TP等具体是如何计算得到的? 3、精度precision&召回率recall 二、ap计算实战 1、计算流程 1)准备数据&#xf…

第 52 章 Web Server Optimization

系统配置 Intel(R) Xeon(TM) CPU 3.00GHzMemory 4GEthernet adapter 1000M52.1. ulimit 查看 ulimit ulimit -a core file size (blocks, -c) 0 data seg size (kbytes, -d) unlimited file size (blocks, -f) unlimited pending signals …

hdu5489 Removed Interval dp+线段树优化

现在看这题居然直接秒了。。。去年看的时候还以为神题。。 设以第i项为结尾的lis前缀为f[i],以第j项为结尾的lis后缀为g[i],如果求出f[i]和g[j],然后枚举i,快速找到最大的满足a[j]>a[i]的g[j]就可以了。注意到如果将f[i]从后往…

JS原型链理解

1. 每个对象都有原型属性(__proto__)2. 对象的原型(__proto__)指向其构造函数(Constructor)的prototype属性3. 构造函数(Constructor)的prototype属性本身也是一个对象,其原型(__proto__)亦指向其构造函数的prototype4. 如此形成一个链式结构,而Construc…

【深度学习】——2021年FPN特征金字塔

#!/usr/bin/env python # -*- coding: utf-8 -*- # Time : 2021/4/22 17:06 # Author : linlianqin # Site : # File : fpn.py # Software: PyCharm # description:其搭建的基本流程和resnet是一致的,只是将每一层的卷积结果保存了起来import torch impo…

NoSQL分类及ehcache memcache redis 三大缓存的对比

NoSQL分类 由于NoSQL中没有像传统数据库那样定义数据的组织方式为关系型的,所以只要内部的数据组织采用了非关系型的方式,就可以称之为NoSQL数据库。目前,可以将众多的NoSQL数据库按照内部的数据组织形式进行如下分类: Key/Value的…

52.4. APC Cache (php-apc - APC (Alternative PHP Cache) module for PHP 5)

$ apt-cache search php-apc php-apc - APC (Alternative PHP Cache) module for PHP 5$ sudo apt-get install php-apcapc cache 状态监控 http://pecl.php.net/package/APC 下载解包找到apc.php,放到web服务器上 原文出处:Netkiller 系列 手札 本文作者&#xff1…

乐视云计算基于OpenStack的IaaS实践

本文作者岳龙广,现在就职于乐视云计算有限公司,负责IaaS部门的工作。 从开始工作就混在开源世界里,在虚拟化方面做过CloudStack/Ovirt开发,现在是做以OpenStack为基础的乐视云平台。所以对虚拟化情有独钟,也对虚拟化/云…

【深度学习】——如何提高map值

目录 代码获取 map原理 map提高技巧 技巧总结: 实战: 1、效果不佳map55.55% 1)单独调整get_dr_txt.py中的self.iou 0.3 2)单独调整get_map,py中的minoverlap: 3)同时调整minoverlap和self.iou 本文是在faster_rcnn模型的…

每日站立会议个人博客(冲刺周)-Wednesday

时间未完成不知道如何获取具体标签里的内容正在做爬虫技术之获取标签里的内容将要做对运用爬虫技术获取的数据进行处理转载于:https://www.cnblogs.com/andibier/p/8075098.html

数据库水平切分的实现原理解析——分库,分表,主从,集群,负载均衡器(转)...

第1章 引言 随着互联网应用的广泛普及,海量数据的存储和访问成为了系统设计的瓶颈问题。对于一个大型的互联网应用,每天几十亿的PV无疑对数据库造成了相当高的负载。对于系统的稳定性和扩展性造成了极大的问题。通过数据切分来提高网站性能,横…