Obsidean_VM/07 - Desarrolo de Proyectos.../Proyectos Visual Studio/S7 Explorer/S7 Explorer - Csharp.md

40 lines
2.5 KiB
Markdown

#csharp #visualstudio #s7
Quiero crear una aplicacion en c# .net 8 con la libreria DotNetSiemensPLCToolBoxLibrary de la cual su api la puedes ver en DotNetSiemensPLCToolBoxLibrary.xml. Usando CommunityToolkit.Mvvm, Ookii.Dialogs.Wpf, NewtonSoft.Json y Extended.Wpf.Toolkit.
Mí objetivo es poder buscar y exportar en formato de texto la información contenida dentro de un proyecto s7p para poder documentar los proyectos s7 con PLC 300. La informacion relevante que quiero obtener en formato de texto estructurado es todos los objetos de software con el respectivo codigo, configuracion si la hay del plc usado, los simbolos y sus direcciones.
La ventana principal tendra un boton para cargar el proyecto s7 , un treeview donde se muestre el arbol con la estructura del proyecto y todos los objetos dentro de el. A la derecha un property de Extended.Wpf.Toolkit con los datos relevantes al hacer click en un objeto del treeview. Un boton de exportar toda la documentacion, un boton de buscar texto.
Por debajo tendra un log simple con todos los eventos utiles para hacer debug.
S7ProjectExplorer/
├── App.xaml/App.xaml.cs # Application entry point
├── MainWindow.xaml/MainWindow.xaml.cs # Main application window
├── Models/
│ ├── ProjectStructure.cs # Model representing S7 project structure
│ ├── ProjectItem.cs # Base class for project items
│ ├── BlockItem.cs # Represents S7 blocks (FC, FB, DB, etc.)
│ ├── SymbolItem.cs # Represents symbols
│ ├── HardwareItem.cs # Represents hardware configuration
│ └── ExportSettings.cs # Settings for export functionality
├── ViewModels/
│ ├── MainViewModel.cs # Main ViewModel for the application
│ ├── RelayCommand.cs # Command implementation
│ └── ViewModelBase.cs # Base ViewModel class
├── Services/
│ ├── ProjectService.cs # Service for loading and parsing S7 projects
│ ├── ExportService.cs # Service for exporting documentation
│ └── LogService.cs # Service for logging events
└── Helpers/
├── TreeViewHelper.cs # Helper for TreeView operations
└── SearchHelper.cs # Helper for search functionality