佳腾微丝包装
Go to file
2025-07-15 17:01:09 +08:00
apis add: 新增一键满托功能 2025-07-14 15:44:16 +08:00
camera feat: 更新相机控制库加载逻辑 2025-06-28 13:02:34 +08:00
config feat: 更新README文档,增加系统架构和功能描述;在电力监控模块中新增电力消耗统计功能,并在主窗口中实现电力数据的实时更新;修改配置文件以禁用电力自动启动 2025-07-15 17:01:09 +08:00
dao feat: 更新README文档,增加系统架构和功能描述;在电力监控模块中新增电力消耗统计功能,并在主窗口中实现电力数据的实时更新;修改配置文件以禁用电力自动启动 2025-07-15 17:01:09 +08:00
db feat: 更新README文档,增加系统架构和功能描述;在电力监控模块中新增电力消耗统计功能,并在主窗口中实现电力数据的实时更新;修改配置文件以禁用电力自动启动 2025-07-15 17:01:09 +08:00
tests feat:提交一下关于线径获取和相机回显的代码 2025-07-07 15:33:56 +08:00
ui feat: 更新InspectionDAO以支持更多字段,重构主窗口UI以使用统一字段映射,优化信息表格更新逻辑 2025-07-15 16:40:31 +08:00
utils feat: 更新README文档,增加系统架构和功能描述;在电力监控模块中新增电力消耗统计功能,并在主窗口中实现电力数据的实时更新;修改配置文件以禁用电力自动启动 2025-07-15 17:01:09 +08:00
widgets feat: 更新README文档,增加系统架构和功能描述;在电力监控模块中新增电力消耗统计功能,并在主窗口中实现电力数据的实时更新;修改配置文件以禁用电力自动启动 2025-07-15 17:01:09 +08:00
.gitignore 删除__pycache__文件夹并更新.gitignore以忽略这些目录 2025-06-16 09:10:36 +08:00
app_config.json feat:提交一下关于线径获取和相机回显的代码 2025-07-07 15:33:56 +08:00
from pymodbus.py add: 新增一键满托功能 2025-07-14 15:44:16 +08:00
main.py feat: 解决 sql 游标循环调用问题 2025-07-01 15:32:40 +08:00
modbus_server.py 添加托盘类型配置表和相关UI功能,更新主窗口以支持托盘类型选择,增强设置界面以管理托盘类型,修改配置文件以包含Modbus设置。 2025-06-10 16:13:22 +08:00
README.md feat: 更新README文档,增加系统架构和功能描述;在电力监控模块中新增电力消耗统计功能,并在主窗口中实现电力数据的实时更新;修改配置文件以禁用电力自动启动 2025-07-15 17:01:09 +08:00
requirements.txt feat:提交一下关于线径获取和相机回显的代码 2025-07-07 15:33:56 +08:00
test_keyboard.py 更新配置文件以支持串口功能,修改主窗口以初始化串口管理器并处理设置变更 2025-06-12 17:29:35 +08:00

腾智微丝产线包装系统

项目概述

腾智微丝产线包装系统是一个基于PySide6Qt for Python开发的工业自动化控制系统用于管理和监控微丝产线的包装过程。该系统集成了相机监控、称重、条码扫描、PLC通信等功能为微丝产品的质量控制与包装提供全面的解决方案。

系统架构

系统采用MVC模型-视图-控制器)架构,并集成了多种工业通信协议:

  1. 模型层Model

    • 采用DAO数据访问对象模式访问数据库
    • 支持多种数据库SQLite、PostgreSQL、MySQL
    • 核心数据表包括用户表、检验配置表、检验数据表、电力消耗表、托盘类型表等
  2. 视图层View

    • 基于PySide6构建UI界面
    • 界面包括登录界面、主窗口、设置界面、相机配置界面、检验设置等
    • 支持多语言界面(中文简体为主)
  3. 控制器层Controller

    • 主要控制逻辑在widgets目录下实现
    • 使用Qt信号槽机制进行组件间通信
    • 采用单例模式管理全局资源和服务
  4. 工具层Utils

    • 配置加载器config_loader.py
    • 本地图像播放器local_image_player.py
    • 串口管理器serial_manager.py
    • Modbus通信工具modbus_utils.py和modbus_monitor.py
    • 电力监控electricity_monitor.py
    • 键盘监听器keyboard_listener.py
    • 数据库工具sql_utils.py
    • 检验配置管理器inspection_config_manager.py
  5. 硬件集成

    • 相机子系统基于海康威视SDK集成camera目录
    • 串口通信:支持多种设备(称重设备、扫描器等)
    • Modbus通信与PLC设备通信
    • 本地图像模式:支持离线使用本地图像序列

技术栈

  1. 前端技术

    • PySide6Qt for Python用于GUI开发
    • Qt样式表(QSS)用于界面美化
  2. 后端技术

    • Python 3.7+
    • 支持多种数据库SQLite、PostgreSQL、MySQL
    • 多线程处理模型
    • 进程间通信
  3. 通信技术

    • Modbus TCP协议与PLC设备通信
    • 串口通信RS-232/485协议
    • HTTP RESTful APIAPI模式
  4. 设计模式

    • 单例模式ConfigLoader、ElectricityMonitor等
    • DAO模式数据访问层
    • 观察者模式基于Qt信号槽
    • 工厂模式(数据库连接)
    • 策略模式(不同通信协议的实现)

代码结构

  1. 主要目录

    • main.py:程序入口,初始化应用
    • widgets/:窗口控制器类(包含主窗口、设置窗口、相机窗口等)
    • ui/UI定义类使用PySide6的界面描述
    • utils/工具类配置、串口、Modbus、电力监控等
    • dao/:数据访问对象(用户、检验、电力数据等)
    • db/:数据库文件和工具
    • config/:配置文件目录
    • logs/:日志文件存储目录
    • camera/相机模块和SDK集成
    • apis/API接口定义用于接口模式
    • inspection/:检验相关业务逻辑
  2. 关键组件

    • 主窗口widgets/main_window.py):系统核心界面,集成所有功能
    • 相机管理器widgets/camera_manager.py):管理相机设备连接与图像获取
    • 串口管理器utils/serial_manager.py):管理多个串口设备连接
    • Modbus工具utils/modbus_utils.pyModbus协议通信
    • 电力监控utils/electricity_monitor.py):监控电力消耗
    • 检验DAOdao/inspection_dao.py):处理检验数据存储与检索
    • 本地图像播放器utils/local_image_player.py):模拟相机图像源

系统特点与功能

  1. 运行模式

    • 单机模式standalone完整独立系统
    • API模式api作为其他系统的接口组件运行
    • 开发/测试模式:支持模拟器和测试工具
  2. 本地图像模式

    • 支持从本地图像序列模拟相机画面
    • 可配置播放速率、循环模式
    • 支持多种图像格式JPG、PNG、BMP等
  3. 相机管理

    • 支持海康威视相机设备
    • 相机参数配置(曝光、增益、帧率等)
    • 实时图像显示和处理
  4. 通信功能

    • Modbus通信支持读写PLC寄存器
    • 串口通信:支持多种设备协议(称重设备、扫描器等)
    • 键盘监听:支持扫码枪等输入设备
  5. 检验管理

    • 检验配置管理
    • 检验数据记录和分析
    • 检验报告生成
  6. 电力监控

    • 定时记录电力消耗数据
    • 电力数据分析和报表
  7. 安全与用户管理

    • 用户认证系统
    • 操作日志记录
    • 系统异常处理和恢复
  8. 日志系统

    • 多级日志记录
    • 自动日志轮换
    • 异常信息捕获与记录

安装与运行

系统要求

  • Python 3.7+
  • PySide6 6.2.0+
  • 相关依赖库见requirements.txt
  • 支持Windows、macOS、Linux操作系统

安装步骤

  1. 安装依赖:

    pip install -r requirements.txt
    
  2. 配置应用:

    • 配置文件位于config/app_config.json
    • 默认使用SQLite数据库位于db/jtDB.db
    • 可配置数据库连接、相机参数、串口设置等
  3. 运行应用:

    python main.py
    

配置说明

  1. 应用配置

    "app": {
        "name": "腾智微丝产线包装系统",
        "version": "1.0.0",
        "features": {
            "enable_serial_ports": true,
            "enable_keyboard_listener": false,
            "enable_camera": false
        },
        "mode": "api"  // 或 "standalone"
    }
    
  2. 数据库配置

    "database": {
        "default": "sqlite",
        "sources": {
            "sqlite": {
                "path": "db/jtDB.db",
                "description": "默认SQLite数据库"
            },
            "postgresql": {
                "host": "localhost",
                "port": "5432",
                "user": "postgres",
                "password": "",
                "name": "jtDB"
            }
        }
    }
    
  3. 相机配置

    "camera": {
        "enabled": false,
        "default_exposure": 20000,
        "default_gain": 10,
        "default_framerate": 30,
        "local_mode": {
            "enabled": true,
            "folder_path": "/path/to/images",
            "framerate": 15,
            "loop": true
        }
    }
    
  4. Modbus配置

    "modbus": {
        "host": "localhost",
        "port": "5020"
    }
    
  5. 串口配置

    "serial": {
        "cz": {  // 称重设备
            "code": "cz",
            "ser": "COM2",
            "port": "9600",
            "data_bits": 8,
            "stop_bits": 1,
            "parity": "N",
            "timeout": 1
        },
        // 其他串口设备配置...
    }
    

开发与扩展

系统设计采用模块化和松耦合原则,便于扩展:

  1. 添加新的数据源

    • dao/目录下创建新的DAO类
    • 遵循现有DAO模式和接口约定
  2. 添加新的硬件支持

    • utils/目录下创建新的硬件管理类
    • 实现相应的信号机制与主程序通信
  3. 扩展UI界面

    • ui/目录下创建新的UI定义类
    • widgets/目录下创建对应控制器类
  4. 添加新的通信协议

    • 参考utils/modbus_utils.pyutils/serial_manager.py实现

注意事项

  1. 首次运行时,系统将自动创建默认配置和数据库

  2. 日志文件位于logs/目录,按日期自动轮换

  3. 使用相机功能前确保已安装相应的SDK

  4. 在开发/测试环境中可使用本地图像模式和Modbus服务器模拟

  5. 系统支持热插拔设备,但建议在操作前确认设备状态

故障排除

  1. 日志查看

    • 检查logs/目录下的日志文件(app_YYYY-MM-DD.log格式)
    • 查看控制台输出信息
  2. 数据库问题

    • 确认数据库配置正确
    • 检查数据库文件权限
    • 可使用SQLite浏览工具查看数据库内容
  3. 设备连接问题

    • 检查设备是否正确连接
    • 确认设备驱动已安装
    • 验证设备配置参数(串口、波特率等)
  4. Modbus通信问题

    • 使用modbus_server.py进行通信测试
    • 检查网络连接和防火墙设置
    • 验证Modbus寄存器地址配置