BSEND/BRCV通讯块时异步运行,处理一个作业可能会持续数个OB周期。因此不能使用时钟触发输入“REQ”,而只能在前一个作业完成后(成功或出错)再次触发。
不等待正在激活的作业完成后再次调用功能块,会导致通讯超载。
此外,推荐出错时(Error 位 = 1)保存状态字用于后续诊断。Error = 0时 状态字Status = 11 (十进制)。
SFB/FB 12 "BSEND" 数据一致性
为确保数据一致性,在当前发送程序结束之前,不要再次写发送区域SD_1的使用部分。DONE变为1时发送结束。
SFB/FB 13 "BRCV"数据一致性
如果您执行以下操作,则数据接收一致:
在控制输入“EN_R” = 1 再次调用块之前,评估接收区域“RD_1”的使用部分。
更多信息,请参考手册"SIMATIC System Software for S7-300/400 System and Standard Functions - Volume 1/2" ,条目 109751826.
示例
以下示例是在PCS 7环境中如何实现基于作业触发输入“REQ”,并且保存相应的错误位和状态字。
更多信息
更多信息,请参考通讯块在线帮助和以下条目:
Notes on using the system function blocks SFB12 and SFB13 (BSEND/BRCV)
How do you program communication blocks FB12 "BSEND" and FB13 "BRCV" for data exchange in the S7 program of an S7-300 CPU?
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc342628.html