jiateng_ws/README.md

112 lines
3.5 KiB
Markdown
Raw Normal View History

2025-06-28 15:01:36 +08:00
# 腾智微丝产线包装系统
## 项目架构分析
这是一个基于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/`目录下创建对应的控制器类