CFC调用PCS7 Library里面Comm分类里的发送接收块如何使用

哪位大师可以提供PCS7 Library里面Comm分类里的发送接收块的使用说明?跪求!
 我的邮箱woowar@126.com

问题补充:
二楼的师兄,首先很感谢你的帮忙,小弟愚笨,看所回答文档比较迷茫,那内容该是某个文档吧,烦请将那文档给小弟发个邮件吧,多谢啊

最佳答案

SEND_R 的描述
 启动 
 返回 
 继续 
 REC_R: 使用 BRCV 接收 32 个 BOOLEAN 值和 32 个 REAL 值 
 REC_R: 使用 BRCV 接收 32 个 BOOLEAN 值和 32 个 REAL 值 
 SEND_BO: 使用 BSEND 发送 128 个 BOOLEAN 值 
 SEND_BO: 使用 BSEND 发送 128 个 BOOLEAN 值 
 REC_BO: 使用 BRCV 接收 128 个 BOOLEAN 值 
 REC_R: 使用 BRCV 接收 32 个 BOOLEAN 值和 32 个 REAL 值 
 REC_R: 使用 BRCV 接收 32 个 BOOLEAN 值和 32 个 REAL 值 
 SEND_R: 使用 BSEND 发送 32 个 BOOL 值和 32 个 REAL 值(受变化驱使) 
 SEND_R 的描述 
 SEND_R 的 I/O 
 对象名(类型 + 编号) 
 应用领域 
 调用 OB 
 工作原理 
 错误处理 
 启动特征 
 时间响应 
 消息响应 
 操作和监视 

 对象名(类型 + 编号)

 FB 209

 SEND_R 块 I/O 

 应用领域

 SEND_R 块表示连接 SFB 12“BSEND”的简单用户接口。

 它由变化驱动,并通过 MPI、PROFIBUS 或工业以太网连接将多达 32 个 BOOL 值和 32 个 REAL 值发送到另一个 S7 CPU。 该 CPU 需要调用 PCS 7 库 的功能块类型“REC_R”(FB 210) 才能接收数据。 

 仅当作业完成后(即收到确认 DONE = TRUE 后),方可在“REC_R”中得到一致的数据。该确认由输出 CIW 的信号变为 0 来指示。

 若参数 FAST = 1,由于 FB 在内部调用两次 SFB 12“BSEND”(需要使用其控制输入 REQ 的上升沿才能启用 SFB 12),所以 FB 可通过每次 FB 调用传送一个消息帧。 不过,只有在这两次 FB 调用之间有充足的时间用于传送消息帧时,才能启动如此频繁的发送请求。

 调用 OB

 这是在其中安装该块的循环中断 OB(例如 OB 35)。

 工作原理

 该块监视 32 个 BOOL 和 32 个 REAL 输入的数据,以检测先前被成功发送的数据的变化。 在每个变化监视周期中,都会为 REAL 值 (R_xx) 设置滞后量 HYS_R_xx(绝对值)。 HYS_R_xx 的默认值为零(无滞后量)。 通过 EDC_MIN 和 EDC_MAX 参数可锁定或强制数据传送。 

 在 EDC_MIN 中,可设置等待实际输入数据的下一个发送请求的周期数,与数据中的任何变化无关。 

 在 EDC_MAX 中,可设置上一次传送有效数据到下一次传送实际输入数据之间的等待周期数,与数据中的任何变化或 REAL 值的变化是否在设定的滞后量范围内无关。

 由于“SEND_R”和“REC_R”之间数据传输异步(参见下文),所以基于设定周期数的理论时间无法保证。

 内部 SFB 12“BSEND”允许在通讯伙伴之间交换 32 个 BOOL 值和 32 个 REAL 值。 数据由 CPU 的操作系统发送到通讯伙伴,并自动输入到接收 FB (REC_R) 的背景数据块中。 在发送新值前,系统等待操作系统传送一个针对刚刚发送的值的内部确认。 

 调用块时,如果控制输入 COM = 1,则启动数据传送。 要传送所有数据,必须至少调用一次该块(与周期无关)。 该块将作业传送给 CPU 操作系统,以完成作业处理。 数据传送期间,允许多次调用具有相同 ID 和 R_ID 的块;但这些调用不起任何作用,即该块在每个周期中只能调用一次。而是在 STAT 处输出值 11。从用户存储器读取数据与用户程序执行不同步。如果作业完成无误,则会将 CIW 设置为 0。 (如出现错误,则 ERR = 1。新作业将使用实际数据自动启动,直至所有数据都传送完毕。) 如果 COM 输入 = 0,将中止所有不完整的数据传送并且不会再继续;CIW 相应地被设置为 0。

 ID 参数表示在连接组态中指定的连接号,并只在冷启动后第一次调用时应用。

 R_ID 参数是一个随机数(建议: 消息帧 ID);但是,它在相应的发送和接收块中必须相同,并且只在冷启动后第一次调用时应用。

 如果参数 FAST = 1,则可通过每次 FB 调用传送新的消息帧。 这种情况下,FB 在内部调用两次 SFB 12“BSEND”(需要使用其控制输入 REQ 的上升沿才能启用 SFB 12)。 在每个周期中调用 FB 可实现每个周期传送一个消息帧。 

 但是,建议仅在以下情况下如此频繁的发送请求:

 在两次 FB 调用之间有足够的时间来传送消息帧。

 接收 CPU 中“REC_R”的调用速度比发送 CPU 中“SEND_R”的调用速度快(对于每个消息帧,接收 CPU 需要调用两次“REC_R”(相当于 2 个周期))。

 如果参数 FAST = 0,则只有每当第二次调用 FB 时才能启动新的发送作业。

 错误处理

 块的错误处理只限于下级 SFB 12“BSEND”的错误信息。有关介绍 ERR 和 STAT 输出的更多信息,请参考手册《S7-300/400 系统软件 - 系统和标准功能》(System Software for S7-300/400 - System and Standard Functions)。

 如出现错误,新的作业将使用实际数据自动启动,直至所有数据都传送完毕。

 启动特征

 不可用。

 时间响应

 不可用。

 消息响应

 不可用。

 操作和监视

 不可用。

 REC_R 的描述
 启动 
 返回 
 继续 
 SEND_BO: 使用 BSEND 发送 128 个 BOOLEAN 值 
 REC_BO: 使用 BRCV 接收 128 个 BOOLEAN 值 
 REC_R: 使用 BRCV 接收 32 个 BOOLEAN 值和 32 个 REAL 值 
 REC_R: 使用 BRCV 接收 32 个 BOOLEAN 值和 32 个 REAL 值 
 SEND_R: 使用 BSEND 发送 32 个 BOOL 值和 32 个 REAL 值(受变化驱使) 
 SEND_R 的描述 
 SEND_R 的 I/O 
 SEND_R 的描述 
 SEND_BO 的描述 
 SEND_BO 的描述 
 对象名(类型 + 编号) 
 应用领域 
 调用 OB 
 工作原理 
 错误处理 
 启动特征 
 时间响应 
 消息响应 
 操作和监视 

 对象名(类型 + 编号)

 FB 210

 REC_R 块 I/O 

 应用领域

 REC_R 块表示连接 SFB 13“BRCV”的简单用户接口。

 它通过 MPI、PROFIBUS 或以太网连接从另一个 S7 CPU 接收 32 个 BOOL 值和 32 个 REAL 值。 该 CPU 需要调用 PCS 7 库 的功能块类型“SEND_R”(FB 209) 才能发送数据。 在 STEP 7 中,必须为通讯双方组态同种连接,并将其传送到 AS。

 仅当完成了作业且输出 NDR 处有 0 -> 1 信号跳变后,数据才可用。

 调用 OB

 这是在其中安装该块的循环中断 OB(例如 OB 35)。

 工作原理

 内部 SFB 13“BRCV”允许在通讯伙伴之间交换 32 个 BOOL 值和 32 个 REAL 值。 数据由 CPU 的操作系统接收,并输入到接收 FB (REC_R) 的背景数据块中。 操作系统必须发送已接收数据的内部确认,才能接收新数据。 

 数据输入到背景数据块与用户程序执行不同步。 调用“REC_R”后,只要作业正在进行中 (NDR = 0),就不会计算背景数据块数据。 如果作业完成无误,NDR 输出被设置为 1,并持续一个周期的时间。 在下一个周期中,FB 自动向 CPU 操作系统发出接收使能信号(自该调用起,NDR 复位到 0)。

 接收使能信号比第一个进入接收作业更早生效。 在此情况下,由操作系统存储接收使能信号。

 ID 参数表示在连接组态中指定的连接号,并只在冷启动后第一次调用时应用。

 R_ID 参数是一个随机数(建议: 消息帧 ID);但是,它在相应的发送和接收块中必须相同,并且只在冷启动后第一次调用时应用。

 必须在每个程序周期内为各个 ID/R_ID 对调用“REC_R”块(周期性调用,也可通过超时报警调用)。 每个消息帧需要调用“REC_R”两次。 

 ERR(错误)和 STAT(状态)输出指示有关 SFB 13 的具体错误信息(请参见“错误处理”)。

 如果发生错误,可将替代值作为接收的数据输出。

 错误处理

 REC_R 块的错误处理只限于下级 SFB 13“BRCV”的错误信息。有关介绍 ERR 和 STAT 输出的更多信息,请参考手册《S7-300/400 系统软件 - 系统和标准功能》(System Software for S7-300/400 - System and Standard Functions)。

 如果输入 SUBS_ON = TRUE,则在发生接收错误或未收到新数据时,替代值将被输出到 REC_MON(周期数)。

 启动特征

 不可用。

 时间响应

 不可用。

 消息响应

 不可用。

 操作和监视

 不可用。

 业以太网连接将多达 128 个 BOOL 值发送到另一个 S7 CPU。 该 CPU 需要调用 PCS 7 库 的功能块类型“REC_BO”(FB 208) 才能接收数据。 

 仅当作业完成后(即收到确认 DONE = TRUE 后),方可在“REC_BO”中得到一致的数据。该确认由输出 CIW 的信号变为 0 来指示。

 若参数 FAST = 1,由于 FB 在内部?饔昧酱? SFB 12“BSEND”(需要使用其控制输入 REQ 的上升沿才能启用 SFB 12),所以 FB 可通过每次 FB 调用传送一个消息帧。 不过,只有在这两次 FB 调用之间有充足的时间用于传送消息帧时,才能启动如此频繁的发送请求。

 调用 OB

 这是在其中安装该块的循环中断 OB(例如 OB 35)。

 工作原理

 内部 SFB 12“BSEND”允许在通讯伙伴之间交换 128 个 BOOL 值。 数据由 CPU 的操作系统发送到通讯伙伴,并自动输入到接收 FB (REC_BO) 的背景数据块中。 在发送任何新的 128 个 BOOL 值之前,系统等待操作系统传送一个针对刚刚发送的值的内部确认。 

 调用块时,如果控制输入 COM = 1,则启动数据传送。 要传送所有数据,必须至少调用一次该块(与周期无关)。 该块将作业传送给 CPU 操作系统,以完成作业处理。 数据传送期间,允许多次调用具有相同 ID 和 R_ID 的块;但这些调用不起任何作用,即该块在每个周期中只能被调用一次。而是在 STAT 处输出值 11。从用户存储器读取数据与用户程序执行不同步。如果作业完成无误,则会将 CIW 设置为 0。 (如出现错误,则 ERR = 1。新作业将使用实际数据自动启动,直至所有数据都传送完毕。) 如果 COM 输入 = 0,将中止当前数据传送并且不会再继续;CIW 相应地被设置为 0。

 ID 参数表示在连接组态中指定的连接号,并只在冷启动后第一次调用时应用。

 R_ID 参数是一个随机数(建议: 消息帧 ID);但是,它在相应的发送和接收块中必须相同,并且只在冷启动后第一次调用时应用。

 如果参数 FAST = 1,则可通过每次 FB 调用传送新的消息帧。 这种情况下,FB 在内部调用两次 SFB 12“BSEND”(需要使用其控制输入 REQ 的上升沿才能启用 SFB 12)。 在每个周期中调用 FB 可实现每个周期传送一个消息帧。 但是,建议仅在以下情况下如此频繁的发送请求:

 在两次 FB 调用之间有足够的时间来传送消息帧。

 接收 CPU 中“REC_BO”的调用速度比发送 CPU 中的“SEND_BO”的调用速度快(对于每个消息帧,接收 CPU 需要调用两次“REC_BO”(相当于 2 个周期))。

 如果参数 FAST = 0,则只有每当第二次调用 FB 时才能启动新的发送作业。

 错误处理

 块的错误处理只限于下级 SFB 12“BSEND”的错误信息。有关介绍 ERR 和 STAT 输出的更多信息,请参考手册《S7-300/400 系统软件 - 系统和标准功能》(System Software for S7-300/400 - System and Standard Functions)。

 如出现错误,新的作业将使用实际数据自动启动,直至所有数据都传送完毕。

 REC_BO 的描述
 启动 
 返回 
 继续 
 REC_R: 使用 BRCV 接收 32 个 BOOLEAN 值和 32 个 REAL 值 
 REC_R: 使用 BRCV 接收 32 个 BOOLEAN 值和 32 个 REAL 值 
 SEND_R: 使用 BSEND 发送 32 个 BOOL 值和 32 个 REAL 值(受变化驱使) 
 SEND_R 的描述 
 SEND_R 的 I/O 
 SEND_R 的描述 
 SEND_BO 的描述 
 SEND_BO 的描述 
 REC_R 的描述 
 SEND_BO 的描述 
 对象名(类型 + 编号) 
 应用领域 
 调用 OB 
 工作原理 
 错误处理 
 启动特征 
 时间响应 
 消息响应 
 操作和监视 

 对象名(类型 + 编号)

 FB 208

 REC_BO 块 I/O 

 应用领域

 REC_BO 块表示连接 SFB 13“BRCV”的简单用户接口。

 它通过 MPI、PROFIBUS 或以太网连接从另一个 S7 CPU 接收 128 个 BOOL 值。 该 CPU 需要调用 PCS 7 库 的功能块类型“SEND_BO”(FB 207) 才能发送数据。 在 STEP 7 中,必须为通讯双方组态同种连接,并将其传送到 AS。

 仅当完成了作业且输出 NDR 处有 0 -> 1 信号跳变后,数据才可用。

 调用 OB

 这是在其中安装该块的循环中断 OB(例如 OB 35)。

 工作原理

 内部 SFB 13“BRCV”允许在通讯伙伴之间交换 128 个 BOOL 值。 数据由 CPU 的操作系统接收,并输入到接收 FB (REC_BO) 的背景数据块中。 操作系统必须发送已接收数据的内部确认,才能接收新数据。 

 数据输入到数据块与用户程序执行不同步。 调用“REC_BO”后,只要作业正在进行中 (NDR = 0),就不会计算背景数据块数据。 如果作业完成无误,则在一个周期的持续时间内,输出 NDR = 1。 在下一个周期中,FB 自动向 CPU 操作系统发出接收使能信号(自该调用起,NDR 复位到 0)。

 接收使能信号比第一个进入接收作业更早生效。 在此情况下,由操作系统存储接收使能信号。

 ID 参数表示在连接组态中指定的连接号,并只在冷启动后第一次调用时应用。

 R_ID 参数是一个随机数(建议: 消息帧 ID);但是,它在相应的发送和接收块中必须相同,并且只在冷启动后第一次调用时应用。

 必须在每个程序周期内为各个 ID/R_ID 对调用“REC_BO”块(周期性调用,也可通过超时报警调用)。 每个消息帧需要两次调用“REC_BO”。 

 ERR(错误)和 STAT(状态)输出指示有关 SFB 13 的具体错误信息(请参见“错误处理”)。

 如果发生错误,可将替代值作为接收的数据输出。

 错误处理

 REC_BO 块的错误处理只限于下级 SFB 13“BRCV”的错误信息。有关介绍 ERR 和 STAT 输出的更多信息,请参考手册《S7-300/400 系统软件 - 系统和标准功能》(System Software for S7-300/400 - System and Standard Functions)。

 如果输入 SUBS_ON = TRUE,则在发生接收错误或未收到新数据时,替代值将被输出到 REC_MON(周期数)。
 

提问者对于答案的评价:
谢谢

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc197810.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2017年8月26日 上午12:36
下一篇 2017年8月26日 上午12:36

相关推荐