在西门子PLC 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的属性。
技术数据 | 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 |
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 |
开放式通信
在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个实例。
楼主最近还看过