PCHMI 技术文档

VAL表达式语法规范 V1.0

VAL表达式用于解析PLC寄存器地址。 VAL表达式必须指定PLC连接编号,绑定对应PLC设备的寄存器;可用于数据库字段值描述、MQTT收发内容描述等场景。
语法由ExprParser解析器实现,支持TYPE、DEC、STRLEN、MAP映射、ARRLEN数组。

1、总览语法格式

完整表达式:VAL(PLC=编号,ADDR=地址,TYPE=类型,DEC=小数,STRLEN=长度,ARRLEN=数组长度,MAP=映射规则)

2、ADDR寄存器地址说明

ADDR填写PLC寄存器地址,支持三菱、西门子、欧姆龙等各品牌PLC寄存器地址命名: 请参考PLC地址命名规则
PLC品牌 示例ADDR值 说明
三菱 D100、M0.0 D寄存器、M位地址
西门子 DB1.0、DB1.0.0 DB块字节、DB块位地址
欧姆龙 D1000 D区寄存器

3、支持TYPE数据类型

当前支持类型集合:BIT/UINT16/INT16/UINT32/INT32/F32/F64/STRING/DATETIME
TYPE写法 说明 附加参数
BIT 布尔位 ‑
INT16 有符号16位整数 ‑
UINT16 无符号16位整数 ‑
INT32 有符号32位整数 ‑
UINT32 无符号32位整数 ‑
F32 单精度浮点 DEC=N 设置保留小数位数
F64 双精度浮点 DEC=N 设置保留小数位数
STRING 字符串 STRLEN=50;简写 TYPE=STRING(80)
DATETIME 时间日期 TYPE=DATETIME(yyyy-MM-dd HH:mm:ss) 自定义格式;不带括号使用默认格式 yyyy-MM-dd HH:mm:ss

4、全部参数说明表

参数名 是否必填 示例 说明
PLC ✅必填 PLC=0 PLC设备索引编号
ADDR ✅必填 ADDR=D100 PLC寄存器地址
TYPE ✅必填 TYPE=F32 数据类型,参考上表
DEC ❌可选 DEC=2 F32/F64有效,保留小数位数,默认0
STRLEN ❌可选 STRLEN=100 STRING字符串长度;TYPE=STRING(N)简写也可设置,STRLEN优先级更高
ARRLEN ❌可选 ARRLEN=10 数组元素数量;0代表普通单变量;大于0开启数组模式;数组模式下MAP映射失效
MAP ❌可选 MAP=0:停止|1:运行\|报警|2:故障 数值映射;|分隔多条;\|转义竖线;数组ARRLEN>0时MAP直接被忽略清空

5、合法示例集合

// 示例1:PLC编号0,D100,F32浮点,保留2位小数
VAL(PLC=0,ADDR=D100,TYPE=F32,DEC=2)
// 示例2:PLC编号1,D1050,UINT32整数,带MAP映射
VAL(PLC=1,ADDR=D1050,TYPE=UINT32,MAP=0:待机|1:运行|2:故障)
// 示例3:PLC编号0,DB块字符串,STRING长度80
VAL(PLC=0,ADDR=DB1.100,TYPE=STRING,STRLEN=80)
// 示例4:STRING简写括号形式
VAL(PLC=0,ADDR=DB1.200,TYPE=STRING(120))
// 示例5:BIT位读取(M0.0)
VAL(PLC=0,ADDR=M0.0,TYPE=BIT)
// 示例6:数组,D700开始连续5个INT16
VAL(PLC=0,ADDR=D700,TYPE=INT16,ARRLEN=5)
// 示例7:DATETIME类型,使用默认时间格式
VAL(PLC=0,ADDR=D200,TYPE=DATETIME)
// 示例8:DATETIME自定义时间格式
VAL(PLC=0,ADDR=D210,TYPE=DATETIME(yyyy/MM/dd HH:mm))

6、关键语法规则

7、PlcBindInfo 模型字段说明

对应C#代码内 PlcBindInfo 实体类。
字段 说明
PlcIndex PLC设备索引【必填】
Address PLC寄存器地址
DataType 数据类型 BIT/UINT16/INT16/UINT32/INT32/F32/F64/STRING/DATETIME
DecimalDigits 小数位数,浮点类型生效,默认0
StringLength 字符串最大长度,STRING类型生效,默认50
DateTimeFormat DATETIME类型格式化字符串,默认 yyyy-MM-dd HH:mm:ss
ArrayLen 数组长度,0=普通单变量,>0数组模式
MapRule 映射原始字符串;ARRLEN>0强制置空
CompiledMap 预编译后的映射字典,模板加载阶段生成,渲染直接使用
ExtraParams 原始全部解析键值对,用于未来扩展参数

8、上层调用业务注意事项

9、错误场景说明