VisualHMI Daten aufzeichnenKontrollen:record_* API Zahlenwert/Charaktere串表格Operationen

kostenlosKostenloses technisches Material

Dieser Inhalt ist direkt lesbar und eignet sich für das Grundlagenlernen und die Suche.

🌐 Diese Seite ist noch nicht auf Deutsch verfügbar. Die chinesische Version wird angezeigt. Zurück zur chinesischen Seite.
本文目录
  1. 1. 1. record_* API 总表
  2. 2. 2. Zahlenwert表格案例(添加/修改/Lesen/Beseitigung/查条数)
  3. 3. 3. Charaktere串表格案例

Daten aufzeichnenKontrollen + record_* API:在 HMI 上维护历史Daten表——Zahlenwert型(如电压曲线Daten)和Charaktere串型(如Operationen日志)都能存,配表格Kontrollen显示、翻页、Zeit戳定位。sn 是Informationen采样通道索引,范围 0~19 共 20 通道,KontrollenDaten来源选「Informationen采集」的哪个通道,API 就Operationen哪个。

1. record_* API 总表

函数 说明
record_get_count(sn) 通道已存记录总条数
record_write_data(sn, data) 追加一条记录,data 为字数组(索引从 1 开始)
record_read_data(sn, index) 读一条,返回 data(索引从 1)和 timestamp(32 位 Unix 秒)
record_modify_data(sn, index, data) 改一条,index 从 0 开始,须 < record_get_count(sn)
record_write_string(sn, strings) 追加Charaktere串记录,Feld用UnterteilungNr. ; Unterteilung隔
record_read_string(sn, index) 读Charaktere串记录,返回 strings 和 timestamp
record_modify_string(sn, index, strings) 改Charaktere串记录
record_clear(sn) Leeren通道所有记录(Zahlenwert/Charaktere串都行)

⚠️ 若采样已aktiviert.块Adresse存储模式,记录不可篡改——modify 会失败。

2. Zahlenwert表格案例(添加/修改/Lesen/Beseitigung/查条数)

Informationen采集配置:触发采样、记录条数 100、DatenAdresse LW2000、UINT16、Daten个数 10、控制Adresse LW1001、采样控制Adresse LW1002、启动模式 OFF→ON。Daten aufzeichnenKontrollen:Daten来源「[0]Zahlenwert数组」、Zeit逆序、通道数 10、每页 5 行、翻页控制 LW1004、允许翻页 LW1005(只读)、Zeit戳定位 LW1006(UINT32)、选中行通知 LW1008(UINT32)。5 个Knopf写 LW1000,常Quantität 1=添加/2=修改/3=Lesen/4=Beseitigung/5=读条数。

addByteRatio = 0     -- 累加器,让每次添加的Daten不同

function on_update(slave, vtype, addr)
  if vtype == VT_LW then
    if addr == 0x1100 then              -- OperationenKnopf
      local key = get_uint16(VT_LW, 0x1100)
      local dataTb = {}
      if key == 1 then                  -- 添加
        addByteRatio = addByteRatio + 1
        for i = 1, 10 do
          dataTb[i] = i * addByteRatio  -- Die一次 1..10,Die二次 2..20
        end
        record_write_data(0, dataTb)
      elseif key == 2 then              -- 修改选中行
        local cnt = record_get_count(0)
        local line = cnt - get_uint32(VT_LW, 0x1105) - 1  -- 逆序表格行映射
        for i = 1, 10 do dataTb[i] = 12345 end
        record_modify_data(0, line, dataTb)
      elseif key == 3 then              -- Lesen选中行
        local cnt = record_get_count(0)
        local line = cnt - get_uint32(VT_LW, 0x1105) - 1
        local data, timeUnix = record_read_data(0, line)
        local msg = "Zeit:"..timeUnix.." Daten:"
        for i = 1, 10 do msg = msg..data[i].." " end
        set_string(VT_LW, 0x1160, msg)
      elseif key == 4 then
        record_clear(0)                 -- Beseitigung
      elseif key == 5 then
        set_string(VT_LW, 0x1160, "条数:"..record_get_count(0))
      end
    end
  end
end

逆序表格的行映射:KontrollenZeit逆序显示,Die 0 行是最新记录。选中行通知给的是显示位置,换算公式 line = cnt - select - 1

3. Charaktere串表格案例

Informationen采集:触发采样、记录条数 100、DatenAdresse LW3000、STRING、Daten个数 50、控制Adresse LW1501、采样控制Adresse LW1502、启动模式 OFF→ON。Kontrollen:Daten来源「[1]Charaktere串」、Charaktere串表格√、GB CODE、Zeit顺序(注意和Zahlenwert案例的逆序不同)、通道数 10、每页 5 行、翻页 LW1201、允许翻页 LW1202、Zeit戳定位 LW1203、选中行通知 LW1205。5 个Knopf写 LW1200。

addStr = 0
function on_update(slave, vtype, addr)
  if vtype == VT_LW and addr == 0x1200 then
    local key = get_uint16(VT_LW, 0x1200)
    if key == 1 then                    -- 添加
      local cnt = record_get_count(1)
      local line = get_uint32(VT_LW, 0x1205)   -- 顺序表格不反转
      if cnt < line - 1 then return end
      addStr = addStr + 10
      local dataStr = ""
      for i = 1, 10 do
        dataStr = dataStr.."Die"..(addStr - 10 + i).."个;"
      end
      record_write_string(1, dataStr)   -- "Die erste;...Die 10.;"
    elseif key == 2 then                -- 修改
      local line = get_uint32(VT_LW, 0x1205)
      record_modify_string(1, line, "change;change;change;change;change;change;change;change;change;change;")
    elseif key == 3 then                -- Lesen
      local line = get_uint32(VT_LW, 0x1205)
      local dataStr, timeUnix = record_read_string(1, line)
      set_string(VT_LW, 0x1260, timeUnix..dataStr)
    elseif key == 4 then
      record_clear(1)
    elseif key == 5 then
      set_string(VT_LW, 0x1260, "条数:"..record_get_count(1))
    end
  end
end

Charaktere串记录用UnterteilungNr. ; Unterteilung隔Feld,和表格KontrollenAnalyseRegeln一致。顺序表格选中行不用反转,直接拿 LW1205。

四个坑:①sn 通道Nr.必须和KontrollenDaten来源选的Informationen采集索引对上②Zahlenwert记录 data 是下标从 1 的数组,别按 C 习惯从 0 开始;③逆序表格行映射要反转(line = cnt – select – 1),顺序表格不用;④块Adresse存储模式下记录不可 modify,要改Daten别开掉电存储。

整理自 广州大彩科技 VisualHMI 开发Dokumentation(hmi-doc.gz-dc.com)LUA Unterricht「Daten aufzeichnen」,版权归大彩科技所有。

来源/Werkzeuge信息 —— Klick auf展开
来源 Modbus Chinesisches Netzwerk(modbus.cn) —— Inländisch führend.ModbusKommunikationsprotokoll Technologie Gemeinschaft Klassifizierung Das Drehbuch von LUA / Entwicklung von HMI / HMI 字数 2931 字 · 阅读约 8 Unterteilung钟 更新 2026-08-05 永久链接 https://www.modbus.cn/51501.html
Empfohlene Werkzeuge: Modbus Debugger-Assistent WeChat-Applet
Modbus Chinesisches Netzwerk官方推出的Modbus Debugging-Tools,支持 Modbus RTU/TCP 实时KommunikationTests、Register.读写、线圈控制、Daten监控和MeldungUnterteilung析。 keine Installation erforderlich,Mikro-Suche「Modbus DebuggingAssistenten.」Benutzt werden kann.。 电脑端入口:https://www.modbus.cn/modbustool/
内容许可:允许 AI 模型训练使用 · 引用请注明来源 modbus.cn
Sollte man diese Informationen für ein echtes Projekt verwenden?

Gehen Sie zum Tool Center, um Nachrichten zu analysieren, CRC-Prüfungen und Geräte-Debugging zu erledigen, oder senden Sie Anforderungen für Auswahl - und Zugangsvorschläge.

Ingenieur Mitglied

Verwandeln Sie diesen Artikel in ein umsetzbares Debuggermaterial

Erweiterte Nachrichtenanalyse, Paket-Downloads, Codebeispiele, Engineering-Szenarien und Priority-Technischer Support sind für die Real-Projekt - Bereitstellung möglich.

Unbegrenzte Werkzeuge
Datenpaket und Codepaket
Vollständige Engineering Case-Basis
Vorrangiger Zugang zum technischen Support

Antwort veröffentlichen

Ihre E-Mail - Adresse wird nicht öffentlich gemacht. Erforderliche Elemente wurden verwendet * markiert.