在S7-300 中,有不同类型的通信资源,这些资源必须分开,却在一定程度上也相互影响。必须考虑到不同属性的 CPU 和 CP 模块,从而来计算最大的通信数量。通信资源如下:
●CPU 的 S7 连接资源数
●CPU 的实例数目
●CPU 开放式通信资源数(例如 TCON, TSEND 块等)
●CP 的连接资源数
●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) 的属性列出下面三种情况。
●S7 通信
●开放式通信
●通信实例数目
下面的表格列出了 CPU 317-2 PN/DP 和 CP343-1 的属性。
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 连接的最大数目。
开放式通信
在 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 个实例。