完整PLC程序请查看底部链接
▼ ① 启动信号赋值C100为K9999常数变量,C100为通用计数器 和D460同步计数
M105为手动清0信号 D460
▼ ② 系统时钟7:30的时候 置位一个M1301信号(这是6:30-7:30计数信号) 复位M1324(这是5:30-6:30的计数信号)
M1301把6:30-7:30 C100的累计产量锁存到R0里面储存
▼ ③ 系统时钟8:30的时候 置位一个M1302信号(这是7:30-8:30计数信号) 复位M1301(这是6:30-7:30的计数信号) M1301把7:30-8:30 C100的累计产量锁存到R1里面储存
▼ ④ 程序一直写到8:30-9:30,9:30-10:30...................................5:30-6:30
最后
▼ ⑤ 系统时钟6:30的时候 置位一个M1324信号(这是5:30-6:30计数信号) 复位M1323(这是4:30-5:30的计数信号)
M1324把5:30-6:30 C100的累计产量锁存到R31里面储存
当再到7:30的时候就是一天的产量了,复位C100,把C100置零 重新计数
停机时间程序
▼ ① M204常闭信号就是不在正常启动时间那就是停机时间,T41常闭,M1325常闭(这是白班和夜班互锁互锁信号) 现在计算的是白班停机时间
T41 K600=10min钟,停机到达10min C110+1 ,累计里面+1就是10min
下面是夜班的停机时间,同理,停机到达10min C111+1
▼ ② 白班(7:00-19:00)把C110的停机时间放到R14里面锁存
▼ ③ 夜班(19:00-7:00)把C111的停机时间放到R33里面锁存
停机时间=C110/C111*10=实际的停机分钟数
所有时段产量合计
白班的产量全部存到R13,夜班的产量全部存到R32
产量储存寄存器偏移
▼ ① M1264触发存档时,Z6指向5天前的存储首地址R200,一次性清空R200往后200个寄存器,固定只保留近5天产量数据,旧数据自动覆盖清空。
▼ ② FMOV是批量清零指令
▼ ③ 夜班M1264的触发储存器触发或者手动保存,把夜班当前产量移动R20往后的寄存器(夜班产量储存器)搬移到历史数据储存器(R220开始的寄存器)放着
然后清楚夜班之前的产量计数器
▼ ④ 白班M1265的触发储存器触发或者手动保存,把白班当前产量移动R0往后的寄存器(夜班产量储存器)搬移到历史数据储存器(R200开始的寄存器)放着
▼ ⑤ 然后清除白班之前的产量计数器
▼ ⑥ 检测到夜班,就复位L271(L271常闭恢复导通,新夜班又可以正常触发保存产量)
▼ ⑦ 检测到白班,就复位L272(L272常闭恢复导通,新白班又可以正常触发保存产量)
历史产量读出
1天=白班(20个数据)+夜班(20个数据)=40个R寄存器
历史存放数据点在R200开始
D510=触摸屏上面你要查询的几号
D512=触摸屏上面你要查询的几月
举例:你要查询3月,(D512=3),D513=2(3-1),一年单月最多31天*40个寄存器R=1240
前面2个月暂用了1240*2=2480个寄存器
查询日是一样的道理,例如查询:5号(D510=5),(5-1)*40(每天40个寄存器)当月前4天暂用了160个寄存器
2480(D514)+160(D516)=2640(D518),从R200往后移2640个寄存器地址(D518就是总偏移量)就是3月5号的数据起点
沿着刚才的例子 Z7=2640,R200向后偏移Z7(2640)
R2840-R2859 这其中40个寄存器就是白班20个 夜班20个
把这个结果出去到D600 K40 就是读到D600-D619 (白班产量)D60-D639(夜班产量)我们只需要在触摸屏上面绑定定义D600-D639就可以出去想要日期的产量了
完整程序大家可以查看评论区我发的完整PLC程序链接
好文分享:以下是所有文章合集,大家需要学习哪方面的内容可以参照学习,后续一直都为大家持续更新