回复:言定时采集数据

tjusyf

  • 帖子

    6
  • 精华

    0
  • 被关注

    0

论坛等级:新手

注册时间:2014-06-17

普通 普通 如何晋级?

发布于 2014-07-29 20:51:11

8楼

展开查看
以下是引用n次看你的背影在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里面

这段代码原理:就是蚂蚁搬家,把数据依次向大的地址搬一次,先进先出,最后把最新的采集数据放在顶端。
感谢6楼的回答,点破了我3天的苦闷。非常感谢。。。同时感谢所有楼层的参与,祝大家工作顺利!!
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54616条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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