ARTICLE · 1117588
DGUS软件里“显示图标”怎么用?变量图标显示控件一文讲透
DGUS软件里“显示图标”怎么用?变量图标显示控件一文讲透

T5L 开发第 7 讲 · 显示图标系列①:一个值,换一张图
做设备界面,光有文字和数字还不够。运行状态、故障报警、档位高低,用一盏“灯”或一个“图标”来表示,比文字直观十倍,客户一眼就懂。
经常有工程师问我:袁工,DGUS 里怎么用图标显示状态?怎么做一个会变的指示灯? 今天开一个新系列——「显示图标系列」,把 DGUS 里所有“按变量值换图标”的控件,一个一个拆开讲。这一篇先讲最基础、最常用、也是其它图标控件的地基:变量图标显示控件(类型码 0x00)。
一句话先记住:“显示图标”类控件的本质都一样——按变量地址里的“值”,显示对应编号的那张图。你把图标做成一套编号(0号灰、1号绿、2号红…),单片机往地址里写 0、1、2,屏上就自动换图。会了这个,状态灯、档次、报警全搞定。

一、先认全:DGUS 里 5 类“显示图标”控件
它们都长在“显示图标”这个家族里,区别只在于“值”怎么变成“图”:
- 变量图标显示 0x00
(本篇主角):值=几,就显示第几号图标。做状态灯、档位最常用。 - 动画图标显示 0x01
:值变化就连续播几张图,做转动、进度动效。 - 图标旋转显示 0x05
:值映射成角度,图标跟着转,做指针表盘。 - 位变量图标显示 0x06
:变量的某一位=1 就显示图标,一个变量管 16 个开关。 - JPEG 图标平移 0x07
:值让一张图平移,做滑屏、二维码等。
本系列后面每篇拆一个(动画、旋转、位变量、平移),今天先把地基 0x00 吃透。
二、变量图标显示控件:软件里怎么配
在 DGUS 软件里拖一个“变量图标显示”控件,关键就填这 5 项(下面这张图就是软件配置的样子):

0x1000;写它屏就变 | |
它怎么算:屏读到变量值 V,就显示编号为 Icon_Min + (V - V_Min) 的那张图。例:V_Min=0、Icon_Min=0、V=2 → 显示 2 号图标。值超范围则不显示。
三、前提必会:图标得先做成“图标库 ICL”
控件能“按编号调图”,前提是图标已经做成了 ICL 图标库——这是新手最容易卡的一步。流程不复杂:
把你要的图(灰灯、绿灯、红灯…)做成同尺寸的 BMP,按 0、1、2… 编号命名; 在 DGUS 软件里用“图标”/“ICL 生成”功能把这些 BMP 导进去,生成 *.ICL图标库文件(注意:ICL 必须用迪文工具生成,不能直接把 JPG 丢进去);把 ICL 下载进屏(放进 SD 卡 DWIN_SET,和 14.BIN 一起烧录);控件里“图标库”选到这个库,控件就能用 0、1、2 号调出对应图了。
⚠ 一个库最多放 6.4 万张图标,足够用;DGUS2 内核建议用 V7.623 以上工具生成 ICL,避免版本不兼容。
四、实战:做一个“待机/运行/故障”三态灯
假设设备有三种状态,我们用一个变量图标灯来表示。完整做法:

图标库里:0 号=灰灯、1 号=绿灯、2 号=红灯(三张 BMP 生成 ICL); 变量图标控件:绑地址 0x1000,V_Min/Icon_Min=0,V_Max/Icon_Max=2;单片机配合:待机时写 0x1000=0、运行写=1、故障写=2。
写一帧就行(默认 115200、8N1,前两篇讲过的写变量帧):5A A5 05 82 10 00 00 01 → 屏上亮绿灯(运行)。
五、系列预告:显示图标,一个控件一篇
这篇把地基 0x00 讲透了。按“每个控件(指令)单独一篇”的节奏,这个系列接着是:
六、新手最常踩的 4 个坑
👇 添加作者微信「袁工 迪文串口屏方案」,领取 DGUS 工程模板 + 图标示例 + 开发资料压缩包
我把文中这个“三态灯”的示例工程、一套现成的灰/绿/红图标 BMP + ICL,还有显示图标系列(0x00~0x07)的全部控件配置要点,都打包好了。加我微信发你,照着绑地址就能跑,不用自己反复试错。
你用图标显示时卡过哪一步?是做 ICL 图标库、还是地址/编号对不上?评论区说说,我下一篇就拆你最关心的那个控件。