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

威伦通HMI变址

在威纶通触摸屏(使用 EBPro 软件)中,要实现通过“指针”来映射和切换多个窗口里的数据,核心是利用威纶通的索引寄存器(Index Register)配合间接窗口(Indirect Window)或PLC控制功能。

这相当于给数据地址装上了一个“导航指针”,只需改变指针的值,同一个显示元件就能动态地读取或写入不同窗口/PLC地址的数据。

以下是具体的实现步骤:

第一步:规划并建立窗口

  建立子窗口:创建你需要切换的多个子窗口(例如窗口 10、11、12),并在这些窗口中放置你要显示的数据元件(例如数值显示、按钮等)。

  建立主窗口:创建一个主窗口(例如窗口 1),用于承载动态显示区域。

第二步:在主窗口中添加“间接窗口”

  在主窗口中,我们将使用一个“间接窗口”来动态加载上面的子窗口。

  点击菜单栏的 【元件】​ -> 【嵌入窗口】​ -> 【间接窗口】。

  在属性设置中,设定一个控制寄存器,比如 LW-500。

  设定一个显示区域大小。

  当 LW-500的值等于 10 时,系统就会在这个区域自动加载并显示窗口 10 的内容。

image

 

第三步:使用“索引寄存器”作为数据指针

  威纶通内置了 32 个索引寄存器(LW-9200 ~ LW.9215 为 16位,LW.9230 ~ LW.9260 为 32位),这就是我们要找的“指针”。

  假设你在子窗口 10​ 中有一个数值显示元件,关联的是 HMI的数据寄存器 LW-0。

  选中该元件,点击属性中的 【设置】​ 按钮(或 advanced 选项)。

  勾选 【索引寄存器】,并在下拉框中选择一个空的索引寄存器,比如 IDX 0 (对应 LW-9200)。

  此时,该元件的实际读取地址变成了  LW-0 + LW-9200。

image

 

第四步:编写宏指令同步指针与窗口

为了让“指针”随着窗口的切换而自动映射到正确的数据,我们需要写一个简短的宏指令。

在菜单栏点击 【工具】​ -> 【宏指令】,新建一个宏。

输入以下代码,并且设定周期运行:

macro_command main()
short nCurrentValue = 0
short nOffset = 0// 1. 获取 LW-500 的数据 (替换了原来获取窗口号的代码)
GetData(nCurrentValue, "Local HMI", LW, 500, 1) // 2. 根据 LW-500 的值计算指针偏移量
// 假设 LW-500 = 10 时,对应数据偏移为 0 (比如 D0)
// 假设 LW-500 = 11 时,对应数据偏移为 100 (比如 D100)
// 假设 LW-500 = 12 时,对应数据偏移为 200 (比如 D200)
if nCurrentValue == 10 thennOffset = 0
else if nCurrentValue == 11 thennOffset = 10
else if nCurrentValue == 12 thennOffset = 20
end if// 3. 将计算好的偏移量写入索引寄存器 (LW-9200 对应 IDX 0)
SetData(nOffset, "Local HMI", LW, 9200, 1)
end macro_command

下面是10号主界面元件显示:

image

 

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

相关文章:

  • CIDR.xyz:网络工程师必备的在线CIDR计算与API工具
  • Vue.js二维码扫描解决方案:vue-qrcode-reader深度技术解析
  • RK3568开发笔记(十二):基于buildroot与ffmpeg的RTSP流媒体播放器开发与性能调优实践
  • 通过 Hermes Agent 配置 Taotoken 自定义模型提供方
  • Go语言并发编程:Goroutine与Channel深度解析
  • 广东成人学历提升避坑全攻略:报名后没人管怎么办?成考、国开、自考节点提醒与正规机构选择 - 优选机构推荐
  • 车载网络测试演进:从CAN总线到TSN与SOA的实战解析
  • 微信数据解密终极指南:5分钟掌握WechatDecrypt完整教程
  • 告别Cityscapes:手把手教你将DDRNet迁移到自定义数据集(以细胞分割为例)
  • 告别单一K型热电偶:用MAX31856和STM32F103实现多类型热电偶测温(附完整代码)
  • 手把手教你调试STM32F103的UART4 DMA:从CubeMX配置到逻辑分析仪抓包分析
  • ISAC波束成形优化:通信与感知协同设计
  • 免费在线化学编辑器Ketcher:5分钟学会专业分子绘图
  • 四步法快速诊断与修复AKShare金融数据接口的数据异常问题
  • 分享一个实验性的 DAG 流程审计 Skill
  • STM32G030F6P6驱动0.96寸TFT彩屏(ST7735S)保姆级教程:从CubeIDE配置到显示字符
  • STM32F103的PD0和PD1引脚除了当晶振,还能这么玩?一个GPIO重映射的实战案例解析
  • 2026年免费去图片水印App排行榜:一键去水印推荐工具大盘点
  • Apple Silicon Mac原生Linux游戏体验:Asahi Linux驱动突破与实战指南
  • 为防数据泄露!教你拆除2024款RAV4混动汽车调制解调器和GPS
  • 明日方舟游戏资源库:2000+高清素材的完整获取与应用指南
  • 当AI的键值记忆遇上大脑:原来我们和AI共享同一套记忆逻辑
  • 别再乱发AT指令了!SIM7600CE模块短信收发实战避坑指南(附STM32代码片段)
  • Python模糊匹配与模式匹配实战:thefuzz与fnmatch模块详解
  • 易服客工作室:谷歌算法更新与排名因素综合指南
  • 如何让GPT-3开口说话?揭秘微调技巧,打造你的专属AI模型!
  • 2026 最稳高薪副业 + 主业赛道,网络安全零基础系统学习大纲,实战项目 + 证书考取 + 求职面试一站式教程
  • Matlab S-Function Builder避坑指南:从‘pointer value’报错到成功生成DSP代码
  • ROS2实战:在Ubuntu 22.04上配置思岚A2激光雷达与Humble环境
  • OpenCore Legacy Patcher终极指南:让老Mac焕发新生的4个简单步骤