From 9ad8c8167f5ad070ff416ad26d18175fa2a7ff90 Mon Sep 17 00:00:00 2001 From: Miguel Date: Tue, 8 Jul 2025 16:52:37 +0200 Subject: [PATCH] vault backup: 2025-07-08 16:52:37 --- .../plugins/obsidian-icon-folder/data.json | 7 +- .../obsidian-mindmap-nextgen/data.json | 4 + .../plugins/recent-files-obsidian/data.json | 128 +-- .obsidian/workspace.json | 122 ++- ...En.md => Descripción y Especifica - en.md} | 0 .../Drawing 2025-06-24 15.30.35.excalidraw.md | 56 -- .../{ => Enviar}/AccumulationTable - It.md | 0 .../{ => Enviar}/Motor_Framework_Insight.md | 0 ...volo di accumulo - Logica - v 0.0 - Ita.md | 0 ...volo di accumulo - Logica - v 0.1 - Esp.md | 0 ...volo di accumulo - Logica - v 0.1 - Ita.md | 0 .../Especifica/Especifica General.md | 781 ------------------ ...odes.md => IO - IP Nodes & PLC IO Tags.md} | 101 +++ ...avolo di accumulo - Logica - v 0.2 - en.md | 157 ---- .../Especifica/Untitled.canvas | 124 --- ...ing.md => excal - Layout - Anello-Ring.md} | 0 .../98050_Hardware PEW - PAW.md | 0 .../Cursor Notes.md | 29 + .../Aplicaciones y Librerias.md | 0 ...blicApiGenerator - Nuget - Documentator.md | 0 .../NetDocsForLLM - Especifica base.md | 0 .../Notas para crear nuevas aplicaciones.md | 0 .../Ctr Editor - Notas con Mejoras.md | 0 ...rEditor - Descripción de Funcionamiento.md | 0 .../S7 Explorer/S7 Explorer - Csharp.md | 0 .../Scripts List.md | 0 .../Visual Studio Notes.md | 0 .../adjuntos/python.exe | Bin 28 files changed, 294 insertions(+), 1215 deletions(-) rename 03-VM/44 - 98050 - Fiera/Especifica/{AccumulationTable - En.md => Descripción y Especifica - en.md} (100%) delete mode 100644 03-VM/44 - 98050 - Fiera/Especifica/Drawing 2025-06-24 15.30.35.excalidraw.md rename 03-VM/44 - 98050 - Fiera/Especifica/{ => Enviar}/AccumulationTable - It.md (100%) rename 03-VM/44 - 98050 - Fiera/Especifica/{ => Enviar}/Motor_Framework_Insight.md (100%) rename 03-VM/44 - 98050 - Fiera/Especifica/{ => Enviar}/Progetto 98050 Fiera - Tavolo di accumulo - Logica - v 0.0 - Ita.md (100%) rename 03-VM/44 - 98050 - Fiera/Especifica/{ => Enviar}/Progetto 98050 Fiera - Tavolo di accumulo - Logica - v 0.1 - Esp.md (100%) rename 03-VM/44 - 98050 - Fiera/Especifica/{ => Enviar}/Progetto 98050 Fiera - Tavolo di accumulo - Logica - v 0.1 - Ita.md (100%) delete mode 100644 03-VM/44 - 98050 - Fiera/Especifica/Especifica General.md rename 03-VM/44 - 98050 - Fiera/Especifica/{IO - Ips Nodes.md => IO - IP Nodes & PLC IO Tags.md} (61%) delete mode 100644 03-VM/44 - 98050 - Fiera/Especifica/Progetto 98050 Fiera - Tavolo di accumulo - Logica - v 0.2 - en.md delete mode 100644 03-VM/44 - 98050 - Fiera/Especifica/Untitled.canvas rename 03-VM/44 - 98050 - Fiera/Especifica/{Layout - Anello-Ring.md => excal - Layout - Anello-Ring.md} (100%) rename 03-VM/44 - 98050 - Fiera/{Especifica => IO}/98050_Hardware PEW - PAW.md (100%) create mode 100644 07 - Desarrolo de Proyectos - Scripts - Cursor - Visual Studio/Cursor Notes.md rename {07 - Desarrolo de Proyectos - Scripts - Visual Studio => 07 - Desarrolo de Proyectos - Scripts - Cursor - Visual Studio}/Proyectos Visual Studio/Aplicaciones y Librerias.md (100%) rename {07 - Desarrolo de Proyectos - Scripts - Visual Studio => 07 - Desarrolo de Proyectos - Scripts - Cursor - Visual Studio}/Proyectos Visual Studio/Como usar PublicApiGenerator - Nuget - Documentator.md (100%) rename {07 - Desarrolo de Proyectos - Scripts - Visual Studio => 07 - Desarrolo de Proyectos - Scripts - Cursor - Visual Studio}/Proyectos Visual Studio/NetDocsForLLM/NetDocsForLLM - Especifica base.md (100%) rename {07 - Desarrolo de Proyectos - Scripts - Visual Studio => 07 - Desarrolo de Proyectos - Scripts - Cursor - Visual Studio}/Proyectos Visual Studio/Notas para crear nuevas aplicaciones.md (100%) rename {07 - Desarrolo de Proyectos - Scripts - Visual Studio => 07 - Desarrolo de Proyectos - Scripts - Cursor - Visual Studio}/Proyectos Visual Studio/ROI Editor/Ctr Editor - Notas con Mejoras.md (100%) rename {07 - Desarrolo de Proyectos - Scripts - Visual Studio => 07 - Desarrolo de Proyectos - Scripts - Cursor - Visual Studio}/Proyectos Visual Studio/ROI Editor/CtrEditor - Descripción de Funcionamiento.md (100%) rename {07 - Desarrolo de Proyectos - Scripts - Visual Studio => 07 - Desarrolo de Proyectos - Scripts - Cursor - Visual Studio}/Proyectos Visual Studio/S7 Explorer/S7 Explorer - Csharp.md (100%) rename {07 - Desarrolo de Proyectos - Scripts - Visual Studio => 07 - Desarrolo de Proyectos - Scripts - Cursor - Visual Studio}/Scripts List.md (100%) rename {07 - Desarrolo de Proyectos - Scripts - Visual Studio => 07 - Desarrolo de Proyectos - Scripts - Cursor - Visual Studio}/Visual Studio Notes.md (100%) rename {07 - Desarrolo de Proyectos - Scripts - Visual Studio => 07 - Desarrolo de Proyectos - Scripts - Cursor - Visual Studio}/adjuntos/python.exe (100%) diff --git a/.obsidian/plugins/obsidian-icon-folder/data.json b/.obsidian/plugins/obsidian-icon-folder/data.json index 98d21cb..c7e684c 100644 --- a/.obsidian/plugins/obsidian-icon-folder/data.json +++ b/.obsidian/plugins/obsidian-icon-folder/data.json @@ -6,11 +6,11 @@ "emojiStyle": "native", "iconColor": null, "recentlyUsedIcons": [ + "LiExcalidrawIcon", "LiClipboardList", "🪛", "LiScriptEngine", - "👉", - "LiCheckSquare2" + "👉" ], "recentlyUsedIconsSize": 5, "rules": [], @@ -38,5 +38,6 @@ "04-SIDEL/SIDEL - Upgrades - Promemoria.md": "👉", "04-SIDEL/CheckList": "LiCheckSquare2", "01-Documentation/AI - IA - LLM - Artificial Intelligence": "🪛", - "04-SIDEL/Projects Description.md": "LiClipboardList" + "04-SIDEL/Projects Description.md": "LiClipboardList", + "03-VM/44 - 98050 - Fiera/Especifica/excal - Layout - Anello-Ring.md": "LiExcalidrawIcon" } \ No newline at end of file diff --git a/.obsidian/plugins/obsidian-mindmap-nextgen/data.json b/.obsidian/plugins/obsidian-mindmap-nextgen/data.json index c4d3108..4e2b00b 100644 --- a/.obsidian/plugins/obsidian-mindmap-nextgen/data.json +++ b/.obsidian/plugins/obsidian-mindmap-nextgen/data.json @@ -1,6 +1,10 @@ { "version": "2.0", "layout": [ + null, + null, + null, + null, null ], "settings": { diff --git a/.obsidian/plugins/recent-files-obsidian/data.json b/.obsidian/plugins/recent-files-obsidian/data.json index f15468e..cd9aaf3 100644 --- a/.obsidian/plugins/recent-files-obsidian/data.json +++ b/.obsidian/plugins/recent-files-obsidian/data.json @@ -1,16 +1,72 @@ { "recentFiles": [ { - "basename": "Especifica General", - "path": "03-VM/44 - 98050 - Fiera/Especifica/Especifica General.md" + "basename": "Conda - Anaconda - miniconda", + "path": "01-Documentation/Python/Scripts Python/Conda - Anaconda - miniconda.md" }, { - "basename": "Layout - Anello-Ring", - "path": "03-VM/44 - 98050 - Fiera/Especifica/Layout - Anello-Ring.md" + "basename": "Cursor Notes", + "path": "07 - Desarrolo de Proyectos - Scripts - Cursor - Visual Studio/Cursor Notes.md" + }, + { + "basename": "Visual Studio Notes", + "path": "07 - Desarrolo de Proyectos - Scripts - Cursor - Visual Studio/Visual Studio Notes.md" + }, + { + "basename": "cronologia", + "path": "03-VM/40 - 93040 - HENKEL - NEXT + 1 Problem/cronologia.md" + }, + { + "basename": "MCP", + "path": "01-Documentation/AI - IA - LLM - Artificial Intelligence/MCP.md" + }, + { + "basename": "Projects Description", + "path": "04-SIDEL/Projects Description.md" + }, + { + "basename": "excal - Layout - Anello-Ring", + "path": "03-VM/44 - 98050 - Fiera/Especifica/excal - Layout - Anello-Ring.md" + }, + { + "basename": "Descripción y Especifica - en", + "path": "03-VM/44 - 98050 - Fiera/Especifica/Descripción y Especifica - en.md" + }, + { + "basename": "IO - IP Nodes & PLC IO Tags", + "path": "03-VM/44 - 98050 - Fiera/Especifica/IO - IP Nodes & PLC IO Tags.md" + }, + { + "basename": "98050_Hardware PEW - PAW", + "path": "03-VM/44 - 98050 - Fiera/IO/98050_Hardware PEW - PAW.md" + }, + { + "basename": "PLC IO Tags", + "path": "03-VM/44 - 98050 - Fiera/IO/PLC IO Tags.md" + }, + { + "basename": "Device IO Tags", + "path": "03-VM/44 - 98050 - Fiera/IO/Device IO Tags.md" }, { "basename": "Motor_Framework_Insight", - "path": "03-VM/44 - 98050 - Fiera/Especifica/Motor_Framework_Insight.md" + "path": "03-VM/44 - 98050 - Fiera/Especifica/Enviar/Motor_Framework_Insight.md" + }, + { + "basename": "Progetto 98050 Fiera - Tavolo di accumulo - Logica - v 0.0 - Ita", + "path": "03-VM/44 - 98050 - Fiera/Especifica/Enviar/Progetto 98050 Fiera - Tavolo di accumulo - Logica - v 0.0 - Ita.md" + }, + { + "basename": "Progetto 98050 Fiera - Tavolo di accumulo - Logica - v 0.1 - Esp", + "path": "03-VM/44 - 98050 - Fiera/Especifica/Enviar/Progetto 98050 Fiera - Tavolo di accumulo - Logica - v 0.1 - Esp.md" + }, + { + "basename": "Progetto 98050 Fiera - Tavolo di accumulo - Logica - v 0.1 - Ita", + "path": "03-VM/44 - 98050 - Fiera/Especifica/Enviar/Progetto 98050 Fiera - Tavolo di accumulo - Logica - v 0.1 - Ita.md" + }, + { + "basename": "AccumulationTable - It", + "path": "03-VM/44 - 98050 - Fiera/Especifica/Enviar/AccumulationTable - It.md" }, { "basename": "MIGRATION OF AUTOMATION FROM SOFTPLC TWINCAT TO SIEMENS PHYSICAL PLC (Tia Portal)", @@ -18,20 +74,16 @@ }, { "basename": "Como usar PublicApiGenerator - Nuget - Documentator", - "path": "07 - Desarrolo de Proyectos - Scripts - Visual Studio/Proyectos Visual Studio/Como usar PublicApiGenerator - Nuget - Documentator.md" + "path": "07 - Desarrolo de Proyectos - Scripts - Cursor - Visual Studio/Proyectos Visual Studio/Como usar PublicApiGenerator - Nuget - Documentator.md" }, { "basename": "Notas para crear nuevas aplicaciones", - "path": "07 - Desarrolo de Proyectos - Scripts - Visual Studio/Proyectos Visual Studio/Notas para crear nuevas aplicaciones.md" + "path": "07 - Desarrolo de Proyectos - Scripts - Cursor - Visual Studio/Proyectos Visual Studio/Notas para crear nuevas aplicaciones.md" }, { "basename": "Backups - Mikrotik", "path": "01-Documentation/Routers/Mikrotik - Network Redes/Backups - Mikrotik.md" }, - { - "basename": "MCP", - "path": "01-Documentation/AI - IA - LLM - Artificial Intelligence/MCP.md" - }, { "basename": "Zerotier VPN con VPS en Buenos Aires", "path": "01-Documentation/Routers/Mikrotik - Network Redes/Zerotier VPN con VPS en Buenos Aires.md" @@ -52,58 +104,18 @@ "basename": "Shortcuts", "path": "DB/Shortcuts/Shortcuts.md" }, - { - "basename": "AccumulationTable - It", - "path": "03-VM/44 - 98050 - Fiera/Especifica/AccumulationTable - It.md" - }, { "basename": "Aplicaciones y Librerias", - "path": "07 - Desarrolo de Proyectos - Scripts - Visual Studio/Proyectos Visual Studio/Aplicaciones y Librerias.md" + "path": "07 - Desarrolo de Proyectos - Scripts - Cursor - Visual Studio/Proyectos Visual Studio/Aplicaciones y Librerias.md" }, { "basename": "FB_BottleFallen", "path": "01-Documentation/Vetromeccanica/FBs/FB_BottleFallen.md" }, - { - "basename": "Untitled", - "path": "03-VM/44 - 98050 - Fiera/Especifica/Untitled.canvas" - }, - { - "basename": "Conda - Anaconda - miniconda", - "path": "01-Documentation/Python/Scripts Python/Conda - Anaconda - miniconda.md" - }, - { - "basename": "AccumulationTable - En", - "path": "03-VM/44 - 98050 - Fiera/Especifica/AccumulationTable - En.md" - }, { "basename": "SIDEL - Master - IPs", "path": "04-SIDEL/00 - MASTER/SIDEL - Master - IPs.md" }, - { - "basename": "Progetto 98050 Fiera - Tavolo di accumulo - Logica - v 0.1 - Esp", - "path": "03-VM/44 - 98050 - Fiera/Especifica/Progetto 98050 Fiera - Tavolo di accumulo - Logica - v 0.1 - Esp.md" - }, - { - "basename": "Progetto 98050 Fiera - Tavolo di accumulo - Logica - v 0.1 - Ita", - "path": "03-VM/44 - 98050 - Fiera/Especifica/Progetto 98050 Fiera - Tavolo di accumulo - Logica - v 0.1 - Ita.md" - }, - { - "basename": "Progetto 98050 Fiera - Tavolo di accumulo - Logica - v 0.2 - en", - "path": "03-VM/44 - 98050 - Fiera/Especifica/Progetto 98050 Fiera - Tavolo di accumulo - Logica - v 0.2 - en.md" - }, - { - "basename": "Drawing 2025-06-24 15.30.35.excalidraw", - "path": "03-VM/44 - 98050 - Fiera/Especifica/Drawing 2025-06-24 15.30.35.excalidraw.md" - }, - { - "basename": "IO - Ips Nodes", - "path": "03-VM/44 - 98050 - Fiera/Especifica/IO - Ips Nodes.md" - }, - { - "basename": "98050_Hardware PEW - PAW", - "path": "03-VM/44 - 98050 - Fiera/Especifica/98050_Hardware PEW - PAW.md" - }, { "basename": "SIDEL - Passwords", "path": "01-Documentation/SIDEL/SIDEL - Passwords.md" @@ -160,10 +172,6 @@ "basename": "Hardware", "path": "04-SIDEL/06 - E5.007363 - Modifica O&U - SAE196 (cip integrato)/IO/Hardware.md" }, - { - "basename": "Projects Description", - "path": "04-SIDEL/Projects Description.md" - }, { "basename": "ISOonTCP_or_TCP_Protocol", "path": "04-SIDEL/06 - E5.007363 - Modifica O&U - SAE196 (cip integrato)/Source/source/ISOonTCP_or_TCP_Protocol.md" @@ -191,14 +199,6 @@ { "basename": "AWL - STL Types", "path": "01-Documentation/Python/Scripts Python/XML to SCL Siemens/AWL - STL Types.md" - }, - { - "basename": "DAR Description - DIET AS REGULAR - SAE452 San Giorgio in Bosco", - "path": "04-SIDEL/09 - SAE452 - Diet as Regular - San Giovanni in Bosco/DAR Description - DIET AS REGULAR - SAE452 San Giorgio in Bosco.md" - }, - { - "basename": "Excel - VBA - AdjustOffset", - "path": "01-Documentation/Scripts Excel - VBA/Excel - VBA - AdjustOffset.md" } ], "omittedPaths": [], diff --git a/.obsidian/workspace.json b/.obsidian/workspace.json index 1b2293b..fe23d48 100644 --- a/.obsidian/workspace.json +++ b/.obsidian/workspace.json @@ -13,16 +13,77 @@ "state": { "type": "markdown", "state": { - "file": "03-VM/44 - 98050 - Fiera/Especifica/Especifica General.md", + "file": "04-SIDEL/Projects Description.md", "mode": "source", "source": false, "backlinks": false }, "icon": "lucide-file", - "title": "Especifica General" + "title": "Projects Description" + } + }, + { + "id": "cf0f2818b939a588", + "type": "leaf", + "state": { + "type": "markdown", + "state": { + "file": "01-Documentation/AI - IA - LLM - Artificial Intelligence/MCP.md", + "mode": "source", + "source": false, + "backlinks": false + }, + "icon": "lucide-file", + "title": "MCP" + } + }, + { + "id": "0f5e4fedf1d275d5", + "type": "leaf", + "state": { + "type": "markdown", + "state": { + "file": "03-VM/40 - 93040 - HENKEL - NEXT + 1 Problem/cronologia.md", + "mode": "source", + "source": false, + "backlinks": false + }, + "icon": "lucide-file", + "title": "cronologia" + } + }, + { + "id": "5c315b1b5f0b8901", + "type": "leaf", + "state": { + "type": "markdown", + "state": { + "file": "07 - Desarrolo de Proyectos - Scripts - Cursor - Visual Studio/Cursor Notes.md", + "mode": "source", + "source": false, + "backlinks": false + }, + "icon": "lucide-file", + "title": "Cursor Notes" + } + }, + { + "id": "f15536f72bf96ad9", + "type": "leaf", + "state": { + "type": "markdown", + "state": { + "file": "01-Documentation/Python/Scripts Python/Conda - Anaconda - miniconda.md", + "mode": "source", + "source": false, + "backlinks": false + }, + "icon": "lucide-file", + "title": "Conda - Anaconda - miniconda" } } - ] + ], + "currentTab": 4 } ], "direction": "vertical" @@ -42,7 +103,7 @@ "type": "file-explorer", "state": { "sortOrder": "alphabetical", - "autoReveal": false + "autoReveal": true }, "icon": "lucide-folder-closed", "title": "Files" @@ -192,7 +253,8 @@ } ], "direction": "horizontal", - "width": 369.5 + "width": 369.5, + "collapsed": true }, "left-ribbon": { "hiddenItems": { @@ -216,35 +278,36 @@ "obsidian-importer:Open Importer": false } }, - "active": "cc1f4181c7f7c260", + "active": "f15536f72bf96ad9", "lastOpenFiles": [ - "03-VM/44 - 98050 - Fiera/Especifica/Layout - Anello-Ring.md", - "03-VM/44 - 98050 - Fiera/Especifica/Motor_Framework_Insight.md", - "04-SIDEL/13 - E5.007560 - Modifica O&U - SAE235/MIGRATION OF AUTOMATION FROM SOFTPLC TWINCAT TO SIEMENS PHYSICAL PLC (Tia Portal).md", - "07 - Desarrolo de Proyectos - Scripts - Visual Studio/Proyectos Visual Studio/Como usar PublicApiGenerator - Nuget - Documentator.md", - "07 - Desarrolo de Proyectos - Scripts - Visual Studio/Proyectos Visual Studio/Notas para crear nuevas aplicaciones.md", - "01-Documentation/Routers/Mikrotik - Network Redes/Backups - Mikrotik.md", + "07 - Desarrolo de Proyectos - Scripts - Cursor - Visual Studio/Cursor Notes.md", + "07 - Desarrolo de Proyectos - Scripts - Cursor - Visual Studio/Visual Studio Notes.md", + "03-VM/40 - 93040 - HENKEL - NEXT + 1 Problem/cronologia.md", "01-Documentation/AI - IA - LLM - Artificial Intelligence/MCP.md", + "04-SIDEL/Projects Description.md", + "03-VM/44 - 98050 - Fiera/Especifica/excal - Layout - Anello-Ring.md", + "03-VM/44 - 98050 - Fiera/Especifica/Descripción y Especifica - en.md", + "03-VM/44 - 98050 - Fiera/Especifica/IO - IP Nodes & PLC IO Tags.md", + "03-VM/44 - 98050 - Fiera/IO/98050_Hardware PEW - PAW.md", + "03-VM/44 - 98050 - Fiera/IO/PLC IO Tags.md", + "03-VM/44 - 98050 - Fiera/IO/Device IO Tags.md", + "03-VM/44 - 98050 - Fiera/Especifica/Drawing 2025-06-24 15.30.35.excalidraw.md", + "03-VM/44 - 98050 - Fiera/Especifica/Enviar/Motor_Framework_Insight.md", + "03-VM/44 - 98050 - Fiera/Especifica/Untitled.canvas", + "03-VM/44 - 98050 - Fiera/Especifica/Enviar/Progetto 98050 Fiera - Tavolo di accumulo - Logica - v 0.0 - Ita.md", + "03-VM/44 - 98050 - Fiera/Especifica/Progetto 98050 Fiera - Tavolo di accumulo - Logica - v 0.2 - en.md", + "03-VM/44 - 98050 - Fiera/Especifica/Enviar/Progetto 98050 Fiera - Tavolo di accumulo - Logica - v 0.1 - Esp.md", + "03-VM/44 - 98050 - Fiera/Especifica/Enviar/Progetto 98050 Fiera - Tavolo di accumulo - Logica - v 0.1 - Ita.md", + "03-VM/44 - 98050 - Fiera/Especifica/Enviar/AccumulationTable - It.md", + "03-VM/44 - 98050 - Fiera/Especifica/Enviar", + "03-VM/44 - 98050 - Fiera/Especifica/Especifica General.md", + "04-SIDEL/13 - E5.007560 - Modifica O&U - SAE235/MIGRATION OF AUTOMATION FROM SOFTPLC TWINCAT TO SIEMENS PHYSICAL PLC (Tia Portal).md", + "07 - Desarrolo de Proyectos - Scripts - Cursor - Visual Studio/Proyectos Visual Studio/Como usar PublicApiGenerator - Nuget - Documentator.md", + "07 - Desarrolo de Proyectos - Scripts - Cursor - Visual Studio/Proyectos Visual Studio/Notas para crear nuevas aplicaciones.md", + "01-Documentation/Routers/Mikrotik - Network Redes/Backups - Mikrotik.md", "01-Documentation/Routers/Mikrotik - Network Redes/Zerotier VPN con VPS en Buenos Aires.md", "01-Documentation/Routers/Mikrotik - Network Redes/Mikrotik - Zerotier - zero_work network.md", "TEMP/Resumo geral.md", - "01-Documentation/AI - IA - LLM - Artificial Intelligence/AI Prompts useful.md", - "DB/Shortcuts/Shortcuts.md", - "03-VM/44 - 98050 - Fiera/Especifica/AccumulationTable - It.md", - "07 - Desarrolo de Proyectos - Scripts - Visual Studio/Proyectos Visual Studio/Aplicaciones y Librerias.md", - "01-Documentation/Vetromeccanica/FBs/FB_BottleFallen.md", - "03-VM/44 - 98050 - Fiera/Especifica/Untitled.canvas", - "01-Documentation/Python/Scripts Python/Conda - Anaconda - miniconda.md", - "03-VM/44 - 98050 - Fiera/Especifica/AccumulationTable - En.md", - "04-SIDEL/00 - MASTER/SIDEL - Master - IPs.md", - "03-VM/44 - 98050 - Fiera/Especifica/Progetto 98050 Fiera - Tavolo di accumulo - Logica - v 0.1 - Esp.md", - "03-VM/44 - 98050 - Fiera/Especifica/Progetto 98050 Fiera - Tavolo di accumulo - Logica - v 0.1 - Ita.md", - "03-VM/44 - 98050 - Fiera/Especifica/Progetto 98050 Fiera - Tavolo di accumulo - Logica - v 0.2 - en.md", - "03-VM/44 - 98050 - Fiera/Especifica/Drawing 2025-06-24 15.30.35.excalidraw.md", - "03-VM/44 - 98050 - Fiera/Especifica/IO - Ips Nodes.md", - "03-VM/44 - 98050 - Fiera/Especifica/98050_Hardware PEW - PAW.md", - "03-VM/44 - 98050 - Fiera/Especifica/Especifica General.md", - "01-Documentation/SIDEL/SIDEL - Passwords.md", "TEMP", "04-SIDEL/13 - E5.007560 - Modifica O&U - SAE235/adjuntos/Pasted image 20250619173806.png", "04-SIDEL/13 - E5.007560 - Modifica O&U - SAE235/adjuntos/Pasted image 20250619165534.png", @@ -264,7 +327,6 @@ "01-Documentation/Dispositivos - Manuales/4-20ma Analog setup wiring/adjuntos/Pasted image 20250610121656.png", "01-Documentation/Dispositivos - Manuales/4-20ma Analog setup wiring/adjuntos/Pasted image 20250610121639.png", "01-Documentation/Dispositivos - Manuales/4-20ma Analog setup wiring/adjuntos", - "01-Documentation/Dispositivos - Manuales/4-20ma Analog setup wiring", "03-Revised/93789 Sipa Italia - Tinny - HSCounters - Piattaforma/Divider/Untitled.canvas", "04-InLavoro/9..... MASTER Transport/Standard Transport/FB500 Logic.canvas", "04-InLavoro/HENKEL/93040 - HENKEL - BowlingGreen/TL22-L25/Synoptic Change/Q3.canvas", diff --git a/03-VM/44 - 98050 - Fiera/Especifica/AccumulationTable - En.md b/03-VM/44 - 98050 - Fiera/Especifica/Descripción y Especifica - en.md similarity index 100% rename from 03-VM/44 - 98050 - Fiera/Especifica/AccumulationTable - En.md rename to 03-VM/44 - 98050 - Fiera/Especifica/Descripción y Especifica - en.md diff --git a/03-VM/44 - 98050 - Fiera/Especifica/Drawing 2025-06-24 15.30.35.excalidraw.md b/03-VM/44 - 98050 - Fiera/Especifica/Drawing 2025-06-24 15.30.35.excalidraw.md deleted file mode 100644 index 0f2cbaa..0000000 --- a/03-VM/44 - 98050 - Fiera/Especifica/Drawing 2025-06-24 15.30.35.excalidraw.md +++ /dev/null @@ -1,56 +0,0 @@ ---- - -excalidraw-plugin: parsed -tags: [excalidraw] - ---- -==⚠ Switch to EXCALIDRAW VIEW in the MORE OPTIONS menu of this document. ⚠== You can decompress Drawing data with the command palette: 'Decompress current Excalidraw file'. For more info check in plugin settings under 'Saving' - - -# Excalidraw Data - -## Text Elements -%% -## Drawing -```compressed-json -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 -``` -%% \ No newline at end of file diff --git a/03-VM/44 - 98050 - Fiera/Especifica/AccumulationTable - It.md b/03-VM/44 - 98050 - Fiera/Especifica/Enviar/AccumulationTable - It.md similarity index 100% rename from 03-VM/44 - 98050 - Fiera/Especifica/AccumulationTable - It.md rename to 03-VM/44 - 98050 - Fiera/Especifica/Enviar/AccumulationTable - It.md diff --git a/03-VM/44 - 98050 - Fiera/Especifica/Motor_Framework_Insight.md b/03-VM/44 - 98050 - Fiera/Especifica/Enviar/Motor_Framework_Insight.md similarity index 100% rename from 03-VM/44 - 98050 - Fiera/Especifica/Motor_Framework_Insight.md rename to 03-VM/44 - 98050 - Fiera/Especifica/Enviar/Motor_Framework_Insight.md diff --git a/03-VM/44 - 98050 - Fiera/Especifica/Progetto 98050 Fiera - Tavolo di accumulo - Logica - v 0.0 - Ita.md b/03-VM/44 - 98050 - Fiera/Especifica/Enviar/Progetto 98050 Fiera - Tavolo di accumulo - Logica - v 0.0 - Ita.md similarity index 100% rename from 03-VM/44 - 98050 - Fiera/Especifica/Progetto 98050 Fiera - Tavolo di accumulo - Logica - v 0.0 - Ita.md rename to 03-VM/44 - 98050 - Fiera/Especifica/Enviar/Progetto 98050 Fiera - Tavolo di accumulo - Logica - v 0.0 - Ita.md diff --git a/03-VM/44 - 98050 - Fiera/Especifica/Progetto 98050 Fiera - Tavolo di accumulo - Logica - v 0.1 - Esp.md b/03-VM/44 - 98050 - Fiera/Especifica/Enviar/Progetto 98050 Fiera - Tavolo di accumulo - Logica - v 0.1 - Esp.md similarity index 100% rename from 03-VM/44 - 98050 - Fiera/Especifica/Progetto 98050 Fiera - Tavolo di accumulo - Logica - v 0.1 - Esp.md rename to 03-VM/44 - 98050 - Fiera/Especifica/Enviar/Progetto 98050 Fiera - Tavolo di accumulo - Logica - v 0.1 - Esp.md diff --git a/03-VM/44 - 98050 - Fiera/Especifica/Progetto 98050 Fiera - Tavolo di accumulo - Logica - v 0.1 - Ita.md b/03-VM/44 - 98050 - Fiera/Especifica/Enviar/Progetto 98050 Fiera - Tavolo di accumulo - Logica - v 0.1 - Ita.md similarity index 100% rename from 03-VM/44 - 98050 - Fiera/Especifica/Progetto 98050 Fiera - Tavolo di accumulo - Logica - v 0.1 - Ita.md rename to 03-VM/44 - 98050 - Fiera/Especifica/Enviar/Progetto 98050 Fiera - Tavolo di accumulo - Logica - v 0.1 - Ita.md diff --git a/03-VM/44 - 98050 - Fiera/Especifica/Especifica General.md b/03-VM/44 - 98050 - Fiera/Especifica/Especifica General.md deleted file mode 100644 index 818da4e..0000000 --- a/03-VM/44 - 98050 - Fiera/Especifica/Especifica General.md +++ /dev/null @@ -1,781 +0,0 @@ - -## 1. System Architecture - -### 1.1 Call Structure -``` -OB1 -├── FC_Ttop_Run -│ ├── FC_Table_Motor_M316() → "DB Motor M316"(FB_Motors_Manage) -│ ├── FC_Table_Motor_M317() → "DB Motor M317"(FB_Motors_Manage) -│ ├── FC_Table_Motor_M318() → "DB Motor M318"(FB_Motors_Manage) -│ ├── FC_Table_Motor_M319() → "DB Motor M319"(FB_Motors_Manage) -│ ├── FC_Table_Motor_M328() → "DB Motor M328"(FB_Motors_Manage) // Channel 1 -│ ├── FC_Table_Motor_M329() → "DB Motor M329"(FB_Motors_Manage) // Channel 2 -│ ├── FC_Table_Motor_M330() → "DB Motor M330"(FB_Motors_Manage) // Channel 3 -│ ├── FC_Table_Motor_M331() → "DB Motor M331"(FB_Motors_Manage) // Channel 4 -│ ├── FC_Table_Motor_M332() → "DB Motor M332"(FB_Motors_Manage) // Channel 5 (center) -│ ├── FC_Table_Motor_M333() → "DB Motor M333"(FB_Motors_Manage) // Channel 6 -│ ├── FC_Table_Motor_M334() → "DB Motor M334"(FB_Motors_Manage) // Channel 7 -│ ├── FC_Table_Motor_M335() → "DB Motor M335"(FB_Motors_Manage) // Channel 8 -│ ├── FC_Table_Motor_M336() → "DB Motor M336"(FB_Motors_Manage) // Channel 9 -│ ├── FC_Table_Motor_M340() → "DB Motor M340"(FB_Motors_Manage) -│ ├── FC_Table_Motor_M341() → "DB Motor M341"(FB_Motors_Manage) -│ ├── FC_Table_Motor_M342() → "DB Motor M342"(FB_Motors_Manage) -│ └── FC_Table_Motor_M343() → "DB Motor M343"(FB_Motors_Manage) -└── FC_Table_Devices - └── "DB Table"(FB_Table) -``` - -### 1.2 Component Mapping -- **M316, M317**: Input feeders (left, right) -- **M318**: Format change input feeders -- **M319**: Input selector -- **M328-M336**: Channels 1-9 (1=leftmost, 5=center/bypass, 9=rightmost) -- **M340**: Output selector -- **M341, M342**: Output feeders (left, right) -- **M343**: Format change output feeders - -## 2. Data Structures - -### 2.1 Format Data Structure -```pascal -TYPE T_Format_Data: -STRUCT - Format_Number : Int; // Format number (1 or 2) - Accumulation_Side : Int; // 1=Left (channels 1-4), 2=Right (channels 6-9) - Bottle_Dimension_mm : Real; // Bottle dimension in mm - Max_Speed_mm_min : Real; // Maximum speed in mm/min - Target_Channels : Array[1..4] of Int; // Channels to use for this format -END_STRUCT; -``` - -### 2.2 External Exchange Database -```pascal -DB_ATable_Exchange: -STRUCT - // === INPUT SIGNALS (from external systems) === - IN : STRUCT - // From Ring/Divider - Ring_Input_Product_Available : Bool; // Product available at input - Ring_Output_Request : Bool; // Ring requests product output - Ring_Empty_And_Auto : Bool; // Ring empty and divider in auto - Ring_Bypass_Speed_Request : Real; // Requested bypass speed - - // Commands - Load_Request : Bool; // Request to start loading - Format_Change_Command : Bool; // Format change command from HMI - Unload_Enable : Bool; // Enable automatic unload after format change - - // System status - System_Auto_Mode : Bool; // System in automatic mode - Emergency_Stop : Bool; // Emergency stop signal - END_STRUCT; - - // === OUTPUT SIGNALS (to external systems) === - OUT : STRUCT - // To Ring/Divider - Input_Request_Product : Bool; // Table ready and requesting input - Format_Change_Allowed : Bool; // Loading complete and ring empty - Output_Speed_Reference : Real; // Speed reference for output motor - Table_In_Bypass : Bool; // Table in bypass mode - - // Status - Table_State : Int; // Current table state - Current_Format : Int; // Currently stored format - Table_Ready : Bool; // Table ready for operation - Loading_Complete : Bool; // Loading sequence complete - Unloading_Complete : Bool; // Unloading sequence complete - END_STRUCT; -END_STRUCT; -``` - -### 2.3 Table States -```pascal -CONST - TABLE_STATE_STOPPED : Int := 0; - TABLE_STATE_LOADING : Int := 1; - TABLE_STATE_BYPASS : Int := 2; - TABLE_STATE_UNLOADING : Int := 3; - TABLE_STATE_ERROR : Int := 4; -END_CONST; -``` - -## 3. Main Function Block - FB_Table - -### 3.1 Interface -```pascal -FB_Table: -VAR_INPUT - Enable : Bool; // Table enable - Target_Format : Int; // Target format (1 or 2) - Manual_Mode : Bool; // Manual operation mode -END_VAR - -VAR_IN_OUT - // Motor structure references (pointers) - Motor_M316 : UDT_Motor_Manage; // Input feeder left - Motor_M317 : UDT_Motor_Manage; // Input feeder right - Motor_M318 : UDT_Motor_Manage; // Format change input - Motor_M319 : UDT_Motor_Manage; // Input selector - Motor_M328 : UDT_Motor_Manage; // Channel 1 - Motor_M329 : UDT_Motor_Manage; // Channel 2 - Motor_M330 : UDT_Motor_Manage; // Channel 3 - Motor_M331 : UDT_Motor_Manage; // Channel 4 - Motor_M332 : UDT_Motor_Manage; // Channel 5 (center) - Motor_M333 : UDT_Motor_Manage; // Channel 6 - Motor_M334 : UDT_Motor_Manage; // Channel 7 - Motor_M335 : UDT_Motor_Manage; // Channel 8 - Motor_M336 : UDT_Motor_Manage; // Channel 9 - Motor_M340 : UDT_Motor_Manage; // Output selector - Motor_M341 : UDT_Motor_Manage; // Output feeder left - Motor_M342 : UDT_Motor_Manage; // Output feeder right - Motor_M343 : UDT_Motor_Manage; // Format change output - - Exchange : DB_ATable_Exchange; // External communication -END_VAR - -VAR_OUTPUT - Table_State : Int; // Current state - Error_Code : Word; // Error code - Diagnostics : T_Table_Diagnostics; // Diagnostic information -END_VAR - -VAR_STAT - // === COMMAND STRUCTURE (Read by FC motors) === - Status : STRUCT - // Input feeders - Input_Feeders_Enable : Bool; - Input_Feeders_Speed_mm_min : Real; - Input_Feeders_Stop_After_Bottle : Bool; - - // Output feeders - Output_Feeders_Enable : Bool; - Output_Feeders_Speed_mm_min : Real; - Output_Feeders_Stop_After_Bottle : Bool; - - // Input selector - Input_Selector_Enable : Bool; - Input_Selector_Target_Channel : Int; - Input_Selector_Positioning_Mode : Bool; - - // Output selector - Output_Selector_Enable : Bool; - Output_Selector_Target_Channel : Int; - Output_Selector_Positioning_Mode : Bool; - - // Channels - Channel_Enable : Array[1..9] of Bool; - Channel_Speed_mm_min : Array[1..9] of Real; - - // Format change motors - Format_Change_Input_Enable : Bool; - Format_Change_Input_Target_mm : Real; - Format_Change_Output_Enable : Bool; - Format_Change_Output_Target_mm : Real; - END_STRUCT; - - // === INTERNAL LOGIC VARIABLES === - Current_State : Int; - Previous_State : Int; - Loading_Step : Int; - Unloading_Step : Int; - Current_Loading_Channel : Int; - Current_Unloading_Channel : Int; - - // Format configuration - Format_Data : Array[1..2] of T_Format_Data; - Current_Format_Stored : Int; - - // Timers - State_Timer : TON; - Operation_Timeout : TON; - - // Area management instances - Area_Input_Selector : FB_Area_Management; - Area_Channel : Array[1..9] of FB_Area_Management; - Area_Output_Selector : FB_Area_Management; - - // Virtual encoders for position tracking - Encoder_M332 : FB_Virtual_Encoder; // Center channel for bypass tracking - Encoder_Input_Selector : FB_Virtual_Encoder; - Encoder_Output_Selector : FB_Virtual_Encoder; -END_VAR -``` - -### 3.2 Main Logic (Pseudocode) -```pascal -// === STATE MACHINE MANAGEMENT === -CASE Current_State OF - TABLE_STATE_STOPPED: - IF Enable AND Exchange.IN.System_Auto_Mode THEN - IF Exchange.IN.Load_Request THEN - Current_State := TABLE_STATE_LOADING; - Loading_Step := 1; - ELSIF Exchange.IN.Ring_Output_Request AND (Current_Format_Stored > 0) THEN - Current_State := TABLE_STATE_UNLOADING; - Unloading_Step := 1; - END_IF; - END_IF; - - TABLE_STATE_LOADING: - Execute_Loading_Sequence(); - IF Loading_Complete THEN - Current_State := TABLE_STATE_BYPASS; - Exchange.OUT.Loading_Complete := TRUE; - END_IF; - - TABLE_STATE_BYPASS: - Execute_Bypass_Mode(); - IF Exchange.IN.Format_Change_Command AND Exchange.IN.Ring_Empty_And_Auto THEN - Current_State := TABLE_STATE_UNLOADING; - Unloading_Step := 1; - END_IF; - - TABLE_STATE_UNLOADING: - Execute_Unloading_Sequence(); - IF Unloading_Complete THEN - Current_State := TABLE_STATE_BYPASS; - Exchange.OUT.Unloading_Complete := TRUE; - Current_Format_Stored := 0; - END_IF; - - TABLE_STATE_ERROR: - Execute_Error_Recovery(); -END_CASE; - -// === UPDATE EXTERNAL SIGNALS === -Exchange.OUT.Table_State := Current_State; -Exchange.OUT.Current_Format := Current_Format_Stored; -Exchange.OUT.Table_Ready := (Current_State <> TABLE_STATE_ERROR); -Exchange.OUT.Format_Change_Allowed := (Current_State = TABLE_STATE_BYPASS) AND - (Current_Format_Stored > 0) AND - Exchange.IN.Ring_Empty_And_Auto; - -// === AREA MANAGEMENT UPDATES === -FOR i := 1 TO 9 DO - Area_Channel[i]( - Motor := Get_Channel_Motor_Reference(i), - Enable := Status.Channel_Enable[i], - Area_Length_mm := Get_Channel_Length(i), - Bottle_Length_mm := Format_Data[Target_Format].Bottle_Dimension_mm - ); -END_FOR; -``` - -## 4. Loading Sequence Logic - -### 4.1 Loading Sequence Steps -```pascal -PROCEDURE Execute_Loading_Sequence: -VAR - Target_Channels : Array[1..4] of Int; - Current_Channel : Int; - Channel_Index : Int; -BEGIN - // Get target channels for current format - Target_Channels := Get_Target_Channels_For_Format(Target_Format); - - CASE Loading_Step OF - 1: // Initialize loading - Current_Loading_Channel := Get_Outermost_Channel(Target_Format); - Channel_Index := 1; - Position_Input_Selector(Target_Channels[Channel_Index]); - Loading_Step := 2; - - 2: // Wait for selector positioning - IF Input_Selector_In_Position THEN - Enable_Channel_Motors_For_Loading(Current_Loading_Channel); - Enable_Input_Feeders(); - Loading_Step := 3; - END_IF; - - 3: // Load current channel - IF Channel_Loading_Complete(Current_Loading_Channel) THEN - Disable_Input_Feeders(); - Channel_Index := Channel_Index + 1; - IF Channel_Index <= 4 THEN - Current_Loading_Channel := Target_Channels[Channel_Index]; - Position_Input_Selector(Current_Loading_Channel); - Loading_Step := 2; - ELSE - Loading_Step := 4; // All channels loaded - END_IF; - END_IF; - - 4: // Loading complete - Disable_All_Channel_Motors(); - Position_Selectors_To_Bypass(); - Current_Format_Stored := Target_Format; - Loading_Complete := TRUE; - END_CASE; -END_PROCEDURE; - -FUNCTION Get_Target_Channels_For_Format(Format : Int) : Array[1..4] of Int: -BEGIN - IF Format_Data[Format].Accumulation_Side = 1 THEN // Left side - RETURN [1, 2, 3, 4]; // Load from outside to inside - ELSE // Right side - RETURN [9, 8, 7, 6]; // Load from outside to inside - END_IF; -END_FUNCTION; - -FUNCTION Get_Outermost_Channel(Format : Int) : Int: -BEGIN - IF Format_Data[Format].Accumulation_Side = 1 THEN - RETURN 1; // Leftmost channel - ELSE - RETURN 9; // Rightmost channel - END_IF; -END_FUNCTION; - -PROCEDURE Enable_Channel_Motors_For_Loading(Target_Channel : Int): -BEGIN - // Enable all channels from center to target channel - FOR i := 5 TO Target_Channel DO // or FROM Target_Channel TO 5 - Status.Channel_Enable[i] := TRUE; - Status.Channel_Speed_mm_min[i] := Format_Data[Target_Format].Max_Speed_mm_min; - END_FOR; -END_PROCEDURE; -``` - -## 5. Unloading Sequence Logic - -### 5.1 Unloading Sequence Steps -```pascal -PROCEDURE Execute_Unloading_Sequence: -VAR - Stored_Channels : Array[1..4] of Int; - Current_Channel : Int; - Channel_Index : Int; -BEGIN - // Get channels where current format is stored - Stored_Channels := Get_Target_Channels_For_Format(Current_Format_Stored); - - CASE Unloading_Step OF - 1: // Initialize unloading - start from innermost channel - Channel_Index := 4; // Start from innermost - Current_Unloading_Channel := Stored_Channels[Channel_Index]; - Position_Output_Selector(Current_Unloading_Channel); - Unloading_Step := 2; - - 2: // Wait for selector positioning - IF Output_Selector_In_Position THEN - Enable_Channel_Motors_For_Unloading(Current_Unloading_Channel); - Enable_Output_Feeders(); - Unloading_Step := 3; - END_IF; - - 3: // Unload current channel - IF Channel_Unloading_Complete(Current_Unloading_Channel) THEN - Disable_Output_Feeders(); - Channel_Index := Channel_Index - 1; - IF Channel_Index >= 1 THEN - Current_Unloading_Channel := Stored_Channels[Channel_Index]; - Position_Output_Selector(Current_Unloading_Channel); - Unloading_Step := 2; - ELSE - Unloading_Step := 4; // All channels unloaded - END_IF; - END_IF; - - 4: // Unloading complete - Disable_All_Channel_Motors(); - Position_Selectors_To_Bypass(); - Unloading_Complete := TRUE; - END_CASE; -END_PROCEDURE; - -PROCEDURE Enable_Channel_Motors_For_Unloading(Target_Channel : Int): -BEGIN - // Enable all channels from target channel to center - FOR i := Target_Channel TO 5 DO // or FROM 5 TO Target_Channel - Status.Channel_Enable[i] := TRUE; - Status.Channel_Speed_mm_min[i] := Format_Data[Current_Format_Stored].Max_Speed_mm_min; - END_FOR; -END_PROCEDURE; -``` - -## 6. Bypass Mode Logic - -### 6.1 Bypass Operation -```pascal -PROCEDURE Execute_Bypass_Mode: -BEGIN - // Enable only center channel for bypass - Status.Channel_Enable[5] := TRUE; - Status.Channel_Speed_mm_min[5] := Exchange.IN.Ring_Bypass_Speed_Request; - - // Disable all other channels - FOR i := 1 TO 9 DO - IF i <> 5 THEN - Status.Channel_Enable[i] := FALSE; - END_IF; - END_FOR; - - // Position selectors to bypass (channel 5) - Status.Input_Selector_Target_Channel := 5; - Status.Output_Selector_Target_Channel := 5; - Status.Input_Selector_Enable := TRUE; - Status.Output_Selector_Enable := TRUE; - - // Update external signals - Exchange.OUT.Table_In_Bypass := TRUE; - Exchange.OUT.Output_Speed_Reference := Exchange.IN.Ring_Bypass_Speed_Request; - Exchange.OUT.Input_Request_Product := Exchange.IN.Ring_Input_Product_Available; -END_PROCEDURE; -``` - -## 7. Auxiliary Function Blocks - -### 7.1 FB_Virtual_Encoder -```pascal -FB_Virtual_Encoder: -VAR_IN_OUT - Motor : UDT_Motor_Manage; // Motor structure reference -END_VAR - -VAR_INPUT - Enable : Bool; // Enable calculation - Ratio_Hz_to_mm_min : Real; // Conversion factor Hz to mm/min - Reset_Position : Bool; // Reset total position -END_VAR - -VAR_OUTPUT - Displacement_mm : Real; // Displacement since last call - Current_Speed_mm_min : Real; // Current speed in mm/min - Total_Distance_mm : Real; // Total accumulated distance - Motor_Running : Bool; // Motor running status -END_VAR - -VAR_STAT - Last_Frequency_Hz : Real; - Last_Scan_Time : Time; - Position_Accumulated : Real; -END_VAR - -// Pseudocode: -BEGIN - IF Enable THEN - Current_Frequency := Read_Motor_Frequency(Motor); - Current_Time := Get_System_Time(); - - IF First_Scan THEN - Last_Frequency_Hz := Current_Frequency; - Last_Scan_Time := Current_Time; - ELSE - Time_Delta := Current_Time - Last_Scan_Time; - Avg_Frequency := (Current_Frequency + Last_Frequency_Hz) / 2; - Speed_mm_min := Avg_Frequency * Ratio_Hz_to_mm_min; - Displacement_mm := Speed_mm_min * Time_Delta_In_Minutes; - - IF NOT Reset_Position THEN - Total_Distance_mm := Total_Distance_mm + Displacement_mm; - ELSE - Total_Distance_mm := 0; - END_IF; - - Last_Frequency_Hz := Current_Frequency; - Last_Scan_Time := Current_Time; - END_IF; - - Current_Speed_mm_min := Current_Frequency * Ratio_Hz_to_mm_min; - Motor_Running := Motor.STATUS_RUN; - ELSE - Displacement_mm := 0; - Current_Speed_mm_min := 0; - END_IF; -END_FUNCTION_BLOCK; -``` - -### 7.2 FB_Area_Management -```pascal -FB_Area_Management: -VAR_IN_OUT - Motor : UDT_Motor_Manage; // Motor of this area -END_VAR - -VAR_INPUT - Enable : Bool; // Area enable - Area_Length_mm : Real; // Total area length - Bottle_Length_mm : Real; // Bottle dimension - Photocell_Pulse : Bool; // Entry photocell pulse - Reset_Bottles : Bool; // Reset bottle tracking -END_VAR - -VAR_OUTPUT - First_Bottle_Position : Real; // Position of first bottle - Last_Bottle_Position : Real; // Position of last bottle - Area_Empty : Bool; // Area completely empty - Bottles_In_Initial_Zone : Bool; // Bottles in initial zone - Bottles_In_Final_Zone : Bool; // Bottles in final zone - Bottle_Count : Int; // Number of bottles in area -END_VAR - -VAR_STAT - Virtual_Encoder : FB_Virtual_Encoder; - Bottle_Positions : Array[1..50] of Real; // Track up to 50 bottles - Active_Bottles : Int; - Photocell_Pulse_Edge : R_TRIG; -END_VAR - -// Pseudocode: -BEGIN - Virtual_Encoder( - Motor := Motor, - Enable := Enable, - Ratio_Hz_to_mm_min := Calculate_Area_Ratio() - ); - - // Detect new bottle entry - Photocell_Pulse_Edge(CLK := Photocell_Pulse); - IF Photocell_Pulse_Edge.Q THEN - Add_New_Bottle_To_Tracking(); - END_IF; - - // Update all bottle positions - FOR i := 1 TO Active_Bottles DO - Bottle_Positions[i] := Bottle_Positions[i] - Virtual_Encoder.Displacement_mm; - - // Remove bottles that have exited the area - IF Bottle_Positions[i] <= 0 THEN - Remove_Bottle_From_Tracking(i); - END_IF; - END_FOR; - - // Calculate outputs - IF Active_Bottles = 0 THEN - Area_Empty := TRUE; - First_Bottle_Position := 0; - Last_Bottle_Position := 0; - ELSE - Area_Empty := FALSE; - First_Bottle_Position := Find_Minimum_Position(); - Last_Bottle_Position := Find_Maximum_Position(); - END_IF; - - Bottles_In_Initial_Zone := Check_Bottles_In_Zone(Area_Length_mm * 0.8, Area_Length_mm); - Bottles_In_Final_Zone := Check_Bottles_In_Zone(0, Area_Length_mm * 0.2); - Bottle_Count := Active_Bottles; -END_FUNCTION_BLOCK; -``` - -## 8. Motor-Specific Function Examples - -### 8.1 FC_Table_Motor_M316 (Input Feeder Left) -```pascal -FC_Table_Motor_M316: -VAR_IN_OUT - Motor : UDT_Motor_Manage; - Table_Status : T_Table_Status_Commands; // Reference to FB_Table.Status -END_VAR - -// Pseudocode: -BEGIN - // === MOTOR CONFIGURATION === - Motor.CFG_VFD := TRUE; - Motor.CFG_PN := TRUE; - Motor.CFG_Inverter_Type := Inverter_Type_MINIMOTOR; - Motor.CFG_Min_Speed_Hz := 10; - Motor.CFG_Max_Speed_Hz := 500; - - // === READ COMMANDS FROM TABLE LOGIC === - Motor.REQ_EN_Run := Table_Status.Input_Feeders_Enable; - - IF Table_Status.Input_Feeders_Enable THEN - Motor.REQ_Speed_Fix_01 := TRUE; - Motor.OUT_VFD_REQ_Speed_User := Convert_mm_min_to_User_Units(Table_Status.Input_Feeders_Speed_mm_min); - - // Feeder-specific logic: synchronized operation with M317 - Check_Synchronization_With_M317(); - - // Stop after bottle detection if requested - IF Table_Status.Input_Feeders_Stop_After_Bottle THEN - Implement_Stop_After_Bottle_Logic(); - END_IF; - ELSE - Motor.REQ_Speed_Fix_01 := FALSE; - END_IF; - - // === CALL MOTOR MANAGEMENT FB === - FB_Motors_Manage(Motor); -END_FUNCTION; -``` - -### 8.2 FC_Table_Motor_M319 (Input Selector) -```pascal -FC_Table_Motor_M319: -VAR_IN_OUT - Motor : UDT_Motor_Manage; - Table_Status : T_Table_Status_Commands; -END_VAR - -// Pseudocode: -BEGIN - // === MOTOR CONFIGURATION === - Motor.CFG_VFD := TRUE; - Motor.CFG_PN := TRUE; - Motor.CFG_Inverter_Type := Inverter_Type_MINIMOTOR; - - // === POSITIONING MODE SETUP === - IF Table_Status.Input_Selector_Positioning_Mode THEN - Setup_Positioning_Mode(); - Target_Position := Get_Position_For_Channel(Table_Status.Input_Selector_Target_Channel); - Motor.REQ_Target_Position := Target_Position; - Motor.REQ_Positioning_Enable := Table_Status.Input_Selector_Enable; - ELSE - Setup_Velocity_Mode(); - Motor.REQ_EN_Run := Table_Status.Input_Selector_Enable; - END_IF; - - // === CALL MOTOR MANAGEMENT FB === - FB_Motors_Manage(Motor); -END_FUNCTION; -``` - -### 8.3 FC_Table_Motor_M332 (Center Channel - Bypass) -```pascal -FC_Table_Motor_M332: -VAR_IN_OUT - Motor : UDT_Motor_Manage; - Table_Status : T_Table_Status_Commands; -END_VAR - -// Pseudocode: -BEGIN - // === MOTOR CONFIGURATION === - Motor.CFG_VFD := TRUE; - Motor.CFG_PN := TRUE; - Motor.CFG_Inverter_Type := Inverter_Type_G120C_SIEMENS; - - // === READ COMMANDS FROM TABLE LOGIC === - Motor.REQ_EN_Run := Table_Status.Channel_Enable[5]; // Channel 5 = center - - IF Table_Status.Channel_Enable[5] THEN - Motor.REQ_Speed_Fix_01 := TRUE; - Motor.OUT_VFD_REQ_Speed_User := Convert_mm_min_to_User_Units(Table_Status.Channel_Speed_mm_min[5]); - ELSE - Motor.REQ_Speed_Fix_01 := FALSE; - END_IF; - - // === CALL MOTOR MANAGEMENT FB === - FB_Motors_Manage(Motor); -END_FUNCTION; -``` - -## 9. Error Handling - -### 9.1 Basic Error Detection -```pascal -PROCEDURE Check_Basic_Errors: -BEGIN - Error_Code := 0; - - // Check motor inverter errors - IF Motor_M316.Alarm_02 OR Motor_M317.Alarm_02 THEN - Error_Code := Error_Code OR 16#0001; // Input feeders inverter error - END_IF; - - IF Motor_M341.Alarm_02 OR Motor_M342.Alarm_02 THEN - Error_Code := Error_Code OR 16#0002; // Output feeders inverter error - END_IF; - - // Check selector positioning errors - IF Motor_M319.Alarm_02 THEN - Error_Code := Error_Code OR 16#0004; // Input selector error - END_IF; - - IF Motor_M340.Alarm_02 THEN - Error_Code := Error_Code OR 16#0008; // Output selector error - END_IF; - - // Check channel motor errors - FOR i := 1 TO 9 DO - IF Get_Channel_Motor_Alarm(i) THEN - Error_Code := Error_Code OR (16#0010 SHL i); // Channel motor error - END_IF; - END_FOR; - - // Transition to error state if errors detected - IF Error_Code <> 0 THEN - Current_State := TABLE_STATE_ERROR; - END_IF; -END_PROCEDURE; -``` - -## 10. Configuration and Initialization - -### 10.1 Format Configuration Example -```pascal -PROCEDURE Initialize_Format_Data: -BEGIN - // Format 1 - Left side accumulation - Format_Data[1].Format_Number := 1; - Format_Data[1].Accumulation_Side := 1; // Left side - Format_Data[1].Bottle_Dimension_mm := 85.0; - Format_Data[1].Max_Speed_mm_min := 12000.0; - Format_Data[1].Target_Channels := [1, 2, 3, 4]; - - // Format 2 - Right side accumulation - Format_Data[2].Format_Number := 2; - Format_Data[2].Accumulation_Side := 2; // Right side - Format_Data[2].Bottle_Dimension_mm := 65.0; - Format_Data[2].Max_Speed_mm_min := 15000.0; - Format_Data[2].Target_Channels := [9, 8, 7, 6]; -END_PROCEDURE; -``` - -### 10.2 Area Configuration -```pascal -PROCEDURE Initialize_Area_Management: -BEGIN - // Configure each area with its specific dimensions - Area_Input_Selector.Area_Length_mm := 500.0; - Area_Output_Selector.Area_Length_mm := 500.0; - - FOR i := 1 TO 9 DO - Area_Channel[i].Area_Length_mm := Get_Channel_Length(i); - END_FOR; -END_PROCEDURE; -``` - -## 11. Integration Points - -### 11.1 FC_Table_Devices Integration -```pascal -FC_Table_Devices: -BEGIN - // Call Table FB with all motor references and exchange data - "DB Table"( - Enable := System_Enable, - Target_Format := HMI_Selected_Format, - Manual_Mode := System_Manual_Mode, - - Motor_M316 := "DB Motor M316".Manage, - Motor_M317 := "DB Motor M317".Manage, - Motor_M318 := "DB Motor M318".Manage, - Motor_M319 := "DB Motor M319".Manage, - Motor_M328 := "DB Motor M328".Manage, - Motor_M329 := "DB Motor M329".Manage, - Motor_M330 := "DB Motor M330".Manage, - Motor_M331 := "DB Motor M331".Manage, - Motor_M332 := "DB Motor M332".Manage, - Motor_M333 := "DB Motor M333".Manage, - Motor_M334 := "DB Motor M334".Manage, - Motor_M335 := "DB Motor M335".Manage, - Motor_M336 := "DB Motor M336".Manage, - Motor_M340 := "DB Motor M340".Manage, - Motor_M341 := "DB Motor M341".Manage, - Motor_M342 := "DB Motor M342".Manage, - Motor_M343 := "DB Motor M343".Manage, - - Exchange := "DB ATable Exchange" - ); - - // Additional device coordination logic if needed -END_FUNCTION; -``` - -This specification provides a complete framework for implementing the table accumulation system while maintaining consistency with the existing motor management framework. The design allows for clear separation of concerns, easy debugging, and flexible implementation of motor-specific behaviors. - - - diff --git a/03-VM/44 - 98050 - Fiera/Especifica/IO - Ips Nodes.md b/03-VM/44 - 98050 - Fiera/Especifica/IO - IP Nodes & PLC IO Tags.md similarity index 61% rename from 03-VM/44 - 98050 - Fiera/Especifica/IO - Ips Nodes.md rename to 03-VM/44 - 98050 - Fiera/Especifica/IO - IP Nodes & PLC IO Tags.md index 23abcff..47efd29 100644 --- a/03-VM/44 - 98050 - Fiera/Especifica/IO - Ips Nodes.md +++ b/03-VM/44 - 98050 - Fiera/Especifica/IO - IP Nodes & PLC IO Tags.md @@ -126,3 +126,104 @@ Questi sono 1: FC6 -> Force 4 Tilter: gsdml-v2.32-minimotor-dbs55-20190315.xml FC de ALPLA: gsdml-v2.32-minimotor-dbs55-20190315.xml + + +### IO PLC +*** + +| Tag | IO | Description Italian | +| --------- | -------- | ----------------------------------------------------- | +| HL53010 | %A0.0 | COL. LUMINOSA MARCIAAUTOMATICA | +| HL53020 | %A0.1 | SEGNALAZIONE COL. LUMINOSA | +| HL53030 | %A0.2 | ALLARME COL. LUMINOSA | +| HA53040 | %A0.3 | COL. LUMINOSA SIRENA | +| SH50510 | %A0.5 | MARCIA SEGN. LUMINOSA | +| SH50560 | %A0.6 | SEGN. LUMINOSA RICHIESTAACCESSO | +| SH50560 | %A0.6 | RICHIESTA ACCESSO | +| SH50570 | %A0.7 | SEGN. RESET LUMINOSA ALLARMI | +| SH50570 | %A0.7 | RESET ALLARMI | +| KA53210 | %A2.0 | RELE EMERGENZA GENERALE RESET R | +| KA53220 | %A2.1 | CARTER DIVISORE RESET RELE | +| KA53230 | %A2.2 | TAVOLO SMISTATORE CARTER INGRESSO RESET RELE | +| KA53240 | %A2.3 | TAVOLO RELE CARTER SMISTATORE USCITA RESETF | +| KA53250 | %A2.4 | ABILTAZIONE DIVISORE GATEWAY USCITA E 1GRUPPO | +| KA53260 | %A2.5 | GATEWAY USCITA ABILTAZIONE DIVISORE E 2GRUPPO | +| KA53270 | %A2.6 | GATEWAYUSCITA ADIMSORE ABILITAZIONE 3GRUPPO | +| KA53280 | %A2.7 | DIVSORE GATEWAY USCITA E 4GRUPPO ABILITAZIONE | +| KA53310 | %A3.0 | GATEWAY INGRESSO DIVISORE ABILITAZIONE E 1 GRUPPO | +| KA53320 | %A3.1 | GATEWAY INGRESSO ABILITAZIONE DIVISORE E 2 GRUPPO | +| KA53330 | %A3.2 | GATEWAY INGRESSO DIVISORE ABILITAZIONE 3 GRUPPO | +| KA53340 | %A3.3 | DIVISORE GATEWAY INGRESSO ABILITAZIONE 4GRUPPO | +| KA53350 | %A3.4 | DIVISORE ABILTAZIONE LLUMINAZIONE | +| U30110EN | %A3.5 | ASSE ABILITAZIONE LONGITUDINALE DIVSORE | +| U30210EN | %A3.6 | TRASVERSALE ASSE ABILITAZIONE DIVISORE | +| M31910HOM | %A3.7 | TAVOLO AZZERAMENTO EINGRESSO SMISTATORE TRASLAZIONE | +| M34010HOM | %A4.0 | AZZERAMENTOTRASLAZIONE SMISTATORE USCITA TAVOLO | +| QF10410 | %E0.0 | LINEA ALIMENTAZIONE MOVIGEAR | +| SERIETDIV | %E0.1 | AZIONAMENT ALIMENTAZIONE DIVISORE | +| QF31110 | %E0.2 | ALIMENTAZIONE SPAZIATORE USCITA DIVISORE | +| QF27110 | %E0.3 | ALIMENT. REG. LARGHEZZA USCITA SPAZIATORE DIVSORF | +| QF31610 | %E0.4 | ALIMENTAZIONE TAVOLO SPAZIATORE INGRESSO | +| QF27130 | %E0.5 | TAVOLO ALIMENT.REG. LARGHEZZA INGRESSO SPAZIATORE | +| QF31910 | %E0.6 | ALIMENTAZIONE SMISTATORE TRASLAZIONE FINGRESSO TAVOLO | +| SERIETTAV | %E0.7 | TAVOLO ALIMENTAZIONE INVERTER | +| QF27170 | %E1.0 | ALIMENTAZIONE CINGHIOLI REG. DIVISORE | +| QF34010 | %E1.1 | SMISTATORE TRASLAZIONE ALIMENTAZIONE ATAVOLO USCITA | +| QF34110 | %E1.2 | TAVOLO ALIMENTAZIONE SPAZIATORE USCITA | +| QF27150 | %E1.3 | ALIMENT. REG. LARGHEZZA SPAZIATORE USCITA LTAVOLO | +| FA10910 | %E1.4 | 24VDC QUADRO ALIMENTAZIONE INTERNO | +| FA10970 | %E1.5 | ALIMENTAZIONE MICROMECCANICA MOTORIN | +| QF11030 | %E1.6 | ALIMENTAZIONE ILLUMINAZIONE DIVISORE | +| AIRQE | %E1.7 | CONDIZIONATORE ALLARME | +| K14010 | %E2.0 | EMERGENZA GENERALE RELEE | +| SB14110FK | %E2.1 | PB1 PULSANTE EM. PUI SANTIERA | +| SPARE2 | %E2.2 | PULSANTE SCORTA EM. | +| SPARE1 | %E2.3 | PULSANTE SCORTA EM. | +| SPARE3 | %E2.4 | PULSANTE SCORTA EM. | +| K15010 | %E3.0 | EMERGENZA CARTER DIVISORE RELE E | +| S20010 | %E3.1 | PORTA1DIVISORE MICRO ABILITAZIONE | +| S20010 | %E3.1 | DIVISORE MICRO 0PORTA1 | +| S20110 | %E3.2 | MICRO ABILITAZIONE PORTA 2 DIVISORE | +| S20110 | %E3.2 | MICRO PORTA 2 DIVISORE | +| S20210 | %E3.3 | MICRO ABILITAZIONE PORTA 3 DIVSORE | +| S20210 | %E3.3 | MICRO PORTA 3 DIVISORE | +| S20310 | %E3.4 | MICRO ABILITAZIONE PORTA 4 DIVISORE | +| S20310 | %E3.4 | DIVISORE MICRO PORTA 4 | +| S20410 | %E3.5 | MICRO ABILITAZIONE PORTA 5 DIVSORE | +| S20410 | %E3.5 | DIVISORE MICRO PORTA 5 | +| S20510 | %E3.6 | MICRO ABILITAZIONE PORTA 6 DIMSORE | +| S20510 | %E3.6 | MICRO PORTA 6 DIVISORE | +| S20610 | %E3.7 | MICRO ABILITAZIONE PORTA 7 DIVSORE | +| S20610 | %E3.7 | DIVISORE MICRO 0PORTA7 | +| S20710 | %E4.0 | MICRO ABILITAZIONE PORTA 8 DIVISORE | +| S20710 | %E4.0 | PORTA 8 MICRO DIVSORE | +| K16010 | %E4.2 | RELE CARTER SMISTATORE TAVOLO N INGRESSO MULTIMA | +| S20810 | %E4.3 | TAVOLO SMISTATORE INGRESSO MICRO PORTA 1 | +| S20910 | %E4.4 | SMISTATORE TAVOLO MICRO INGRESSO PORTA 2 | +| K17010 | %E4.5 | USCITA RELE CARTER SMISTATORE TAVOLO MULTIMA | +| S21010 | %E4.6 | TAVOLO SMISTATORE MICRO USCITA PORTA 1 | +| S21110 | %E4.7 | TAVOLO SMISTATORE MICRO PORTA 2 USCITA | +| SB50510 | %E5.0 | MARCIA | +| SB50520 | %E5.1 | ARRESTO | +| SA50530 | %E5.2 | MANUALE/AUTOMATICO | +| SA50540FF | %E5.3 | AVANTI MANUAL COMANDI | +| SA50540BW | %E5.4 | INDIETRO COMANDI MANUAL | +| B50610 | %E6.0 | CONTEGGIO DIVSORE FORMATO 1 | +| B50620 | %E6.1 | CONTEGGIO DIVISORE FORMATO 2 | +| B50630 | %E6.2 | TRASLAZIONE SICUREZZA DIVISORE ALTA | +| B50640 | %E6.3 | TRASLAZIONE BASSA DIVISORE SICURE77A | +| S31040 | %E1413.0 | Sensore Di Asse Longitudinale | +| S31050 | %E1413.1 | Sensore de Asse Transversale | +| S31051 | %E1413.2 | Sensore de Reg Spaziatore Uscita Divisore | +| B31060 | %E1413.3 | Sicurezza uscita spaziatore | +| B31440 | %E1577.0 | Minimo Polmone Ingresso Tavolo | +| B31540 | %E1597.0 | CONTEGGIO INGRESSO TAVOLO | +| B31550 | %E1597.1 | SICUREZA TRASLAZIONE SMISTATORE INGRESSO | +| S31550 | %E1597.2 | SENSORE DI HOMING SPAZIATORE ING. TAVOLO | +| S31560 | %E1597.3 | SENSORE DI HOMING TRASL SMISTATORE INGRESO | +| B34440 | %E2217.0 | SICUREZZA TRALAZIONE SMISTATORE USCITA | +| B34450 | %E2217.1 | CONTEGGIO USCITA TAVOLO | +| B34451 | %E2217.2 | INTASAMENTO USCITA TAVOLO | +| S34460 | %E2217.3 | SENSORE DI HOMING TRASL SMISTATORE USCITA | +| S34461 | %E2217.4 | SENSORE DE HOMING SPAZIATORE USCITA TAVOLO | + diff --git a/03-VM/44 - 98050 - Fiera/Especifica/Progetto 98050 Fiera - Tavolo di accumulo - Logica - v 0.2 - en.md b/03-VM/44 - 98050 - Fiera/Especifica/Progetto 98050 Fiera - Tavolo di accumulo - Logica - v 0.2 - en.md deleted file mode 100644 index 59d3521..0000000 --- a/03-VM/44 - 98050 - Fiera/Especifica/Progetto 98050 Fiera - Tavolo di accumulo - Logica - v 0.2 - en.md +++ /dev/null @@ -1,157 +0,0 @@ - -### 1. Goal - -Implement the control logic for a two-format bottle loop consisting of the Accumulation Table, Curve 1, Divider, Combiner, Curve 2 and the format-change axes. Only the loop, table and format-change logic are in scope. - ---- - -### 2. Physical Layout - -`AccumTable → Curve 1 (M344) → Divider → Combiner (M311 + M312) → Curve 2 (M315) → AccumTable` - ---- - -### 3. Runtime Data held by every entity - -|Field|Type|Meaning| -|---|---|---| -|`formatId`|INT|Active bottle format| -|`cycleMode`|ENUM {AUTO, MAN}|Automatic / Manual| -|`alarmBits`|DWORD|Active alarms bitmap| -|`topAlarm`|WORD|Highest-priority alarm code| - ---- - -### 4. Main Operating States - -1. **Load** – fill outermost channels first. - -2. **Bypass** – straight-through flow. - -3. **Unload** – empty innermost channels first. - - ---- - -### 5. Functional Behaviour (concise) - -|Sub-system|Key rules of operation| -|---|---| -|**Accumulation Table**|• Works in three states (Load, Bypass, Unload).• Channels are filled from the outside in and emptied from the inside out; channels that lie between the selector and the active channel must run while bottles cross them.| -||• Each channel keeps two virtual counters `firstBottle_mm` & `lastBottle_mm`, initialised to the full channel length when a bottle is detected and decremented by the conveyor encoder; when `firstBottle_mm == 0` the leading bottle has reached the channel’s end.| -||• Once a channel starts **Unload** it must run until `lastBottle_mm == 0` to avoid trapping product.| -|**Curve 1 / Curve 2**|• Curve 1 runs in speed-follower mode slaved to the Divider and may move only while the Divider is running.• Curve 2 is slaved to the Combiner and must run whenever the Combiner runs; the two curves are the only places where line accumulation may build up.| -|**Combiner**|• Speed follows the Divider.• Stops if the downstream photo-sensor `pth_out` detects more than one bottle; if Combiner stops it also stops the Divider.| -|**Doser Pair**|• Two motors run in mirror at identical speed; if either trips, both stop.• After the last bottle pulse the pair runs an additional distance (`stopDist_mm`) using a virtual encoder before stopping.| - ---- - -### 6. Key Parameters - -`bottleLen_mm`, `minAccumTime_ms`, `loadSpeed_mmps`, `unloadSpeed_mmps`, `bypassSpeed_mmps`, `virtualEncRatio_HzPerMm`, `safetyGapIn_mm`, `safetyGapOut_mm` - ---- - -### 7. Software Architecture (Function Blocks) - -| FB Name | Purpose | Typical DB | -| ---------------------- | ---------------------------------------------------------- | ------------------------ | -| **FB_FormatAxis** | Position a single minimotor to the target format dimension | `DB_FormatAxis_` | -| **FB_ChannelSelector** | Position the infeed/outfeed selector to a channel | `DB_SelIn`, `DB_SelOut` | -| **FB_AreaTracker** | Track `firstBottle` / `lastBottle` and drive an area motor | `DB_Area_` | -| **FB_DoserPair** | Run a left/right doser pair with stop-after-pulse logic | `DB_DoserIO` | -| **FB_BufferLogic** | High-level coordinator for Load / Bypass / Unload | `DB_Buffer` | -| **FB_CombinerCtrl** | Synchronise Combiner with Divider, stop on blockage | `DB_Combiner` | -| **FB_LoopCurve** | Slave Curve 1 to Divider and Curve 2 to Combiner | `DB_Curve1`, `DB_Curve2` | - ---- - -### 8. Interfaces (concise examples) - -_FB_FormatAxis_ - -``` -Inputs : enable, dimSet_mm, cycleMode, cmdHoming, jogFwd, jogRev, reset -Outputs: inPosition, positioning, errorWord -``` - -_FB_ChannelSelector_ - -``` -Inputs : enable, channelSet(0-9), cycleMode, cmdHoming, jogFwd, jogRev, reset -Outputs: inPosition, positioning, autoActive, errorWord -``` - -_FB_AreaTracker_ - -``` -Inputs : enable, speedRef_mmps, bottleLen_mm, spacing_mm, areaDim_mm -Outputs: areaEmpty, noBottleAtIn, noBottleAtOut -``` - -_FB_DoserPair_ - -``` -Inputs : enable, speedRef_mmps, bottlePulse, stopDist_mm -Outputs: running, errorWord -``` - -_FB_BufferLogic_ - -``` -Inputs : reqLoad, reqFormatChange, unloadEnable, bypassSpeedRef -Outputs: tableNeedsProduct, formatChangeOK, outfeedSpeedRef, bypassActive -``` - -_FB_CombinerCtrl_ - -``` -Inputs : dividerSpeedRef_mmps, pthOutBlocked, dividerRunning -Outputs: combinerSpeedRef_mmps, stopDivider -``` - ---- - -### 9. Naming Guidelines - -|Category|Convention|Example| -|---|---|---| -|FBs|`FB_`|`FB_BufferLogic`| -|BOOL var|verbNounFlag|`enableMove`| -|WORD|camelCase|`errorWord`| -|REAL|suffix `_mm`, `_mmps`|`speedRef_mmps`| -|Structs|`ST_`|`ST_AreaStatus`| - ---- - -### 10. Signal Map (I/O) - -|Signal|Suggested Name|Dir|Comment| -|---|---|---|---| -|i1|`ringOutReq`|IN|Product request from downstream| -|i2|`loadCmd`|IN|Start load for format change| -|i3|`ringEmptyOk`|IN|Loop & Divider ready for change| -|i4|`bypassSpeedRef`|IN|Desired bypass speed| -|i5|`formatChangeCmd`|IN|HMI executes change| -|i6|`unloadEnable`|IN|Allow automatic unload| -|o1|`tableProdReq`|OUT|Table ready, asks for bottles| -|o2|`formatChangeOK`|OUT|Loading done & loop empty| -|o3|`outfeedSpeedRef`|OUT|Speed reference to ring outfeed| -|o4|`bypassActive`|OUT|Table in bypass state| - ---- - -### 11. State Sequence Summary - -1. External `loadCmd` → BufferLogic enters **Load**, enforcing outer-to-inner rule. - -2. On HMI `formatChangeCmd`, BufferLogic finishes load, waits for `ringEmptyOk`, then raises `formatChangeOK`. - -3. After format change, BufferLogic triggers **Unload** (inner-to-outer). - -4. When all channels empty, state switches to **Bypass** and `bypassActive` is set. - - ---- - -This version retains the tight structure and English terminology from the previous draft while adding the essential operating descriptions for the Accumulation Table, Curves, Combiner and Doser logic drawn from the original Spanish document. \ No newline at end of file diff --git a/03-VM/44 - 98050 - Fiera/Especifica/Untitled.canvas b/03-VM/44 - 98050 - Fiera/Especifica/Untitled.canvas deleted file mode 100644 index e46ec8f..0000000 --- a/03-VM/44 - 98050 - Fiera/Especifica/Untitled.canvas +++ /dev/null @@ -1,124 +0,0 @@ -{ - "edges": [ - { - "fromNode": "e72fa25693e3125c", - "fromSide": "left", - "id": "2cf81a9c982a2067", - "styleAttributes": { - }, - "toFloating": false, - "toNode": "ad6652d132247aaf", - "toSide": "right" - }, - { - "fromFloating": false, - "fromNode": "bba4d98c4f5cd237", - "fromSide": "left", - "id": "8186fcdcf4ffa0ce", - "styleAttributes": { - "arrow": null, - "pathfindingMethod": "square" - }, - "toFloating": false, - "toNode": "3d4520602586e940", - "toSide": "top" - }, - { - "fromFloating": false, - "fromNode": "3d4520602586e940", - "fromSide": "right", - "id": "b6cf025f45f254f2", - "styleAttributes": { - "pathfindingMethod": "square" - }, - "toFloating": false, - "toNode": "e72fa25693e3125c", - "toSide": "right" - }, - { - "fromNode": "ad6652d132247aaf", - "fromSide": "left", - "id": "b61703c8f621acf7", - "styleAttributes": { - "pathfindingMethod": "square" - }, - "toFloating": false, - "toNode": "3d4520602586e940", - "toSide": "left" - }, - { - "fromFloating": false, - "fromNode": "3d4520602586e940", - "fromSide": "top", - "id": "8abcd389a15e7d5b", - "styleAttributes": { - "pathfindingMethod": "square" - }, - "toFloating": false, - "toNode": "bba4d98c4f5cd237", - "toSide": "right" - } - ], - "metadata": { - "frontmatter": { - }, - "version": "1.0-1.0" - }, - "nodes": [ - { - "height": 60, - "id": "bba4d98c4f5cd237", - "styleAttributes": { - }, - "text": "Table", - "type": "text", - "width": 260, - "x": -80, - "y": -680 - }, - { - "height": 60, - "id": "e72fa25693e3125c", - "styleAttributes": { - }, - "text": "Divider", - "type": "text", - "width": 260, - "x": 120, - "y": -260 - }, - { - "height": 60, - "id": "ad6652d132247aaf", - "styleAttributes": { - }, - "text": "Combiner", - "type": "text", - "width": 260, - "x": -280, - "y": -260 - }, - { - "height": 60, - "id": "3d4520602586e940", - "styleAttributes": { - }, - "text": "Ring", - "type": "text", - "width": 260, - "x": -80, - "y": -440 - }, - { - "height": 110, - "id": "1fbed33d803bc91b", - "styleAttributes": { - }, - "text": "Operador\nSolicita Cambio Formato\nHMI_Machine", - "type": "text", - "width": 260, - "x": -580, - "y": -760 - } - ] -} \ No newline at end of file diff --git a/03-VM/44 - 98050 - Fiera/Especifica/Layout - Anello-Ring.md b/03-VM/44 - 98050 - Fiera/Especifica/excal - Layout - Anello-Ring.md similarity index 100% rename from 03-VM/44 - 98050 - Fiera/Especifica/Layout - Anello-Ring.md rename to 03-VM/44 - 98050 - Fiera/Especifica/excal - Layout - Anello-Ring.md diff --git a/03-VM/44 - 98050 - Fiera/Especifica/98050_Hardware PEW - PAW.md b/03-VM/44 - 98050 - Fiera/IO/98050_Hardware PEW - PAW.md similarity index 100% rename from 03-VM/44 - 98050 - Fiera/Especifica/98050_Hardware PEW - PAW.md rename to 03-VM/44 - 98050 - Fiera/IO/98050_Hardware PEW - PAW.md diff --git a/07 - Desarrolo de Proyectos - Scripts - Cursor - Visual Studio/Cursor Notes.md b/07 - Desarrolo de Proyectos - Scripts - Cursor - Visual Studio/Cursor Notes.md new file mode 100644 index 0000000..f49aa9f --- /dev/null +++ b/07 - Desarrolo de Proyectos - Scripts - Cursor - Visual Studio/Cursor Notes.md @@ -0,0 +1,29 @@ +*** + +### Para ver el uso: + +Dashboard: [Cursor - The AI Code Editor](https://cursor.com/dashboard) + +### Project-Specific MCP setup + +* Poner bajo el subdirectorio .cursor el archivo mcp.json con la configuracion de los mcp +* Ejemplo : [mcp.json](file:///D:%5CProyectos%5CScripts%5CHomeAssistant%5C.cursor%5Cmcp.json) + +```json +{ + "mcpServers": { + "home-assistant": { + "command": "C:\\Users\\migue\\miniconda3\\envs\\homeassistant\\python.exe", + "args": [ + "d:\\Proyectos\\Scripts\\HomeAssistant\\mcp_server.py" + ], + "env": { + "HA_URL": "http://192.168.88.130:8123", + "HA_TOKEN": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiI4MGZmZjNiMjI1MTI0YmRkYTQxMWVjODdjNmE3ZjBiMiIsImlhdCI6MTc0OTg5NzA1MSwiZXhwIjoyMDY1MjU3MDUxfQ.A47Nj9BrUFVF_DTfux2yrG7iZjsPdRJrfZr1LTKEWRw" + } + } + } +} +``` + + diff --git a/07 - Desarrolo de Proyectos - Scripts - Visual Studio/Proyectos Visual Studio/Aplicaciones y Librerias.md b/07 - Desarrolo de Proyectos - Scripts - Cursor - Visual Studio/Proyectos Visual Studio/Aplicaciones y Librerias.md similarity index 100% rename from 07 - Desarrolo de Proyectos - Scripts - Visual Studio/Proyectos Visual Studio/Aplicaciones y Librerias.md rename to 07 - Desarrolo de Proyectos - Scripts - Cursor - Visual Studio/Proyectos Visual Studio/Aplicaciones y Librerias.md diff --git a/07 - Desarrolo de Proyectos - Scripts - Visual Studio/Proyectos Visual Studio/Como usar PublicApiGenerator - Nuget - Documentator.md b/07 - Desarrolo de Proyectos - Scripts - Cursor - Visual Studio/Proyectos Visual Studio/Como usar PublicApiGenerator - Nuget - Documentator.md similarity index 100% rename from 07 - Desarrolo de Proyectos - Scripts - Visual Studio/Proyectos Visual Studio/Como usar PublicApiGenerator - Nuget - Documentator.md rename to 07 - Desarrolo de Proyectos - Scripts - Cursor - Visual Studio/Proyectos Visual Studio/Como usar PublicApiGenerator - Nuget - Documentator.md diff --git a/07 - Desarrolo de Proyectos - Scripts - Visual Studio/Proyectos Visual Studio/NetDocsForLLM/NetDocsForLLM - Especifica base.md b/07 - Desarrolo de Proyectos - Scripts - Cursor - Visual Studio/Proyectos Visual Studio/NetDocsForLLM/NetDocsForLLM - Especifica base.md similarity index 100% rename from 07 - Desarrolo de Proyectos - Scripts - Visual Studio/Proyectos Visual Studio/NetDocsForLLM/NetDocsForLLM - Especifica base.md rename to 07 - Desarrolo de Proyectos - Scripts - Cursor - Visual Studio/Proyectos Visual Studio/NetDocsForLLM/NetDocsForLLM - Especifica base.md diff --git a/07 - Desarrolo de Proyectos - Scripts - Visual Studio/Proyectos Visual Studio/Notas para crear nuevas aplicaciones.md b/07 - Desarrolo de Proyectos - Scripts - Cursor - Visual Studio/Proyectos Visual Studio/Notas para crear nuevas aplicaciones.md similarity index 100% rename from 07 - Desarrolo de Proyectos - Scripts - Visual Studio/Proyectos Visual Studio/Notas para crear nuevas aplicaciones.md rename to 07 - Desarrolo de Proyectos - Scripts - Cursor - Visual Studio/Proyectos Visual Studio/Notas para crear nuevas aplicaciones.md diff --git a/07 - Desarrolo de Proyectos - Scripts - Visual Studio/Proyectos Visual Studio/ROI Editor/Ctr Editor - Notas con Mejoras.md b/07 - Desarrolo de Proyectos - Scripts - Cursor - Visual Studio/Proyectos Visual Studio/ROI Editor/Ctr Editor - Notas con Mejoras.md similarity index 100% rename from 07 - Desarrolo de Proyectos - Scripts - Visual Studio/Proyectos Visual Studio/ROI Editor/Ctr Editor - Notas con Mejoras.md rename to 07 - Desarrolo de Proyectos - Scripts - Cursor - Visual Studio/Proyectos Visual Studio/ROI Editor/Ctr Editor - Notas con Mejoras.md diff --git a/07 - Desarrolo de Proyectos - Scripts - Visual Studio/Proyectos Visual Studio/ROI Editor/CtrEditor - Descripción de Funcionamiento.md b/07 - Desarrolo de Proyectos - Scripts - Cursor - Visual Studio/Proyectos Visual Studio/ROI Editor/CtrEditor - Descripción de Funcionamiento.md similarity index 100% rename from 07 - Desarrolo de Proyectos - Scripts - Visual Studio/Proyectos Visual Studio/ROI Editor/CtrEditor - Descripción de Funcionamiento.md rename to 07 - Desarrolo de Proyectos - Scripts - Cursor - Visual Studio/Proyectos Visual Studio/ROI Editor/CtrEditor - Descripción de Funcionamiento.md diff --git a/07 - Desarrolo de Proyectos - Scripts - Visual Studio/Proyectos Visual Studio/S7 Explorer/S7 Explorer - Csharp.md b/07 - Desarrolo de Proyectos - Scripts - Cursor - Visual Studio/Proyectos Visual Studio/S7 Explorer/S7 Explorer - Csharp.md similarity index 100% rename from 07 - Desarrolo de Proyectos - Scripts - Visual Studio/Proyectos Visual Studio/S7 Explorer/S7 Explorer - Csharp.md rename to 07 - Desarrolo de Proyectos - Scripts - Cursor - Visual Studio/Proyectos Visual Studio/S7 Explorer/S7 Explorer - Csharp.md diff --git a/07 - Desarrolo de Proyectos - Scripts - Visual Studio/Scripts List.md b/07 - Desarrolo de Proyectos - Scripts - Cursor - Visual Studio/Scripts List.md similarity index 100% rename from 07 - Desarrolo de Proyectos - Scripts - Visual Studio/Scripts List.md rename to 07 - Desarrolo de Proyectos - Scripts - Cursor - Visual Studio/Scripts List.md diff --git a/07 - Desarrolo de Proyectos - Scripts - Visual Studio/Visual Studio Notes.md b/07 - Desarrolo de Proyectos - Scripts - Cursor - Visual Studio/Visual Studio Notes.md similarity index 100% rename from 07 - Desarrolo de Proyectos - Scripts - Visual Studio/Visual Studio Notes.md rename to 07 - Desarrolo de Proyectos - Scripts - Cursor - Visual Studio/Visual Studio Notes.md diff --git a/07 - Desarrolo de Proyectos - Scripts - Visual Studio/adjuntos/python.exe b/07 - Desarrolo de Proyectos - Scripts - Cursor - Visual Studio/adjuntos/python.exe similarity index 100% rename from 07 - Desarrolo de Proyectos - Scripts - Visual Studio/adjuntos/python.exe rename to 07 - Desarrolo de Proyectos - Scripts - Cursor - Visual Studio/adjuntos/python.exe