基于QtPy (PySide6) 的PLC-HMI工程实战记录(五)为当前动作画面的信号连接变量

之前在 NowDoForm类中定义了一个信号now_signal

这个信号是一个固定格式的列表,内容固定为:

\[当前动作的工作状态,限位0,限位1...,\[节点0_0, 节点0_1,...,节点1_0, 节点1_1,...,...节点n_0, 节点n_1,...]

以"炉门右移"画面为例:

当将这个画面的now_signal信号emit(\[True,False,True,\[True]]),信号值与画面的映射关系如下:

画面就会按照变量的分配更新。

进一步的,把每一个画面的now_signal信号绑定之前定义的PLC变量,就可以实现画面按照变量的的更新自动更新。

以"炉门右移"画面为例:

python 复制代码
# UI管理器
um = UiManager()   
# 画面的now_signal信号绑定
um.bond([变量表.Q炉门平移右移.valueChanged, 变量表.限炉门左.valueChanged, 变量表.限炉门右.valueChanged, 变量表.限门锁闭左开.valueChanged],
        lambda :proxy_DoorRight.widget.now_signal.emit([[变量表.Q炉门平移右移],[变量表.限炉门左,变量表.限炉门右],[[变量表.限门锁闭左开]]]))

就可以把变量绑定到画面,当变量发生变化后自动更新画面。

同样的方法,绑定变量到所有的动态画面。

相关推荐
名字还没想好☜1 小时前
Java 21 switch 模式匹配实战:sealed 接口 + record 替代 if-instanceof 链
java·人工智能·后端·python·spring
摇滚侠1 小时前
《SpringBoot 3:入门与应用实战》第 6 章 Spring Boot 最佳实践 阅读笔记 10
java·spring boot·笔记
何以解忧,唯有..1 小时前
Python 异常处理完全指南:从基础到高级实践
开发语言·前端·python
啦啦啦啦啦zzzz1 小时前
时间轮定时器
linux·服务器·网络·c++·定时器
云贝教育-郑老师1 小时前
Oracle 块清除(Block Cleanout):commit 之后,数据块里的“战场“谁来打扫?
数据库·学习·oracle
ITyunwei09871 小时前
从 ITIL 视角量化-第三集:工单系统如何成为 ITSM 治理抓手?架构+量化
运维·网络·企业微信
DLYSB_1 小时前
让 PLC“开口说话”:基于 Modbus TCP 的声光语音告警设计与 Python 调试
python·网络协议·tcp/ip·报警灯
今日热点1 小时前
微信小程序主体变更公证全流程实操解析:场景条件、材料规范、驳回避坑与Python校验脚本实现
python·微信小程序·小程序
O。O蛋黄酥啊1 小时前
GraphRAG 和 LightRAG 详解与对比
人工智能·python·算法·rag·graphrag·lightrag