当前位置: 首页 > news >正文

威纶通MT8071iE触摸屏宏指令程序:清晰注释下的开机页面与产量统计功能

威纶通触摸屏宏指令程序 威纶通触摸屏宏指令程序,MT8071iE触摸屏 开机页面,小时产量,日产量统计都是利用宏指令程序来控制,宏指令注释清晰,方便理解程序。

凌晨三点半的车间里,流水线机械臂还在不知疲倦地挥舞。老王盯着MT8071iE触摸屏上跳动的产量数字,手里攥着半凉的美式咖啡——这已经是今天调试的第七版产量统计程序了。威纶通的宏指令就像车间老师傅的手艺活儿,看似简单却暗藏玄机。

开机画面里的动态数据展示最考验基本功。这里用宏指令的Initialize事件最合适不过,每次上电自动执行。看这段灵魂代码:

macro_command main() // 开机清空临时产量 SetData(0, "Local HMI", LW, 100, 1) // LW100小时产量暂存 SetData(0, "Local HMI", LW, 101, 1) // LW101日产量累计 SetData(GetSystemTime(SECOND), "Local HMI", LW, 102, 1) // LW102记录开机秒数 end macro_command

SetData函数在这里玩了个小花招,LW102存的是开机时刻的秒数。为什么要存这个?后面每小时自动统计产量时,得用这个时间戳来校准统计周期,避免整点交接时的产量漏算。

说到小时产量统计,关键要解决时间窗口的问题。流水线可不会等到整点才开工,得用相对时间计算。在循环执行宏里埋个定时炸弹:

macro_command main() short current_sec, delta GetData(current_sec, "Local HMI", LW, 102, 1) delta = GetSystemTime(SECOND) - current_sec // 每3600秒重置计数器 if delta >= 3600 then SetData(0, "Local HMI", LW, 100, 1) SetData(GetSystemTime(SECOND), "Local HMI", LW, 102, 1) // 日产量累加要在零点判断,这里只重置小时 endif // 实时产量模拟,实际接PLC信号 SetData(GetData("Local HMI", LW, 100) + 1, "Local HMI", LW, 100, 1) end macro_command

这个delta变量是个暗桩,表面看是计算时间差,实际上在应对触摸屏可能发生的时区变更或手动调时。加1操作模拟产线计数,实战中要接PLC的脉冲信号,这里用死循环自增是为了演示方便。

威纶通触摸屏宏指令程序 威纶通触摸屏宏指令程序,MT8071iE触摸屏 开机页面,小时产量,日产量统计都是利用宏指令程序来控制,宏指令注释清晰,方便理解程序。

日产量统计最怕断电丢数据,LW区掉电不保存的特性得防着。在工程中设置LB50作为日结完成标志位,配合每日零点触发的宏:

macro_command main() bool day_clear_flag GetData(day_clear_flag, "Local HMI", LB, 50, 1) if GetSystemTime(HOUR) == 0 && day_clear_flag == false then SetData(true, "Local HMI", LB, 50, 1) SetData(0, "Local HMI", LW, 101, 1) elseif GetSystemTime(HOUR) != 0 then SetData(false, "Local HMI", LB, 50, 1) endif // 持续累加日产量 SetData(GetData("Local HMI", LW, 101) + GetData("Local HMI", LW, 100), "Local HMI", LW, 101, 1) end macro_command

这里埋了个状态锁LB50,防止零点时反复清零。注意累加操作的位置,如果在清零前执行,会导致当第一个小时产量被吞掉。实战中在这个宏里最好加入产量突变报警,防止设备故障导致产量数据异常跳变。

调试这种宏指令就像老中医把脉,得盯着变量监控表看数据流动。某次发现日产量统计总是少1小时产量,最后查出来是LW101的累加时机不对——应该在小时产量清零前就把数据搬运过去。于是代码调整成先累加再清零,就像流水线上的装配顺序,差一个工位整个节奏就乱套。

触摸屏的宏指令说到底是在和时间打交道,特别是涉及跨日统计时,要考虑闰秒、夏令时这些妖蛾子。有次客户工厂出国参展,设备时区没调,导致产量统计全乱。后来在初始化宏里强制设置时区才解决,这都是血泪教训。

(代码中的LW地址可根据实际工程调整,注意避免与HMI元件地址冲突。调试时善用变量写入触发功能,比单步调试更高效)

http://www.jsqmd.com/news/459322/

相关文章:

  • OpenClaw 本地部署教程(Windows)| GitHub 爆火 AI Agent 框架安装指南
  • Android 蓝牙连接不稳定怎么解决?BLE 稳定性架构设计(上篇)
  • Unity Scroll View内容轮播实现
  • 探索STM32 Modbus RTU 主从机源码及其实践
  • 探索雷塞HBS86H 86闭环电机驱动器方案宝藏
  • 数据库系统工程师-操作系统 I/O 管理:数据库性能优化的底层核心
  • 基于YOLOv8的人脸表情识别系统【附源码】
  • 探索Potrace算法:位图矢量化的奇妙之旅
  • 一个创业老兵关于四个终极问题的二十年纪实
  • HTML_段落与换行
  • 微网综合能源优化调度代码合集:涵盖多种智能算法与实战应用场景
  • 负荷预测:布谷鸟优化的LSTM模型及对比分析
  • LazyCut
  • 在工控项目里最头疼的就是IO状态监控页面制作,每个按钮指示灯都得手动关联变量。上周调试KTP700触摸屏时突然开窍——做个万能IO显示模板不香吗
  • MATLAB P文件转码工具:将P文件转换为M文件
  • 发电机定子回路故障Simulink单相电流纵联差动保护仿真模型及动作电流波形分析
  • 基于FPGA的FIR滤波器设计:从MATLAB参数设计到FPGA实现及验证
  • 鸿蒙中 系统语言和区域的获取与监听
  • 计算机毕业设计springboot单亲家庭帮扶管理系统 基于SpringBoot的单身父母家庭综合支持与服务系统 特殊结构家庭社会救助与资源对接数字化平台
  • Pscad仿真-三机九节点系统,储能替换一台同步机,对比是否加入调频策略 三机系统改成50hz
  • Adobe Photoshop
  • SpringBoot3快速集成SMS4J,10分钟搞定短信+OA双渠道消息发送
  • 02计算机组成原理-流水线冒险(上)
  • 06.Python 中数字:整数、浮点数完全指南
  • 新手避坑指南:惯性器件参数表里的‘零偏稳定性‘可能骗了你
  • 电力负荷聚类分析:从数据到典型场景
  • 基于PFC6.0的单轴拉伸实验:二维与三维探索及声发射振铃计数解析
  • 锂电池SOC估算:EKF估计SOC仿真与扩展卡尔曼滤波
  • 基于YOLOv8的钢材表面缺陷检测系统【附源码+可远程安装部署】
  • VC维与PAC学习:如何量化你的模型复杂度?