电工学习网

 找回密码
 立即注册

西门子200 smart PLC数据的采集

2017-5-18 10:42| 发布者: admin| 查看: 54| 评论: 0|来自: 西门子工业技术论坛

摘要: 昨天晚上,看到一个网友的提问:“说需要将一个变化了的数据,按规定的定时时间有规律存放到一个连续的数据寄存器地址中、、、、、、”。类似处理这样的程序虽然有很多种编程方法,但我想了想,认为这样的方法可以测 ...
昨天晚上,看到一个网友的提问:“说需要将一个变化了的数据,按规定的定时时间有规律存放到一个连续的数据寄存器地址中、、、、、、”。类似处理这样的程序虽然有很多种编程方法,但我想了想,认为这样的方法可以测试一下。
编程思路:
1)  既然是定时存放数据,那做一个定时中断正好符合要求。新建一个定时中断,SMB34该定时中断时间以1mS为最小单位(最大255mS),按网友要求设置为1000mS = 1秒需要10次中断后再采集一次数据。
2)  因为需要将这个变化了的数据,按每秒钟时间逐个存放,使用启用指针编程方法又比较合适。假设,将采集的数据依次逐个存放到指针的起始首地址VD100中,并存放为30个数据。
3)  当数据存放个数到达第31个时,第一个存放的数据将被覆盖新数据值,如此循环。
编程:
1)  在子程序中调用定时中断,SMB34 = 100(mS),中断事件号10,开中断
2)  在主程序初始该子程序
3)  在中断程序中比较数据采集
定义定时中断子程序:


在主程序中调用定义定时中断子程序:


在中断子程序编辑数据采集:VB0存放定时中断次数;VB1存放采集数据个数


将上述程序编译、保存后下载到cpu,新建“状态图表”,启用监控,为方面VD6的数据输入一些随机数据编辑一个小程序在主程序中,这样VD6的数据以每秒1.2递增,当数据大于25.0时,重新返回到1.2开始重复过程。图示:


   从状态图表中可以看到VD100的数据已经被第2次数据采集所覆盖了新值,本程序仅仅是我理解网友提问后自己的思路,若有出入,望那位网友看到后指出,并加以修改。

 

相关阅读

发表评论

最新评论


|电工学习网 ( )

GMT+8, 2017-5-28 21:24

Powered by © 2011-2017 www.diangon.com 版权所有 免责声明 联系我们

这里是电工学习网—这里可以学习电工技术 电工基础知识—这里是电工之家

栏目导航:电脑论坛 | 工控家园 | 三菱plc | 西门子plc | 欧姆龙plc | plc视频教程

返回顶部