主题
2.4 计算类功能块
计算类功能块对数值做加工:算术运算、限幅、量程换算、位处理、累计时间等。 输入输出都是数值,可以串起来用(比如「线性变换 → 限值 → 取位」)。
本章按块分页:端子、块面参数、下发后变成什么、示例与常见问题都在各块自己那一页,下面是入口。
2.4.1 基本运算
| 块 | 作用 | 详解 |
|---|---|---|
| 算术运算 | 加、减、乘、除、乘方(选一种);除以 0 时结果按 0 处理,不会让程序出错 | ddc_arith |
| 最大 / 最小值 | 取两个输入里最大或最小的一个;要多路就把它串起来 | ddc_minmax |
| 多路选择 | 用一个 0~7 的「因子」从 8 路输入里选一路输出 | ddc_mux |
2.4.2 限值运算
把输入夹在上下限之间:低于下限按下限输出,高于上限按上限输出,中间原样通过。 典型用途:给执行器输出做保护(阀门开度不允许超过 10%~90%)、防止异常数据失控输出。
→ 详解:ddc_limit
2.4.3 线性变换
把一个区间的数按比例换算到另一个区间,最常用的是模拟量量程换算(4~20mA → -40~70℃)。
→ 详解(四个数怎么填、屏上数值差 10 倍该在哪换算、整条采集链的写法):ddc_linear
2.4.4 取位 / 合并位
在整数和它的二进制位之间转换:
| 块 | 作用 | 详解 |
|---|---|---|
| 取位 | 取出 BIT0~BIT15 的某一位(0 或 1),也可取整数部分 | 把一个状态字拆成 16 个开关量分别判断;ddc_bitget |
| 合并位 | 把最多 16 路 0/1 合并成一个整数(每路一个位) | 把 16 个设备状态拼成一个字,一次写寄存器、一次上传;ddc_bitmerge |
2.4.5 累计时间
统计某个条件累计为真的时间,相当于设备自带的「运行小时表」;填了保持寄存器就能断电续计,全程序最多 6 个。
→ 详解(单位精度、保持寄存器怎么填、保养提醒的接法):ddc_runtime
2.4.6 串起来用的例子
模拟量采集的标准处理链(原始值换算成百分比 → 限幅 → 取整)已写进 线性变换 ddc_linear 页末,配那张「限值运算与计算链串联」图。
算出来的数怎么判断:2.3 逻辑类功能块;怎么显示到屏上:2.6 显示模块。