Skip to content

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 切换;落点是常量/运算式就只能看。

块面长什么样 ​

HMI菜单行显示在逻辑编程编辑器里的样子

图上这一颗就是刚把它从工具箱拖到画布时的样子:下拉框和输入框里是默认值,凹口(←形的那个孔)是要接值的地方,右边凸起是能被别人接的输出口。

块面参数(在块上直接填/选) ​

  • 无 —— 这个块没有可填参数,行为只由连线决定

连线端子(从别的块接进来) ​

  • 输出 String
  • 端子 TEXT、VALUE、OTHER

下发到设备变成什么 ​

  • 生成 ddc.json 的操作(op):menu_row

手册里其它相关位置 ​

一行是「名称 + 数值 + 单位」三段拼出来的 ​

最常用的显示块。块上就是三个并排的端子,每个都可以不接:

端子接什么屏上的效果
文本HMI普通文本显示 给个行名行的名称,如 送风温度
值取寄存器,或任何算得出数的块数值本身,如 26
其他① 单位文本 ② 枚举文本列表① 拼成"值+单位" 26℃;② 选中项把数值整段替换掉,并补空格贴到该行最右边

三个端子只有 「值」是必须的——除非「其他」接的是枚举列表(那种情况下选词和写回都归枚举块自己的「值」管,本行可以不接)。名称和单位不接,屏上就只有个数字。

一行只有 16 个字符位

屏是 128×64 点、4 行、每行 16 个字符位,汉字占 2 位。 送风温度(4 字 8 位) + 26(2 位) + ℃(2 位) = 12 位,还剩 4 位; 名称写成 8 个汉字就正好占满,后面再接数值必然被截。 名称长度不用手工计数——「排版体检」会直接报出来,见 2.6 显示模块。

小数位是自动的,块上没有「小数位数」要填

程序在 0 / 1 / 2 位里挑第一个"读回来还是原值"的写法,都不行才用 3 位并去掉末尾多余的 0:

送进来的值屏上显示为什么
26260 位就够,不会写成 26.0
26.526.51 位能原样表示
1/30.3330/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 显示模块。

LPPLC 工业物联网云平台 · 软硬件与云平台全栈自研