浅谈PROFINET IO通信的实时性

PROFINET由PROFIBUS国际组织(PROFIBUS International,PI)推出,是新一代基于工业以太网技术的自动化总线标准。作为一项战略性的技术创新,PROFINET为自动化通信领域提 供了一个完整的网络解决方案,囊括了诸如实时以太网、运动控制、分布式自动化、故障安全以及网络安全等当前自动化领域的热点话题,并且,作为跨供应商的技 术,可以完全兼容工业以太网和现有的现场总线(如PROFIBUS)技术,保护现有投资。

  PROFINET是适用于不同需求的完整解决方案,其功能包括8个主要的模块,依次为实时通信、分布式现场设备、运动控制、分布式自动化、网络安装、IT标准和信息安全、故障安全和过程自动化。

  PROFINET主要有两种通信方式[1]:

  (1)PROFINET IO实现控制器与分布式I/O之间的实时通信;

  (2)PROFINET CBA实现分布式智能设备之间的实时通信。

  从PROFINET的角度来看,PROFINET IO是在工业以太网上实现模块化、分布式应用的通信概念。通过PROFINET IO,分布式I/O和现场设备能够集成到以太网通信中。

  1 PROFINET IO的基本概念

  1.1 PROFINET IO的工程模型

  (1)IO控制器

  IO控制器[2]一般是可编程控制器(例如PLC),它能够执行自动化程序。其功能相当于PROFIBUS类型1的主站。

  (2)IO设备

  IO设备是连接到PROFINET网络中的现场分布式I/O。

  (3)IO监视器

  IO监视器[2]是一种工程设备,通常为PC、HMI或可编程控制器,用于IO控制器和IO设备的调试和诊断,在运行期间连接IO监视器,通常只是暂时性地用于调试和故障处理。IO监视器的功能相当于PROFIBUS类型2的主站。

  1个PROFINET IO系统应该包括至少1个IO控制器和1个IO设备。

  1.2  PROFINET IO的数据流

  PROFINET IO通信站点的数据交换是通过标准通道[3](基于UDP/IP)和实时通道完成的。在这些通道里,数据使用不同的协议进行传输。例如启动时从站参数是由 主站通过UDP协议传递的,设备地址名字的分配是通过DCP协议完成的,这些都属于标准数据,也可以称为非实时(NRT)数据。而周期数据[4]、报警数 据是通过实时协议传送的,被称为实时数据。

  1.3  组态PROFINET IO及其重要概念

  1.3.1  组态PROFINET IO

  PROFINET IO组态如图1所示,主站是CPU319-3 PN/DP,从站有3个IO设备,分别为ET-200S,ET-200pro和ET-200eco,还可以继续添加IO设备,SIMATIC 产品系列的 PROFINET 设备具有PROFINET接口[5](带或不带集成交换机)。带集成交换机的 PROFINET 设备通常具有2个端口,用于网络的线性总线结构。 同时还提供有3个或更多端口的 PROFINET 设备以连接树型拓扑。由图1可见,CPU319通过双绞屏蔽线与设备3(ET-200S)连接,不同的IO设备之间通过它们自带的交换机接口进行连接。

  1.3.2  PROFINET IO中的不同时间概念

  (1)发送时钟(Send clock)[6]:IRT或RT通信中2个连续间隔之间的时间段。发送时钟是用于交换数据的可能的最短传输时间;

  (2)更新时间(Update time):更新时间=发送时钟× Factor。

  在此时间间隔之内,IO 控制器/IO 设备为 PROFINET IO 系统中的IO设备/IO 控制器提供新的数据。可以为每个IO设备单独组态发送周期,并定义将数据从 IO 控制器发送到 IO 设备(输出)的时间间隔以及将数据从 IO 设备发送到IO控制器的时间间隔(输入)。更新时间在SETP7组态中可以设置。

  (3)Factor:Fatcor是放大倍数,为2n,也称减速比(Reduction Ratio)[7]

  (4)看门狗时间 (Watchdog xime)

  通过STEP7,采用更新时间的整倍数来设置看门狗时间,该时间也可由用户修改。如果在看门狗时间内IO控制器没有为IO设备提供输入/输出数据,IO设备将出现故障并给出替换值。这种情况将作为站故障报告给IO控制器。

  2 研究PROFINET IO实时性的必要性

  首先,在运动控制系统等对实时性要求很高的领域,用户需要知道PROFINET IO数据循环的周期,以便更好地进行生产。其次,如果在STEP7工程工具中对PROFINET IO设备的更新时间和看门狗时间设置不合适,设备就会在运行时出现莫名其妙的故障。所以,对PROFINET IO实时性的研究是很有必要并且具有现实意义。

  3  PROFINET IO的实时性

  3.1  标准以太网的帧结构

  标准以太网的帧如表1所示。可以看出,一个标准以太网帧数据大小为64 B~1  500 B。快速以太网(100 Mb/s)传输1 518 B数据的时间是120 μs,传输64 B数据的时间是5 μs。

  3.2  交换机制

  SIMATIC 中的交换机通过 PROFINET 上的2个机制满足实时要求。

  (1) 存储与转发S&F(Store and Forward)[4]

  使用存储转发方法时,交换机将完整地存储消息帧,并将它们排成一个队列。 如果交换机支持国际标准 IEEE 802.1Q,则根据其在队列中的优先级存储数据。 这些消息帧随后将有选择性地转发给可访问已寻址节点的特定端口(存储转发)。

  对于存储转发,数据经过交换机时先存储进行校验,然后由交换机根据地址表再进行转发。

  (2)直通交换方式(Cut Through)[4]

  在直通交换方式过程中,并不是将整个数据包临时存储在缓冲区中,而是在目标地址和目标端口已经确定后,马上将整个数据包直接传送到目标端口。这 样通过交换机传送数据包所用的时间是最小的,且不受消息帧长度的影响。当目标段与下一个交换机的端口之间的区段已被占用时,数据将“根据优先级的存储和转 发过程”临时存储。

  根据西门子交换机SCALANCE X200手册,64 B的数据S&F延迟时间是10 μs,1 500 B数据S&F延迟时间是130 μs。

  3.3  PROFINET IO实时数据传输的延迟时间

  假设组态ET200分布式I/O模块不是很多的情况下,这样一个最小的以太网报文64 B完全可以控制I/O,那么就认为PROFINET报文的大小为64 B。根据快速以太网(100 Mb/s)传输64 B数据的时间是5 μs,经过n台交换机的传输时间约为n×5 μs。根据SCALANCE X200手册,64 B的数据S&F延迟时间是10 μs,经过n台交换机的延迟时间约为n×10 μs。那么RT数据的延迟时间为n×(10+5)μs。

  所谓反应时间是液晶显示器各像素点对输入信号反应的速度,即像素由暗转亮或由亮转暗所需要的时间(其原理是在液晶分子内施加电压,使液晶分子扭 转与回复)。常说的25ms、16ms就是指的这个反应时间,反应时间越短则使用者在看动态画面时越不会有尾影拖曳的感觉。一般将反应时间分为两个部分: 上升时间(Rise time)和下降时间(Fall time),而表示时以两者之和为准。

  根据这种分析方法,对任何的PROFINET网络拓扑结构都可以通过上述的方法确定PROFINET  IO设备的刷新时间,避免出现IO错误。

  如果使用SCANLANCE X IRT交换机串联,由于IRT交换机使用Cut Through的处理数据方式,这样数据的延迟时间会明显缩短。

  如果使用带有PN接口的ET200串联,由于集成ERTEC芯片,同样适用Cut Though的数据处理方式,这样数据的延迟时间会大大缩短。

  由交换机的机制和数据在网络介质中传输造成的延迟可以看出,距离主站组态距离不同的IO设备数据更新时间是不同的,距离主站越远的设备,IO数据更新时间越长,所以必须要设定相应的看门狗时间,以避免因为到达看门狗时间数据未更新而造成设备故障误报。

  使用IRT(等时实时)通信可以有效地减少数据在交换机上的延迟,因为IRT数据经过交换机使用的是Cut Through方式。

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

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

相关文章

今日头条核心技术“个性推荐算法”揭秘

今日头条核心技术“个性推荐算法”揭秘 最近面试华兴资本, 他们比较关注今日头条算法的实现, 今天特转载网上 今日头条算法解密【IT168 评论】互联网给用户带来了大量的信息,满足了用户在信息时代对信息的需求,也使得用户在面对大…

PROFINET及其同步实时通讯分析

1 概述 PROFINET实时以太网是由Profibus International(PI)组织提出的基于以太网的自动化标准。从2004年4月开 始,PI与Interbus Club总线俱乐部联手,负责合作开发与制定标准。PROFINET构成从I/O级直至协调治理级的基于组件的分…

【剑指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 服务的教程。当然这个教…

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

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

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

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

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

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

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]从后往…

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

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

乐视云计算基于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模型的…

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

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

【深度学习】——纠错error: Unable to find vcvarsall.bat:关于安装pycocotools

1、安装包下载 大佬改写支持 Windows 的 COCO 地址:https://github.com/philferriere/cocoapi 下载后如下: 进入pythonAPI 先后运行: python setup.py build_ext --inplacepython setup.py build_ext install 出现以下标志时&#xff0c…

[软件测试airtest软件安装]——填坑

目录 1、安装Python环境(版本问题) 2、连接手机出现连接上了但是无法进行点击 airtest官网: https://airtest.doc.io.netease.com/for_newer/ 关于软件测试刚入门的可以参考进行了解:https://airtest.doc.io.netease.com/tuto…

KUKA 机器人SPS.SUB程序解析

&ACCESS RVO&COMMENT PLC on controlDEF SPS ( );FOLD DECLARATIONS;FOLD BASISTECH DECL;Automatik externDECL STATE_T STAT定义STATE_T类型的变量。该结构为:STRUC STATE_T CMD_STAT RET1, CMD_STAT是枚举类型数据,组成了STATE_…

jquery validate表单验证插件

1 表单验证的准备工作 在开启长篇大论之前,首先将表单验证的效果展示给大家。 1.点击表单项,显示帮助提示         2.鼠标离开表单项时,开始校验元素    3.鼠标离开后的正确、错误提示及鼠标移入时的帮助提醒 对于初学者而言&…

【Python位运算】——左移操作(<<)右移操作>>

目录 左移操作 右移操作 其他博主的理解 应用——力扣题目78. 子集 解法 深度优先搜索 位运算 参考文献 左移操作 # 左移操作&#xff0c;左移一位相当于乘以b&#xff0c;a<<b,a a*(2^b) print(2<<3) # 2*2^3 16&#xff0c;2的二进制10&#xff0c;向…

sql中字段名中包含特殊字符的查询方法

sql中字段名章包含特殊字符的查询方法&#xff1a;例如包含""&#xff0c;student表中字段为&#xff1a;id“学号”、name"姓名"。 解决办法&#xff1a;用英文下的 ""&#xff08;Tab键上面那个键,不需要shift&#xff09;把字段名包起来。如&…

ABB RAPID SOCKET编程

相传在2009年6月11日&#xff0c;微博的鼻祖t-w-i-t-t-e-r还没有被封锁的时候&#xff0c;于仁颇黎写了了一个东西可以将staubli机器人在运行时的状态&#xff0c;实时发送上去&#xff0c;可以被实时的查看&#xff0c;任何一个人都可以查看&#xff0c;于是就有了这个名为TWI…