diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 00000000..c77fd7e8 --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,25 @@ +# Agent Instructions: MAPO-IOB-WIN + +## Project Overview +A collection of .NET (C#/VB) projects for industrial communication with NC controls (Fanuc, Siemens, Mitsubishi, etc.) via the Mapo Protocol. + +## Build & Release +- **Toolchain**: MSBuild (`x86` target). +- **Config**: Always use `Release` configuration and `x86` platform. +- **Command Example**: + ```powershell + & "$env:MSBUILD_PATH" "ProjectName\ProjectName.csproj" -target:Build /p:Configuration=Release /p:Platform="x86" /p:OutputPath=bin/ /nodeReuse:false /verbosity:minimal /m + ``` +- **NuGet**: Requires Steamware Nexus Proxy sources (defined in `.gitlab-ci.yml`). +- **Versioning**: Automated during CI via `VersGen\VersGen.cs` and `.nuspec` updates. +- **Release Artifacts**: Zipped using `7z.exe`; MD5/SHA1 hashes are generated; uploaded to Nexus. + +## Key Directories & Files +- **`IOB-WIN-*`**: Protocol-specific implementations (e.g., `FANUC`, `SIEMENS`, `SHELLY`). +- **`VersGen\`**: Handles automated assembly versioning during build. +- **`UtilityScripts\`**: Contains `alarmFormatter.py` for converting alarm CSV/Excel to JSON. Requires `python3` and `pip install inquirer`. + +## Environment & Setup +- **Siemens PLC**: Must enable "PUT/GET" permission in TIA Portal. +- **Dependencies**: Uses `saltminion` (via Chocolatey) and specific Windows accounts (`steamware`/`IOB`). +- **Docs**: Documentation for several modules is generated via `docfx`. diff --git a/Todo.md b/Todo.md new file mode 100644 index 00000000..c0a81cc5 --- /dev/null +++ b/Todo.md @@ -0,0 +1,15 @@ +Todo per il refactor del Simulatore. + +Comincia dalla folder IOB-WIN-FORM, da qui analizza Simula.cs che si trova nella subfolder Iob. + +Questa classe estende altri oggetti: segui la catena di eredita dei file per comprenderrne il funzionamento. +in particolare questo oggetto eredita dalla classe generic, che è sudddivisa in 2 files, Generic.Protected.cs e Generic.Public.cs (essendo molto corposa ho suddiviso i metodi pper scope) + +Se devi leggere file particolarmente +lunghi procedi per segmenti parziali segnnandoti su un file wip.md i risultati parziali per evitare loop continui sennza uscita + +Questo file definisce un programma di simulazione di lettura dati da device esterni ed invio di stati e dati al server centrale. E' stato progettato per lavorare con gli stessi elementi logici dei veri file che implementano la comunicazione con machinari vari ed il MES centrale. + +Pianifica un insieme di modifiche che possano ridurre il consumo della CPU, eventualmente anche cambiando i periodi base di esecuzione per favorire il rilascio delle risorse alla CPU. + +Tieni in considerazione che questo sw vviene eseguito in diverse decine di unità nello stessso momento dentro una vm proxmox, e quindi il context switch genera consumo CPU che non viene sempre evidenziato dal task manager della VM, e il miio scopo è ridurre il consumo della CPU complessiva e reale vista da proxmox, non solo quuella evidennziata dentro la VM \ No newline at end of file