VisualHMI-Dynamisches Zeichnen: Kontinuierliches Register-Zeichnen - Befehl, LUA set _ array und geschlossene Füllung

kostenlosKostenloses technisches Material

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

Das dynamische Zeichnsteuerelement erlaubt es Ihnen, grafische Elementezu erstellen und zu ändern, wie ein Zeichnbrett. Kernmechanismus: Schreiben Sie den Zeichnbefehl über ein kontinuierliches Register(Punkte, Linien, Kreise, Rechtecke, geschlossene Grafiken, Bild-Climps) auf der HMIKontinuierliches RegisterSchreiben Sie Zeichnbefehle - PLC oder LUA können Zeichnen.

1. Präsentation von Attributen

AttributeBeschreibung
DatenadresseZeichnbefehl Schreibadresse
LinienstärkeLiniensegmentbreite Pixel 1 ~ 4
BefehlmodusEinzel (ein Befehl gleichzeitig schreiben) / mehrere (mehrere Befehle gleichzeitig schreiben)
Zeichnmodusneu zeichnen (neue Befehle aktualisieren das alte Bild) / Überlagerung (auf dem Bildschirm weiter hinzufügen)
Canvas-FarbeRGB-Farbe
FertigstellungsanmeldungBefehl löscht und benachrichtigt

VisualHMI-Dynamisches Zeichnen: Kontinuierliches Register-Zeichnen - Befehl, LUA set _ array und geschlossene FüllungAbbildung

Nach Abschluss des Zeichnens Kontinuierliches Registerformat:

LW     CMD         绘制图形类型
LW+1   Draw_Cnt    数据包数量(一个矩形=1个包)
LW+2   DATA        N 个字节数据段
LW+1+N END         结束字段,固定 0xFF00

VisualHMI-Dynamisches Zeichnen: Kontinuierliches Register-Zeichnen - Befehl, LUA set _ array und geschlossene FüllungAbbildung1

2. Grafikbefehllliste

BefehlSegmentformateBeispiel
Zeichnungspunkte (0x0001)X, Y, FarbeAA55 00 0F F1 2000 0001 0001 01F4 00F0 F800 FF00 CCCC (rot Punkt 500, 240)
Endpunktverbindungen (0x0002)Anzahl, jeder Punkt X, Y (Verbindungslinie), FarbelisteAA55 00 1D F1 2000 0002 0003 FFFF012C012C01F4 012C01F4 0064 02BC0064 FF00 CCCC
Rechteck (0x0003)Links oben X, Y, rechts unten X, Y, Farbe (pro Rechteck)AA55 00 1F F1 2000 0003 0002 011E00AA01AA 010A 471A 0258 0064 02BC012C 2C4A FF00 CCCC (zwei Rechtecke)
Rechteckfüllung (0x0004)ÄhnlichAA55 00 1F F1 2000 0004 0002... FF00CCC
Rund (0x0005)Zentrum X, Y, Radius, FarbeAA55 00 13 F1 2000 0005 0001 01F4 00FA0096 FEA0 FF00CCC
Kreisfüllung (Befehlcode ist 0x0005, Quelltext unterscheidet keine Zeichenbits)ObenAA55 00 13 F1 2000 0005 0001 0200 0100 0085 FEAA FF00 CCCC
Bild (0x0007)PIC-ID, Zuschneiden X, Y, links oben rechts unten X, Y, Ziel X, YAA55 00 19 F1 2000 0007 0001 0000 0021 0027 00A3 0040 0168 0168 FF00 CCCC
Verschlossene Fläche Füllung (0x0008)X, Y, FarbeAA55 00 11 F1 1001 0008 0001 01A4 00F6 F800 FF00 CCCC
Spektrum (0x0009)Anzahl, Farbe, Xn, Yn PaareAA55 00 33 F1 2000 0009 0005 F800 0168 0064 0064 ... FF00CCCCC (5 vertikale Linien)
Liniensegment (0x000A)Anzahl, Farbe, XnS,... FF00CCCCAA55 00 33 F1 2000 000A 0004 ... FF00 CCCC
Rechteckige Reaktionsfarbe (0x000D)Oben links, unten rechts, Farbe (Reflexierfarbe = 0xFFFF-Farbe)AA55 00 15F1 2000 000D 0001 0168 00E6 0190 010E49F1 FF00 CCCC

VisualHMI-Dynamisches Zeichnen: Kontinuierliches Register-Zeichnen - Befehl, LUA set _ array und geschlossene FüllungAbbildung2

PIC-ID - AnsichtIm private Ressourcenpaket nach der Kompilierung ist image.bin; PIC-ID - Konzentration Öffnen Sie das Projektverzeichnis build/image.xml (id = 0 entspricht Bild 0 Hintergrund).

VisualHMI-Dynamisches Zeichnen: Kontinuierliches Register-Zeichnen - Befehl, LUA set _ array und geschlossene FüllungAbbildung3

Schließende Flächen gefüllt:Zwei dynamische Zeichnungssteuerelemente- eine Zeichnung einer geschlossenen Grafik (z. B. 0x2000) und eine Festlegung der Füllfarbe (z. B. 0x1001, CMD=0x0008) müssenüber das Steuerelement, das eine geschlossene Grafik zeichnet, überlagern.Der Hintergrund des Bildes muss in solider Farbe sein, sonst kann er nicht normal gefüllt werden.

3. LUA-Zeichnung (set _ array)

In LUA werden Zeichnungen mitset_array()in kontinuierlichen Registeren geschrieben. Nehmen Sie auf_update-Trigger als Beispiel (Wort-Einstellungen Schaltfläche schreiben 0xF000 Wert 1 ~ 13 Grafik umschalten):

baseGraphCmd = {
  opint=0x0001, Connection=0x0002, rect=0x0003, rectFill=0x0004,
  circle=0x0005, PIC=0x0006, ICON=0x0007, fill=0x0008,
  Spectrum=0x0009, line=0x000A, rectFillOr=0x000D }
-- 画点: 命令, 点数, X, Y, 颜色, 结束
local data = {baseGraphCmd.opint, 0x0003,
  0x01F4, 0x00F0, 0xF800, 0x01F5, 0x00F1, 0xF800, 0x01F6, 0x00F3, 0xF800,
  0xFF00}
set_array(VT_LW, 0x2000, data)   -- 单条模式地址 0x2000

Mehrere Modus mehrere Grafikbefehle in der Reihenfolge in ein Array auf einmal geschrieben (Adresse 0x3000); Überlagerung Modus nicht direkt hinzugefügt Bildschirm (Adresse 0x4000).

VisualHMI-Dynamisches Zeichnen: Kontinuierliches Register-Zeichnen - Befehl, LUA set _ array und geschlossene FüllungAbbildung4

VisualHMI-Dynamisches Zeichnen: Kontinuierliches Register-Zeichnen - Befehl, LUA set _ array und geschlossene FüllungAbbildung5

VisualHMI-Dynamisches Zeichnen: Kontinuierliches Register-Zeichnen - Befehl, LUA set _ array und geschlossene FüllungAbbildung6

Drei Modelle wählen:Single = Zeichnung eines Grafiks gleichzeitig (Neuaufzeichnung), Multiple = Zeichnung mehrerer Grafiken gleichzeitig (Neuaufzeichnung), Overlapping = unreiniger Bildschirm kontinuierlich Zeichnung. Diese dynamische Aktualisierung des Trends / Spektrums wird mit einer Neuaufzeichnung durchgeführt und diese kumulative Anzeige des Flussdiagramms wird mit einer Überlagerung durchgeführt.

Aus dem VisualHMI-Entwicklungsdokument von Guangzhou Dacai Technology (hmi-doc.gz-dc.com) Konfigurationssteuerelement-Tutorial "Dynamisches Zeichnen", das Urheberrecht im Besitz von Dacai Technology.

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.