# StoreWaterSystem **Repository Path**: cqbtsc0212/StoreWaterSystem ## Basic Information - **Project Name**: StoreWaterSystem - **Description**: 零基础上位机组态实战: 自动储水系统 - **Primary Language**: C# - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 3 - **Created**: 2024-07-16 - **Last Updated**: 2024-07-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 自动储水系统 ## 1.系统功能概述 ![image-20220505091755473](README.assets/image-20220505091755473.png) **系统功能:** ​ 控制供水池向储水池供水 -- 抽水 1. 启动自动抽水开关 2. 开始对设备进行数据实时刺激 3. 实时呈现系统数据,检测当前水位。 * 若水位低于最低水位 - 自动启动水泵; * 若水位高于最高水位 - 自动停止水泵; 4. 若启动水泵,实时读取水泵数据,检车水泵电压值。 * 若高于正常值,显示报警灯并闪烁 * 若恢复正常,报警消失 5. 可手动停止或启动水泵 6. 可关闭总开关,停止系统 ## 2.开发环境说明 * 开发工具: Visual Studio 2022 .NET Framework 4.7.2 * 辅助工具:Modbus Slave 模拟设备数据 * 串口通信:仿真软件 ## 3. 相关知识点 * 控件开发 -- 制作组态原件,GDI+ * 上位机组态制作 -- 组装 * NModbus4 通信库使用 -- 采集、控制 * 数据实时采集与加载 -- 定时器结合 Task * 系统过程控制 ## 4.相关控件介绍 * **UPanel** 圆角面板 * **InstrumentControl** 仪表控件 * **ParaTextBox** 参数信息框 * **UArrowControl** 箭头控件 * **UCPipe** 管道控件 * **UCWaterTank** 水池 * **ULightControl** 指示灯/启停控件 * **UPump** 水泵 * **USwitch** 切换开关 ## 5.项目搭建 * 项目类型:Winform 应用程序 * 目标框架: .NET Framework 4.7.2 * 控件库:Windows 窗体控件库 * 项目引用:应用程序 ----> 控件库 ## 6.相关控件开发详细实现 ### 1. 圆角矩形路径生成 ![image-20220505163945795](README.assets\image-20220505163945795.png) ### 2. 圆角面板 UPanel 圆角面板 -- Panel,容器,可设置边框圆角度、边框(粗细、颜色)、背景色(纯色或渐变)、渐变模式 创建过程: 1. 设置控件样式: * AllPaintingInWmPaint 忽略窗口消息,减少闪烁 * OptimizedDoubleBuffer 绘制到缓冲区,减少闪烁 * UserPaint 控件由其自身而不是操作系统绘制 * ResizeRedraw 控件在调整其大小时重绘 * SupportsTransparentBackColor 控件支持透明背景 2. 属性扩展: * BgColor 背景色1 * BorderColor 边框颜色 * BorderWidth 边框粗细 * BgColor2(第二种背景色) * Radius 圆角半径 * GradientMode 渐变模式 3. 重写 OnSizeChanged 设置控件区域、控件绘制区 4. 重写 OnPaint 绘制面板 --- 边框、背景填充 ### 3. 参数信息框 ParaTextBox 参数信息框 -- Label,标签文本, 用作参数信息展示,可设置显示的数据信息以及数据的单位 创建过程: 1. 设置控件默认信息呈现 2. 属性扩展: * DataVal 数据值文本 * Unit 单位 * VarName 参数名 3. 事件扩展 * DataValChange 值改变时触发 * DataClick 点击值时触发 ## 7.系统组态图制作 ## 8.系统功能实现