PLC数值运算
拆解恒压供水里每一个数值运算的控制逻辑与工程边界
按 空格/→ 演示下一步
全部页面点击任意一页,跳回舞台从这页播放
PLC数值运算
拆解恒压供水里每一个数值运算的控制逻辑与工程边界
PLC的数值世界
上一页我们学了PLC做加减乘除,但PLC处理的'数'到底长什么样?一切得从两个世界说起——一个是只有'有'和'没有'的世界,另一个是连续变化的世界。
老式龙头只有开/关两档对应开关量;可连续旋转的对应模拟量
数值运算在控制系统中的位置
从左往右读一遍:物理量进PLC运算,再回到物理世界,最后闭环回到起点。
递增递减指令概述
想象流水线:每过一个产品,计数器就跳一下,从1变2、变3。停车场每走一辆车,空位数就少一个。这两个动作——'加1'和'减1'——在PLC里就是INC和DEC。
每经过一层数字自动+1或-1;INC/DEC就是PLC里让数字'自己动'的机制
INC递增指令详解
INC递增分五步推进:从16位取数到32位写回,最后揭示标志位特性。
DEC递减指令详解
DEC递减并非简单减1,到达边界时触发特殊的下溢与标志位联动。
递增递减应用示例
用 S7-200 STL 实现流水线计数器:产品经过 +1,卸料 -1,满 50 报警。
EU 上升沿保证每个产品只计一次;INCB/DECB 对 VB100 自增自减;MOVB 复位清零。
递增递减自测
三菱FX PLC中执行INC D0指令。若D0当前为16位有符号数最大值32767,再执行一次后结果是?
逻辑运算指令全景图
中心是逻辑运算总入口,向左分出四条支线:每条支线给出功能口诀与IEC标准符号,对照记忆最有效。
AND与OR的对比
AND和OR都做位运算,但一个要求"全部满足"、一个只要"一个就够"——串并联混淆是初学者最常踩的坑。
- 逻辑本质:所有输入位都为1,结果才为1
- 成立条件:必须全部条件同时为真
- 电路类比:串联开关——全部闭合灯才亮
- 典型场景:安全联锁,多条件齐备才动作
- 逻辑本质:任一输入位为1,结果就为1
- 成立条件:只要一个条件为真即可
- 电路类比:并联开关——任一闭合灯就亮
- 典型场景:多地点启停,任一按钮都能控制
XOR异或与NOT取反
上一页我们看到AND像「全部满足才通过」、OR像「任一满足即通过」。但控制系统里还有两类更微妙的问题:判断两个数是否完全相等、以及把一个数里某些位精准翻转——这正是XOR与NOT的舞台。
两数逐位比对:相同位像两图一致→得0;不同位像找到差异→得1;若全0,说明两个数一模一样
逻辑运算应用示例
用 AND/OR/NOT 拼一段真实的多条件保护:任一保护条件不满足,电机就停。
Motor_RUN 用 AND 把启动与各保护串成允许链;Alarm_Any 用 OR 把各故障聚成总报警。这就是梯形图『允许串行、故障并行』的典型写法。
加法ADD指令
ADD把两数相加,但16位结果有上限,超了就要靠标志位说话。
减法SUB指令
减法不止算差值,借位与负数表示才是深水区。
乘法MUL与除法DIV
结果都装进双字,但高位含义截然不同——MUL 是溢出,DIV 是余数。
- 运算:A × B,被乘数与乘数
- 结果位数:自动扩展为双字 32 位
- 高位含义:存储溢出的高位,不丢精度
- 典型场景:模拟量缩放、单位换算
- 运算:A ÷ B,被除数与除数
- 结果位数:低字存商,高字存余数
- 高位含义:余数 ≠ 错误,可判整除
- 典型场景:缩放映射、除零保护
数据类型与运算范围
三条横向通道并列展示字节、字、双字的取值上限与溢出回绕规律。
数据运算综合示例
看真实工程——恒压供水系统如何把 ADD/SUB/MUL/DIV/INC 串成完整闭环压力计算。
高亮行体现工程套路:L6 标度变换用 MUL/DIV,L12 SUB 求偏差,L16 MUL 做比例,L19 ADD 累加,L21 IF 限幅,L32 INC 计小时——前几页指令在此串成完整闭环。
恒压供水控制需求分析
恒压供水通过目标压力与实际压力的闭环运算,让水泵自动跟随用水量变化。
PID控制中的数值运算
PID 控制器的离散化实现:把连续的微积分拆成 PLC 每个扫描周期里的加减乘除。
三行核心:误差 e(k) 是 SUB;积分靠累加器(ADD);微分用相邻两次误差之差(SUB+DIV)。last_error 必须保持,否则微分项失效。
程序流程与调试要点
从顶部向下读:先参数准备,再三类错误排查,最后在线监控循环。
数值运算要点回顾
- ✓单周期执行是默认值,持续动作需自锁
- ✓逻辑运算按位,算术运算按字
- ✓数据类型边界即运算边界,超界即溢出
- ✓基本运算的组合,就是PID这类高级控制
课后思考
先独立想 1 分钟,再展开参考答案对照思路。
参考答案INT上限32767,超出后高位被截断发生"环绕"。思路:先估算取值范围→选DINT/LREAL等合适类型→必要时加溢出判断。
参考答案滑动平均是经典做法:用INC/DEC维护一个采样队列,ADD累加N个值后DIV求均值;也可用移位近似除法降低开销。
参考答案可以。XOR的"成对归零"特性天然适合校验:发送侧将数据与种子字节XOR,接收侧再XOR一次,结果非零即判定出错。