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

在工控项目里最头疼的就是IO状态监控页面制作,每个按钮指示灯都得手动关联变量。上周调试KTP700触摸屏时突然开窍——做个万能IO显示模板不香吗

西门子触摸屏IO 博途IO, io列表显示 有说明书介绍怎么程序使用 可以更改到西门子任意尺寸的触摸屏上 2个页面显示所有IO状态灯和文本内容 自编的二次开发程序功能块 不用再一个个扣变量,关联变量 节约大量编程时间,提高工作效率 原本几个小时的工作量, 只要30秒,通过复制粘贴就能解决 程序内容很短,通俗简单易懂 每段程序都有注释和解释 程序好理解

先上硬菜,看这段结构体定义:

TYPE IO_Monitor : STRUCT // 每个IO点包含信号灯和文本描述 Lamp_Status : BOOL; // 状态灯变量 IO_Comment : STRING[20]; // 显示文本 END_STRUCT END_TYPE

这个结构体就像打包盒,把每个IO点的显示要素装一起。实际项目里我直接创建了IO_Monitor类型的数组,1000个点也就分分钟的事。

HMI画面上整活的关键在于动态生成:

' 生成IO显示元素的脚本 For i = 0 To 99 Step 1 ' 复制模板元素 CreateDynamicObject "IO_Template", "IO_Element" & i ' 设置X坐标偏移量 SetProperty "IO_Element" & i, "Left", 50 + (i Mod 10)*120 ' 绑定变量 SetTagPrefix "HMI_Tag_", i*2 Next

这个脚本相当于印刷机,原本手动排列的元件变成流水线生产。注意120像素的间距参数,不同尺寸屏改这个数就行,从4寸到22寸屏通吃。

西门子触摸屏IO 博途IO, io列表显示 有说明书介绍怎么程序使用 可以更改到西门子任意尺寸的触摸屏上 2个页面显示所有IO状态灯和文本内容 自编的二次开发程序功能块 不用再一个个扣变量,关联变量 节约大量编程时间,提高工作效率 原本几个小时的工作量, 只要30秒,通过复制粘贴就能解决 程序内容很短,通俗简单易懂 每段程序都有注释和解释 程序好理解

变量关联才是重头戏,看这个取巧的地址计算:

// 计算实际IO地址 #IO_Address := "DB" + INT_TO_STRING(#DB_Number) + ".DBX" + INT_TO_STRING((#IO_Index-1)*2);

通过索引号自动拼装DB块地址,彻底告别手动输入。现场调试时发现个彩蛋——修改DB块编号后,所有关联自动更新,甲方爸爸直呼专业。

做完这个功能块后实测,新建IO监控页面的操作变成:

  1. 复制结构体数组
  2. 粘贴脚本
  3. 调整列数参数

原本密密麻麻的变量表现在变成整齐的二维码阵列,状态异常时红灯带文字闪烁效果比老外图纸上的示意图还直观。

最近把这个模板用在TP2200屏上,200多个IO点铺满两屏刚好。更爽的是维护时改个描述文字,所有相关画面自动同步。项目验收时甲方盯着自动刷新的IO状态看了十分钟,那眼神跟看魔术表演似的。

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

相关文章:

  • 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学习:如何量化你的模型复杂度?
  • 用广义神经网络GRNN实现多特征输入单因变量输出的拟合预测
  • 【小龙虾】OpenClaw 3.8继续炸场!龙虾不睡觉,全球程序员连夜赶工
  • 基于MotorCAD的永磁电机退磁仿真及电流波形自定义探索
  • 车载以太网TC8测试实战:SOME/IP协议在SOA架构下的完整测试流程(含Vector工具链配置)
  • OEE提升15%的机械加工厂的数字化
  • RTKLIB实战:5分钟搞定标准单点定位(SPP)完整流程(附避坑指南)
  • 基于YOLOv8的花卉识别系统【附源码+可远程安装部署】
  • SecureCRT新手必看:10个高效命令让你远程操作飞起(附常用快捷键)
  • FastestDet:超越业界轻量级目标检测算法的五大特性
  • winform PictureBox 显示大图片带垂直滚动条
  • iReport 5.6.0实战:手把手教你用List组件搞定学生名单报表(附避坑指南)
  • 氚云 vs 宜搭:表单控件全对比,哪个更适合你的业务场景?
  • 基于RK3588J的AI检测设备实战解析
  • 为什么你的Ubuntu实时内核编译失败了?PREEMPT_RT补丁常见问题解析