北岛夜话
原创工业智能控制领域(PLC、单片机/嵌入式、机器人、通信、机器视觉)的技术及经验分享。
文章527 浏览7962026

PROFINET工业以太网教程(7)——我要找到你(IO设备)

前面的文章我们介绍了PROFINET IO系统包括IO控制器和IO设备,它们之间通常是通过交换机用PN网线相连。IO控制器(CPU)在冷启动/暖启动时,会根据其内部的硬件组态,查找相应的IO设备。那么它是通过怎样一种方式来查找IO设备呢?有经验的小伙伴可能知道,它是通过设备名(device name)的方式来查找IO设备的。那么设备名又是基于一种怎样的规则或者协议呢?为什么使用设备名就能找到相应的IO设备呢?今天这篇文章,我们就由浅入深,来聊聊查找IO设备的话题。本文包括如下几个部分:

  1. 什么是设备名?

  2. 怎样分配设备名?

  3. PROFINET发现与基本配置协议(DCP)

cover.png

1、什么是设备名?

设备名(device name)是IO设备的标识,它是IO控制器查找IO设备的依据,在整个网络中是唯一的。每一个IO设备在组态时,系统(硬件组态环境)会为其分配一个默认的设备名,比如下面这张图:

device_name.png

我之前曾写过一篇文章,介绍PROFINET的设备名,这里不再赘述,感兴趣的小伙伴点击下面的链接看下:

为什么Profinet的分布式模块要有设备名?

2、怎样分配设备名?

我们在硬件组态中配置好设备名,然后下载到CPU(IO控制器)中。此时,IO控制器已经知道自己要寻找的目标了。但是对于IO设备来说,它还不知道自己的名字。所以,我们要想办法告诉IO设备它叫什么名字。比如告诉某个设备它的名字是"张三",那么当IO控制器喊"张三"的时候,它就知道在喊它,因此,也就会做出应答。

那么怎么告诉IO设备它叫什么名字呢?

我们需要一些软件工具的。

比如,博途开发环境,或者PRONETA,或者PST(Primary Setup Tool)。

先来介绍下博途环境下如何分配设备名。

双击博途开发环境左侧项目树的【在线访问】节点,找到你使用的网卡,

双击【更新可访问的设备】,可以找到所有的PROFINET节点,如下图所示:

online_device_config.png

选中要分配设备名的节点,在其右侧的【功能】-【分配PROFINET设备名称】中设置新的设备名称,如下图所示:

online_device_name_config.png

关于PRONETA和PST工具,请看下面的视频和文章介绍:

西门子网络工具PRONETA使用介绍

推荐一个免费好用的西门子PLC调试工具

3、PROFINET发现与基本配置协议(DCP)

PROFINET DCP协议是一种集成于PROFINET软件工具、IO控制器和IO设备内部的一种协议,DCP是英文"Discovery and basic Configuration Protocol"的缩写,中文翻译为"发现与基本配置协议"。

通过DCP协议,IO控制器或者软件工具能够发现IO设备,分配IO设备的名称和IP地址。我们在使用软件工具发现IO设备后,可以只分配设备名。正确的分配设备名后,IO控制器就能找到该IO设备,随后会为其分配IP地址。

在调试的初期,要打通PROFINET网络,首要的任务就是分配设备名称。

曾经有小伙伴提出问题"为什么IO设备不通过分配IP地址的方式来寻址呢?"

其实,深层次的原因是因为DCP协议是一种位于数据链路层的协议,它在网络层(IP)以下,当然不会使用IP地址的。

PROFINET DCP协议和计算机网络中的DHCP协议很像。DHCP是英文"Dynamic Host Configuration Protocol"的缩写,中文翻译为"动态主机配置协议"。它主要通过IP地址的集中管理与分配,使网络环境中的计算机动态获得IP地址、网关地址、DNS服务器地址等信息。

不过,DHCP协议是传输层协议,它的帧结构与DCP协议帧的结构还是有很大不同。

好了,关于IO设备的查找就先讲到这里。

如果大家感兴趣,本系列下一篇文章将详细介绍下DCP协议。

我的微信视频号以视频的方式分享一些工控小知识,欢迎扫描下面的二维码观看:

founderchip.png

取消

感谢您的支持,欢迎常来看看!

扫码支持
一点动力,多少随意

打开支付宝扫一扫,即可进行扫码打赏哦

发表评论