# PLCSharp **Repository Path**: idkook/plcsharp ## Basic Information - **Project Name**: PLCSharp - **Description**: PLC风格的上位机程序 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 16 - **Created**: 2025-12-11 - **Last Updated**: 2025-12-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # PLCSharp PLC风格的上位机 本项目是一个基于PLC风格的上位机软件,用户可以通过自由配置硬件、全局变量、界面和流程来完成项目开发。 > **注意:** 本项目尚未完成,详细说明将在开发完成后补充。 ## 功能模块 ### 硬件 支持多种硬件设备的集成与控制,包括: - **运动控制**:通过SDK中的运动控制库(如`LTDMC.dll`)实现对运动轴的控制。 - **相机**:支持相机设备的接入与图像采集。 - **通讯对象**:支持Modbus、CAN、EtherCAT等通信协议。 - **机器人**:支持机器人控制,包括路径规划、运动控制等功能。 ### 主界面 提供可视化界面组件,便于用户快速构建操作界面: - **图片控件**:用于显示相机采集的图像。 - **状态控件**:用于显示设备状态、报警信息等。 - **表格控件**:用于展示变量、参数、日志等数据。 - **图表控件**:用于实时显示传感器数据、运动轨迹等。 ### 全局变量 支持变量的集中管理,包括: - **数值变量**:用于存储和读取数字类型数据。 - **图像变量**:用于存储和处理图像数据。 ### 流程 支持流程化编程,用户可以通过以下方式定义控制逻辑: - **脚本**:使用C#脚本编写控制逻辑。 - **无代码**:通过图形化流程配置实现控制逻辑,无需编写代码。 ## 核心功能 ### 运动控制 - 支持多轴联动、插补运动、点动、回零、限位保护等功能。 - 提供丰富的API用于控制伺服电机、步进电机、编码器等设备。 - 支持高速脉冲输出、比较输出、位置捕捉、IO触发等功能。 ### 相机与视觉处理 - 支持图像采集、ROI区域设置、图像处理等功能。 - 提供图像控件用于实时显示和交互。 - 支持与Halcon等视觉库集成进行图像分析。 ### 通讯与IO控制 - 支持Modbus、CAN、EtherCAT等多种工业通信协议。 - 提供IO点的读写、比较、触发等功能。 - 支持IO映射、虚拟IO、高速计数、PWM输出等高级功能。 ### 数据库与日志 - 使用SQLite进行数据持久化,支持变量、配方、日志等信息的存储。 - 提供错误日志记录、报警信息管理、日志查看等功能。 - 支持日志输出到界面或文件。 ### 用户权限与安全 - 支持用户权限管理,不同用户可配置不同操作权限。 - 提供登录、权限验证、操作记录等功能。 ## 使用说明 ### 开发环境 - **开发语言**:C# - **框架**:.NET 6 WPF + Prism - **数据库**:SQLite - **运动控制SDK**:`LTDMC.dll`(用于控制运动控制器) - **视觉库**:Halcon(用于图像处理) ### 项目结构 - **App.xaml.cs**:应用程序入口,负责初始化和全局事件处理。 - **CoreModel**:包含核心模型、控件、行为、转换器等。 - **Models**:数据模型和业务逻辑,包括变量、配方、日志等。 - **SDK**:第三方库和驱动,如运动控制、相机、Halcon等。 - **UserControls**:自定义控件,如图像编辑、滑块、单元格等。 - **Resources**:图标、样式、字体等资源文件。 ### 控件说明 - **ImageEdit**:图像编辑控件,支持缩放、拖动、ROI绘制。 - **RectROI / RotateRectROI**:矩形和旋转矩形区域选择控件。 - **SimpleCell**:状态单元格控件,用于显示设备状态。 - **RangeSlider**:范围滑块控件,用于设置参数范围。 - **TreeViewEx**:扩展的树形控件,支持绑定选中项。 ### 数据绑定与MVVM - 使用Prism框架实现MVVM模式。 - 支持命令绑定、属性绑定、事件聚合器等机制。 - 提供`BindableBase`、`ViewModelBase`、`ModelBase`等基类简化开发。 ### 运动控制API - **LTDMC类**:封装了`LTDMC.dll`中的所有运动控制函数。 - 支持单轴运动、多轴联动、插补运动、比较输出、位置捕捉、IO触发等高级功能。 - 提供C#封装的运动控制接口,便于在WPF中调用。 ### 视觉处理 - **Halcon库**:通过`halcondotnet.dll`进行图像处理。 - **图像控件**:支持图像显示、ROI绘制、图像缩放等。 - **图像处理工具**:支持图像滤波、边缘检测、模板匹配等操作。 ### 日志与错误处理 - 支持错误日志记录,日志信息可显示在界面上。 - 提供日志对话框、日志级别控制、日志输出等功能。 - 支持错误信息的订阅与广播机制。 ## 开发计划(待完善) ## 免责声明 本项目仅用于学习交流,未经严格测试及安全认证,请勿用于实际生产环境。本人不对使用或无法使用该软件所造成的任何直接或间接后果(包括但不限于人身伤害、财产损坏、数据丢失、错误输出、经济损失等)负责。