传统的TCPIP通信都是根据IP和Port建立唯一的套接字,通过这个套接字完成相关通信,那么PROFINET是基于什么建立通信的了?下面先来简单探索学习下。
DCP协议(发现配置协议,依据IEC 61158)用作名称/地址解析的基础,也是实现“设备更换无需编程设备”全部概念的一部分,可以用来读写设备编址所需的参数,并向现场设备中写入数据,这些服务是实时的,且只能在子网中使用。
标识(Identify)请求->寻找一个特定的名称
带有特定Frame_ID的多播服务,发送给现场设备来读取设备的标识信息,现场设备名称分配主要与“DCPIdentify.req”的两个功能有关:① 询问哪些参数已经包含在设备中,以便执行有选择性的分配名称;②搜索一个特定的名称,防止重复编址;如果以名称长度为0的条件进行名称搜索,所有未分配名称的设备都必须应答,如果呼叫包含一个特定的名称,则只有具有该名称的设备给出应答。
标识(Identify)响应->寻找一个特定的名称
“DCPIdentify.res”帧是实时帧,Ethertype为0x8892。在 “DCPIdentify.res”中,控制器接收到指示设备满足哪些选项的应答,这些信息在 “DCPIdentify.Response”数据字段中。
设置(Set)请求->将名称或IP地址写入设备
设置(Set)响应->对Set请求的确认
由于许多相同设备类型的设备可能被安装在同一个系统中,这就有必要为现场设备分配一个系统特定的名称(NameOfStation),该名称必须在系统启动前通过工程工具写入设备,因为在系统启动前它将被控制器用于名称和地址解析,设备名称必须记忆性地保存在现场设备中。
控制器发出Identify服务询问IP地址是否存在于系统中,因此控制器向所有节点发送一个广播呼叫,仅具有指定IP地址的节点做出应答。该呼叫通过“ARP”超时进行时间监视,这确保了同一个IP地址不会被分配两次。
通过LLDP探测邻居是“无需组态工具进行设备替换”概念的一部分,这要求能够利用LLDP服务来确定基于端口到端口的邻居设备的数据,并通过DCP或SNMP服务把该数据提供给高层控制器。
抓包流程:外部引用链接: