1、引言
本文是一篇針對臺達觸摸屏功能的高級使用說明,目的是實現存儲到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組態軟件才具有的一些高級功能。 |