西门子S7-300入门级教程10-进阶协议篇02-基于CP的PROFINET通信

<a href=https://www.xmzyj.com/ximenzi>西门子</a>S7-300入门级教程10-进阶协议篇02-基于CP的PROFINET通信” inline=”0″></p>
<p class=S7-300样图

实验二 基于PN CP的PROFINET IO通信

1) 目的

掌握基于PN CP的PROFINET IO通信

2) 实验内容

①配置CP343-1/CP443-1 作为PROFINET IO Controller和IO Device(如ET200M或ET200S)之间的通信;

②调用 SIMATIC_NET_CP\CP300 或SIMATIC_NET_CP\CP400 下的FC11″PNIO_SEND”和FC12″PNIO_RECV”进行发送和接收数据,并测试通信结果。

③配置CP343-1/CP443-1 作为PROFINET IO Device和IO Controller 之间的通信。

3) 实验流程

①PROFINET IO Controller和IO Device之间的通信

新建项目,插入S7-300站,首先在HW Config中完成硬件组态,插入CPU 317-2 PN/DP和CP343-1,作为PROFINET IO Controller,并新建Ethernet(1)网络,组态ET200S作为标准IO Device,注意ET200S的序列号和版本号,要与CP 343-1相连接,可双击PN-IO可查看其属性,注意CPU的IP地址和Device name,如下图所示。

西门子S7-300入门级教程10-进阶协议篇02-基于CP的PROFINET通信

选择CP343-1查看其地址分布情况,如下图所示。

西门子S7-300入门级教程10-进阶协议篇02-基于CP的PROFINET通信

ps:这16个字节(是归属CPU旗下的)一般建议放在自己设定的过程映像区(不修改的话默认就是在外面),因为其主要就是用来作为CP的虚拟地址和CPU交换中中转站

选中ET200S可查看其I/Q地址,如下图所示。

西门子S7-300入门级教程10-进阶协议篇02-基于CP的PROFINET通信

ps:1、343-1与342-5一样,当其做主站的时候会存在地址偏移的问题,比如我修改上述地址为10开始,那么我的接收区的大小必须大于10个字节,前十个字节会被0填充,然后是我的接收区的第11个字节和其对于,而不是我接收区第一个字节和其对应,存在地址偏移现象,详细信息请看第7天342-5实验。

2、最大数据区,CP343-1做主为1024字节,做从未512字节;CP342-5做主为2160字节,做从为240个字节。

②调用FC11和FC12进行发送和接收数据,并测试通信结果

在OB1中调用 SIMATIC_NET_CP\CP300下的FC11″PNIO_SEND”进行发送数据,

在OB1中调用SIMATIC_NET_CP\CP300下的FC12″PNIO_RECV”进行接收数据,编程如下图所示。

西门子S7-300入门级教程10-进阶协议篇02-基于CP的PROFINET通信

西门子S7-300入门级教程10-进阶协议篇02-基于CP的PROFINET通信

保存编译下载至CPU中,正确运行后,新建变量表来监控,如下图所示。

西门子S7-300入门级教程10-进阶协议篇02-基于CP的PROFINET通信

灯亮:

西门子S7-300入门级教程10-进阶协议篇02-基于CP的PROFINET通信

③配置PROFINET IO Device和IO Controller 之间的通信

新建项目,首先在HW Config中完成硬件组态,插入CPU 317-2 PN/DP和CP343-1,作为PROFINET IO Device,另一个也组态一个CPU 317-2 PN/DP做control,并同处于Ethernet(1)网络,可双击PN-IO可查看其属性,注意CPU的IP地址和Device name,如下图所示。

西门子S7-300入门级教程10-进阶协议篇02-基于CP的PROFINET通信

双击CP 343-1,在PROFINET中使能IO Device,如下图所示。

西门子S7-300入门级教程10-进阶协议篇02-基于CP的PROFINET通信

ps:高版本的CP也可以在此处选择设置为I-device而不是IO,这样就是和前面CPU生成GSD的方法相同步骤,再调用的,而此处选为IO是不同的。

插入S7-300站,在HW Config中完成硬件组态,插入CPU 317-2 PN/DP,作为PROFINET IO Master,并同处于Ethernet(1)网络,将已组态的智能从站拖拽至Ethernet(1)网络上,如下图所示。

西门子S7-300入门级教程10-进阶协议篇02-基于CP的PROFINET通信

然后再回到I-device的组态中,要进行IO Device的Couple,如下图所示。

西门子S7-300入门级教程10-进阶协议篇02-基于CP的PROFINET通信

Couple完成后,双击该智能设备查看其属性如下图所示。

西门子S7-300入门级教程10-进阶协议篇02-基于CP的PROFINET通信

也可选中该智能设备,查看其地址分配情况,如下图所示。

西门子S7-300入门级教程10-进阶协议篇02-基于CP的PROFINET通信

ps:比如乱序等问题和342-5是一致的,都是按槽位来,接发送区大小必须一致。

调用FC11和FC12进行发送和接收数据,并测试通信结果

在OB1中调用 SIMATIC_NET_CP\CP300下的FC12″PNIO_RECV”进行接收数据,

在OB1中调用 SIMATIC_NET_CP\CP300下的FC11″PNIO_SEND”进行发送数据,编程如下图所示。(管脚解读与上述一致)

西门子S7-300入门级教程10-进阶协议篇02-基于CP的PROFINET通信

西门子S7-300入门级教程10-进阶协议篇02-基于CP的PROFINET通信

保存编译下载至CPU中,正确运行后,新建变量表来监控,如下图所示。

西门子S7-300入门级教程10-进阶协议篇02-基于CP的PROFINET通信

ps:1、如果碰到检查IP地址冲突时,注意修改各个IP地址,再从新下载。可以在线修改方式,也可以直接设置修改。

2、对于CPU+CP的,我们可以通过网线连接CP,向CP里面下载到CPU中,但是不推荐,建议还是连接CPU,然后用把CPU与CP再通过一根网线连接,这样就可以发现线上的所有设备,如果没有这线,而且连接的是CPU,那么就只能发现CPU,修改当前CPU,所以把CPU与CP也连接起来。

3、当出现无法下载的情况(搜得到但是不能下),解决方法基础三种,其一可能是各个设备的IP冲突了,修改IP后再下载;其二可能是自己电脑的IP没在这个网段,一般建议选择AUTO模式连接不会出现这个问题,亦可去设置电脑IP;其三IP地址没冲突还是下载不了,建议修改一个重来没用过的IP再次编译下载或许可行。

4) 总结

1. 在 CP343-1的属性中设置为IO controller,要实现与IO Device 的数据交换要调用FC11″PNIO_SEND”和FC12″PNIO_RECV”指令编程实现。

2. 以CP343-1作IO controller时存在地址偏移问题,故采用缺省的从0开始的映射地址,否则在监视时要在相应地址加上偏移长度的位置来查看数据是否收到。

3. 以CP343-1为IO device时,在硬件目录中选中相应模块拖放至Ethernet(1)网络后,再组态传送数据的DI/DO通道,要实现数据交换需要调用FC11和FC12指令。

敬请期待下一篇-进阶协议篇—Web Server功能

PS:友情提醒,所有文章属于一个系列,顺着看效果更好,欢迎大家翻阅我之前所写文章。欢迎大家关注工控谭俊豪,该系列会持续更新~

作者简介

谭俊豪:重庆大学机械工程学院学士,西门子中国公司培训生

本文为原创文章,于头条独家首发,欢迎关注转载,请注明出处和作者!

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据