回复:产品技术介绍——Step7 OB组织块介绍和使用技巧

Automann

  • 帖子

    6168
  • 精华

    138
  • 被关注

    308

论坛等级:至圣

注册时间:2004-12-23

普通 普通 如何晋级?

发布于 2011-05-05 10:10:46

48楼

延时中断延时精度的验证
PLC的普通定时器的工作与扫描工作方式有关,其定时精度较差。
为了检查定时器的定时精度,在接通延时定时器输入信号的上升沿和定时器输出位的上升沿,分别调用SFC 1读取CPU的日期和时间,用IEC功能FC 8从其中提取实时时间(TIME_OF_DAY)。设置时间预置值分别为5s和50s,扫描循环时间为10ms。作者作了多次实验,发现定时器的定时误差为1~9ms。
如果需要高精度的延时,应使用延时中断OB,延时精度为1ms。
在I0.0的上升沿触发硬件中断,CPU调用OB40,在OB40中调用SFC 32“SRT_DINT”启动延时中断,延时时间为10s。从LD12开始的8B临时局部变量是调用OB40的日期时间值,将其中的后4个字节LD16保存到MD20。下面是OB40的程序。
CALL "SRT_DINT"
OB_NR :=20
DTIME :=T#10S
SIGN :=MW10
RET_VAL:=MW12
L LD 16
T MD 20
10s后延时时间到,CPU调用SFC 32指定的OB20。在OB20中用MOVE指令保存调用OB20的日期时间值的后4个字节。同时将Q4.0置位,并通过PQB4立即输出。下面是OB20的程序。
L LD 16
T MD 24
SET
S Q 4.0
L QB 4
T PQB 4
可以用PLCSIM对延时中断仿真。下图的变量表的MD20中是调用OB40的时间(25分9秒643毫秒),最后1位为星期的代码,5表示星期4。在OB20中保存在MD24的实时时间值为25分19秒643毫秒,与OB40中保存在MD20的时间值相减,可知延时时间刚好是10.000s,定时精度是相当高的。


可以在OB1中调用SFC 34“QRY_DINT”来查询延时中断的状态,调用SFC 33“CAN_DINT”来取消延时中断过程。
追求完美
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54657条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
X 图片
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。