使用SFC32 实现高精度的延时。我看书上面说CPU316以下的只能调用0B20
那我实现两个高精度的延时有其他的方法吗?
比如像S7200中的那SMB34和SMB35中可以有两个精度为1MS的延时。
刚刚学S7300
图片说明:
最佳答案
1、CPU316以下的只能调用0B20?
受SFC32控制启动,在一特定延时后运行。如果只能调用0B20,即实现一个高精度的延时。
2、延时中断组织块(OB20):
每一次OB20 的程序执行,必须调用SFC32 (SRT_DINT),延迟时间在SFC 的输入参数中给定,同时给定OB 号,调用SFC32 且设定的时间延迟到后,执行OB 程序,如果再次执行OB 程序,需要再次调用SFC32。如果在延迟时间未到之前想取消程序的执行,可以调用SFC33(CAN_DINT),同时可以使用SFC34 (QRY_DINT)取得延迟中断的状态,具体SFC32/33/34 的调用方法可参考在线帮助.
见《组织块使用说明》其中有详解,下载:
http://218.93.112.166/ec/C23/dl/xxzl/%E7%BB%84%E7%BB%87%E5%9D%97%E4%BD%BF%E7%94%A8%E8%AF%B4%E6%98%8E.pdf
3、两个高精度的延时有其他的方法吗?
S7系统的IEC定时器(SFB3,SFB4,SFB5)支持最小到1ms的定时时间分辨率设定,但如需要定时器时间精确到1ms,定时器是难以实现的, 因为定时器的精度受程序扫描影响,除非程序扫描周期小于等于1ms。
提问者对于答案的评价:
木有别的方法了吗?
专家置评
已阅,最佳答案正确。
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc236485.html