PROFINET 建立连接的原理
想一想
传统的TCPIP通信都是根据IP和Port建立唯一的套接字,通过这个套接字完成相关通信,那么PROFINET是基于什么建立通信的了?下面先来简单探索学习下。
运行模式
- 系统工程:为了实现一个系统的工程,需要导入设备的GSD文件(通用站描述),该文件由设备制造商提供,导入后需对GSD文件中定义的模块/子模块进行组态,以将其映射为实际系统并将其分配到槽(slot)/子槽(subslot)中;此外,每个从站设备都要被分配一个逻辑名称,该名称应指引设备在系统中的功能或安装位置,并且在地址解析期间被用来分配IP地址,名称分配总数使用DCP协议(发现配置协议),该协议默认集成在每个PROFINET设备中。
- 将系统信息下载到控制器:完成系统工程后需将系统数据下载到控制器中,这样控制器就获得了寻址设备和数据交换所需的全部信息。
- 系统启动前的地址解析:在与一个设备进行数据交互前,通常控制器必须在系统启动前为该设备分配一个IP地址。系统启动是指自动化系统在“上电”或“复位”后的启动/重启。在相同子网内的IP地址使用默认集成在每个PROFINET现场设备中的DCP协议进行分配,如果现场设备和控制器在不同的子网中,则由单独的DHCP服务器提供地址解析(名称->IP地址)。
- 系统启动:控制器在启动/重启后,总是根据组态数据来开始系统启动,在系统启动期间,控制器建立应用关系(AR)和通信关系(CR),如有必要则组态并参数化过程级IO。
- 数据交换:系统启动成功完成后,控制器和设备交换过程数据、报警和非周期数据。
DCP
DCP协议(发现配置协议,依据IEC 61158)用作名称/地址解析的基础,也是实现“设备更换无需编程设备”全部概念的一部分,可以用来读写设备编址所需的参数,并向现场设备中写入数据,这些服务是实时的,且只能在子网中使用。
标识(Identify)请求->寻找一个特定的名称
带有特定Frame_ID的多播服务,发送给现场设备来读取设备的标识信息,现场设备名称分配主要与“DCPIdentify.req”的两个功能有关:① 询问哪些参数已经包含在设备中,以便执行有选择性的分配名称;②搜索一个特定的名称,防止重复编址;如果以名称长度为0的条件进行名称搜索,所有未分配名称的设备都必须应答,如果呼叫包含一个特定的名称,则只有具有该名称的设备给出应答。标识(Identify)响应->寻找一个特定的名称
“DCPIdentify.res”帧是实时帧,Ethertype为0x8892。在 “DCPIdentify.res”中,控制器接收到指示设备满足哪些选项的应答,这些信息在 “DCPIdentify.Response”数据字段中。设置(Set)请求->将名称或IP地址写入设备
设置(Set)响应->对Set请求的确认
名称分配
由于许多相同设备类型的设备可能被安装在同一个系统中,这就有必要为现场设备分配一个系统特定的名称(NameOfStation),该名称必须在系统启动前通过工程工具写入设备,因为在系统启动前它将被控制器用于名称和地址解析,设备名称必须记忆性地保存在现场设备中。
地址解析协议(ARP)
控制器发出Identify服务询问IP地址是否存在于系统中,因此控制器向所有节点发送一个广播呼叫,仅具有指定IP地址的节点做出应答。该呼叫通过“ARP”超时进行时间监视,这确保了同一个IP地址不会被分配两次。
邻居探测协议(LLDP)
通过LLDP探测邻居是“无需组态工具进行设备替换”概念的一部分,这要求能够利用LLDP服务来确定基于端口到端口的邻居设备的数据,并通过DCP或SNMP服务把该数据提供给高层控制器。
抓包流程:外部引用链接:
PROFINET 建立连接的原理相关推荐
- Android应用与硬件建立连接
文章目录 1.建立连接的原理 2. "信件"和"邮递员" 3.对方可能未收到如何处理 4.接收"回信" 5.多次数据交互 6. 小结 1.建 ...
- 网络协议从入门到底层原理(5)传输层(UDP、TCP - 可靠传输、流量控制、拥塞控制、建立连接、释放连接)
传输层( Transport) 传输层( Transport) UDP 协议(数据格式.检验和) 端口(Port) TCP TCP - 数据偏移.保留 TCP - 检验和( CheckSum) TCP ...
- ssl 原理和建立连接过程
ssl 与http关系 ssl ("Secure Sockets Layer")加密原理 和https的关系 https = http + ssl ssl 位置: SSL握手 证书 ...
- 泥瓦匠进阶:连接池原理设计并不难
2019独角兽企业重金招聘Python工程师标准>>> 摘要: 原创出处 https://www.bysocket.com 「公众号:泥瓦匠BYSocket 」欢迎关注和转载,保留摘 ...
- 从FTP建立连接模式想到的TCP SYNFlood防御
今天正在看有关几种常见攻击及其防御手段的文章,讲到TCP SynFlood的攻击模式时,忽然突发奇想,为何不使用FTP所应用的反向连接技术,来取代原有的TCP三次握手呢?这样子做会不会有更高的防御效率 ...
- 深入理解Spring Boot数据源与连接池原理
Create by yster@foxmail.com 2018-8-2 一:开始 在使用Spring Boot数据源之前,我们一般会导入相关依赖.其中数据源核心依赖就是spring‐boot‐s ...
- 内核怎么帮程序建立连接的
承接上文网络通讯原理简介以及演示通讯过程 是内核的传输控制层完成的 程序先有连接 才会发送数据 所以该过程是阻塞的 传输控制层 该层的协议有UDP.TCP面向连接的可靠的传输协议 三次握手让双方都确认 ...
- zookeeper学习(二)之java客户端API建立连接
大家都知道,zookeeper作为一个分布式服务框架,用来解决分布式数据不一致的问题,今天来看看的提供的java语言的API,下面是zookeeper 3.4.1的文档地址,百度的apihttp:// ...
- 高性能网络编程(一)----accept建立连接
最近在部门内做了个高性能网络编程的培训,近日整理了下PPT,欲写成一系列文章从应用角度谈谈它. 编写服务器时,许多程序员习惯于使用高层次的组件.中间件(例如OO(面向对象)层层封装过的开源组件),相比 ...
- 微信企业号开发(2)--建立连接(主动)
[本文所描述的内容具有一定的时效性,请以实际开发所处环境为准] 在微信企业号开发(1)--基础入门中,我们已经学习了,我们的程序结构应该如何设计.接下来,我们会按照微信企业号开发者接口文档的顺序,逐一 ...
最新文章
- 抽屉效果----mmdrawercontroller和viewdeck
- 如何看懂一个深度学习的项目代码
- 一段基于Jsoup和Dom4j的海报爬取小程序
- react招聘项目——使用cookie实现项目自动登录功能
- Mybatis参数传递及返回类型
- python第七章动手试一试_《Python从入门到实践》第八章动手试一试
- AR增强现实的未来展望
- mysql 8.0 ga_mysql 8.0 GA发布了
- 爱的十个秘密--8.沟通的力量
- Linux kernel路由机制分析(下)
- stm32f4实现s6d1121+xtp2046触摸屏功能
- Android Studio 连接不上华为手机
- JAVA毕业设计装修设计管理系统设计与实现计算机源码+lw文档+系统+调试部署+数据库
- Aleo提高高算力的解决方法(精选)
- 【数据结构】单链表逆序
- 【SIM卡】Sim 卡掉卡
- 二狗子的C语言学习之路(数组)
- Solidworks二次开发:获取零件选中边的圆心坐标
- 学习笔记 | 内生性全面介绍
- 法国半导体制造企业RIBER部署MBE技术以支持量子计算
热门文章
- Python学习 Task01 :变量,运算符,与数据类型
- RGB与CMYK以及加色与减色
- bittorrent 学习(一) 种子文件分析与bitmap位图
- 虚拟机WIN7系统 如何设置网络
- 中国古代哲学 (基础知识)
- python中去除空格用什么函数_python中用什么函数去掉空格
- java实现MongoDB中unwind与match用法
- 时间同步软件和相关网站
- {dede-list flag='h'}DedeCMS支持flag标签解决办法
- 发票管理小工具(三):PDFMiner vs pdfminer3k vs Pdfminer.six