想一想

传统的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 建立连接的原理相关推荐

  1. Android应用与硬件建立连接

    文章目录 1.建立连接的原理 2. "信件"和"邮递员" 3.对方可能未收到如何处理 4.接收"回信" 5.多次数据交互 6. 小结 1.建 ...

  2. 网络协议从入门到底层原理(5)传输层(UDP、TCP - 可靠传输、流量控制、拥塞控制、建立连接、释放连接)

    传输层( Transport) 传输层( Transport) UDP 协议(数据格式.检验和) 端口(Port) TCP TCP - 数据偏移.保留 TCP - 检验和( CheckSum) TCP ...

  3. ssl 原理和建立连接过程

    ssl 与http关系 ssl ("Secure Sockets Layer")加密原理 和https的关系 https = http + ssl ssl 位置: SSL握手 证书 ...

  4. 泥瓦匠进阶:连接池原理设计并不难

    2019独角兽企业重金招聘Python工程师标准>>> 摘要: 原创出处 https://www.bysocket.com 「公众号:泥瓦匠BYSocket 」欢迎关注和转载,保留摘 ...

  5. 从FTP建立连接模式想到的TCP SYNFlood防御

    今天正在看有关几种常见攻击及其防御手段的文章,讲到TCP SynFlood的攻击模式时,忽然突发奇想,为何不使用FTP所应用的反向连接技术,来取代原有的TCP三次握手呢?这样子做会不会有更高的防御效率 ...

  6. 深入理解Spring Boot数据源与连接池原理

    ​ Create by yster@foxmail.com 2018-8-2 一:开始 在使用Spring Boot数据源之前,我们一般会导入相关依赖.其中数据源核心依赖就是spring‐boot‐s ...

  7. 内核怎么帮程序建立连接的

    承接上文网络通讯原理简介以及演示通讯过程 是内核的传输控制层完成的 程序先有连接 才会发送数据 所以该过程是阻塞的 传输控制层 该层的协议有UDP.TCP面向连接的可靠的传输协议 三次握手让双方都确认 ...

  8. zookeeper学习(二)之java客户端API建立连接

    大家都知道,zookeeper作为一个分布式服务框架,用来解决分布式数据不一致的问题,今天来看看的提供的java语言的API,下面是zookeeper 3.4.1的文档地址,百度的apihttp:// ...

  9. 高性能网络编程(一)----accept建立连接

    最近在部门内做了个高性能网络编程的培训,近日整理了下PPT,欲写成一系列文章从应用角度谈谈它. 编写服务器时,许多程序员习惯于使用高层次的组件.中间件(例如OO(面向对象)层层封装过的开源组件),相比 ...

  10. 微信企业号开发(2)--建立连接(主动)

    [本文所描述的内容具有一定的时效性,请以实际开发所处环境为准] 在微信企业号开发(1)--基础入门中,我们已经学习了,我们的程序结构应该如何设计.接下来,我们会按照微信企业号开发者接口文档的顺序,逐一 ...

最新文章

  1. 抽屉效果----mmdrawercontroller和viewdeck
  2. 如何看懂一个深度学习的项目代码
  3. 一段基于Jsoup和Dom4j的海报爬取小程序
  4. react招聘项目——使用cookie实现项目自动登录功能
  5. Mybatis参数传递及返回类型
  6. python第七章动手试一试_《Python从入门到实践》第八章动手试一试
  7. AR增强现实的未来展望
  8. mysql 8.0 ga_mysql 8.0 GA发布了
  9. 爱的十个秘密--8.沟通的力量
  10. Linux kernel路由机制分析(下)
  11. stm32f4实现s6d1121+xtp2046触摸屏功能
  12. Android Studio 连接不上华为手机
  13. JAVA毕业设计装修设计管理系统设计与实现计算机源码+lw文档+系统+调试部署+数据库
  14. Aleo提高高算力的解决方法(精选)
  15. 【数据结构】单链表逆序
  16. 【SIM卡】Sim 卡掉卡
  17. 二狗子的C语言学习之路(数组)
  18. Solidworks二次开发:获取零件选中边的圆心坐标
  19. 学习笔记 | 内生性全面介绍
  20. 法国半导体制造企业RIBER部署MBE技术以支持量子计算

热门文章

  1. Python学习 Task01 :变量,运算符,与数据类型
  2. RGB与CMYK以及加色与减色
  3. bittorrent 学习(一) 种子文件分析与bitmap位图
  4. 虚拟机WIN7系统 如何设置网络
  5. 中国古代哲学 (基础知识)
  6. python中去除空格用什么函数_python中用什么函数去掉空格
  7. java实现MongoDB中unwind与match用法
  8. 时间同步软件和相关网站
  9. {dede-list flag='h'}DedeCMS支持flag标签解决办法
  10. 发票管理小工具(三):PDFMiner vs pdfminer3k vs Pdfminer.six