「每天进步一点点」西门子PLC入门:吃透减法指令SUB,轻松搞定“数值递减”需求

发布日期:2025-11-21 10:51    点击次数:124

上一期咱们把加法指令ADD练得很顺手,能轻松把各班产量、各种原料重量凑成总数。

但工厂里不光要“加总数”,还常要算“剩余量”“差额”,比如原料总库存减当天用量得剩余、总产量减不合格品量算合格数。

这时候,“减法指令(SUB)”就该登场了。今天聚焦博途1500里的SUB指令,重点讲清整数减、实数减的区别和实操要点,学完就能顺手搞定各类“数值递减”的活。

一、先搞懂:SUB指令到底咋干活?

减法指令SUB,说白了就是“用一个数减去另一个数,算出差值供程序调用”。它和加法指令ADD逻辑相通,只是把“加”换成了“减”,能和之前学的计数、比较指令完美搭配——比如用CTUD统计出总产量和不合格品量,再用SUB算出合格量,最后用比较指令看是否达标。

通俗说:SUB就像车间里的“余量计算器”,从总数里减去用掉的、不合格的,算出剩下的量,方便后续安排生产、补充物料,在库存管理、合格量统计这类场景里必不可少。

二、用SUB别踩坑,这俩细节最关键

在博途1500里用SUB,这两个地方最容易出错,咱们按之前的优化思路,只抓核心要点:

1. 类型别混搭,整数小数要分家

和ADD一样,SUB_I只能减整数,SUB_R才能减小数,混着用准出问题。比如算“10箱 - 1.5箱”,若用SUB_I,1.5会被当成1,结果变成9箱,明显不对。这时候得先把整数转成实数(用CONV指令),再用SUB_R算,才能得到8.5箱的准数。

2. 别搞反“被减数”和“减数”

SUB指令里,“被减数”是“总数”,“减数”是“要减去的量”,顺序不能乱。比如想算“库存100 - 用量30”,得把“库存100”放前面(被减数),“用量30”放后面(减数),结果才是70;要是反过来,就变成“30 - 100”,结果成了负数,完全不符合实际需求。

三、实战:用SUB算“原料剩余量+合格产品数”

需求:以“食品加工线”为例——按下启动按钮(M36.3),生产线(M36.5)启动;原料总库存设为50kg(初始值),每次投料用传感器M36.7 检测(触发一次减2kg);

用CTU1统计总产量(接产品传感器 M37.1上升沿),CTU2统计不合格品量(接不合格检测传感器 M37.1上升沿);用SUB算原料剩余量(50kg - 投料总量),用SUB算合格产品数(总产量 - 不合格品量);

当原料剩余量<5kg时,亮缺料灯(M37.5);当合格产品数≥35时,亮达标灯(M37.6);按复位按钮(M37.7),计数器和剩余量、合格数全清零。

在博途1500里这么操作:

1. 启动按钮 M36.3 常开点串 M36.5,按下后生产线启动;

2. 原料投料统计:用CTU3接 M36.7,每次触发计数加1,再用MUL_I(后续学的乘法)算投料总量(计数×2kg);

3. 总产量统计:CTU1接 M37.1,每出一个产品计数加1;

4. 不合格品统计:CTU2接 M37.3,每检测一个不合格品计数加1;

5. 算原料剩余:调用SUB,被减数填“50”,减数填“投料总量”,结果存剩余量地址;

6. 算合格产品:调用SUB,被减数填“CTU1当前值”,减数填“CTU2当前值”,结果存合格数地址;

7. 比较指令:剩余量<5kg时 M37.5 亮,合格数≥35时 M37.6 亮;

8. 复位逻辑:M37.7 接三个CTU复位端,同时将剩余量地址赋值50、合格数地址清零。

四、最后说句实在的:SUB是“余量计算”的核心

减法指令的核心是从“总数”里算出“剩余”,和加法指令一起,能搞定工厂里大部分“数据核算”需求。学会了它,不管是算库存、算合格量,都能精准又高效。

下一期咱们学“乘法指令(MUL)”,它能算“单量×数量得总量”,比如“每个产品重0.5kg×产量200 = 总重量100kg”“每次投料2kg×次数10 = 总投料20kg”,刚好能和这次的SUB指令搭配,解决更多生产核算问题。

关注我,每天啃透一个指令,编程能力慢慢就上来了。