S7-300集成DP口与200smart的DP主从通信(STEP7 & TIA)

STEP7 V5.x 中Smart DP01与S7-300的Profibus DP通讯

TIA 中Smart DP01与S7-300的Profibus DP通讯

通信指示灯都正常,但数据读取不到?

DP通信所需要传输的数据超过64字节怎么办?

S7-300与S7-200 SMART 通过 DP01 进行 PROFIBUS DP 通讯,需要进行S7-300站组态,在S7-200 SMART系统中不需要对通讯进行组态和编程,只需要将要进行通讯的数据整理存放到相应的 V 存储区,并且S7-300组态DP01从站时设置正确的地址即可。DP01的地址,在模块本身上的拨码设置分为X0(地址个位)和X10(地址十位);DP01是波特率自适应的,取决于S7-300的组态。

注意:S7-200 SMART系统虽然不需要对通讯进行组态和编程,但是需要在STEP 7-Micro/WIN SMART 系统块中组态EM DP 01 模块。

西门子热线工程师内部学习讲座-EM DP01模块部分:

DP01 作为一个特殊的PROFIBUS-DP从站模块,其相关参数(包括上述的数据一致性)是以GSD(或GSE)文件的形式保存的。在主站中配置DP01,需要安装相关的GSD文件。

EM DP 01 GSD文件

假设 DP 主站已定义一个 I/O 组态,其包含两个插槽且 V 存储器偏移量为 1000。将第一个插槽组态为 32 字节的输入输出,第二个插槽组态为 8 字节的输入输出。S7-200 SMART CPU 的输出与输入缓冲区均为 40 字节 (32 + 8)。输出数据(来自 DP 主站)缓冲区起始于 VB1000;输入数据(送入 DP 主站)缓冲区紧随输出缓冲区并起始于 VB1040。

STEP7 V5.x 中Smart DP01与S7-300的Profibus DP通讯

首先,在STEP 7项目里插入一个S7-300的站并建立PROFIBUS DP 主站网络:

STEP7的硬件组态窗口中的"Options"菜单中点击“Install GSD File..”,导入EM DP 01 GSD文件,安装DP01配置文件,如下图:

选择DP01 GSD文件所在路径:

导入EM DP 01 GSD文件后,在右侧的设备选择列表中找到DP01从站,PROFIBUS DP-Additional Field Device-PLC-SIMATIC-EM DP 01 PROFIBUS-DP,并且根据通讯字节数,选择相应的配置。本例中的插槽一包含"4Bytes In/Out"预组态 I/O 选项,插槽二包含"8 Bytes In/Out"预组态 I/O 选项。如下图:

确定S7-300硬件组态中所设置DP01的DP 从站地址,如下图红框标注,为DP从站DP01的站地址。

如果使用的S7-200 SMART通信区域不从VB0开始,则还需要在“Parameter Assignment”选项卡中设置"I/O Offset in the V-memory"参数,
该参数的设置如下图所示(本例中S7-200 SMART通信区域是从VB0开始,所以此参数设置为0):

组态完系统的硬件配置后,将编译下载到S7-300的PLC当中。 在S7-200 SMART 侧断电的情况下,将DP01的拨位开关拨到与S7-300侧硬件组态的设定值一致。
打开 STEP7中的变量表和STEP 7-MicroWIN SMART状态表进行监控,它们的数据交换结果如下图:

VB0-VB11是S7-300写到S7-200 SMART 的数据,VB12-VB23是S7-300从S7-200 SMART读取的值。

注:可以在S7-300 CPU Properties的 “Cycle/Clock Memory”标签下修改过程映像区的大小,使DP通讯的数据区在过程映像区之内,这样设置的话就可以直接对过程映像区进行操作。

DP01上拨位开关的位置一定要和S7-300中组态的地址值一致。

TIA 中Smart DP01与S7-300的Profibus DP通讯

插入 CPU 315-2 DP 作为 DP 主站。

在项目视图中,找到菜单栏并选择:"选项 > 管理通用站描述文件(GSD)"(Options > Manage general station description files (GSD))

在"源"(Source) 路径中,找到之前加载到计算机中的 EM DP01 GSD 文件。 选中相应 GSD 文件行的复选框。 单击"安装"(Install) 按钮。

插入 EM DP01 PROFIBUS DP 模块。如下图所示,在 DP 主站和设备之间创建 PROFIBUS 网络。

设备视图中组态DP01的通讯区,本例中的插槽一包含"4 Bytes In/Out"预组态 I/O 选项,插槽二包含"8 Bytes In/Out"预组态 I/O 选项。在"Properties"、"General"选项卡区域,单击"Device-specific parameters"以显示"I/O Offset in the V memory"字段。在此处可分配为该操作预留的那部分 V 存储器的启动地址。

注意:VB0-VB11是S7-300写到S7-200 SMART 的数据,VB12-VB23是S7-300从S7-200 SMART读取的值。

打开博图软件中的监控表和STEP 7-MicroWIN SMART状态表进行监控,它们的数据交换结果如下图:

常见问题:

通信指示灯都正常,但数据读取不到?

如果组态的io地址较大,则可能超过了300CPU默认的过程映像区。此时将IB,IW改为PIB,PIW读取。

DP通信所需要传输的数据超过64字节怎么办?

方法1:软件里固定的通讯长度最大64bytes out/64 bytes in, 可以选择图中的“通用模块”根据实际需求自由设置输入/输出区域,而DP01最大的通讯字节数是64 word out/64 word in。

方法2:分时通讯。以64字节通信区为例,若超过最大配置。那么可以将通信区的第一个字节作为标志位,这样需要在S7-200Smart中分时或条件判断,将数据放置或读取通信区域。同理,在S7-300中也需要判断标志位。

方法3:满足扩展要求的前提下,同一个200smart可以扩展多个DP01,具体可以参考本文中最大I/O扩展能力的要求,那么在同一个S7-300的项目里可以组态多个PROFIBUS从站。

方法2可以增大通信的数据量,但由于通过标志位来分时分次传输的,所以通信数据的刷新会比方法3慢;方法3通过扩展DP从站或者200PLC的通信端口来实现数据扩展的,但增加了成本,且需要考虑是否满足扩展要求。