西门子S7-200Smart测速产量统计程序:实时记录当班与总生产数据及生产时间参数的MCGS...
西门子生产测速产量统计程序。 可以记录当班生产量和生产总量生产时间参数。 PLC程序是西门子S7-200Smart编写。 触摸屏使用MCGS编写。厂里新上的生产统计系统用了西门子S7-200Smart PLC搭配MCGS触摸屏这组合在中小型产线里挺常见。今天主要聊聊这个测速统计程序的核心逻辑特别是班产切换和实时数据更新这两个头疼的问题。PLC程序里最关键的三个寄存器VB100当班生产量4字节浮点数VD104生产总量4字节浮点数VW200设备运行时间单位分钟生产触发信号接在I0.0端口每次产品经过光电传感器时触发中断。这里用了个带滤波的上升沿检测防止误触发LD I0.0 EU MOVR VD100, VD104 R 1.0, VD100 //当班产量1 R 1.0, VD104 //总产量1这个加法指令特别要注意浮点数的处理新手容易直接用整数运算导致数据溢出。VD100和VD104都配置成Real类型避免产量超32767时出现负数的尴尬情况。班次切换逻辑用了系统时钟做判断。每天8:00和20:00自动清零当班产量配合HR标志位防止重复清零LD SM0.0 TON T37, 600 //10分钟检测间隔 LD T37 M0.0 //触发时钟读取 LD M0.0 RTC VB50 //读取系统时间到VB50开始区域 LDW VB51#8 //小时数判断 AW VB52#0 //分钟数为0时 AN M1.0 //防重复触发 MOVR 0.0, VD100 S M1.0, 1 //置位防重复标志这里T37定时器每10分钟唤醒一次时间检测比起用SM0.5秒脉冲更省资源。要注意西门子S7-200 Smart的RTC指令返回值存放在VB50开始的7个字节里VB51对应的是小时数。西门子生产测速产量统计程序。 可以记录当班生产量和生产总量生产时间参数。 PLC程序是西门子S7-200Smart编写。 触摸屏使用MCGS编写。MCGS触摸屏这边主要做两件事动态显示和手动校准。在运行画面里拖拽数值显示框时地址绑定要注意偏移量-- 当班产量显示框脚本 local current_output get_device(PLC1, 3, 100) current_output current_output * 1.05 -- 补偿系数 set_text(text1, string.format(%.0f, current_output))这个1.05的补偿系数是应对传感器漏检的情况实际值需要根据现场测试调整。更专业的做法是单独做个校准页面用滑动条实时修改补偿参数。数据持久化处理在MCGS里反而比PLC方便直接用内置的存盘组态功能。在系统设置里勾选定时存盘并设置存储周期5分钟存储对象VD100, VD104, VW200存储位置U盘/SD卡这套系统跑了大半年最大收获是发现生产速度的波浪形曲线——上午10点和下午3点总会出现15分钟左右的降速后来排查发现是空压机定时排水导致的。所以又在画面上加了用VW300存当前分钟产量的功能用趋势图控件直接暴露这种周期性波动。维护时最常碰到的问题是触摸屏的数值显示###多半是PLC掉线导致的。建议在窗口的循环脚本里加个心跳检测if get_device_status(PLC1) 0 then set_fill_color(alarm, 0, 255, 0) else set_fill_color(alarm, 255, 0, 0) end最后留个坑设备突然断电时VD104的总产量数据会丢失。虽然加了超级电容保持数据但超过3天没上电还是会清零。稳妥的做法是用MOV指令定期把VD104传到断电保持区VB200开始的区域不过200 Smart的保持区空间有限需要算好地址分配。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2424190.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!