在 S7-300 中,通信资源是如何分配的?

描述

在 S7-300 中,有不同类型的通信资源,这些资源必须分开,却在一定程度上也相互影响。必须考虑到不同属性的 CPU 和 CP 模块,从而来计算最大的通信数量。通信资源如下:

CPU 和 CP 的 S7 连接资源数和开放式通信资源数限制了可用连接的最大数目。
例如 TCON, TSEND, TRCV 和 TDISCON 块适用于 CPU 的开放式通信的。开放式通信的连接只有在运行时建立,是不需要被组态的。如果使用了比允许更多的连接,那么在运行时 TCON 块会报错。
S7 连接资源数的限制只针对于 S7 连接。当然,这些还包括 PG 连接,OP/HMI 连接和S7 标准通信连接。
CP 模块的连接可以是 S7 连接或开放式通信连接。CP 模块的开放式通信连接需要通过 NetPro 配置,AG_SEND 和 AG_RECV 块分别用于数据的发送和接收。
实例数目限制了S7 连接 同时进行发送和接收任务的可能性,换句话说,就是有多少个的 PUT, GET, BSEND, BRCV, USEND 和 URCV 块能够运行。

举例

针对于 CPU 317-2 PN/DP  (订货号:6ES7317-2EK14-0AB0) 和 CP343-1 (订货号:6GK7343-1EX30-0XE0) 的属性列出下面三种情况。

下面的表格列出了 CPU 317-2 PN/DP 和 CP343-1 的属性。

技术数据 CPU 317-2 PN/DP
6ES7317-2EK14-0AB0
CP343-1
6GK7343-1EX30-0XE0
开放式通信资源数 16 16
S7 连接资源数 32 16
S7 连接资源的限制 S7 通信资源数最大 16 个
S7 标准通信资源数最大 30 个
PG 或 OP 连接资源数最大 31 个
无限制
通信实例数目 32 16

表格 01

S7 通信

对于 CPU 来说,最多可以配置 16 个 S7 连接。PG,OP 和 S7 标准通信共是 16 个连接资源
可以通过 CP 模块建立 16 个 S7 连接。并且,CP 模块只要有一个 S7 连接或者 PG/OP 连接就占用 CPU 的一个 S7 连接。不论 CP 模块组态的是 1 个还是 16 个 S7连接,仅占用 CPU 的一个资源。这个被占用的 CPU 的 S7 连接是已组态的 S7 连接,而不是额外的 PG, OP 和 S7 标准通信中的 16 个资源。

下表列出了 S7 连接的最大数目。

CP 模块数 每个 CP 可组态 每个 CPU 可组态  每个 CPU 可组态的其他连接 (PG, OP, S7 标准通信) 总共
0 (only CPU) - 16 16 32
1 16 15 16 47
2 16 14 16 62
3 16 13 16 77
4 16 12 16 92

表格 02

开放式通信

在 CPU 中,可以使用 TCON 块建立 16 连接 (TCP, ISO-on-TCP, UDP)。这个数目是不受其他通信服务的限制,且本身不影响任何其他类型的通信。
CP 模块可以配置 16 个开放通信连接。这些资源数是与 S7 连接共享的。CP 模块最大可以建立 16 个连接(包括 S7 连接和开放通信连接)。
的开放通信不影响 CPU 的通信资源。如果仅组态 CP 模块的开放通信连接,是不占用 CPU 的 S7 连接的。AG_SEND/AG_RECV 块是用来读取/写入数据的。通过这种方式不使用任何CPU 资源。功能块调用的最大数量不受限制。

通信实例

在 CPU 中进行 S7 通信,可以同时运行多达 32 个实例。超过 32 个实例的话会报错。可以进行更多的 S7 连接任务,当一个 S7 连接的实例任务完成后可以使用另一个 S7 连接实例。
CP 模块可以最多运行16个实例。例如可以发送和接收 8 组 S7 连接,或者,仅发送或者仅接收 16 组 S7 连接。但是不可能同时发送和接收 16 组 S7 连接。一种应用是等到这个任务完成后再去执行另一个 S7 连接。CP 模块不支持这个功能,16 个实例数目就是最大值。 

S7 通信和开放式通信并行

S7 通信和开放式通信是可以同时运行的。CPU 的这些资源也不会彼此影响。对于 CP 模块,这两种通信服务是共享资源的。1 个 CP 模块最多可以运行 16 个实例。