回复:言定时采集数据

n次看你的背影

  • 帖子

    2321
  • 精华

    73
  • 被关注

    53

论坛等级:奇侠

注册时间:2008-03-11

普通 普通 如何晋级?

发布于 2014-07-29 18:53:57

6楼

呵呵,8001个实数,数据量确实有点大了,一个周期内会占用CPU很多扫描时间的。

楼主:我帮你想了点办法,存储100个数据,你可以参考一下。把OB3X中断时间设置为2秒,把下面的代码黏贴进去你可以测试一下。这段代码实现数据先进先出,DBD0是最新数据,DBD4是前2秒的数据,以此类推。。。。。。希望对你有些帮助

OPN DB 1 //打开DB1
LAR1 P#396.0 //初始化地址寄存器1(定义起始地址为396)
L 99 //装载循环次数
NEXT: T LW 20 //存储当前的循环次数
TAR1 //将当前地址寄存器1的内容写到累加器1里面
L 32 //装载整数32到累加器1里面(相当于四个字节的宽度)
-D //地址偏小四个字节
LAR1 //将当前累加器1的内容写到地址寄存器1里面
L DBD [AR1,P#0.0] //装载较小的地址里面的数据到累加器1
T DBD [AR1,P#4.0] //将当前累加器1里面的数据写到较大的地址里面
L LW 20
LOOP NEXT //跳转到NEXT标签,当循环次数减至0离开循环往下执行

L "被采集数据" //装载当前采集的数据到累加器1
T DBD 0 //将当前累加器1的内容写到DBD0里面

这段代码原理:就是蚂蚁搬家,把数据依次向大的地址搬一次,先进先出,最后把最新的采集数据放在顶端。
佛对我说:“你的痛苦来自于你的欲望,没有欲望也就没有痛苦!”
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54616条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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