登录
首页 PLC论坛 PLC论坛
回帖 发帖
正文

主题:S7-300延时中断延时精度的验证

点击:1245 回复:0

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。
     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立即输出。
     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,定时精度是相当高的。
http://blog.gkong.com/uploadfile4/201152081512991.jpg
11-05-20 08:15

工控新闻

更多新闻资讯