jiateng_ws/README.md
2025-06-28 15:01:36 +08:00

112 lines
3.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 腾智微丝产线包装系统
## 项目架构分析
这是一个基于PySide6Qt for Python开发的腾智微丝产线包装系统采用了典型的MVC模型-视图-控制器)架构:
1. **模型层Model**
- 使用DAO数据访问对象模式访问数据库
- 支持多种数据库SQLite、PostgreSQL、MySQL
- 主要数据表包括用户表、检验配置表、检验数据表、电力消耗表等
2. **视图层View**
- 使用PySide6构建UI界面
- 主要界面包括登录界面、主窗口、设置界面等
- 采用分离的UI类设计如LoginUI、MainWindowUI等
3. **控制器层Controller**
- 主要控制逻辑在widgets目录下的类中实现
- 使用信号槽机制进行组件间通信
- 采用单例模式管理全局资源
4. **工具层Utils**
- 提供各种工具类如配置加载器、Modbus通信、串口管理等
- 采用单例模式确保资源共享
## 技术栈
1. **前端技术**
- PySide6Qt for Python用于GUI开发
- 使用Qt的信号槽机制实现组件间通信
2. **后端技术**
- Python作为主要开发语言
- SQLite作为默认数据库支持PostgreSQL和MySQL
- Modbus协议用于与设备通信
- 多线程处理耗时操作
3. **通信技术**
- Modbus TCP用于与PLC设备通信
- 串口通信用于与称重设备、条码扫描器等外设通信
4. **设计模式**
- 单例模式(配置加载器、监控器等)
- DAO模式数据访问
- 观察者模式(信号槽)
- 工厂模式(数据库连接)
## 代码结构
1. **主要目录**
- `widgets/`:包含所有窗口控制器类
- `ui/`包含所有UI定义类
- `utils/`:包含工具类
- `dao/`:包含数据访问对象
- `db/`:包含数据库文件
- `config/`:包含配置文件
- `logs/`:包含日志文件
2. **核心文件**
- `main.py`:程序入口点
- `widgets/login_widget.py`:登录窗口控制器
- `widgets/main_window.py`:主窗口控制器
- `utils/config_loader.py`:配置加载器
- `utils/modbus_utils.py`Modbus通信工具
- `utils/sql_utils.py`:数据库工具
3. **应用流程**
- 程序启动后初始化日志系统
- 加载配置文件
- 显示登录窗口
- 验证登录后显示主窗口
- 主窗口中进行产线包装系统的操作
## 功能特点
1. **用户认证**:支持用户登录和权限控制
2. **产线监控**:实时监控产线状态、电力消耗等
3. **数据采集**:采集称重数据、检验数据等
4. **报表生成**:生成各类统计报表
5. **设备通信**与PLC、称重设备等通信
6. **多模式支持**:支持单机模式和接口模式
## 运行环境
- Python 3.7+
- PySide6
- 支持的数据库SQLite、PostgreSQL、MySQL
- 操作系统Windows、macOS、Linux
## 安装与配置
1. 安装依赖:
```
pip install -r requirements.txt
```
2. 配置数据库:
- 默认使用SQLite数据库位于`db/jtDB.db`
- 可在`config/app_config.json`中配置其他数据库
3. 运行程序:
```
python main.py
```
## 开发与扩展
系统采用模块化设计,可以方便地进行功能扩展:
1. 添加新的数据源:扩展`utils/sql_utils.py`
2. 添加新的设备通信协议:参考`utils/modbus_utils.py`
3. 添加新的UI界面在`ui/`目录下创建新的UI类在`widgets/`目录下创建对应的控制器类