水箱水位温度MCGS嵌入版7.7脚本程序动画仿真 带历史数据报表,实时数据报表,历史曲线,实时曲线。 标价就是卖价
老铁们今天带大家搞个实用的工控小项目——用MCGS嵌入版7.7整一套水箱监控系统。这个项目最骚的是把脚本玩出花来了,实时数据和历史记录直接打包带走,还附赠曲线全家桶。咱先看效果:水箱水位波动的时候,管道动画跟着水流节奏摇摆,温度超标直接弹窗报警,数据报表还能导出Excel搞事情。
先甩个脚本热热身,这是水位控制的灵魂代码:
IF 当前水位 < 下限水位 THEN 进水阀=1 出水阀=0 ELSEIF 当前水位 > 上限水位 THEN 进水阀=0 出水阀=1 ELSE 保持状态 ENDIF这段脚本直接怼在循环策略里跑,IF判断比女朋友翻脸还快。注意这里用了硬件IO映射,阀门状态关联了PLC输出点,实战中记得加个0.5秒延时防止电磁阀抽风。
报表模块才是重头戏,给你们看历史数据怎么存:
!SetHisData("水箱参数",当前时间,当前水位,当前温度)这行代码往SQLite数据库猛塞数据,搭配MCGS自带的报表组件,直接生成带时间戳的CSV文件。有个坑要注意——时间格式必须用"YYYY-MM-DD hh:mm:ss",不然导入Excel会变成乱码你信不信?
实时曲线搞动态刷新才带劲:
Curve1.AddPoint(当前水位) Curve2.AddPoint(当前温度) IF Curve1.PointsCount > 500 THEN Curve1.DeleteFirstPoint() ENDIF这个骚操作保持曲线窗口只显示最近500个点,内存不会爆炸。实测发现X轴时间戳建议用相对时间,比绝对时间显示更直观,毕竟谁也不想看日期挤成一团马赛克。
动画联动才是视觉担当,管道流动效果这么搞:
管道流速 = 进水阀状态 * 30 + 出水阀状态 * (-20) IF 管道流速 > 0 THEN !SetAnimationSpeed("进水管道",管道流速) ELSE !SetAnimationDirection("进水管道",反向) ENDIF这里把阀门开关状态转换成动画速度参数,正负值控制水流方向。实测发现流速系数要根据画面尺寸调整,别整太大不然动画直接起飞。
最后说下报警处理的黑科技:
IF 当前温度 > 85 THEN !Alarm("温度爆表啦!",3) !ExecProgram("蜂鸣器控制.exe") !SaveAlarmLog(当前时间,"高温警报",当前温度) ENDIF三级报警直接弹窗+声音+日志三连击,这个蜂鸣器控制exe是我自己写的上位机程序,用串口给声光报警器发指令。注意报警阈值要做死区处理,别让设备在临界点反复横跳。
这套模板已经跑在三个养殖场的水循环系统里,历史数据能存三年不卡,曲线缩放比德芙还丝滑。需要源码的老铁直接某宝搜"MCGS水箱模板",标价就是实价没有套路——毕竟连注释都给你写成相声了,还要啥自行车?