佳腾微丝包装
Go to file
2025-07-07 16:01:53 +08:00
apis feat: 更新托盘号和订单信息处理逻辑,优化API接口调用,调整数据库查询和写入逻辑,已完成 api 接口调用部分 2025-06-25 14:56:04 +08:00
camera feat: 更新相机控制库加载逻辑 2025-06-28 13:02:34 +08:00
config feat: 更新README文档,增加项目概述和系统特点;修改配置文件以禁用电力自动启动;在主窗口中实现线径值的实时更新到表格功能 2025-07-07 16:01:53 +08:00
dao feat: 解决 sql 游标循环调用问题 2025-07-01 15:32:40 +08:00
db feat:提交一下关于线径获取和相机回显的代码 2025-07-07 15:33:56 +08:00
tests feat:提交一下关于线径获取和相机回显的代码 2025-07-07 15:33:56 +08:00
ui feat:提交一下关于线径获取和相机回显的代码 2025-07-07 15:33:56 +08:00
utils feat:提交一下关于线径获取和相机回显的代码 2025-07-07 15:33:56 +08:00
widgets feat: 更新README文档,增加项目概述和系统特点;修改配置文件以禁用电力自动启动;在主窗口中实现线径值的实时更新到表格功能 2025-07-07 16:01:53 +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 feat:新增上料下料按钮触发 2025-07-01 16:04:18 +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-07 16:01:53 +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界面
    • 主要界面包括登录界面、主窗口、设置界面等
    • 采用分离的UI类设计如LoginUI、MainWindowUI等
  3. 控制器层Controller

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

    • 提供各种工具类如配置加载器、Modbus通信、串口管理等
    • 采用单例模式确保资源共享
  5. 硬件集成层

    • 相机子系统基于海康威视SDK进行集成
    • 串口通信:与称重设备、扫描器等外设通信
    • Modbus通信与PLC设备通信
    • 本地图像模式:支持离线使用本地图像序列进行模拟测试

技术栈

  1. 前端技术

    • PySide6Qt for Python用于GUI开发
    • 使用Qt的信号槽机制实现组件间通信
  2. 后端技术

    • Python 3.7+作为主要开发语言
    • 支持SQLite、PostgreSQL和MySQL数据库
    • Modbus协议用于与PLC设备通信
    • 多线程处理耗时操作
  3. 通信技术

    • Modbus TCP用于与PLC设备通信
    • 串口通信用于与称重设备、条码扫描器等外设通信
    • 支持键盘监听用于扫码枪等输入设备
  4. 设计模式

    • 单例模式(配置加载器、电力监控器、相机管理器等)
    • DAO模式数据访问
    • 观察者模式(信号槽)
    • 工厂模式(数据库连接)

代码结构

  1. 主要目录

    • widgets/:包含所有窗口控制器类
    • ui/包含所有UI定义类
    • utils/:包含工具类
    • dao/:包含数据访问对象
    • db/:包含数据库文件
    • config/:包含配置文件
    • logs/:包含日志文件
    • camera/包含相机模块和SDK接口类
    • apis/API接口用于接口模式
  2. 核心文件

    • main.py:程序入口点
    • modbus_server.pyModbus服务器模拟
    • utils/config_loader.py:配置加载器
    • utils/local_image_player.py:本地图像序列播放器
    • widgets/camera_manager.py:相机管理器
    • dao/login_dao.py:用户认证数据访问

系统特点与功能

  1. 两种运行模式

    • 单机模式standalone完整的独立系统
    • 接口模式api作为其他系统的接口组件运行
  2. 本地图像模式

    • 支持本地图像序列播放,模拟相机实时画面
    • 适用于开发测试和演示场景,无需连接实际相机设备
    • 可调整播放帧率、设置循环播放等参数
  3. 相机管理

    • 支持海康威视相机设备管理
    • 自动发现和枚举可用相机设备
    • 相机参数设置和保存(曝光、增益、帧率等)
  4. Modbus通信

    • 与PLC设备进行Modbus TCP通信
    • 支持自动模式和手动模式切换
    • 内置Modbus服务器模拟功能便于开发测试
  5. 电力监控

    • 实时监控和记录电力消耗数据
    • 数据可视化和统计分析
  6. 数据管理

    • 支持用户认证和权限控制
    • 检验数据的采集、存储和分析
    • 托盘类型管理
  7. 日志系统

    • 详细的日志记录
    • 自动日志轮换
    • 支持多级日志级别

安装与运行

系统要求

  • Python 3.7+
  • 支持Windows、macOS、Linux操作系统

安装步骤

  1. 安装依赖:

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

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

    python main.py
    

配置说明

  1. 数据库配置

    "database": {
        "default": "sqlite",
        "sources": {
            "sqlite": {
                "path": "db/jtDB.db",
                "description": "默认SQLite数据库"
            },
            "postgresql": {
                "host": "localhost",
                "port": "5432",
                "user": "postgres",
                "password": "",
                "name": "jtDB"
            }
        }
    }
    
  2. 本地图像模式配置

    "local_image_mode": {
        "enabled": true,
        "folder_path": "/path/to/images",
        "framerate": 15,
        "loop": true
    }
    
  3. 应用模式配置

    "app": {
        "mode": "standalone",  // 或 "api"
        "features": {
            "enable_serial_ports": false,
            "enable_keyboard_listener": false,
            "enable_camera": false
        }
    }
    

开发与扩展

系统采用模块化设计,可以方便地进行功能扩展:

  1. 添加新的数据源扩展DAO层实现对应的数据访问对象

  2. 添加新的硬件支持

    • 参考widgets/camera_manager.py添加新的硬件管理器
    • 参考utils/local_image_player.py添加新的设备模拟器
  3. 扩展UI界面

    • ui/目录下创建新的UI类
    • widgets/目录下创建对应的控制器类
  4. 添加新的通信协议:参考modbus_server.py实现新的通信接口

注意事项

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

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

  3. 如果使用相机功能需确保已安装海康威视SDK

  4. 在测试环境中,可使用本地图像模式替代实际相机

故障排除

  1. 日志查看

    • 检查logs/目录下的日志文件
    • 日志格式为app_YYYY-MM-DD.log
  2. 数据库问题

    • 确认数据库配置正确
    • 查看数据库连接错误日志
  3. 相机连接问题

    • 确认相机驱动已正确安装
    • 尝试启用本地图像模式进行测试
  4. Modbus通信问题

    • 检查PLC设备IP和端口配置
    • 使用modbus_server.py进行通信测试