功能块FB12 BSEND编写之问题

请问各位大师,西门子系统功能块FB12 BSEND发送的数据区是在SD_1中指定的,那么长度是在SD_1中指定还是在LEN中指定,如图中第二红框内的说明该怎么理解?系统参考书中明明说到传送完成后DONE的值为1,(此DONE=1是否可以用于通知发送数据区可以放入新的数据?)那为什么后面又说在DONE或ERROR=1时,在前一个发送处理结束之前,不能处理新的发送作业 !DONE=1不是说明前一个发送已经成功完成了吗? 大家这个DONE或NDR在编写时一般可以做什么用? 
如何理解“在一个作业结束之后,可以给R_ID、ID、SD_1 和LEN 参数分配新的数值”,R_ID可以改变的吗?这个参数是什么意思?谢谢。

图片说明:

功能块FB12 BSEND编写之问题   

最佳答案

1、如图中第二红框内的说明该怎么理解?
SD_1设置的是一个缓冲区,可以很大,例如1kb;而真正使用指令发送数据时,可以通过LEN控制实际发送数据的数量,但必须小于或等于1k。
2、系统参考书中明明说到传送完成后DONE的值为1,(此DONE=1是否可以用于通知发送数据区可以放入新的数据?)那为什么后面又说在DONE或ERROR=1时,在前一个发送处理结束之前,不能处理新的发送作业 !DONE=1不是说明前一个发送已经成功完成了吗?
DONE和ERROR 都是一个上升沿信号,在前一个作业没有结果之前(就是说没有给出DONE和ERROR信号),不能再次出发BSEND指令。
3、大家这个DONE或NDR在编写时一般可以做什么用? 
可以用DONE=1 触发下一个作业!
4、如何理解“在一个作业结束之后,可以给R_ID、ID、SD_1 和LEN 参数分配新的数值”,R_ID可以改变的吗?这个参数是什么意思?
作业结束,可以修改这些参数;例如,可以修改为和其它已配置S7通信的PLC发送数据。

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

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

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

相关推荐