自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(409)
  • 资源 (4)
  • 收藏
  • 关注

原创 Qt Designer的父子部件样式表设置学习

在Qt Designer中新建图像界面,放置两个QWidget,命名为widget_1和widget_2;单独改变了widget_2,但是隶属于widget_2的pushButton_1和pushButton_2并没有改变。需要注意的是,采用这种办法,如果被改变的小部件还有它的子部件,子部件并不跟随被改变的小部件的改变而改变。这里,将隶属于widget_1的类型为QPushButton的所有部件全部定义了新的显示特性。这个样式表的含义为:widget_1中,所有的QWidget都按照指定的样式表显示。

2024-07-27 00:13:29 1514

原创 使用OpenCV与PySide(PyQt)的视觉检测小项目练习

OpenCV与PyQt(或PySide)的联合使用,各取所长

2024-07-07 22:43:09 1408 4

原创 基于QtPy (PySide6) 的PLC-HMI工程实战记录(八)创建适合项目的进度条

3、所有的行程和设置为以米为单位的实数,进度条的value数字为厘米单位的实数,显示值为以米为单位的实数。1、安全色为绿色,危险色为橙色,越界色为红色,随着行程控制点的接近,颜色由安全色向危险色过度。2、炉前减速为橙色。中限停车和前限停车位越界色。用于推焦和装煤的行程指示。

2026-08-29 19:14:29 23

原创 基于QtPy (PySide6) 的PLC-HMI工程实战记录(七)创建适合HMI项目的数字输入/显示类部件

HMI项目的输入/显示类部件,比如一个QSpinBox或者QLineEdit,用于设定电机转速,它的实时更新来自于下位机实体PLC的通信,设置完新的数值后,再把新数值通信传回下位机实体PLC,也就是上位机中常见的“读/写”双向操作。如果只是简单将实体PLC的变量与QSpinBox的设定显示值连接,那么有可能数字还没设完就可能被周期更新的下位数据刷新掉,或者是只设置了一半,半成品的设置值被传递到了下位PLC,这显然不符合工程的实际需求。3、只有按下回车键后,当前的设定值才刷新下位PLC。

2026-08-27 22:08:01 408

原创 基于QtPy (PySide6) 的PLC-HMI工程实战记录(六)继续改进实时动作监控画面类:NowDoForm

实时动作画面代理新增加了控制窗口开关的变量连接以及它将要显示所在的容器窗口。定义了代理之后,所有变量自动连接。

2026-08-26 18:21:56 20

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

进一步的,把每一个画面的now_signal信号绑定之前定义的PLC变量,就可以实现画面按照变量的的更新自动更新。之前在 NowDoForm类中定义了一个信号now_signal。就可以把变量绑定到画面并自动更新。同样的方法,绑定所有的动态画面。画面就会按照变量的分配更新。

2026-08-24 23:21:55 292

原创 基于QtPy (PySide6) 的PLC-HMI工程实战记录(四)组态当前动作的联锁关系画面

由于动作并不多,懒得建自动生成画面的脚本了,手动组态一下画面,并规律命名。

2026-08-24 12:26:37 29

原创 基于QtPy (PySide6) 的PLC-HMI工程实战记录(三)组态主画面

2026-08-22 22:45:35 19

原创 基于QtPy (PySide6) 的PLC-HMI工程实战记录(二)复制和应用PLC模板

本项目是一个小系统,为了简化设计,PLC的上行数据使用了固定周期发送,发送的内容也是固定地址范围的数据。根据需求确定上行数据的地址范围:IB0--IB31,QB0--QB10,DB15的 B0--B81,DB10的B0--B29,总共大约200字节。

2026-08-22 22:31:04 360

原创 基于QtPy (PySide6) 的PLC-HMI工程项目(十五)后续完善和改进:PLC端数据解析的防粘包、残包、废包、拆包

【代码】基于QtPy (PySide6) 的PLC-HMI工程项目(十五)后续完善和改进:PLC端数据解析的防粘包、残包、废包、拆包。

2026-08-22 17:59:00 23

原创 基于QtPy (PySide6) 的PLC-HMI工程项目(十四)后续完善和改进:上位机数据解析的防粘包、残包、废包、拆包

下位将DB1.DBB0--DBB4的字节内容:“11 22 33 44 55”传输到上位,并映射到上位数据池,更新显示。下位将油泵1的压力设定内容:“10.0”传输到上位,并映射到上位数据池,更新显示。

2026-08-17 08:55:42 14

原创 基于socket的 TCP上位机通信内容解析程序

帧头[0x58 0x58] + [有效数据 ,不定数据长度] + 帧尾[0x59 0x59] + [CRC16 2B,大端]由于是TCP通信,不可避免粘包、半包、拆包。帧头 + 有效数据 + 帧尾头(0x。

2026-08-16 15:01:27 259

原创 按照自然数规律对字符串列表排序

如果直接使用sort(),“10”结尾的字符串会排在“2”前面。

2026-08-10 21:55:06 35

原创 基于QtPy (PySide6) 的PLC-HMI工程实战记录(一)创建PLC工程模板项目

这个命名为“AreaVar”的数据类型,包含了数据分区(I/QM/DB)、DB编号、数据起点、数据字节长度等信息,可用来进行各种以字节为单位的块间操作。调用时会自动创建一个背景DB,将其命名为:上位通信_背景DB,并拖入“背景类DB”分组中。这个分组中的DB全部为背景类的DB,无需人工干预和编辑。并且在硬件确定之后不用手动逐个输入组态硬件,连接到已通电的CPU,使用“在线”、“硬件检测”就可以直接把实际的硬件读取到项目中。“添加新的外部文件”、“从源生成块”,这样就把外部的db文件转换为项目中的DB块。

2026-08-10 21:19:14 266

原创 PySide6, 将 QWidget 嵌入 GraphicsView 作为图元显示

self.btn = QPushButton("自定义控件")proxy.setWidget(QPushButton("内嵌按钮"))

2026-08-09 11:23:07 244

原创 Win10 能看到本机但打不开共享完整修复方案

设置→网络和 Internet→WLAN / 以太网→属性→网络配置文件:切换为专用,公用网络默认屏蔽共享访问。切换到【安全】选项卡→编辑→添加→高级→立即查找,选中 Everyone 添加,同样勾选全部允许权限,确定保存。高级→WINS→勾选启用 TCP/IP 上的 NetBIOS,一路确定保存,开启NetBIOS。需要密码则保持开启,客户端输入本机账号密码)置→更新和安全→Windows Defender 防火墙→允许应用通过防火墙。计算机配置→Windows 设置→安全设置→本地策略→安全选项。

2026-07-18 09:39:06 481

原创 基于QtPy (PySide6) 的PLC-HMI工程项目(十三)应用qdarkstyle样式表主题

并在HMI项目UI目录下中创建/styles文件夹,拷贝生成的各个文件。

2026-05-13 15:12:54 78

原创 用HSL颜色系统改造qdarkstyle样式表库

将颜色用hsl值表示,并且升级色彩库,升级以后的色彩库共有15个色系,每个色系的色相值固定,比如红色为0,绿色为120,蓝色240,每个色系的色彩浓度从0%到100%,每个浓度的又包含亮度的从0%到100%,浓度和亮度均以5%递进,这样每个色系有400多个颜色,就有了一个颜色丰富、足够使用的色彩库,而且从色彩名就大致能判断出它的颜色类型、鲜艳程度、明亮程度,无论是做动态或者渐变都很方便。灰色, 红色, 棕色, 橙色, 橙黄, 黄色, 黄绿, 绿色, 青绿, 青色, 靛蓝, 蓝色, 紫色, 品红, 紫红。

2026-05-07 18:13:09 445

原创 PySide6,图形按钮使用系统内置图标

调用名: StandardPixmap.SP_ToolBarHorizontalExtensionButton。调用名: StandardPixmap.SP_ToolBarVerticalExtensionButton。调用名: StandardPixmap.SP_FileDialogContentsView。调用名: StandardPixmap.SP_FileDialogDetailedView。调用名: StandardPixmap.SP_DockWidgetCloseButton。

2026-05-01 11:33:04 523

原创 Qt:创建一套基于HSL颜色体系的颜色库

文件中每个颜色的色彩浓度和亮度每间隔5%创建了一个颜色名,黑白灰色的H(色相)和S(色彩浓度)恒为0,黑白灰颜色名的数字是HSL颜色的"L"(亮度)。其余颜色的数字是"S"(色彩浓度5%-100%)和"L"(亮度5%-95%),比如:红色5_30 = hsl(h=0, s=5%, l=30%)。

2026-04-27 22:22:59 155

原创 Qt的HSL色彩系统

与常见的HSB色彩系统不同,HSL颜色系统有它独特的色彩设置规律,更适合UI工程的界面主题、模式切换、整体亮度调节、CSS 风格配色等应用。看得出,随着s的递增,色彩逐渐浓郁;随着l的递增,亮度逐渐提高;s = 100%(色彩浓度不变),l递增(亮度递增)l = 50%(亮度不变),s递增(色彩浓度递增)根据设计需求选择不同的常量和递变量即可。demo:一个绿色带灯按钮。

2026-04-26 12:20:46 149

原创 基于QtPy (PySide6) 的PLC-HMI工程项目(十二)最后的工作

rsv_area_var "AreaVar" 接收下行报文的DB块。frameHeader1 Byte 帧头字节1。链接: https://pan.baidu.com/s/18SBz4wM2G3Od4hidv6FHmQ 提取码: qwya。frameEnd1 Byte 帧尾字节1。

2026-04-25 17:14:54 382

原创 基于QtPy (PySide6) 的PLC-HMI工程项目(十一)框架的进一步完善:UI的自动周期更新以及下行数据的生成和处理

所有上位机代码见附件。目录结构:"""解析Excel变量表的变量地址,解析出区域、偏移、位:return:"""out = []s = ''# 取出地址文字串中每个“."之前的连续的数字,;

2026-04-21 18:51:32 244

原创 PySide6: moveToThread的周期工作者

moveToThread的周期工作者。

2026-04-20 16:03:04 44

原创 PLC学习笔记:数据存储的大小端模式

以一个16 位整数(Word)0x1234高字节 0x12(0001 0010)低字节 0x34(0011 0100)

2026-04-19 10:06:46 544

原创 基于QtPy (PySide6) 的PLC-HMI工程项目(十)框架初成的阶段总结

DataStore:变量存储区(变量池)变量池位于上位机,是一个连续区域的存储区,最小存取单位是字节。AreaVar:区域变量区域变量:NamedTuplearea:I、Q、M或DB区,DBnum:DB编号,offset:地址偏移,byte_count:字节数,content:数据内容区域变量的作用是携带区域信息,用来成块读写变量池中和PLC的连续数据。所有的通信读写均通过区域变量进行。UiVari:UI变量。

2026-04-17 17:52:47 391

原创 基于QtPy (PySide6) 的PLC-HMI工程项目(九)在上位机中创建变量系统

将其保存在项目根目录,命名为:PLC1Tags.xlsx。将其导出为excel文件。在excel表中利用。

2026-04-16 12:07:19 68

原创 基于QtPy (PySide6) 的PLC-HMI工程项目(八)在上位机中解析上行报文

当接收到上行报文后首先对帧头和帧尾进行校验,如果校验不过就舍弃帧数据。然后经过CRC校验,确保所有数据无误,将帧数据保存。

2026-04-15 18:21:45 99

原创 基于QtPy (PySide6) 的PLC-HMI工程项目(七)上位机通信部分的初步建设:socket客户端

signal_start = Signal() # 开始运行的信号_signal_stop = Signal() # 停止信号_signal_run_now = Signal() # 打破定时器周期立即运行一次""":param target: 需要在子线程中运行的目标函数:param looping: 是周期运行还是一次性任务:param loop_interval: 周期运行的间隙时间:param args: 附带参数"""

2026-04-14 22:19:42 89

原创 基于QtPy (PySide6) 的PLC-HMI工程项目(六)创建通信块和生成上行报文

destArea "AreaVar" 目标区域,存放上行报文的字节。srcAreaVars Array[*] of "AreaVar" 源数据区域,支持多区域输入。的数据格式为:Array[0..5] of "AreaVar"上行报文发送的数据就是位于这些区域的连续字节块。创建FC,命名为:组态上行报文。

2026-04-12 18:21:21 381

原创 基于QtPy (PySide6) 的PLC-HMI工程项目(五)编写控制功能的程序

本次项目以两个油泵的控制为例。至此,控制功能的程序编写完毕。

2026-04-11 20:41:06 69

原创 基于QtPy (PySide6) 的PLC-HMI工程项目(四)为PLC创建开放式TCP连接

需要注意的是:在创建连接的时候,如果没有客户端连接到PLC,TCON的“BUSY”会一直输出True,直到有客户端连接"DONE"才会置位。调用时会自动创建一个背景DB,将其命名为:上位通信_背景DB。输入实例名称和网络地址,点“start”。会自动创建一个DB块:TCON_DB。这样就将PLC创建为TCP主站。伙伴:未指定、主动建立连接。

2026-04-11 12:00:13 283

原创 基于QtPy (PySide6) 的PLC-HMI工程项目(三)PLC上行数据的准备

本次的通信对象是西门子S7-1500。

2026-04-10 09:42:20 633

原创 S7-1500学习笔记:Array数据类型

创建 ARRAY 变量时,将在方括号内定义小标的限值,并在关键字“of”之后定义数据类型。ARRAY 限值可使用。ARRAY 数据类型的变量表示一个由多个数目固定且数据类型相同元素组成的数据结构。[-2147483648..2147483647] of <数据类型>下限值必须小于或等于上限值。[-32768..32767] of <数据类型>ARRAY[n],例:Array_1[0, 3]ARRAY[下限..上限] of <数据类型>维度,各维度的限值使用逗号进行分隔。除 ARRAY 之外的所有数据类型。

2026-04-05 22:14:12 127

原创 S7-1500学习笔记:用户自定义数据类型(UDT)

项目管理器--PLC--PLC数据类型--添加新数据类型在打开的窗口内定义UDT的变量成员:本例,将UDT 命名为“AreaVar”,由Arrary、DBNum、Offset、byteCount4个变量成员组成。

2026-04-05 17:51:53 978

原创 S7-1500PLC学习笔记:MOVE_BLK、MOVE_BLK_VARIANT、BLKMOV的区别

在 S7‑1500 里,是三种最常用的块移动指令,但定位、用法、限制完全不同。

2026-04-03 17:48:20 900

原创 西门子S7-1500PLC的PEEK/POKE学习笔记

数据类型匹配,比如:PEEK_WORD 对应 2 字节,POKE_DWORD 对应 4 字节,类型错位会导致数据错乱。DB 属性 → 取消 优化的块访问,否则地址不固定,PEEK/POKE 无法定位。16#84 DB 数据块(Data Block)访问 DB 区时:填 DB 号(如 10 → DB10)IO 映射:PI/PQ 直接读写(1500 专属)Area 写错(如用 84 代替 16#84)访问 I/Q/M/PI/PQ 时:必须填 0。

2026-04-03 17:01:52 664

原创 基于QtPy (PySide6) 的PLC-HMI工程项目(二)系统规划

曾多年使用wincc等专业软件进行组态,对HMI(人机交互界面)项目有一定的了解。与前面做过的AI项目demo不同的是,PLC的HMI项目是基于PLC通信的,大部分的操作和更新都是基于PLC变量的读写。

2026-04-01 10:18:24 368

原创 基于QtPy (PySide6) 的PLC-HMI工程项目(一)使用自定义socket协议的基本方法

DEMO展示了创建socket连接,以及断线重连、数据收发、心跳保活的基本方法,同时展示了从自定义格式的数据包中解析出指定类型数据的方法。

2026-03-31 17:26:57 92

原创 使用@property将类方法包装为属性

property→ 定义读取方法(getter),并伪装成属性@属性名.setter→ 定义修改方法(加校验 / 限制)好处:代码简洁、安全可控、符合 Python 优雅的语法风格名字必须一样只有 @property 时,属性是只读的。

2026-03-30 21:00:52 173

基于深度学习的视觉检测小项目(十一) 动态样式表的实践

基于深度学习的视觉检测小项目(十一) 动态样式表的实践

2025-01-12

pytorch基础知识和函数的学习:卷积的基本理解

pytorch基础知识和函数的学习:卷积的基本理解

2024-08-25

pytorh基础知识和函数的学习:图像文件的Tensor

pytorh基础知识和函数的学习:图像文件的Tensor

2024-08-24

Qt Designer,仿作一个ui界面的练习(四):编写代码文章的资源

Qt Designer,仿作一个ui界面的练习(四):编写代码文章的资源

2024-07-30

PySide(PyQt)使用QPropertyAnimation制作动态界面

PySide(PyQt)使用QPropertyAnimation制作动态界面

2024-07-25

PySide(PyQt),自定义图标按钮的资源

PySide(PyQt),自定义图标按钮的资源

2024-07-23

Pyside使用Qt Designer和uic工具的基本框架的demo

Pyside使用Qt Designer和uic工具的基本框架的demo

2024-07-17

pyside6的特殊按钮(互锁、自锁、独占模式)文章的ui资源

pyside6的特殊按钮(互锁、自锁、独占模式)文章的ui资源

2024-06-20

pyside6的特殊按钮(互锁、自锁、独占模式)文章的ui资源

pyside6的特殊按钮(互锁、自锁、独占模式)文章的ui资源

2024-06-19

pyside6自定义部件库和软件框架进度记录v2

pyside6自定义部件库和软件框架进度记录v2

2024-04-16

pyside6自定义部件库和软件框架进度记录

pyside6自定义部件库和软件框架进度记录的资源

2024-04-16

pyside6自定义部件库和软件框架进度记录v1

pyside6自定义部件库和软件框架进度记录v1

2024-04-11

pyqt5的组合式部件制作(四)的资源

pyqt5的组合式部件制作(四)的资源

2023-11-22

pyqt5的组合式部件制作(四)资源

pyqt5的组合式部件制作(四)资源

2023-11-22

pyqt5的组合式部件制作(二)

pyqt5的组合式部件制作(二)

2023-11-08

pyqt5的组合式部件制作(一)阶段资源

pyqt5的组合式部件制作(一)阶段资源

2023-11-07

我用PYQT5做的第一个实用的上位机项目(五)

我用PYQT5做的第一个实用的上位机项目(五)

2023-10-09

我用PYQT5做的第一个实用的上位机项目(四)配套资源

我用PYQT5做的第一个实用的上位机项目(四)配套资源

2023-10-04

我用PYQT5做的第一个实用的上位机项目(三)

我用PYQT5做的第一个实用的上位机项目(三)的资源文件

2023-10-03

我用PYQT5做的第一个实用的上位机项目(二)资源

我用PYQT5做的第一个实用的上位机项目(二)资源

2023-09-28

基于QtPy (PySide6) 的PLC-HMI工程实战记录(六)当前的PLC和UI进度

基于QtPy (PySide6) 的PLC-HMI工程实战记录(六)继续改进实时动作监控画面类:NowDoForm

2026-08-26

基于QtPy (PySide6) 的PLC-HMI工程实战记录(六)继续改进实时动作监控画面类:NowDoForm

基于QtPy (PySide6) 的PLC-HMI工程实战记录(六)继续改进实时动作监控画面类:NowDoForm

2026-08-26

基于QtPy (PySide6) 的PLC-HMI工程实战记录(六)继续改进实时动作监控画面类:NowDoForm

基于QtPy (PySide6) 的PLC-HMI工程实战记录(六)继续改进实时动作监控画面类:NowDoForm

2026-08-26

基于QtPy (PySide6) 的PLC-HMI工程实战记录(三)组态主画面

基于QtPy (PySide6) 的PLC-HMI工程实战记录(三)组态主画面

2026-08-22

基于QtPy (PySide6) 的PLC-HMI工程实战记录(二)复制和应用PLC模板

基于QtPy (PySide6) 的PLC-HMI工程实战记录(二)复制和应用PLC模板

2026-08-22

基于QtPy (PySide6) 的PLC-HMI工程实战记录(一)创建PLC工程模板项目

基于QtPy (PySide6) 的PLC-HMI工程实战记录(一)创建PLC工程模板项目

2026-08-22

基于QtPy (PySide6) 的PLC-HMI工程项目(十五)后续完善和改进:PLC端数据解析的防粘包、残包、废包、拆包

基于QtPy (PySide6) 的PLC-HMI工程项目(十五)后续完善和改进:PLC端数据解析的防粘包、残包、废包、拆包

2026-08-22

基于QtPy (PySide6) 的PLC-HMI工程项目(十四)后续完善和改进:上位机数据解析的防粘包、残包、废包、拆包

基于QtPy (PySide6) 的PLC-HMI工程项目(十四)后续完善和改进:上位机数据解析的防粘包、残包、废包、拆包

2026-08-17

基于QtPy (PySide6) 的PLC-HMI工程实战记录(四)组态当前动作的联锁关系画面

基于QtPy (PySide6) 的PLC-HMI工程实战记录(四)组态当前动作的联锁关系画面

2026-08-10

用HSL颜色系统改造qdarkstyle样式表库

用HSL颜色系统改造qdarkstyle样式表库

2026-05-13

基于QtPy (PySide6) 的PLC-HMI工程项目(十二)最后的工作

基于QtPy (PySide6) 的PLC-HMI工程项目(十二)最后的工作

2026-04-25

基于QtPy (PySide6) 的PLC-HMI工程项目(十一)框架的进一步完善:UI的自动周期更新以及下行数据的生成和处理

基于QtPy (PySide6) 的PLC-HMI工程项目(十一)框架的进一步完善:UI的自动周期更新以及下行数据的生成和处理

2026-04-21

海康Mv系列相机SDK与Qt(PySide6)框架融合与改进阶段2

海康Mv系列相机SDK与Qt(PySide6)框架融合与改进阶段2

2026-03-11

海康Mv系列相机SDK与Qt(PySide6)框架融合与改进阶段1

海康Mv系列相机SDK与Qt(PySide6)框架融合与改进阶段1

2026-03-09

PySide6从0开始学习的笔记(二十) qdarkstyle的深入应用的资源

微调过的qdarkstyle项目,使其支持custom主题和在PySide6下支持运行

2026-01-02

PySide6从0开始学习的笔记(十四)创建一个UI项目的资源

PySide6从0开始学习的笔记(十四)创建一个UI项目的资源

2025-12-22

自用pyside6项目模板的资源

自用pyside6项目模板的资源

2025-12-12

CnOCR训练特殊字体

CnOCR训练特殊字体

2025-09-21

一个基本的pyside6项目模板demo

一个基本的pyside6项目模板demo

2025-02-23

基于深度学习的视觉检测小项目(十七) 用户管理后台的编程

用户管理阶段的资源

2025-02-03

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除