西门子S7-300入门级教程07-进阶通讯篇01-SFC14、SFC15的应用

<a href=https://www.xmzyj.com/ximenzi>西门子</a>S7-300入门级教程07-进阶通讯篇01-SFC14、SFC15的应用” inline=”0″></p>
<p class=S7-300样图

实验一 SFC14、SFC15的应用

1) 目的

掌握SFC14/SFC15

2) 实验内容

利用标准库\系统功能块中的SFC14 “DPRD_DAT”和标准库\系统功能块中的SFC15″DPWR_DAT”实现主站和智能从站之间的数据双向交换,从指定的发送区发送到指定的接收区

3) 实验流程

新建项目,根据上述实验步骤完成主站和智能从站的硬件组态,使其处于同一Ethernet(1)中。

西门子S7-300入门级教程07-进阶通讯篇01-SFC14、SFC15的应用

图1-完成硬件组态

其中一个站点模式选择为DP Salve,一个站点模式选择为DP Master。

在主站中新建PROFIBUS(1),从站也选择这个PROFIBUS(1),在DP_Master的HW Config中将已组态的DP_Salve拖放至PROFIBUS(1)网络,如下图所示。

西门子S7-300入门级教程07-进阶通讯篇01-SFC14、SFC15的应用

图2-DP_Salve拖放至PROFIBUS(1)网络

将DP_Salve1拖放至PROFIBUS(1)网络时,需将该站与主站进行Couple,和上述实验相同操作,如下图所示。

西门子S7-300入门级教程07-进阶通讯篇01-SFC14、SFC15的应用

图3-将该站与主站进行Couple

双击挂在PROFIBUS(1)上的DP_Salve,在Configuration中新建映像区,模式为MS,Master的Output对应Slave的Input,长度为32Byte,一致性为ALL,如下图所示。

西门子S7-300入门级教程07-进阶通讯篇01-SFC14、SFC15的应用

图4-新建映像区

Master的Input对应Slave的Output,长度为32Byte,一致性为ALL,如下图所示。

西门子S7-300入门级教程07-进阶通讯篇01-SFC14、SFC15的应用

图5-Master的Input对应Slave的Output

Master和Slave之间的映像区创建完成后,如下图所示。

西门子S7-300入门级教程07-进阶通讯篇01-SFC14、SFC15的应用

图6-映像区创建完成后

注意: 当我们需要保证所传递数据的一致性时,需要选择ALL(在有些运用场合,如果同一批数据无法保证数据一致性会导致一个数据前半部分和后半部分的时长不一致,会导致出现一些错误),想要保证数据一致性有两种方法:

①在设置中选择ALL,如果不想编程,就需要保证传输的数据段在过程映像区内,如果数据量大,那么也可以分别双击两个CPU,在设置中修改过程映像区大小(最大为2048),如下图所示:

西门子S7-300入门级教程07-进阶通讯篇01-SFC14、SFC15的应用

图7-修改过程映像区大小

②在设置中选择ALL,然后使用SFC14/SFC15来传输数据(一般用于传输超过过程映像区的数据,超过过程映像区,有需要保证数据的一致性,那么就需要编程来实现要求),需要在主站从站分别调用。

③OB1 PI和PIP都是过程映像区,300只能用OB1PI,400两种都能用。

西门子S7-300入门级教程07-进阶通讯篇01-SFC14、SFC15的应用

图8-过程映像区

Master站编程

在Master站点中新建DB2,创建包含两个数组,一个对应IN,一个对应OUT,如下图所示。

西门子S7-300入门级教程07-进阶通讯篇01-SFC14、SFC15的应用

图9-新建DB2

在OB1中调用准库\系统功能块中的SFC14 “DPRD_DAT”和标准库\系统功能块中的SFC15″DPWR_DAT”实现主站和智能从站之间的数据双向交换,从指定的发送区发送到指定的接收区,编程如下图所示。

西门子S7-300入门级教程07-进阶通讯篇01-SFC14、SFC15的应用

图10-调用SFC14/SFC15

Salve站编程

在Salve站点中新建DB1,创建两个数组,一个IN,一个OUT,如下图所示。

西门子S7-300入门级教程07-进阶通讯篇01-SFC14、SFC15的应用

图11-新建DB1

在OB1中调用准库\系统功能块中的SFC14 “DPRD_DAT”和标准库\系统功能块中的SFC15″DPWR_DAT”实现主站和智能从站之间的数据双向交换,从指定的发送区发送到指定的接收区,编程如下图所示。

西门子S7-300入门级教程07-进阶通讯篇01-SFC14、SFC15的应用

图12-调用SFC14/SFC15

注意:对于SFC14/15,有多少条数据传递,在各自CPU的中就需要有多少个SFC14/15,一条对应一个,因为不是IN就是OUT,每条对应一个SFC14或者SFC15。(最好在两个CPU中编程对应起来按每条顺序编写,每个都需要写那一条对应的起始位)

分别选中主站和从站,编译下载,使CPU正确运行。新建变量表来监控主站和从站DB块数据的变化。

改变主站的DB2和从站的DB1的DBD32-DBD60共32个字节的数值,主站相应地址的也作出改变,如下图所示。

西门子S7-300入门级教程07-进阶通讯篇01-SFC14、SFC15的应用

图13-新建变量表

注意:前面我们定义了过程映像区大小为128,在此处我们是在201中传输,所以ID是不会显示出来的,但是128是人为设定,实际的过程映像区是有2K的,所以在实际过程映像区中PID中还是能观察到数据,如下所示:

西门子S7-300入门级教程07-进阶通讯篇01-SFC14、SFC15的应用

图14-实际过程映像区

4) 总结

1. 对于SFC14/15,有多少条数据传递,在各自CPU的中就需要有多少个SFC14/15,一条对应一个,因为不是IN就是OUT,每条对应一个SFC14或者SFC15。(最好在两个CPU中编程对应起来按每条顺序编写,每个都需要写那一条对应的起始位)

2. OB1 PI和PIP都是过程映像区,300只能用OB1PI,400两种都能用。

3. 当需要保证所传递数据的一致性时,需要选择ALL,想要保证数据一致性有两种方法:

①在设置中选择ALL,保证传输的数据段在过程映像区内,如果数据量大,分别双击两个CPU,在设置中修改过程映像区大小(最大为2048):

②在设置中选择ALL,然后使用SFC14/SFC15来传输数据(一般用于传输超过过程映像区的数据,又需要保证数据的一致性),需要在主站从站分别调用。

敬请期待下一篇-通讯进阶篇—CP342-5作为主站和FC1、FC2的应用

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

作者简介

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

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

发表评论

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

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