问题:
在两个 S7 控制器之间存在有通过 RK512 的链接时, SFB12 (BSEND)和nSFB13 (BRCV)上的参数 R_ID 应是什么?
解答:
1. 使用 BSEND 和 BRCV
使用该编程选项,指定数据源为发送方,数据目的地为接收方。这种类型的数据传送的优点为:使用nBRCV 你可以估算 NDRn参数以了解何时数据被完全接收;使用EN_R参数,则可以防止数据接收方覆盖尚未处理的数据。
你的自动化系统
对于 BSEND 上的参数 R_ID,可以指定一个介于 0 和 255n之间的值(十进制)。当CPU启动时该值被传送一次,之后不可再更改。你也不可指定其为任何其它值。CPn441 将在 RK 512 信息头中的 R_ID 值(介于 0-255 之间的一个值)作为nDX0-255(扩展数据块)传送到通信伙伴的 CP441。
R_ID 0-255 (十进制) --> DX 0-255 (十进制)
在通信伙伴的 CP441 中,R_ID 值(介于 0-255n之间的一个值)被重新构作,使得通过它可以寻址在通讯伙伴 CPU 上的有关nBRCV。注意:被传送数据的长度限制为 4 Kb。
通信伙伴的 CP441
通信伙伴的 CP441可依据 RK512 信息头中的数据类型 DXn识别出所选择的数据传送类型。这种情况下 RK512n信息头中的技术规范并不是目的地参数。它们代表了对一个 BRCV (SFBn13)的 R_ID 参考。而你必须在 CPU 的 S7n用户程序中调用该访问。下列关系应遵守:
DX0-255 (十进制) --> R_ID=0-255 (十进制)
重要的是,BRCV 的 R_ID 与 BSEND 的 R_ID 相等。
调用 SFB12 (BSEND) 和 SFB13 (BRCV)的实例:
你的自动化系统
STL代码 | 注释 |
L 10 CALL SFB 12, DB12 | 调用SFB12和SFB13。在参数 REQ 出现一个上升沿后,DB10n中的数据被通过 BSEND 作业把从数据字节 5n开始的数据(长度为10字节)传送到通信伙伴。 |
通信伙伴 CP 441
STL代码 | 注释 |
SET CALL SFB 13, DB13 | 数据由 BRCV 作业接收并被存在 DB20中的数据字节 10 中。在参数nLEN上,显示10字节作为接收到数据的长度。 |
2. 使用 BSEND
使用此编程选项,由发送方指定数据源和数据目的地。这种类型的数据传送的优点在于您无需在用户程序中编程通信伙伴。
你的自动化系统
在参数 R_IDn中指定通信伙伴的目的数据区。CPU启动时该值被传送一次,之后不可再更改。参数nR_ID (DWORD)的结构如下:
字中的地址n | 含义n |
字节1n | 数据类型 DB 的 ID:1 (十六进制)n |
字节2n | 不相关(可为任何值)n |
字节3n | 偏置值:0-255 (十进制,按字计)n |
字节4n | DB号:1-255 (十进制)n |
目的数据区的参数在 RK 512 信息头中被传送给通信伙伴。
注意事项:
- 根据通信伙伴的 CPU 的型号,可传送数据的长度限制为450字节。
- 因为对登录到通信伙伴上的 RK 512 的参数的限制,只能访问数据块n1 - 255。
- 至于偏置值,最大可为255。
通信伙伴 CP 441
通信伙伴的 CP 441可依据 RK 512 信息头中的数据类型 DXn识别出所选择的数据传送类型。无须编程 CPU 的 S7 用户程序。
调用 SFB12 (BSEND)的实例:
STL代码 | 注释 |
L 10 CALL SFB 12, DB12 | 长度 = 10 字节 数据类型DB 不相关 从数据字 20 (偏移量)开始 DB 编号 71 在参数 REQ 出现一个上升沿后,DB10 中的数据被通过 BSENDn作业把从数据字节 5 开始的数据(长度为 10n字节)传送到通信伙伴。在通讯伙伴一边,数据被从数据字 20 开始存储在nDB 71 中。CPU 启动时存储在 R_IDn中的目的地信息被传送一次,之后不再可更改。 n |
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc340902.html