台达触摸屏历史数据查询的实现
本文是一篇针对台达触摸屏功能的高级使用说明,目的是实现存储到U盘或者内部RAM上的历史数据的读取,并可以对这些历史数据做简单的查询。本文并没有做很复杂的查询,意在对使用者提供一种思路,抛砖引玉,对实际应用留有很大的空间供使用者发挥。
2 基础知识准备
历史数据的取出:需要用GETHISTORY指令,句型如下:
V1 = GETHISTORY (V2, V3, V4, V5, V6)
V1-----表示存入资料长度内部存储器
V2-----内部存储器,常数 历史缓冲区编号
V3-----内部存储器,常数 读取起始取点位置
V4-----内部存储器,常数 读取点数
V5-----内部存储器,PLC 数据存入位置
V6-----内部存储器,常数 读取数据型态(0:资料,1:时间,2:时间跟数据)
指针:间接寻址缓存器区 (R/W): *$
Word access: *$n (n: 0~65535)
间接寻址是寻址到内部缓存器区。先由$n取出地址,再取此地址内存的值。
*$n =
例如,$n = m;$m = X;则 *$n = X。 (m 不可超出 65535)
3数据查询的实现
3.1设计思路
本例想要实现这样的功能,设置内部的一个寄存器$100每隔1分钟采集一次数据,采集到15笔后停止,把数据及采集的时间存储到内部的RAM。然后通过GETHISTORY把这15笔数据读取到$200开始的寄存器区,按照用户输入的时间段进行查询。比如查询2006/11/30 10:56~2006/11/30 10:58的数据,将符合条件的查询结果存储到$20000开始的寄存器区。
3.2地址分配表
表1历史数据取出后的存储地址
时间
序号 年 月 日 时 分 秒 数据
第一笔 $200 $201 $202 $203 $204 $205 $206
第二笔 $207 $208 $209 $210 $211 $212 $213
……
第十五笔 $305 $306 $307 $308 $309 $400 $401
表2查询时间起始输入地址
年 月 日 时 分
$50 $51 $52 $53 $54
表3查询时间停止输入地址
年 月 日 时 分
$60 $61 $62 $63 $64
表4查询时间起始指针
年 月 日 时 分 秒 数据
*$70 *$71 *$72 *$73 *$74 *$75 *$76
表5查询时间停止指针
年 月 日 时 分 秒 数据
*$80 *$81 *$82 *$83 *$84 *$85 *$86
表6控制及标志地址
历史数据取出完毕标志 查询到符合条件的起始地址 查询到符合条件的起始地址 查询到符合条件的数据总长度 常数变量 数据采集地址 查询/显示标志
$185 $181 $182 $183 $60000 $100 $48.0
表7查询完毕显示结果数据地址
时间
序号 年 月 日 时 分 秒 数据
第一笔 $20000 $20001 $20002 $20003 $20004 $20005 $20006
第二笔 $20007 $20008 $20009 $20010 $20011 $20012 $20013
……
第十五笔 $20305 $20306 $20307 $20308 $20309 $20400 $20401
3.3程序流程图(图1)
图1 程序流程图
3.4程序的实现
(1)页面设置
(2)历史缓冲区设置
(3)历史数据读取宏程序
(4)查询判断宏程序
(5)将结果赋值显示宏程序
3.5执行结果
显示【历史资料信息表】中已经采集到了10笔数据
设置查询的开始时间是2006/12/1 10:18,结束时间是2006/12/1 10:22
得到的查询结果显示在【查询结果显示表】中
4 结束语
本例是台达触摸屏Screen Editor强大的元件和宏指令功能综合的体现,可以看到,如果能够活用软件,Screen Editor同样能够实现PC组态软件才具有的一些高级功能。
文章版权归西部工控xbgk所有,未经许可不得转载。