M39.1的补料灯亮起来了,M39.2的达标灯也跟着点亮,显示屏上总投料到达了60片,成品累计重量超过100公斤。操作台上复位键一按,两个计数器和两个总量地址同时清零,设备回到初始状态。

事情是怎么走到这一步的。车间里有一条小型金属垫片生产线,启动和停止由按钮与继电器配合控制;投料和成品由两个传感器分别检测计数,统计结果经过乘法运算后用于触发预警和达标反馈。具体到地址,用到的位有M38.0、M38.2控制启动,M38.4是投料传感器,M38.6是成品传感器,复位用M39.0,补料灯M39.1,达标灯M39.2。计数器用CTU1记录投料次数,CTU2记录成品数量,两个CTU的当前值作为乘法的输入之一,乘法结果存到“总投料地址”和“总重量地址”。
回到程序逻辑里,乘法指令用来把“单次量”放大成“总量”。例子里每次给冲压机投3片圆片,CTU1统计投料次数;每个垫片重2kg,CTU2记录成品数。程序用整数乘法把“3×CTU1”算成总投料,把“2×CTU2”算成总重量,算出来的数据再去和常数比较:总投料达到或超过60就让M39.1点亮,总重量达到或超过100就让M39.2点亮。这就是从传感器脉冲到操作台反馈的链路。

物理接线和程序步骤要对应好。启动部分把M38.0常开点串到M38.2,按下启动后M38.2得电,整条线动起来。投料传感器M38.4每次有物料通过就发一个脉冲到CTU1,成品传感器M38.6每次有成品出料就给CTU2一个脉冲。计数器的上升沿要可靠,所以传感器信号最好做消抖处理,避免抖动造成多次计数。CTU的当前计数作为乘法指令的乘数输入,乘法把单次值和次数相乘,结果写入指定的数据寄存器,供比较指令读取。
写乘法时有两点最容易出问题。先说序位:把“单次量”放在被乘数,把“次数/数量”放在乘数,这样表达清晰,别人在看梯形图或块注释时能一眼看懂“单次×次数”。虽然整数乘法交换因子不会影响数学结果,但程序可读性重大,这样后来查错少折腾。再说数据范围:PLC里的整数类型不是无限大的。常见的INT上限是32767,像3000×20这样的乘法结果是60000,明显超过INT能表明的最大值,程序会出现溢出,结果变成负数,后续动作就会乱。遇到可能超范围的场景,要直接使用更大容量的数据类型和相应的乘法指令,列如长整数乘法,把存储和计算都换成支持更大数值的类型,避免溢出带来难排查的错误。

具体实现上,步骤要写得细致。先在程序里给CTU1和CTU2设置好复位输入和计数上限;把传感器脉冲接到计数器的CU端;用乘法指令把常数3作为被乘数,CTU1的当前值作为乘数,结果写到“总投料地址”;另一路用常数2乘以CTU2当前值,结果写到“总重量地址”。再接两个比较指令,把“总投料地址”与60比较,把“总重量地址”与100比较,比较满足时分别驱动M39.1和M39.2。复位按钮M39.0要同时接到CTU1和CTU2的复位端,并触发把“总投料地址”和“总重量地址”写成0,这样按下去既把计数器清为0,也把结果寄存器清空,界面和逻辑状态一致。
在现场调试时会碰到一些细节。传感器的脉冲宽度要合适,脉冲太短有可能被采样遗漏,太长又可能引起多个上升沿。计数器的预置值和溢出保护要设好,尤其是生产节拍不稳定时,计数器不能随意上限到太大。乘法指令里若用了变量作为被乘数或乘数,注释要写清楚含义,别让“3×CTU1”写成“CTU1×3”而注释说反了——程序可读性差,后面维护的人会懵。还有个实用做法:把关键的边界值(像60片、100kg)也做成变量放到数据块里,现场调整参数时不用改梯形图,只改数据块就行。
举个让人容易记住的错误例子:某次有人把单次材料数量设为3000,次数上限设为20,直接用INT乘法,结果就是60000——超出INT上限,PLC给出负值,补料灯不亮,检修人员蒙了一上午。问题一查就是数据类型不对。教训是,凡是可能接近数据类型上限的运算,提前算好范围,选用对应的长整型或双字型乘法指令,验算边界条件,然后再投产。
程序写法上,乘法一般和加减、计数配合使用。用CTU统计次数后,用MUL算总量,再用SUB_I或加法算出剩余或累计。这套组合能处理大多数工厂的核算需求:投料量、产量、总重、剩余库存之类。写清楚每一步的输入和输出地址,标注好数据类型,出问题时就能按链路逐步排查,而不是在控制器里抓瞎。
操作流程在现场也要和程序对应。操作员按下启动,传送带和冲压机开始工作;投料工人把圆片投进投料口,传感器M38.4发脉冲给CTU1;冲压、分拣后成品通过检出传感器M38.6,CTU2计数;PLC周期性执行乘法,把当前计数换算成总量,再去触发补料和达标指示。达标或预警时,灯光提示操作员或检修人员采取动作。需要停产或重新开始时,按下M39.0复位键,CTU1和CTU2复位,两个总量地址写零,生产线状态回到起点。
按下M39.0那一刻,现场的状态变化是明确的:计数器清零,显示的数字归零,补料灯和达标灯均熄灭,设备处于待命。这样操作起来直观,不会留下断断续续的历史数据误导下一班的判断。