データロギングコントロール+record_* API:HMI 上でメンテナンス履歴データシート数値(電圧曲線データなど)と文字列(オペレーショナルログなど)の両方を保存でき、テーブルコントロール表示、ページめくり、タイムスタンプの位置決めが可能です。snはデータサンプルチャネルインデックス範囲0~19の合計20チャンネル、制御データソースが選択した“データ収集”チャネル、APIがOperationするもの。
1. record_* APIの概要
| 関数の機能 | 説明書は |
|---|---|
record_get_count(sn) | チャネルの保存レコードの数 |
record_write_data(sn, data) | データをワード配列として追加する(インデックスは1から始まる) |
record_read_data(sn, index) | データ(1からのインデックス)とタイムスタンプ(32ビットUnix 秒)を返します。 |
record_modify_data(sn, index, data) | インデックスは0から始まり、record_get_count snを指定します。 |
record_write_string(sn, strings) | フィールドをセミコロン;で区切った文字列レコードを追加 |
record_read_string(sn, index) | 文字列レコードを読み込み、文字列とタイムスタンプを返す |
record_modify_string(sn, index, strings) | 文字列レコードの変更 |
record_clear(sn) | チャンネルのすべてのレコードを空にする(数値/文字列行) |
️サンプルが有効な場合ブロックアドレス記憶モード記録した。不変の変更Modifyは失敗する。
2.数値表のケース(追加/修正/読み取り/消去/チェックアウト)
データ収集構成:トリガサンプリング、記録本数100、データアドレスLW2000、UINT16、データ数10、制御アドレスLW1001、サンプリング制御アドレスLW1002、起動モードOFF→ON。データ記録制御:データソース“[0]数値配列”、時間逆順、チャンネル数 10、ページあたり5 行、ページめくり制御LW100 4、ページめくり許可LW100 5(読み取り専用)、タイムスタンプ位置指定LW100 6(UINT32)、選択行通知LW100 8(UINT32)。LW1000を書き込む5つのボタン、定数1=追加/2=変更/3=読み取り/4=クリア/5=読み取りバーの数。
addByteRatio = 0 アキュムレータは、追加するたびに異なるデータを保持します。
function on_update slave vtype
if vtype ==_LW then
addr === 0 x 1100の場合 - Operationボタン。
local key = get_uint16 VT_LW、0x1100
local datat = {}
key == 1 thenの場合 --追加。
addBeR = addBeR + 1
I = 1,10の場合
data [i] = i * addBeR--初めて1.. 10、2回目。20
End of Endシングル
record_write_data 0 dataTb
Elseifキー == 2 then 選択した行の変更
local cnt = record_get_count(0)
local line = cnt-get_uint32 VT_LW、0 x 1105-1--逆順のテーブル行マッピング
for i = 1 10 do data [i] = 12345 end
record_modify_data 0 line data
Elseifキー == 3 then - 選択した行を読む
local cnt = record_get_count(0)
local line = c-get_uint32_LW、0x1105 - 1
local data Unix = record_read_data 0 line
local msg = "".. timeUnix..“データ”
for i = 1 10 do msg = msg.. data[i]..”“end”
set_string_LW、0x1160、msg
elseifキー == 4 then
record_clear 0 【Clearing】
Elseifキー == 5 then
set_string VT_LW、0x1160、"バー数".. record_get_count 0
End of Endシングル
End of Endシングル
End of Endシングル
End of Endシングル逆順序表の行マッピング制御時間は逆順で表示され、行0が最新のレコードです。表示位置、換算式を示す行の選択line = cnt - select - 1。
3.文字列表の例
データ収集:トリガサンプリング、記録本数100、データアドレスLW3000、STRING、データ個数50、制御アドレスLW1501、サンプリング制御アドレスLW1502、起動モードOFF→ON。コントロール:データソース“[1] string”、文字列テーブル√、GB CODE、時系列の順序(数値ケースとは逆順が異なることに注意)、チャンネル数 10、1ページあたり5 行、ページめくりLW1201、ページめくり許可LW1202、タイムスタンプ位置決めLW1203、選択行通知LW1205。LW1200を書く5つのボタン。
addStr = 0
function on_update slave vtype
もしvtype == VT_LWとaddr == 0 x 1200の場合
local key = get_uint16 VT_LW、0x1200
key == 1 thenの場合 --追加。
local c = record_get_count 1
local line = get_uint32 VT_LW、0x1205 --順序表は反転しない
CNTライン-1が終了した場合
addStr = addStr + 10
local dataStr =""
I = 1,10の場合
dataStr = dataStr..& Quot:..。addStr - 10 + i quot;一つ;"
End of Endシングル
record__string 1 dataStr 1番目の..。No.10話。"
Elseifキー == 2 then --変更。
local line = get_uint32 VT_LW、0x1205
record_modify_string 1 line change; change;change; change; change; change; change; change; change; change; change; change; change;
Elseifキー == 3 then 【Read ing】
local line = get_uint32 VT_LW、0x1205
local dataStr timeUnix = record_read_string 1 line
set_string VT_LW、0x1260、timeUnix.. dataStr
elseifキー == 4 then
record_clear 1
Elseifキー == 5 then
set_string VT_LW、0x1260、本数.. record_get_count 1
End of Endシングル
End of Endシングル
End of Endシングル文字列レコードはセミコロンで区切られ、テーブルコントロールの解決規則に従います。順序テーブルの選択行反転なし。略称はLW 120 5。
Guangzhou Dai Technology Visual HMI開発ドキュメント(hmi-doc.gz-dc.com)LUAチュートリアル“データ記録”、著作権はDai Dai Technologyにあります。
Leave a Reply