位状态指示灯只能显示 0/1,多状态指示灯就不一样了——它按레지스터的具体数值映射到多个预定义状态,每个状态可以配独立的图标、颜色、文字。모드识别、流程阶段、档位显示这类시나리오就是它的主场。
1. 核心能力
- 多状态映射:预设多个状态项,每项关联一个特定数值或数值范围。如 0=停机(灰)、1=自动运行(绿)、2=手动디버깅(黄)、3=故障锁定(红)
- 可交互:允许쓰기的레지스터上,클릭控件循环전환状态(递增 0→1→2→0…)
- 非连续值映射:支持状态转换表,把 0、5、10、99 这种离散编码一一对应到状态,不要求连续递增

工业上状态字常是非连续编码(兼容性/预留位/历史原因),比如 0=停机、5=自动运行、10=手动모드、99=严重故障——状态转换表就是干这个的。
2. 属性介绍
2.1 功能设置
| 属性 | 설명 |
|---|---|
| 읽기주소 | 绑定的레지스터주소 |
| 전환开关 | 勾选后允许触控写操作 |
| 쓰기주소 | 勾选전환开关后,可设쓰기주소是否与읽기相同 |
| 操作모드 | 递增:每次클릭值+1;递减:每次클릭值-1 |
| 循环调节 | 如状态数8,当前为7(末状态)时再点回到1 |
| 执行时机 | 设置레지스터的时机 |
| 데이터유형 | UINT16、INT16、UINT32、INT32 |
| 播放声音 | 클릭时播放指定声音 |

2.2 状态设置
- 状态数:1~256 个状态
- 转换状态:按状态数填写值映射,如「0;200;300;400;8;88;888;8888」——레지스터 값 0 显示第0帧、200 显示第1帧…
- 使用图库:状态0图库/状态1图库,裁剪;使用文字:各状态不同文字,可配字体/大小/行间距/标签;选择状态:单独设每个状态的文字콘텐츠、颜色、对齐、闪烁、跑马灯

⚠️ 레지스터 값不在状态数范围时,多状态图标不显示。例:状态数 8 只认 0~7,레지스터 값写成 8,控件直接空白。转换状态表也一样——表中没有的值,控件不显示。排查「灯不亮」先查这个。
3. 적용案例
3.1 递增모드(循环调节)
스마트 홈시나리오:2 个多状态指示灯(图库版+文字版)+ 1 个数值控件。읽기 LW1000,UINT16,状态数 8,循环调节勾选,文字状态 S0-回家、S1-离家、S2-就餐…S7-自动。클릭전환,状态和数值实时变。


3.2 递减 + 状态转换表
읽기 LW1001,状态数 8,转换状态「0;200;300;400;8;88;888」(非连续编码),操作모드递减。配合数值控件手动改值,观察状态跟随。


整理自 广州大彩科技 VisualHMI 개발문서(hmi-doc.gz-dc.com)구성(SCADA)控件튜토리얼「多状态指示灯」,版权归大彩科技所有。
답글 작성