- 1. 1. 属性介绍
- 2. 2. 图形Befehl列表
- 3. 3. LUA 绘图(set_array)
动态绘图Kontrollen让你在 HMI 上创建和修改图形元素(点、线、圆、矩形、封闭图形、图片裁剪),像一个绘图板。核心机制:通过一段连续Register.写入绘图Befehl——PLC 或 LUA 都能画。
1. 属性介绍
| 属性 | 说明 |
|---|---|
| DatenAdresse | 绘图Befehl写入Adresse |
| 线条粗细 | 线段宽度像素 1~4 |
| Befehl模式 | 单条(单次写一个Befehl)/ 多条(单次写多个Befehl) |
| 绘图模式 | 重绘(新指令先Erfrischen旧图)/ 叠加(在画面上继续添加) |
| 画布颜色 | RGB 颜色 |
| abgeschlossen.通知 | 绘图abgeschlossen.后指令清零并通知 |

连续Register.Das Format:
LW CMD 绘制图形Typus LW+1 Draw_Cnt Daten包Anzahl(一个矩形=1个包) LW+2 DATA N 个Anzahl der Bytes据段 LW+1+N END EndeFeld,固定 0xFF00

2. 图形Befehl列表
| Befehl | Daten段Das Format | Beispiel |
|---|---|---|
| 画点(0x0001) | X,Y,颜色 | AA55 00 0F F1 2000 0001 0001 01F4 00F0 F800 FF00 CCCC(红点 500,240) |
| 端点连线(0x0002) | Anzahl,各点X,Y(连成线),颜色列表 | AA55 00 1D F1 2000 0002 0003 FFFF 012C 012C 01F4 012C 01F4 0064 02BC 0064 FF00 CCCC |
| 矩形(0x0003) | 左上X,Y,右下X,Y,颜色(每矩形) | AA55 00 1F F1 2000 0003 0002 011E 00AA 01AA 010A 471A 0258 0064 02BC 012C 2C4A FF00 CCCC(两个矩形) |
| 矩形填充(0x0004) | 同上 | AA55 00 1F F1 2000 0004 0002 … FF00 CCCC |
| 圆形(0x0005) | 圆心X,Y,半径,颜色 | AA55 00 13 F1 2000 0005 0001 01F4 00FA 0096 FEA0 FF00 CCCC |
| 圆形填充(Befehl码同为 0x0005,源文未区Unterteilung标志位) | 同上 | AA55 00 13 F1 2000 0005 0001 0200 0100 0085 FEAA FF00 CCCC |
| 图片(0x0007) | PIC ID,裁剪左上X,Y,右下X,Y,目标X,Y | AA55 00 19 F1 2000 0007 0001 0000 0021 0027 00A3 0040 0168 0168 FF00 CCCC |
| 封闭区域填充(0x0008) | X,Y,颜色 | AA 55 00 11 F1 1001 0008 0001 01A4 00F6 F800 FF00 CCCC |
| 频谱(0x0009) | Anzahl,颜色,Xn,Yn 对 | AA55 00 33 F1 2000 0009 0005 F800 0168 0064 0064 … FF00 CCCC(5 条垂线) |
| 线段(0x000A) | Anzahl,颜色,XnS,YnS,XnE,YnE | AA55 00 33 F1 2000 000A 0004 … FF00 CCCC |
| 矩形反色(0x000D) | 左上,右下,颜色(反色=0xFFFF-颜色) | AA55 00 15 F1 2000 000D 0001 0168 00E6 0190 010E 49F1 FF00 CCCC |

PIC ID Überprüfen:编译后 private 资源包里有 image.bin;PIC ID 对照Öffnen.工程目录下 build/image.xml(id=0 对应画面0背景图)。

3. LUA 绘图(set_array)
LUA 里用 set_array() 写连续Register.实现绘图。以 on_update 触发为例(字设置Knopf写 0xF000 的值 1~13 Wechseln图形):
baseGraphCmd = {
opint=0x0001, Connection=0x0002, rect=0x0003, rectFill=0x0004,
circle=0x0005, PIC=0x0006, ICON=0x0007, fill=0x0008,
Spectrum=0x0009, line=0x000A, rectFillOr=0x000D }
-- 画点: Befehl, 点数, X, Y, 颜色, Ende
local data = {baseGraphCmd.opint, 0x0003,
0x01F4, 0x00F0, 0xF800, 0x01F5, 0x00F1, 0xF800, 0x01F6, 0x00F3, 0xF800,
0xFF00}
set_array(VT_LW, 0x2000, data) -- 单条模式Adresse 0x2000
多条模式把多个图形Befehl按顺序放进一个数组一次写入(Adresse 0x3000);叠加模式不清屏直接追加(Adresse 0x4000)。



整理自 广州大彩科技 VisualHMI 开发Dokumentation(hmi-doc.gz-dc.com)Konfiguration KontrolleUnterricht「动态绘图」,版权归大彩科技所有。
Antwort veröffentlichen