技术论坛

 回复:[有奖参与]应用探讨——PROFINET的那些事

返回主题列表
作者 主题

总坛主
西门子官方工程师西门子官方工程师

经验值:11320
发帖数:956
精华帖:21
楼主    2015-12-02 16:49:34
主题:[有奖参与]应用探讨——PROFINET的那些事


MChen网友的连载故事《大话PROFINET》受到了网友的广泛关注,所以本期应用探讨有奖活动我们就PROFINET的应用展开讨论。


PROFINET如今已经被广泛的使用,相信大部分工程师都用过PROFINET。


在您的项目中,您是怎么应用PROFINET的?用到了哪些产品?有什么样的应用体会?与PROFIBUS相比,哪些特点让你印象深刻?使用中遇到了什么问题,您是如何解决的?您觉得有什么注意事项和使用的小技巧?还有什么PROFINET的问题困扰您?


欢迎大家来本帖发表自己的经历和看法,点赞或拍砖,西门子工程师也会参与讨论,与大家一起分享相关经验,共同提高。



活动奖励:
此次集中交流将持续至12月30日,其中所有精华帖作者将获得加倍精华奖励西币;最终所有有效留帖的网友将获得加倍发帖奖励西币。更多奖励西币带给您更多奖品兑换的自由。
对于有突出发言贡献的网友可获得额外西币奖励,可以在当前的兑换奖品中兑换奖品。
交流结束后也将专门整理重要内容,供广大网友分享参考。   

预祝大家交流愉快,收获丰富!  


喵喵seisei
侠圣

经验值:2068
发帖数:198
精华帖:7
2楼    2015-12-03 15:09:11
精华帖  主题:回复:[有奖参与]应用探讨——PROFINET的那些事

前段时间用了一套S7-1500,我依旧按照以前的惯例选中程序下载

下载完成之后,看到硬件上远程机架所有模块的状态灯在闪烁,想了半天,才想起没有分配设备名称。

最后在设备与网络中——网络视图里分配设备名称才算成功。

我快乐,我自豪,我为自控添砖加瓦……
yming
至圣

经验值:138360
发帖数:23136
精华帖:880
7楼    2015-12-06 12:17:03
精华帖  主题:回复:[有奖参与]应用探讨——PROFINET的那些事

 在ProfiNet(PN)网络中,必须分配设备名称的重要原因是控制器与IO之间的这些循环交换的数据并不使用IP地址来寻址。而是使用更简单的设备名称来布址。也就是说,对于ProfiNet控制器(PLC)和ProfiNet IO之间的数据交换,不使用标准的TCP/IP通讯(仅使用TCP/IP传输协议的1物理层、2链路层、7应用层协议),这样就大大加快了数据交换速度,满足时间响应的要求。
而各个PN设备仍然需要定义IP地址,这是为了设备首次/启动过程中建立连接所必须的。也是设备提供的其他服务(例如Web服务,Mail服务等等)所必须的。
至于每个IO设备(如PN的分布式IO模块、PN接口的变频器等)的名称,也不见得都需要手动命名(新设备是没有名称的)。这牵扯到是否需要把它们“做”成无需介质的更换设备(就是说,一旦设备坏了,拿个新的插上不用手动设置IP/设备名称)。如果你想这么做,那就必须要(在PN控制器上)组态网络拓扑结构,每一个网口(P1/P2)都有确定的连接伙伴(而不是任意伙伴)。这样,当更换一个全新的(或工厂复位的)模块时,控制器就会自动分配IP和设备名称。
要注意的是:以上说的是指ProfiNet IO系统,它有一定的实时要求而已。并不代表全部用网线作为传输的都是ProfiNet系统。它上面也可以全部跑TCP/IP协议(例如 PLC-PLC之间的TCP/IP传输、服务器-客户端、PLC-HMI、LOGO-S7 1200等等)这时的交换速率也相当于ProfiBus(PB)的12M状态。当然,它也可以混合运行,既有ProfiNet IO的,也有TCP/IP的。例如:PLC控制多台变频器时,PLC也可以提供Web服务(TCP/IP协议,没有时间要求)。这种情况下,就要注意调整PLC通讯负载%,这里的百分比就是提供TCP/IP服务的百分比。例如,一台PLC根本没有ProfiNet IO应用,而有大量的服务器应用(对客户端PLC的响应,提供Web服务,需要Mail服务等),通讯负载%可以调整提高到50%。

学而时习之,不亦说乎?温故而知新,不亦乐乎?
小釉
至圣

经验值:10421
发帖数:2758
精华帖:26
10楼    2015-12-10 09:17:12
精华帖  主题:回复:[有奖参与]应用探讨——PROFINET的那些事

查了一下资料

Device name是IO控制器用来识别和确认IO Device的唯一方式,确认完毕后,Device name就不是必要的了,IO控制器与IO device建立连接和控制,这时IP地址在起主要作用。最后,IO实时数据开始交换,这时MAC地址在起作用。

 

有一点不是太明白,既然mac地址是唯一的,为什么不直接mac地址来进行通信。

这样的话,devicename和ip地址都可以省了。 用devicename来做的话的好处,在于模块的更换吗?

也就是说如果要更换模块时,可以通过devicename和ip地址进行模块的锁定?

蓝色的小尾巴
侠士

经验值:1339
发帖数:214
精华帖:5
19楼    2015-12-11 00:30:55
精华帖  主题:回复:[有奖参与]应用探讨——PROFINET的那些事

对于PROFINET 来说一部分是使用TCP/IP和UDP/IP协议,主要用于工程组态数据、诊断数据及协商用户数据通道,还有就是不基于TCP/IP和UDP/IP协议的RT和IRT了,这些协议都有一个MAC地址(原地址和目标地址)问题,通信的时候是不知道的,在通信之前会一个组播,发送一个含有对方IP地址或者设备名称数据包,等待目标设备收到数据包后将自己MAC地址发送过来,TCP/IP协议通信会使用ARP协议,不是每次数据通信之前都会询问对方MAC地址过程,设备有个老化时间,过了老化时间如果再通信的话会询问对方MAC地址。



RT协议与IRT协议不同的是,RT协议多个优先权。RT是软实时,通过优先权保证实时;IRT是硬实时,通过实时芯片保证的。


夏日炎炎
官方工程师
西门子官方工程师

经验值:3374
发帖数:140
精华帖:62
27楼    2015-12-14 17:13:34
精华帖  主题:回复:[有奖参与]应用探讨——PROFINET的那些事

在一个局域网内,不仅设备名要唯一,MAC地址,IP地址都要唯一。

曾经有个现场,用户三套完全一样的设备,每套一个控制器,两个IO设备。用户组态了三个项目。各自下载运行都正常。后来用户通过无线把三套设备连在了一起,就总有设备上电后常常无法连接上。后来一查,原来,客户虽然三个项目的设备IP地址是不同的,但有两套IO设备的设备名是相同的。这样,各自独立不连接的时候都好。但连接在一起后,由于设备名冲突就会造成无法建立PNIO连接。但有时也能连接上又是怎么回事呢?那是因为有时候PNIO的连接先于无线连接建立之前就建立了。

这个例子也说明,设备名只是在建立PNIO连接的时候用到,连接建立之后则束之高阁了,直到连接中断再次建立连接。

来自西门子技术支持
MChen
侠圣

经验值:2162
发帖数:110
精华帖:3
35楼    2015-12-22 09:54:15
精华帖  主题:回复:[有奖参与]应用探讨——PROFINET的那些事

首先,感谢你的关注!

其次,我拿出行驶证来比喻的目的是:说明在IO系统中,控制器是通过某种标识来发现设备的,在启动阶段可以通过设备名,在运行阶段可以通过MAC地址,在进行IP通信时则可以通过IP地址。这个比喻是我和德国的PROFINET工程师交流时,从他给我的图片所想到的。

再次,智能设备的 IP地址是可以通过DHCP,这里智能设备是指普通连入局域网的电脑还是PN-IO设备,如果是后者,那么是可以有DHCP,但默认则是使用DCP协议(发现与配置协议,PN-IO协议中的一个)来分配IP地址和名称的。

最后,“分配的设备名称是和MAC地址关联的”这句我不是很清楚什么意思,是说设备名必须和MAC地址绑定在一起吗,也就是“一房一价”(一套商品房开发商只能标出一个价格)的意思?如果是的话,那么这个理解就不全面了,因为在更换设备时也可以通过DCP协议来设置设备名,也就是“无需组态工具更换设备”的功能,这时一个设备名是可以用于若干MAC地址的。

yming
至圣

经验值:138360
发帖数:23136
精华帖:880
38楼    2015-12-22 13:45:43
精华帖  主题:回复:[有奖参与]应用探讨——PROFINET的那些事

是的,作为PROFINET控制器的要启用 “无需组态工具更换设备”的功能。同时也就启用了LLDP功能。

需要介质的,就是我们变频器驱动上 插卡(CF/SD卡)运行。坏了就拔出卡,插到新的模块上,装上就能连接上(反正所有的都在卡上)。

要是没有用卡(G系列),这个功能最多就是分配设备名和 IP地址。PN控制器也不能给你灌入全套参数。

所以要是维护方便,还是用卡。




学而时习之,不亦说乎?温故而知新,不亦乐乎?
夏日炎炎
官方工程师
西门子官方工程师

经验值:3374
发帖数:140
精华帖:62
41楼    2015-12-23 15:37:26
精华帖  主题:回复:[有奖参与]应用探讨——PROFINET的那些事

 如图是IO控制器与IO设备建立连接,直至开始正常的数据交换之间的主要数据往来,大家先看看。

 

来自西门子技术支持
夏日炎炎
官方工程师
西门子官方工程师

经验值:3374
发帖数:140
精华帖:62
51楼    2016-01-04 10:08:57
精华帖  主题:回复:[有奖参与]应用探讨——PROFINET的那些事

这个帖图中的报文是经过过滤的,只保留了与PN通信连接建立相关的报文。针对每一条简单解读如下:

1、控制器(MAC地址末三位13:a6:f2的设备)通过PN-DCP(发现配置协议),发出一个特定的组播报文,内容是识别请求:谁是设备名叫做"ioxadevicexb1652a"的设备?

2、网络上的设备收到这个识别请求后,同样支持PN-DCP协议,且名字叫做"ioxadevicexb1652a"的设备,回复识别响应:包括设备名"ioxadevicexb1652a"以及其它一些选项。其它选项可能包括制造商,产品系列,IP地址等。  

经过这一步,控制器就知道了"ioxadevicexb1652a"的MAC地址。

3、控制器IP址是192.168.0.11,其通过ARP协议广播询问网络上谁拥有IP地址192.168.0.12。这个IP地址在控制器的硬件组态中是分给了"ioxadevicexb1652a"这个设备的。这是为了防止IP地址冲突。

4、控制器询问是否还有设备拥有自己的IP地址,排除自己的IP地址与其它设备冲突。

5、没人回复,认为网络上不存在冲突的192.168.0.11,也不存在冲突的192.168.0.12,所以给设备名为"ioxadevicexb1652a"的设备通过DCP协议的SET命令分配IP地址。

6、接着询问自己的IP地址有没有冲突?

7、IO设备响应DCP-SET,回复说设置成功。

8\9、IO控制器通过ARP确认设置的IP地址准确,IO设备回复ARP请求,告诉控制器自己就是IP地址192.168.0.12的设备,MAC地址是00:1B:1B:13:91:6e.

10\11、有了IP地址后,通过IP地址建立连接,控制器发连接请求,IO设备回复连接响应。

12\13、连接请求后,是写请求和写请求的响应

14\15、控制请求和控制响应。

至此,PNIO建立完成,下面就是正常的PNIO数据交换。

 

来自西门子技术支持
夏日炎炎
官方工程师
西门子官方工程师

经验值:3374
发帖数:140
精华帖:62
53楼    2016-01-05 10:30:28
精华帖  主题:回复:[有奖参与]应用探讨——PROFINET的那些事

从这个解析过程中可以看到:

1、控制器最初是通过设备名去寻找IO设备的。硬件组态是下载到控制器中的,而硬件组态中包含了IO设备的配置信息,所以控制器知道自己要连接的IO设备都叫什么名字。而IO设备必须先有一个设备名,控制器才能根据名字找到它,进行后面的步骤。

就像新入学的孩子,老师没见到孩子前已经有一张名单,这个班里都有谁,学号是多少已经定了。家长给孩子取好名字送进教室,老师点名后才把名字和人对上了。

设备名在整个网络中必须唯一。

2、IO设备的IP地址可以由控制器分配给IO设备。IP地址必须唯一。

3、IP地址在建立连接的过程中需要使用。

4、PNIO的实时数据交换不需要IP地址。

 

 

来自西门子技术支持
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。