OB1扫描时间引用到程序中的几种方法的比较

已锁定

牧歌2050

  • 帖子

    24
  • 精华

    1
  • 被关注

    2

论坛等级:游士

注册时间:2014-03-16

普通 普通 如何晋级?

OB1扫描时间引用到程序中的几种方法的比较

1043

3

2014-10-16 22:59:18

得到程序的扫描周期,在程序中有时会比较有效。
1、OB1的临时变量中LW6就是存放的上个扫描周期的时间,单位ms,
我程序中引用该值,但是在测试中发现不准确。因为我的引用时用 距离=速度*时间,运算距离用的是时间的累加。我测试的时候发现扫描周期很短只有0~1ms,这时候如果是0的话,就不累积了。
做系统T定时器(运行原理来说T定时器是准确的)和我用扫描周期累积的时间做比较,扫描周期越小,我累积的值就越慢,99.9秒就能差400~500ms(因为系统T定时器精度100ms),加大扫描周期后(20ms),累积值差的就少一些(100~200ms)。结论时间越长差的就越多。原因在于OB1提供给我的扫描周期精度是1ms,所有有四舍五入的问题,每个扫描周期都累加的造成误差大;
2、利用系统功能SFC64,返回系统运行时钟,利用这个值,做累积时能得到准确的累积值。
SFC64帮助中说,0~21*******(7FFF FFFF),超限后从0开始,返回值给变量A,
L A
L A_old
-D
jpz pos1
L st
pos1: t st,
L A
T A_old
A(old)=A上次的值。st扫描周期,数值最大折返时,扫描周期不更新(小概率事件,连续运行24.8天发生一次);
这样得到的ST消除了四舍五入造成的累计误差问题。
OB1扫描时间引用到程序中的几种方法的比较 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54619条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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