主题
HMI菜单行显示
HMI菜单行显示(类型名
ddc_menu_row):对齐西门子"HMI菜单行显示":就是三个槽位 —— 文本/值/其他 三个连线端子并排在同一行上(官方块面如此),块上没有小数位、格式或读写参数。文本=行名称(接"普通文本显示");值=数值量或布尔量;其他=单位(显示成"值+单位",如 0℃)或"枚举文本列表"(显示成选中项、补空格贴到屏最右边)。;屏上能不能改这一行,看写回落点:落点是单个「取寄存器」(接了枚举列表时是枚举块自己的「值」)就可在屏上改 —— 数值一位一位闪动改,枚举行↑↓切项(值段整段反白闪动),布尔量(M/X/Y) 0↔1 切换;落点是常量/运算式就只能看。
这块是什么
- 编辑器里的名字:HMI菜单行显示
- 类型名:
ddc_menu_row(写在程序文件 ddc.json 里的身份,AI 生成或改逻辑时按它对名,别猜中文名) - 分类:HMI(屏幕页面(做画面模块))
- 形态:值块
- 状态:无状态
对齐西门子"HMI菜单行显示":就是三个槽位 —— 文本/值/其他 三个连线端子并排在同一行上(官方块面如此),块上没有小数位、格式或读写参数。文本=行名称(接"普通文本显示");值=数值量或布尔量;其他=单位(显示成"值+单位",如 0℃)或"枚举文本列表"(显示成选中项、补空格贴到屏最右边)。;屏上能不能改这一行,看写回落点:落点是单个「取寄存器」(接了枚举列表时是枚举块自己的「值」)就可在屏上改 —— 数值一位一位闪动改,枚举行↑↓切项(值段整段反白闪动),布尔量(M/X/Y) 0↔1 切换;落点是常量/运算式就只能看。
块面长什么样
图上这一颗就是刚把它从工具箱拖到画布时的样子:下拉框和输入框里是默认值,凹口(←形的那个孔)是要接值的地方,右边凸起是能被别人接的输出口。
块面参数(在块上直接填/选)
- 无 —— 这个块没有可填参数,行为只由连线决定
连线端子(从别的块接进来)
- 输出 String
- 端子 TEXT、VALUE、OTHER
下发到设备变成什么
- 生成 ddc.json 的操作(op):menu_row
手册里其它相关位置
- 所属分类章节:2.6 本章导览
- 同类块一览:2.0 功能块速查总表
一行是「名称 + 数值 + 单位」三段拼出来的
最常用的显示块。块上就是三个并排的端子,每个都可以不接:
| 端子 | 接什么 | 屏上的效果 |
|---|---|---|
| 文本 | HMI普通文本显示 给个行名 | 行的名称,如 送风温度 |
| 值 | 取寄存器,或任何算得出数的块 | 数值本身,如 26 |
| 其他 | ① 单位文本 ② 枚举文本列表 | ① 拼成"值+单位" 26℃;② 选中项把数值整段替换掉,并补空格贴到该行最右边 |
三个端子只有 「值」是必须的——除非「其他」接的是枚举列表(那种情况下选词和写回都归枚举块自己的「值」管,本行可以不接)。名称和单位不接,屏上就只有个数字。
一行只有 16 个字符位
屏是 128×64 点、4 行、每行 16 个字符位,汉字占 2 位。 送风温度(4 字 8 位) + 26(2 位) + ℃(2 位) = 12 位,还剩 4 位; 名称写成 8 个汉字就正好占满,后面再接数值必然被截。 名称长度不用手工计数——「排版体检」会直接报出来,见 2.6 显示模块。
小数位是自动的,块上没有「小数位数」要填
程序在 0 / 1 / 2 位里挑第一个"读回来还是原值"的写法,都不行才用 3 位并去掉末尾多余的 0:
| 送进来的值 | 屏上显示 | 为什么 |
|---|---|---|
| 26 | 26 | 0 位就够,不会写成 26.0 |
| 26.5 | 26.5 | 1 位能原样表示 |
| 1/3 | 0.333 | 0/1/2 位都会丢精度,退到 3 位 |
| 12.5(只能放 0 位时) | 12 | 取整走"逢二进一、五成双",不是四舍五入,所以不会变 13 |
这样设计是因为:16 个字符位是硬约束,写死小数位会让 26.0℃ 白占两格, 而现场真正在意的是"别丢精度、别占地方"。
这一行在屏上能不能改,只看「值」落在哪儿
| 「值」上接的东西 | 屏上能不能改 | 怎么改 |
|---|---|---|
| 单个寄存器引用且选了 「设(屏上可改)」 | ✅ 能 | 光标停到这行按确定,数值一位一位闪动改;布尔量(M / X / Y)在 0 与 1 之间切 |
| 寄存器引用但选的是 「取(只读)」 | ❌ 只能看 | — |
| 常量、算式(算术运算、线性变换…) | ❌ 只能看 | 改完没地方放,本来就不该让现场改 |
| 「其他」接了枚举列表 | ✅ 能(前提是枚举块的「值」是可写寄存器) | 用 ↑↓ 切项,改的时候值那一段整段反白闪动 |
- 浮点寄存器 DF 这一版在屏上只读:逐位改值一次只能写一个 16 位字,而 DF 占两格。
- 这个开关在生成的 JSON 里落成
"rw"字段(1可改 /0只读),它是程序按落点自己算出来的,块上没有「读写」下拉。
配不出"显示 A、改的却是 B"
菜单行只有"读谁就改谁"一条路:写回目标只由"这一行读谁"决定,当前版本没有「写入寄存器」这个端子, 不会出现"看着是 D100、改的却是 D200"的歧义。此前生成的工程里带这个旧字段的,载入画布时不再还原,写回地址按现行规则计算。
改值时屏上具体怎么闪位、怎么落值,以及枚举行怎么切项:2.6 显示模块。