有关使用系统功能块SFB12和SFB13(BSEND/BRCV)的说明

问题:
使用系统功能块SFB12和SFB13(BSEND / BRCV)时应注意些什么?

解答:
使用系统功能块SFB12和SFB13(BSEND / BRCV)时, 必须遵守以下各点:

有关使用系统功能块SFB12的说明:

  1. REQ参数通过输入的上升沿启动一个作业。在DONEERROR位还没有置起前,该作业一定不能复位和重启动。在每发送一个作业后就置起这个两位中的一位。n之后 REQn参数就可以再次触发另一个发送作业。为确保功能性,在系统功能块的REQ输入处至少要有一个正边沿跳变。
  2. 如果ERROR位已置起,任何情况下都要判断“STATUS”,以便能检索有关出错原因的补充信息,从而能直接清除它。有必要的话,可对此“STATUS”作一般的判断。因为有一种情况(nSTATUS CODE: 11) 下,ERROR位不一定要置位。
  3. 当连接被组态後,“ID”参数包含了被赋予的局部 ID 。
  4. “4. 在相互连接的两个系统功能块中, “R-ID”n必须是相同的,并且在系统中是唯一的。
  5. 只有在首次调用系统功能块时,ANYn参数“SD_1”的长度指标才被评估,并且依据它的值设置发送缓冲区。该值规定了可为此事例传输的数据的最大量。后续的调用中,只评价nLEN 参数并依据规定的数据量传输数据。n

“ID” 和n“R_ID”不可动态使用。因为它们是在为此事例首次调用系统功能块时被评估和设置的。它们不可在后续的调用里被更改。

有关使用系统功能块SFB13 的说明:

  1. 参数“EN_R”可永远为n1。因为此系统功能块异步工作,也不能通过专门的调用或发送数据而被传输。
  2. 对于参数“ID”和 “R_ID”,用于系统功能块 SFB12 的第 3 点和第 4n点同样适用于它。
  3. 对于参数“RD_1”用于系统功能块SFB12的第 5 点同样适用于它。
  4. 上述过程完成后,不是“NDR”就是“ERROR”被置位。只有在NDR位已经置位后,才能访问接受缓冲区里的数据(数据一致性)。
  5. 只有当 ERROR 位已置位,才能评价“STATUS”,就像系统功能块SFBn12的第 2 点里所述的那样。n

注意:
请确保“DONE”, “NDR”, “ERROR”和n“STATUS”里的数据只在事件出现的那个周期里可用。相应地,评价和事件处理也必须发生,或至少在同一个周期里触发。

关键字:
块处理

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年11月5日
下一篇 2021年4月12日

相关推荐

发表回复

登录后才能评论