vault backup: 2025-05-25 12:04:57
|
@ -25,5 +25,7 @@
|
|||
"advanced-canvas",
|
||||
"obsidian-minimal-settings",
|
||||
"obsidian-mindmap-nextgen",
|
||||
"obsidian-plantuml"
|
||||
"obsidian-plantuml",
|
||||
"mcp-tools",
|
||||
"obsidian-local-rest-api"
|
||||
]
|
|
@ -0,0 +1,11 @@
|
|||
{
|
||||
"id": "mcp-tools",
|
||||
"name": "MCP Tools",
|
||||
"version": "0.2.22",
|
||||
"minAppVersion": "0.15.0",
|
||||
"description": "Securely connect Claude Desktop to your vault with semantic search, templates, and file management capabilities.",
|
||||
"author": "Jack Steam",
|
||||
"authorUrl": "https://github.com/jacksteamdev",
|
||||
"fundingUrl": "https://github.com/sponsors/jacksteamdev",
|
||||
"isDesktopOnly": true
|
||||
}
|
|
@ -6,11 +6,11 @@
|
|||
"emojiStyle": "native",
|
||||
"iconColor": null,
|
||||
"recentlyUsedIcons": [
|
||||
"LiClipboardList",
|
||||
"🪛",
|
||||
"LiScriptEngine",
|
||||
"👉",
|
||||
"LiCheckSquare2",
|
||||
"✅"
|
||||
"LiCheckSquare2"
|
||||
],
|
||||
"recentlyUsedIconsSize": 5,
|
||||
"rules": [],
|
||||
|
@ -37,5 +37,6 @@
|
|||
"01-Documentation/SIDEL/SIDEL - Passwords.md": "🔒",
|
||||
"04-SIDEL/SIDEL - Upgrades - Promemoria.md": "👉",
|
||||
"04-SIDEL/CheckList": "LiCheckSquare2",
|
||||
"01-Documentation/AI - IA - LLM - Artificial Intelligence": "🪛"
|
||||
"01-Documentation/AI - IA - LLM - Artificial Intelligence": "🪛",
|
||||
"04-SIDEL/Projects Description.md": "LiClipboardList"
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
{
|
||||
"port": 27124,
|
||||
"insecurePort": 27123,
|
||||
"enableInsecureServer": false,
|
||||
"apiKey": "965a8a4e62e6c0291d58dc0c9d5fccd95f1ad98dd032230f9766dc88bfa2b663",
|
||||
"crypto": {
|
||||
"cert": "-----BEGIN CERTIFICATE-----\r\nMIIDRTCCAi2gAwIBAgIBATANBgkqhkiG9w0BAQsFADAiMSAwHgYDVQQDExdPYnNp\r\nZGlhbiBMb2NhbCBSRVNUIEFQSTAeFw0yNTA1MjEwNjUyMTFaFw0yNjA1MjEwNjUy\r\nMTFaMCIxIDAeBgNVBAMTF09ic2lkaWFuIExvY2FsIFJFU1QgQVBJMIIBIjANBgkq\r\nhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAjEm+wjXWC7h/8DMiwLjQkY1hVQwYbty9\r\no9f96E4pYcSqE0WALRDRxtl0BN/h3b1zCKA+oZ8/zVx6cwS//GN0bWfRfi3yK0gl\r\n2MinxZ47KmLDL0wdKkkYNUoA9+ZLxMQCMPME8FC7S/C/SGO9D7L006Em8QwRNewR\r\nRJU194K8sdjG1mx6hQgydshp1BCWhC3g+NhEvBruHdBa+Ya61K3QjfAd9scGpDaX\r\n5yTCeqEy81+aXitTOSXRS4/wmnQkKxCCUlqBwUdaS2ob/eVNB7Y0UIgMxzncWL/i\r\nqNMn7BPMYzYJcJ63oSvbORZe/i3BojkyoBkS2vLyRuGfb1GNHAx0GQIDAQABo4GF\r\nMIGCMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgLEMDsGA1UdJQQ0MDIG\r\nCCsGAQUFBwMBBggrBgEFBQcDAgYIKwYBBQUHAwMGCCsGAQUFBwMEBggrBgEFBQcD\r\nCDARBglghkgBhvhCAQEEBAMCAPcwDwYDVR0RBAgwBocEfwAAATANBgkqhkiG9w0B\r\nAQsFAAOCAQEAJwqOBz8y2pb54q8t+Rm04aGIrNd887xXfbWyiDTVqrcV10Y0P4nF\r\ng7Iw2ShXRJLZeH+1bRrdJJqAxICi4NlQ6rzennAVEM1uu4q2eWe2aDCIgoL8c2Tw\r\nghUHlnaq8ykKc6Q7zeuCGcTU1KdTOwkTXpaGcO+TwaWvDkiechd6Nl+5s+5S9ebw\r\nuZdeBOTucNC4YHvpWKvP++ygKReD5TUw4wS7VeAuR4ReEq2FpUP/bFcs0B/1qHYW\r\nmwQhz/jyIJw7IDyx30b1QtUj0uieSnzPQqX0fVpi4Itt09AFBkBPlPjB72xCdIEm\r\nlBIwvkBoTigtE6XA42YG3eQc1Mg4seLj5A==\r\n-----END CERTIFICATE-----\r\n",
|
||||
"privateKey": "-----BEGIN RSA PRIVATE KEY-----\r\nMIIEowIBAAKCAQEAjEm+wjXWC7h/8DMiwLjQkY1hVQwYbty9o9f96E4pYcSqE0WA\r\nLRDRxtl0BN/h3b1zCKA+oZ8/zVx6cwS//GN0bWfRfi3yK0gl2MinxZ47KmLDL0wd\r\nKkkYNUoA9+ZLxMQCMPME8FC7S/C/SGO9D7L006Em8QwRNewRRJU194K8sdjG1mx6\r\nhQgydshp1BCWhC3g+NhEvBruHdBa+Ya61K3QjfAd9scGpDaX5yTCeqEy81+aXitT\r\nOSXRS4/wmnQkKxCCUlqBwUdaS2ob/eVNB7Y0UIgMxzncWL/iqNMn7BPMYzYJcJ63\r\noSvbORZe/i3BojkyoBkS2vLyRuGfb1GNHAx0GQIDAQABAoIBAAKpPsmZ/NVHFYIz\r\nGMnVbPtogPv8g+rNHCR4qz6AsQ9DjEMGUqVIMuUrPc9T3InOF1mxXyQbYbnzCE2Y\r\nkvhmKJC6De1vUK8v1Kv1OR1/YA7wmv7m2jdxoIMY7sYaY73im/Syv268O/lM9/aX\r\nEcCI+/+XCHvnvIcsfbKyg+NjOFIaoTujMkbhGa3DuE1incUDPv0jEqNASqb3Z7cl\r\nuLsX168lvDCOgRCIjDMdXcxNhhOsCMCAHqZunDc+uGkwPCZJtU4vfDi8lODTHekM\r\n6FwrT6ujOgfxg+0BQgl9ksTa5Suj2Th9MAjtW86HzifFhgaBVNmK7+FDdCmjC3Wu\r\nY8R5mpsCgYEAv1pEFW2+q2DrZ1qpozCjkGZ+WbYAiX4+xsbinUD/+lDzbj6/Wdo+\r\nH5ycGFUWMPCLGc4QJdCFIcqnHAh/qTvYq74sy3j/Vkrd2vYZHlBzWny6UmNkxHMV\r\nfgnMIkzYadbXCZYXE3+tvgdX6pY5tWSBeduI1PRbfMg4ypLQGMxJmrcCgYEAu68A\r\nbblpDoJoM6JutaABEJ8bH28SNdM1u58tSYLzG6vt0xzBop9JWcfcQQ4sPPftb1Of\r\n7yPLfNdgi0eEYxOgq2QAL/BSqnGaI9K9lIfCjs/yUFZnQkeC2L8YRCtmNlXvJE03\r\nDPUsASSB39CYaxkpN3jt/P4riObZeoz7EGWU168CgYEAiGBY7bzNi28D1yFyjW/4\r\n4s1pd56TO2rSavEMSW8uAMT4+bWWwv8cD4OabG0X58FIIhgOwiSe/bpk50HXWlHg\r\n1mYvnsSZlnK9M3T56fUEgZUrZdSY2Ln8s1tgNYH3K1eG4ropsCfrN+gb7IEsl+8N\r\nqD+igcO2AHTipN2FmmbefnkCgYAmcArYbfaUICUTHhsqW2CcdNlrMKY8G8uPZ2Qw\r\n//6mFioY6HTHx3OQTZxQPoTU37ni6O+CXIRaRwngvH7ig6yOLWbUapWjjqyQ1aI5\r\n/yvbb78isO9o5Zhop4piu7itPCBEAQRbRQMEIOPwYJo2pOqKD9w9yhhEa3Ly5Fiu\r\n3P8ExQKBgADx+xfLZa8BHAClemwDDxMFLimp6RzJaRVal+wdAl87XeNHuM9cz2kD\r\nLzH3RzKSrJadvbatCnjut57v5fmBdJEatgFrVpza78Oz6fQlCJ5ADTlRTFxDdc3m\r\nFxP0AzSwFL8uxqLswl8GgRbmNZLWa7gp3HSZx756ZC9m6c4y6ELJ\r\n-----END RSA PRIVATE KEY-----\r\n",
|
||||
"publicKey": "-----BEGIN PUBLIC KEY-----\r\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAjEm+wjXWC7h/8DMiwLjQ\r\nkY1hVQwYbty9o9f96E4pYcSqE0WALRDRxtl0BN/h3b1zCKA+oZ8/zVx6cwS//GN0\r\nbWfRfi3yK0gl2MinxZ47KmLDL0wdKkkYNUoA9+ZLxMQCMPME8FC7S/C/SGO9D7L0\r\n06Em8QwRNewRRJU194K8sdjG1mx6hQgydshp1BCWhC3g+NhEvBruHdBa+Ya61K3Q\r\njfAd9scGpDaX5yTCeqEy81+aXitTOSXRS4/wmnQkKxCCUlqBwUdaS2ob/eVNB7Y0\r\nUIgMxzncWL/iqNMn7BPMYzYJcJ63oSvbORZe/i3BojkyoBkS2vLyRuGfb1GNHAx0\r\nGQIDAQAB\r\n-----END PUBLIC KEY-----\r\n"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,10 @@
|
|||
{
|
||||
"id": "obsidian-local-rest-api",
|
||||
"name": "Local REST API",
|
||||
"version": "3.1.0",
|
||||
"minAppVersion": "0.12.0",
|
||||
"description": "Get, change or otherwise interact with your notes in Obsidian via a REST API.",
|
||||
"author": "Adam Coddington",
|
||||
"authorUrl": "https://coddingtonbear.net/",
|
||||
"isDesktopOnly": true
|
||||
}
|
|
@ -0,0 +1,47 @@
|
|||
/* Sets all the text color to red! */
|
||||
|
||||
div.obsidian-local-rest-api-settings div.api-key-display {
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
div.obsidian-local-rest-api-settings div.api-key-display pre {
|
||||
font-size: 0.8em;
|
||||
padding: 10px 20px;
|
||||
background-color: var(--background-modifier-cover);
|
||||
font-family: monospace;
|
||||
user-select: all;
|
||||
}
|
||||
|
||||
div.obsidian-local-rest-api-settings div.setting-item-control {
|
||||
min-width: 50%;
|
||||
}
|
||||
|
||||
div.obsidian-local-rest-api-settings textarea {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
div.obsidian-local-rest-api-settings div.certificate-expired {
|
||||
padding: 10px 20px;
|
||||
border: 2px solid #ff0000;
|
||||
}
|
||||
|
||||
div.obsidian-local-rest-api-settings div.certificate-expiring-soon {
|
||||
padding: 10px 20px;
|
||||
border: 2px solid #ffff00;
|
||||
}
|
||||
|
||||
div.obsidian-local-rest-api-settings div.certificate-regeneration-recommended {
|
||||
padding: 10px 20px;
|
||||
border: 2px solid #ffff00;
|
||||
}
|
||||
|
||||
div.obsidian-local-rest-api-settings table.api-urls tr {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
div.obsidian-local-rest-api-settings table.api-urls th, div.obsidian-local-rest-api-settings table.api-urls td {
|
||||
padding: 5px 25px;
|
||||
}
|
||||
|
||||
div.obsidian-local-rest-api-settings table.api-urls tr.disabled td.name, div.obsidian-local-rest-api-settings table.api-urls tr.disabled td.url {
|
||||
text-decoration: line-through;
|
||||
}
|
|
@ -1,128 +1,176 @@
|
|||
{
|
||||
"recentFiles": [
|
||||
{
|
||||
"basename": "Utilities - Windows Helpers - Utilidades",
|
||||
"path": "01-Documentation/Windows/Utilities - Windows Helpers - Utilidades.md"
|
||||
"basename": "Maselli - ADAM - Protocol",
|
||||
"path": "01-Documentation/Dispositivos - Manuales/Maselli/Maselli - ADAM - Protocol.md"
|
||||
},
|
||||
{
|
||||
"basename": "Notes for Windows - Chris Titus Tool - Online - Offline",
|
||||
"path": "01-Documentation/Windows/Notes for Windows - Chris Titus Tool - Online - Offline.md"
|
||||
"basename": "Maselli Proprietary Serial-Socket Protocol",
|
||||
"path": "01-Documentation/Dispositivos - Manuales/Maselli/Maselli - Utility/Maselli Proprietary Serial-Socket Protocol.md"
|
||||
},
|
||||
{
|
||||
"basename": "E5.007600 - SAE469 - FDM",
|
||||
"path": "04-SIDEL/07 - E5.007600 - SAE469/E5.007600 - SAE469 - FDM.md"
|
||||
"basename": "Masselli (UR62 & UR29)",
|
||||
"path": "04-SIDEL/09 - SAE452 - Diet as Regular - San Giovanni in Bosco/Masselli (UR62 & UR29).md"
|
||||
},
|
||||
{
|
||||
"basename": "Calculo de Offsets de DBs",
|
||||
"path": "01-Documentation/Siemens/Scripts/Calculo de Offsets de DBs.md"
|
||||
"basename": "Maselli - Protocol - Gateway - 485 - Ethernet",
|
||||
"path": "01-Documentation/Dispositivos - Manuales/Maselli/Maselli - Protocol - Gateway - 485 - Ethernet.md"
|
||||
},
|
||||
{
|
||||
"basename": "x1 Copiar valores actuales y iniciales de una DB a otra manteniendo la estructura",
|
||||
"path": "01-Documentation/AI - IA - LLM - Artificial Intelligence/Prompts/Scripts/Update S7 DB without names/x1 Copiar valores actuales y iniciales de una DB a otra manteniendo la estructura.md"
|
||||
"basename": "CableMAX - Converter 485 - Serial Adaptor RS232 - CM-RSDB9-PRO",
|
||||
"path": "01-Documentation/Dispositivos - Manuales/CableMAX - Converter 485 - Serial Adaptor RS232 - CM-RSDB9-PRO.md"
|
||||
},
|
||||
{
|
||||
"basename": "Untitled",
|
||||
"path": "01-Documentation/Siemens/Scripts/Untitled.md"
|
||||
"path": "04-SIDEL/09 - SAE452 - Diet as Regular - San Giovanni in Bosco/Untitled.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": "Waveshare RS232-485 Ethernet - Wifi - ADAM 4021 - Using com0com - MaselliSimulatorApp Python",
|
||||
"path": "01-Documentation/Dispositivos - Manuales/Waveshare RS232-485 Ethernet - Wifi/Waveshare RS232-485 Ethernet - Wifi - ADAM 4021 - Using com0com - MaselliSimulatorApp Python.md"
|
||||
},
|
||||
{
|
||||
"basename": "com0com Setup Only version 2.2 - version 3 NOT WORKING with Windows 11",
|
||||
"path": "01-Documentation/Dispositivos - Manuales/COM - Virtual COM com0com/com0com Setup Only version 2.2 - version 3 NOT WORKING with Windows 11.md"
|
||||
},
|
||||
{
|
||||
"basename": "Waveshare RS232-485 Ethernet - Wifi - ADAM 4021 - Using Serial200",
|
||||
"path": "01-Documentation/Dispositivos - Manuales/Waveshare RS232-485 Ethernet - Wifi/Waveshare RS232-485 Ethernet - Wifi - ADAM 4021 - Using Serial200.md"
|
||||
},
|
||||
{
|
||||
"basename": "LAD Descriptions from XDA files from Tia Portal",
|
||||
"path": "01-Documentation/Python/Scripts Python/XML to SCL Siemens/LAD Descriptions from XDA files from Tia Portal.md"
|
||||
},
|
||||
{
|
||||
"basename": "AI Prompts useful",
|
||||
"path": "01-Documentation/AI - IA - LLM - Artificial Intelligence/AI Prompts useful.md"
|
||||
},
|
||||
{
|
||||
"basename": "Guía de Exportación a Formato SIMATIC SD con TIA Portal Openness y Csharp",
|
||||
"path": "01-Documentation/Siemens/Openness/Guía de Exportación a Formato SIMATIC SD con TIA Portal Openness y Csharp.md"
|
||||
},
|
||||
{
|
||||
"basename": "Projects Description",
|
||||
"path": "04-SIDEL/Projects Description.md"
|
||||
},
|
||||
{
|
||||
"basename": "SAE346 - HMI - Machine Configuration",
|
||||
"path": "04-SIDEL/05 - E5.007161 - Modifica O&U - SAE346/SAE346 - HMI - Machine Configuration.md"
|
||||
},
|
||||
{
|
||||
"basename": "Comm - Mixer - Filler",
|
||||
"path": "04-SIDEL/05 - E5.007161 - Modifica O&U - SAE346/COMM - FILLER - MIXER/Comm - Mixer - Filler.md"
|
||||
},
|
||||
{
|
||||
"basename": "SAE346 - Software adaptation from Master - Notes",
|
||||
"path": "04-SIDEL/05 - E5.007161 - Modifica O&U - SAE346/SAE346 - Software adaptation from Master - Notes.md"
|
||||
},
|
||||
{
|
||||
"basename": "SAE346 P&ID",
|
||||
"path": "04-SIDEL/05 - E5.007161 - Modifica O&U - SAE346/SAE346 P&ID.md"
|
||||
},
|
||||
{
|
||||
"basename": "SAE346 - Signals - CIP - Filler - Syrop",
|
||||
"path": "04-SIDEL/05 - E5.007161 - Modifica O&U - SAE346/SAE346 - Signals - CIP - Filler - Syrop.md"
|
||||
},
|
||||
{
|
||||
"basename": "SAE346 - Process diagram",
|
||||
"path": "04-SIDEL/05 - E5.007161 - Modifica O&U - SAE346/SAE346 - Process diagram.md"
|
||||
},
|
||||
{
|
||||
"basename": "SAE346 - Master adaptation to compile",
|
||||
"path": "04-SIDEL/05 - E5.007161 - Modifica O&U - SAE346/SAE346 - Master adaptation to compile.md"
|
||||
},
|
||||
{
|
||||
"basename": "SAE346 - IO from Electrical Diagram",
|
||||
"path": "04-SIDEL/05 - E5.007161 - Modifica O&U - SAE346/SAE346 - IO from Electrical Diagram.md"
|
||||
},
|
||||
{
|
||||
"basename": "ADAM 4021 - 485 to 4..20ma - Commissioning & Firmware update",
|
||||
"path": "01-Documentation/Dispositivos - Manuales/ADAM/ADAM 4021 - 485 to 4..20ma - Commissioning & Firmware update.md"
|
||||
},
|
||||
{
|
||||
"basename": "Maselli Sensor to Siemens PLC Communication Implementation",
|
||||
"path": "01-Documentation/Dispositivos - Manuales/ADAM/Maselli Sensor to Siemens PLC Communication Implementation.md"
|
||||
},
|
||||
{
|
||||
"basename": "Openness Python Library - siemens_tia_scripting",
|
||||
"path": "01-Documentation/Siemens/Openness/Openness Python Library - siemens_tia_scripting.md"
|
||||
},
|
||||
{
|
||||
"basename": "Untitled",
|
||||
"path": "01-Documentation/Siemens/Simulator Advanced Siemens/Untitled.md"
|
||||
"path": "04-SIDEL/13 - E5.007560 - Modifica O&U - SAE235/Untitled.md"
|
||||
},
|
||||
{
|
||||
"basename": "IM Siemens - Profibus - Comissioning",
|
||||
"path": "01-Documentation/Siemens/IM Siemens - Profibus - Comissioning.md"
|
||||
"basename": "Notas para crear nuevas aplicaciones",
|
||||
"path": "07 - Desarrolo de Proyectos - Scripts - Visual Studio/Proyectos Visual Studio/Notas para crear nuevas aplicaciones.md"
|
||||
},
|
||||
{
|
||||
"basename": "Notes",
|
||||
"path": "01-Documentation/Siemens/Siemens T Simulator/Notes.md"
|
||||
"basename": "Visual Studio Notes",
|
||||
"path": "07 - Desarrolo de Proyectos - Scripts - Visual Studio/Visual Studio Notes.md"
|
||||
},
|
||||
{
|
||||
"basename": "IO Adapted",
|
||||
"path": "04-SIDEL/06 - E5.007363 - Modifica O&U - SAE196 (cip integrato)/IO/IO Adapted.md"
|
||||
},
|
||||
{
|
||||
"basename": "B&R Panel PC 3100 - Bios - Password",
|
||||
"path": "04-SIDEL/00 - MASTER/MIXER/HMI/B&R Panel PC 3100/B&R Panel PC 3100 - Bios - Password.md"
|
||||
},
|
||||
{
|
||||
"basename": "x2 Comparación Excel",
|
||||
"path": "01-Documentation/AI - IA - LLM - Artificial Intelligence/Prompts/Scripts/Update S7 DB without names/x2 Comparación Excel.md"
|
||||
},
|
||||
{
|
||||
"basename": "Hardware",
|
||||
"path": "04-SIDEL/06 - E5.007363 - Modifica O&U - SAE196 (cip integrato)/IO/Hardware.md"
|
||||
},
|
||||
{
|
||||
"basename": "IO Adapted_old",
|
||||
"path": "04-SIDEL/06 - E5.007363 - Modifica O&U - SAE196 (cip integrato)/IO/IO Adapted_old.md"
|
||||
"basename": "Conversión LAD a SCL Siemens",
|
||||
"path": "01-Documentation/Python/Scripts Python/XML to SCL Siemens/Conversión LAD a SCL Siemens.md"
|
||||
},
|
||||
{
|
||||
"basename": "Untitled",
|
||||
"path": "04-SIDEL/06 - E5.007363 - Modifica O&U - SAE196 (cip integrato)/Untitled.md"
|
||||
},
|
||||
{
|
||||
"basename": "Informe - Sicurezza del BIOS per Pannelli BR PC HMI 3100 con Insyde H2bios",
|
||||
"path": "04-SIDEL/00 - MASTER/MIXER/HMI/B&R Panel PC 3100/Informe - Sicurezza del BIOS per Pannelli BR PC HMI 3100 con Insyde H2bios.md"
|
||||
"basename": "E5.007600 - SAE469 - FDM",
|
||||
"path": "04-SIDEL/07 - E5.007600 - SAE469/E5.007600 - SAE469 - FDM.md"
|
||||
},
|
||||
{
|
||||
"basename": "SIDEL - Upgrades - Promemoria",
|
||||
"path": "04-SIDEL/SIDEL - Upgrades - Promemoria.md"
|
||||
"basename": "Openness Python Library - siemens_tia_scripting - Parsing TIA Portal `_XRef.xml` Files for Call Tree Generation",
|
||||
"path": "01-Documentation/Siemens/Openness/Openness Python Library - siemens_tia_scripting - Parsing TIA Portal `_XRef.xml` Files for Call Tree Generation.md"
|
||||
},
|
||||
{
|
||||
"basename": "Start new PC B&R from image",
|
||||
"path": "04-SIDEL/00 - MASTER/MIXER/HMI/B&R Zenon 10/Start new PC B&R from image.md"
|
||||
"basename": "SIDEL - Passwords",
|
||||
"path": "01-Documentation/SIDEL/SIDEL - Passwords.md"
|
||||
},
|
||||
{
|
||||
"basename": "Projects",
|
||||
"path": "04-SIDEL/Projects.md"
|
||||
"basename": "x2 Comparación Excel",
|
||||
"path": "01-Documentation/AI - IA - LLM - Artificial Intelligence/Prompts/Scripts/Update S7 DB without names/x2 Comparación Excel.md"
|
||||
},
|
||||
{
|
||||
"basename": "SAE463",
|
||||
"path": "04-SIDEL/09 - SAE452 - Diet as Regular - San Giovanni in Bosco/DB1001 Problem/SAE463.md"
|
||||
"basename": "SysInternals Tools - WinInternals",
|
||||
"path": "01-Documentation/Windows/SysInternals Tools - WinInternals.md"
|
||||
},
|
||||
{
|
||||
"basename": "SAE452",
|
||||
"path": "04-SIDEL/09 - SAE452 - Diet as Regular - San Giovanni in Bosco/DB1001 Problem/SAE452.md"
|
||||
"basename": "Software differences - After compilation",
|
||||
"path": "04-SIDEL/09 - SAE452 - Diet as Regular - San Giovanni in Bosco/Software problems/Software differences - After compilation.md"
|
||||
},
|
||||
{
|
||||
"basename": "SIDEL - Mixer - Equivalences",
|
||||
"path": "04-SIDEL/00 - MASTER/MIXER/IO/SIDEL - Mixer - Equivalences.md"
|
||||
"basename": "AWL - STL Types - Parámetros Típicos",
|
||||
"path": "01-Documentation/Python/Scripts Python/XML to SCL Siemens/AWL - STL Types - Parámetros Típicos.md"
|
||||
},
|
||||
{
|
||||
"basename": "Bandwith control - Queues",
|
||||
"path": "01-Documentation/Routers/Mikrotik - Network Redes/Bandwith control - Queues.md"
|
||||
"basename": "AWL - STL Types",
|
||||
"path": "01-Documentation/Python/Scripts Python/XML to SCL Siemens/AWL - STL Types.md"
|
||||
},
|
||||
{
|
||||
"basename": "Backups - Mikrotik",
|
||||
"path": "01-Documentation/Routers/Mikrotik - Network Redes/Backups - Mikrotik.md"
|
||||
"basename": "Estructura XML Detallada para Topología de Red en Exportaciones AML de TIA Portal",
|
||||
"path": "01-Documentation/CAx AutomationML/Estructura XML Detallada para Topología de Red en Exportaciones AML de TIA Portal.md"
|
||||
},
|
||||
{
|
||||
"basename": "5.007382-EXMU01UF - RVU008 - EQPT24731 - Initial Data",
|
||||
"path": "04-SIDEL/03 - 5.007382-EXMU01UF - RVU008 - EQPT24731/5.007382-EXMU01UF - RVU008 - EQPT24731 - Initial Data.md"
|
||||
"basename": "Especificación Formal del Formato CAx (AML)",
|
||||
"path": "01-Documentation/CAx AutomationML/Especificación Formal del Formato CAx (AML).md"
|
||||
},
|
||||
{
|
||||
"basename": "5.007382-EXMU01UF - RVU008 - EQPT24731 - Notes",
|
||||
"path": "04-SIDEL/03 - 5.007382-EXMU01UF - RVU008 - EQPT24731/5.007382-EXMU01UF - RVU008 - EQPT24731 - Notes.md"
|
||||
"basename": "Recipes names to File",
|
||||
"path": "01-Documentation/Siemens/Comfort Panels & WinCC/VB Scripts/Recipes names to File.md"
|
||||
},
|
||||
{
|
||||
"basename": "SAE196 - IO Adapted",
|
||||
"path": "04-SIDEL/06 - E5.007363 - Modifica O&U - SAE196 (cip integrato)/SAE196 - IO Adapted.md"
|
||||
"basename": "cSharp Decompiler",
|
||||
"path": "01-Documentation/Decompiler/cSharp Decompiler.md"
|
||||
},
|
||||
{
|
||||
"basename": "E5.007363 - Modifica O&U - SAE196 - Notes",
|
||||
"path": "04-SIDEL/06 - E5.007363 - Modifica O&U - SAE196 (cip integrato)/E5.007363 - Modifica O&U - SAE196 - Notes.md"
|
||||
},
|
||||
{
|
||||
"basename": "IO Not Found on Master",
|
||||
"path": "04-SIDEL/06 - E5.007363 - Modifica O&U - SAE196 (cip integrato)/IO Not Found on Master.md"
|
||||
},
|
||||
{
|
||||
"basename": "Válvula Sanitaria Mixproof Unique",
|
||||
"path": "01-Documentation/Valvulas/MixProf/Válvula Sanitaria Mixproof Unique.md"
|
||||
"basename": "Report Javier Vargas - SAE052",
|
||||
"path": "04-SIDEL/12 - SAE052 - Syrup Update & GSD Update/Report Javier Vargas - SAE052.md"
|
||||
},
|
||||
{
|
||||
"basename": "Visit to Maselli 06-05-2025",
|
||||
|
@ -130,75 +178,27 @@
|
|||
},
|
||||
{
|
||||
"basename": "Test - Fatto su Maselli - 06-05-2025",
|
||||
"path": "04-SIDEL/09 - SAE452 - Diet as Regular - San Giovanni in Bosco/Test - Fatto su Maselli - 06-05-2025.md"
|
||||
"path": "04-SIDEL/09 - SAE452 - Diet as Regular - San Giovanni in Bosco/Documentation/Test - Fatto su Maselli - 06-05-2025.md"
|
||||
},
|
||||
{
|
||||
"basename": "Masselli (UR62 & UR29)",
|
||||
"path": "04-SIDEL/09 - SAE452 - Diet as Regular - San Giovanni in Bosco/Masselli (UR62 & UR29).md"
|
||||
"basename": "Differences",
|
||||
"path": "04-SIDEL/10 - E5.007095 - Modifica O&U - SAE463/Differences.md"
|
||||
},
|
||||
{
|
||||
"basename": "Maselli Sensor to Siemens PLC Communication Implementation",
|
||||
"path": "04-SIDEL/09 - SAE452 - Diet as Regular - San Giovanni in Bosco/Maselli Sensor to Siemens PLC Communication Implementation.md"
|
||||
"basename": "Change old Promass on Siemens S7-300 for new version - 63 - 300",
|
||||
"path": "04-SIDEL/00 - MASTER/MIXER/Procedimientos/Change old Promass on Siemens S7-300 for new version - 63 - 300.md"
|
||||
},
|
||||
{
|
||||
"basename": "Default IO for Analog",
|
||||
"path": "04-SIDEL/00 - MASTER/MIXER/IO/Default IO for Analog.md"
|
||||
"basename": "Emails",
|
||||
"path": "04-SIDEL/10 - E5.007095 - Modifica O&U - SAE463/Emails.md"
|
||||
},
|
||||
{
|
||||
"basename": "SIDEL - Mixer - Master - IO Tags",
|
||||
"path": "04-SIDEL/00 - MASTER/MIXER/IO/SIDEL - Mixer - Master - IO Tags.md"
|
||||
},
|
||||
{
|
||||
"basename": "SAE196 - IO - Software Master",
|
||||
"path": "04-SIDEL/06 - E5.007363 - Modifica O&U - SAE196 (cip integrato)/SAE196 - IO - Software Master.md"
|
||||
"basename": "SIDEL - Upgrades - Promemoria",
|
||||
"path": "04-SIDEL/SIDEL - Upgrades - Promemoria.md"
|
||||
},
|
||||
{
|
||||
"basename": "SIDEL - Master - IPs",
|
||||
"path": "04-SIDEL/00 - MASTER/SIDEL - Master - IPs.md"
|
||||
},
|
||||
{
|
||||
"basename": "Secomea Teknors",
|
||||
"path": "01-Documentation/Vetromeccanica/Sacomea/Secomea Teknors.md"
|
||||
},
|
||||
{
|
||||
"basename": "Secomea Layer 2 Setup",
|
||||
"path": "01-Documentation/Vetromeccanica/Sacomea/Secomea Layer 2 Setup.md"
|
||||
},
|
||||
{
|
||||
"basename": "Activate License on Zenon 10 HMI - B&R PC",
|
||||
"path": "04-SIDEL/00 - MASTER/MIXER/HMI/B&R Zenon 10/Activate License on Zenon 10 HMI - B&R PC.md"
|
||||
},
|
||||
{
|
||||
"basename": "SAE196_c0.2_CAx_Export_Hardware_Tree",
|
||||
"path": "04-SIDEL/06 - E5.007363 - Modifica O&U - SAE196 (cip integrato)/Source/SAE196_c0.2_CAx_Export_Hardware_Tree.md"
|
||||
},
|
||||
{
|
||||
"basename": "CableMAX - Converter 485 - Serial Adaptor RS232 - CM-RSDB9-PRO",
|
||||
"path": "01-Documentation/Dispositivos - Manuales/CableMAX - Converter 485 - Serial Adaptor RS232 - CM-RSDB9-PRO.md"
|
||||
},
|
||||
{
|
||||
"basename": "xref_calls_tree",
|
||||
"path": "04-SIDEL/06 - E5.007363 - Modifica O&U - SAE196 (cip integrato)/Source/xref_calls_tree.md"
|
||||
},
|
||||
{
|
||||
"basename": "Profibus_Variables",
|
||||
"path": "04-SIDEL/06 - E5.007363 - Modifica O&U - SAE196 (cip integrato)/Source/source/Profibus_Variables.md"
|
||||
},
|
||||
{
|
||||
"basename": "SysInternals Tools",
|
||||
"path": "01-Documentation/Windows/SysInternals Tools.md"
|
||||
},
|
||||
{
|
||||
"basename": "Git - Start New Repository with Visual Studio Code - VS Code",
|
||||
"path": "01-Documentation/GIT/Git - Start New Repository with Visual Studio Code - VS Code.md"
|
||||
},
|
||||
{
|
||||
"basename": "GIT commands HELP",
|
||||
"path": "01-Documentation/GIT/GIT commands HELP.md"
|
||||
},
|
||||
{
|
||||
"basename": "9.402x - Notes for technician on site - CARTON REJECT SYSTEM",
|
||||
"path": "03-VM/33 - 9.402x - Shibuya/Notes for techinician on site/9.402x - Notes for technician on site - CARTON REJECT SYSTEM.md"
|
||||
}
|
||||
],
|
||||
"omittedPaths": [],
|
||||
|
|
|
@ -23,112 +23,112 @@
|
|||
}
|
||||
},
|
||||
{
|
||||
"id": "8797e7c787c270f6",
|
||||
"id": "a38d3289675378b0",
|
||||
"type": "leaf",
|
||||
"state": {
|
||||
"type": "markdown",
|
||||
"state": {
|
||||
"file": "04-SIDEL/00 - MASTER/MIXER/SIDEL - Mixer - Equivalences.md",
|
||||
"file": "01-Documentation/Dispositivos - Manuales/Maselli/Maselli - ADAM - Protocol.md",
|
||||
"mode": "source",
|
||||
"source": false,
|
||||
"backlinks": false
|
||||
},
|
||||
"icon": "lucide-file",
|
||||
"title": "SIDEL - Mixer - Equivalences"
|
||||
"title": "Maselli - ADAM - Protocol"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "547be2f4b95bfe48",
|
||||
"id": "f8c6a0d348e1d9c6",
|
||||
"type": "leaf",
|
||||
"state": {
|
||||
"type": "markdown",
|
||||
"state": {
|
||||
"file": "04-SIDEL/00 - MASTER/MIXER/SIDEL - Mixer - Master - IO Tags.md",
|
||||
"file": "01-Documentation/Python/Scripts Python/XML to SCL Siemens/LAD Descriptions from XDA files from Tia Portal.md",
|
||||
"mode": "source",
|
||||
"source": false,
|
||||
"backlinks": false
|
||||
},
|
||||
"icon": "lucide-file",
|
||||
"title": "SIDEL - Mixer - Master - IO Tags"
|
||||
"title": "LAD Descriptions from XDA files from Tia Portal"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "0d16ec442a845801",
|
||||
"id": "9ed1cde3f8b68dde",
|
||||
"type": "leaf",
|
||||
"state": {
|
||||
"type": "markdown",
|
||||
"state": {
|
||||
"file": "01-Documentation/AI - IA - LLM - Artificial Intelligence/Prompts/Scripts/Update S7 DB without names/x2 Comparación Excel.md",
|
||||
"file": "01-Documentation/AI - IA - LLM - Artificial Intelligence/AI Prompts useful.md",
|
||||
"mode": "source",
|
||||
"source": false,
|
||||
"backlinks": false
|
||||
},
|
||||
"icon": "lucide-file",
|
||||
"title": "x2 Comparación Excel"
|
||||
"title": "AI Prompts useful"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "5b05a5caf75bafcb",
|
||||
"id": "699ef801ac43a3c8",
|
||||
"type": "leaf",
|
||||
"state": {
|
||||
"type": "markdown",
|
||||
"state": {
|
||||
"file": "01-Documentation/Siemens/Simulator Advanced Siemens/Untitled.md",
|
||||
"file": "01-Documentation/Siemens/Openness/Guía de Exportación a Formato SIMATIC SD con TIA Portal Openness y Csharp.md",
|
||||
"mode": "source",
|
||||
"source": false,
|
||||
"backlinks": false
|
||||
},
|
||||
"icon": "lucide-file",
|
||||
"title": "Untitled"
|
||||
"title": "Guía de Exportación a Formato SIMATIC SD con TIA Portal Openness y Csharp"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "4bf66f30d4592b8a",
|
||||
"id": "670831659031a736",
|
||||
"type": "leaf",
|
||||
"state": {
|
||||
"type": "markdown",
|
||||
"state": {
|
||||
"file": "01-Documentation/AI - IA - LLM - Artificial Intelligence/Prompts/Scripts/Update S7 DB without names/x1 Copiar valores actuales y iniciales de una DB a otra manteniendo la estructura.md",
|
||||
"file": "04-SIDEL/Projects Description.md",
|
||||
"mode": "source",
|
||||
"source": false,
|
||||
"backlinks": false
|
||||
},
|
||||
"icon": "lucide-file",
|
||||
"title": "x1 Copiar valores actuales y iniciales de una DB a otra manteniendo la estructura"
|
||||
"title": "Projects Description"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "9039b6cbe10151a2",
|
||||
"id": "4f5651d4f649293a",
|
||||
"type": "leaf",
|
||||
"state": {
|
||||
"type": "markdown",
|
||||
"state": {
|
||||
"file": "04-SIDEL/07 - E5.007600 - SAE469/E5.007600 - SAE469 - FDM.md",
|
||||
"file": "01-Documentation/Dispositivos - Manuales/COM - Virtual COM com0com/com0com Setup Only version 2.2 - version 3 NOT WORKING with Windows 11.md",
|
||||
"mode": "source",
|
||||
"source": false,
|
||||
"backlinks": false
|
||||
},
|
||||
"icon": "lucide-file",
|
||||
"title": "E5.007600 - SAE469 - FDM"
|
||||
"title": "com0com Setup Only version 2.2 - version 3 NOT WORKING with Windows 11"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "d2013245d4885df4",
|
||||
"id": "f93c4cd77a711e5b",
|
||||
"type": "leaf",
|
||||
"state": {
|
||||
"type": "markdown",
|
||||
"state": {
|
||||
"file": "01-Documentation/Windows/Utilities - Windows Helpers - Utilidades.md",
|
||||
"file": "01-Documentation/Dispositivos - Manuales/Maselli/Maselli - Protocol - Gateway - 485 - Ethernet.md",
|
||||
"mode": "source",
|
||||
"source": false,
|
||||
"backlinks": false
|
||||
},
|
||||
"icon": "lucide-file",
|
||||
"title": "Utilities - Windows Helpers - Utilidades"
|
||||
"title": "Maselli - Protocol - Gateway - 485 - Ethernet"
|
||||
}
|
||||
}
|
||||
],
|
||||
"currentTab": 7
|
||||
"currentTab": 1
|
||||
}
|
||||
],
|
||||
"direction": "vertical"
|
||||
|
@ -211,7 +211,7 @@
|
|||
"state": {
|
||||
"type": "backlink",
|
||||
"state": {
|
||||
"file": "01-Documentation/Dockers/Docker Basics - Essential Commands and Usage Guide.md",
|
||||
"file": "04-SIDEL/09 - SAE452 - Diet as Regular - San Giovanni in Bosco/DAR Description - DIET AS REGULAR.md",
|
||||
"collapseAll": false,
|
||||
"extraContext": false,
|
||||
"sortOrder": "alphabetical",
|
||||
|
@ -221,7 +221,7 @@
|
|||
"unlinkedCollapsed": true
|
||||
},
|
||||
"icon": "links-coming-in",
|
||||
"title": "Backlinks for Docker Basics - Essential Commands and Usage Guide"
|
||||
"title": "Backlinks for DAR Description - DIET AS REGULAR"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
@ -322,54 +322,54 @@
|
|||
"obsidian-importer:Open Importer": false
|
||||
}
|
||||
},
|
||||
"active": "d2013245d4885df4",
|
||||
"active": "a38d3289675378b0",
|
||||
"lastOpenFiles": [
|
||||
"01-Documentation/Windows/adjuntos/Pasted image 20250517141817.png",
|
||||
"01-Documentation/Windows/Notes for Windows - Chris Titus Tool - Online - Offline.md",
|
||||
"01-Documentation/Windows/Utilities - Windows Helpers - Utilidades.md",
|
||||
"04-SIDEL/07 - E5.007600 - SAE469/E5.007600 - SAE469 - FDM.md",
|
||||
"01-Documentation/Siemens/Scripts/Calculo de Offsets de DBs.md",
|
||||
"01-Documentation/AI - IA - LLM - Artificial Intelligence/Prompts/Scripts/Update S7 DB without names/x1 Copiar valores actuales y iniciales de una DB a otra manteniendo la estructura.md",
|
||||
"01-Documentation/Siemens/Scripts/Untitled.md",
|
||||
"01-Documentation/Dispositivos - Manuales/Maselli/Maselli - Utility/Maselli Proprietary Serial-Socket Protocol.md",
|
||||
"04-SIDEL/09 - SAE452 - Diet as Regular - San Giovanni in Bosco/Masselli (UR62 & UR29).md",
|
||||
"01-Documentation/Dispositivos - Manuales/Maselli/Maselli - Protocol - Gateway - 485 - Ethernet.md",
|
||||
"01-Documentation/Dispositivos - Manuales/Maselli/Maselli - ADAM - Protocol.md",
|
||||
"01-Documentation/Dispositivos - Manuales/CableMAX - Converter 485 - Serial Adaptor RS232 - CM-RSDB9-PRO.md",
|
||||
"04-SIDEL/09 - SAE452 - Diet as Regular - San Giovanni in Bosco/Untitled.md",
|
||||
"04-SIDEL/09 - SAE452 - Diet as Regular - San Giovanni in Bosco/DAR Description - DIET AS REGULAR - SAE452 San Giorgio in Bosco.md",
|
||||
"01-Documentation/Dispositivos - Manuales/Waveshare RS232-485 Ethernet - Wifi/Waveshare RS232-485 Ethernet - Wifi - ADAM 4021 - Using com0com - MaselliSimulatorApp Python.md",
|
||||
"01-Documentation/Dispositivos - Manuales/Waveshare RS232-485 Ethernet - Wifi/adjuntos/Pasted image 20250523122653.png",
|
||||
"01-Documentation/Dispositivos - Manuales/Waveshare RS232-485 Ethernet - Wifi/adjuntos/Pasted image 20250523122629.png",
|
||||
"01-Documentation/Dispositivos - Manuales/COM - Virtual COM com0com/com0com Setup Only version 2.2 - version 3 NOT WORKING with Windows 11.md",
|
||||
"01-Documentation/Dispositivos - Manuales/Waveshare RS232-485 Ethernet - Wifi/adjuntos/Pasted image 20250523122530.png",
|
||||
"01-Documentation/Dispositivos - Manuales/Waveshare RS232-485 Ethernet - Wifi/adjuntos",
|
||||
"01-Documentation/Dispositivos - Manuales/Waveshare RS232-485 Ethernet - Wifi/Waveshare RS232-485 Ethernet - Wifi - ADAM 4021 - Using Serial200.md",
|
||||
"01-Documentation/Dispositivos - Manuales/Waveshare RS232-485 Ethernet - Wifi",
|
||||
"01-Documentation/Python/Scripts Python/XML to SCL Siemens/LAD Descriptions from XDA files from Tia Portal.md",
|
||||
"01-Documentation/AI - IA - LLM - Artificial Intelligence/AI Prompts useful.md",
|
||||
"01-Documentation/Siemens/Simulator Advanced Siemens/Untitled.md",
|
||||
"01-Documentation/Siemens/IM Siemens - Profibus - Comissioning.md",
|
||||
"01-Documentation/Siemens/Simulator Advanced Siemens",
|
||||
"01-Documentation/Siemens/Siemens T Simulator/Notes.md",
|
||||
"04-SIDEL/06 - E5.007363 - Modifica O&U - SAE196 (cip integrato)/IO/IO Adapted.md",
|
||||
"04-SIDEL/00 - MASTER/MIXER/HMI/B&R Panel PC 3100/B&R Panel PC 3100 - Bios - Password.md",
|
||||
"01-Documentation/AI - IA - LLM - Artificial Intelligence/Prompts/Scripts/Update S7 DB without names/x2 Comparación Excel.md",
|
||||
"01-Documentation/AI - IA - LLM - Artificial Intelligence/Prompts/Scripts/Update S7 DB without names",
|
||||
"01-Documentation/AI - IA - LLM - Artificial Intelligence/Prompts/Scripts",
|
||||
"01-Documentation/AI - IA - LLM - Artificial Intelligence/Prompts",
|
||||
"04-SIDEL/06 - E5.007363 - Modifica O&U - SAE196 (cip integrato)/IO/Hardware.md",
|
||||
"04-SIDEL/06 - E5.007363 - Modifica O&U - SAE196 (cip integrato)/IO/IO Adapted_old.md",
|
||||
"04-SIDEL/06 - E5.007363 - Modifica O&U - SAE196 (cip integrato)/Untitled.md",
|
||||
"04-SIDEL/00 - MASTER/MIXER/HMI/B&R Panel PC 3100/Informe - Sicurezza del BIOS per Pannelli BR PC HMI 3100 con Insyde H2bios.md",
|
||||
"04-SIDEL/SIDEL - Upgrades - Promemoria.md",
|
||||
"04-SIDEL/06 - E5.007363 - Modifica O&U - SAE196 (cip integrato)/IO/IO Adaptedxx.md",
|
||||
"04-SIDEL/00 - MASTER/MIXER/HMI/B&R Zenon 10/Start new PC B&R from image.md",
|
||||
"04-SIDEL/00 - MASTER/MIXER/HMI/B&R Panel PC 3100/adjuntos/20250512_114224.jpg",
|
||||
"04-SIDEL/00 - MASTER/MIXER/HMI/B&R Panel PC 3100/adjuntos/20250512_114209.jpg",
|
||||
"04-SIDEL/00 - MASTER/MIXER/HMI/B&R Panel PC 3100/adjuntos/20250512_114108.jpg",
|
||||
"04-SIDEL/00 - MASTER/MIXER/HMI/B&R Panel PC 3100/adjuntos",
|
||||
"04-SIDEL/00 - MASTER/MIXER/HMI/B&R Panel PC 3100",
|
||||
"04-SIDEL/Projects.md",
|
||||
"04-SIDEL/09 - SAE452 - Diet as Regular - San Giovanni in Bosco/DB1001 Problem/SAE463.md",
|
||||
"04-SIDEL/09 - SAE452 - Diet as Regular - San Giovanni in Bosco/DB1001 Problem/SAE452.md",
|
||||
"04-SIDEL/09 - SAE452 - Diet as Regular - San Giovanni in Bosco/DB1001 Problem/adjuntos/Ssae0463.zip",
|
||||
"04-SIDEL/09 - SAE452 - Diet as Regular - San Giovanni in Bosco/DB1001 Problem/adjuntos",
|
||||
"04-SIDEL/09 - SAE452 - Diet as Regular - San Giovanni in Bosco/DB1001 Problem",
|
||||
"04-SIDEL/00 - MASTER/MIXER/IO/SIDEL - Mixer - Equivalences.md",
|
||||
"01-Documentation/Routers/Mikrotik - Network Redes/Bandwith control - Queues.md",
|
||||
"04-SIDEL/IO",
|
||||
"01-Documentation/Vetromeccanica/Sacomea/adjuntos/Pasted image 20250512163640.png",
|
||||
"01-Documentation/Vetromeccanica/Sacomea/adjuntos/Pasted image 20250512163622.png",
|
||||
"01-Documentation/Vetromeccanica/Sacomea/adjuntos/Pasted image 20250512163553.png",
|
||||
"01-Documentation/Vetromeccanica/Sacomea/adjuntos/Pasted image 20250512163533.png",
|
||||
"01-Documentation/Vetromeccanica/Sacomea/adjuntos/Pasted image 20250512163502.png",
|
||||
"01-Documentation/Vetromeccanica/Sacomea/adjuntos/Pasted image 20250512163124.png",
|
||||
"01-Documentation/Vetromeccanica/Sacomea/adjuntos/Pasted image 20250512163106.png",
|
||||
"01-Documentation/Siemens/Openness/Guía de Exportación a Formato SIMATIC SD con TIA Portal Openness y Csharp.md",
|
||||
"04-SIDEL/Projects Description.md",
|
||||
"01-Documentation/Dispositivos - Manuales/COM - Virtual COM com0com/adjuntos/Pasted image 20250523122236.png",
|
||||
"04-SIDEL/05 - E5.007161 - Modifica O&U - SAE346/SAE346 - HMI - Machine Configuration.md",
|
||||
"04-SIDEL/05 - E5.007161 - Modifica O&U - SAE346/COMM - FILLER - MIXER/Comm - Mixer - Filler.md",
|
||||
"04-SIDEL/05 - E5.007161 - Modifica O&U - SAE346/SAE346 - Software adaptation from Master - Notes.md",
|
||||
"04-SIDEL/05 - E5.007161 - Modifica O&U - SAE346/SAE346 P&ID.md",
|
||||
"04-SIDEL/05 - E5.007161 - Modifica O&U - SAE346/SAE346 - Signals - CIP - Filler - Syrop.md",
|
||||
"04-SIDEL/05 - E5.007161 - Modifica O&U - SAE346/SAE346 - Process diagram.md",
|
||||
"04-SIDEL/05 - E5.007161 - Modifica O&U - SAE346/SAE346 - Master adaptation to compile.md",
|
||||
"04-SIDEL/05 - E5.007161 - Modifica O&U - SAE346/SAE346 - IO from Electrical Diagram.md",
|
||||
"01-Documentation/Dispositivos - Manuales/ADAM/ADAM 4021 - 485 to 4..20ma - Commissioning & Firmware update.md",
|
||||
"01-Documentation/Dispositivos - Manuales/ADAM/Maselli Sensor to Siemens PLC Communication Implementation.md",
|
||||
"01-Documentation/Dispositivos - Manuales/adjuntos/Pasted image 20250522183148.png",
|
||||
"01-Documentation/Dispositivos - Manuales/COM - Virtual COM com0com/adjuntos/Pasted image 20250522171402.png",
|
||||
"01-Documentation/Dispositivos - Manuales/COM - Virtual COM com0com/adjuntos/Pasted image 20250522170556.png",
|
||||
"01-Documentation/Dispositivos - Manuales/COM - Virtual COM com0com/adjuntos",
|
||||
"01-Documentation/Dispositivos - Manuales/COM - Virtual COM com0com/Untitled",
|
||||
"01-Documentation/Dispositivos - Manuales/COM - Virtual COM com0com",
|
||||
"01-Documentation/Siemens/Openness/Openness Python Library - siemens_tia_scripting.md",
|
||||
"04-SIDEL/13 - E5.007560 - Modifica O&U - SAE235/Untitled.md",
|
||||
"01-Documentation/Dispositivos - Manuales/adjuntos/Pasted image 20250521100106.png",
|
||||
"01-Documentation/Dispositivos - Manuales/adjuntos/Pasted image 20250521100002.png",
|
||||
"01-Documentation/Dispositivos - Manuales/adjuntos/Pasted image 20250521095735.png",
|
||||
"01-Documentation/Python/Scripts Python/XML to SCL Siemens",
|
||||
"04-SIDEL/13 - E5.007560 - Modifica O&U - SAE235",
|
||||
"04-SIDEL/00 - MASTER/MIXER/Procedimientos/adjuntos",
|
||||
"04-SIDEL/00 - MASTER/MIXER/Procedimientos",
|
||||
"HTML import/Attachments",
|
||||
"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",
|
||||
|
|
|
@ -291,4 +291,14 @@ Para entradas con nivel de certeza medio o bajo, añade hasta 3 tags alternativo
|
|||
|
||||
# EXCEPCIONES
|
||||
Al final del documento, crea una sección titulada "## Excepciones y Problemas" con una tabla que liste las IO sin asignación clara y el problema detectado.
|
||||
```
|
||||
|
||||
|
||||
|
||||
### Para crear Aplicaciones C# WPF
|
||||
|
||||
```YAML
|
||||
|
||||
Quiero crer una aplicacion .net 8 en C# WPF que use modelo MVVM con los siguientes nugets si son necesarios CommunityToolkit.Mvvm, Ookii.Dialogs.Wpf, NewtonSoft.Json, Extended.Wpf.Toolkit.
|
||||
|
||||
```
|
After Width: | Height: | Size: 13 KiB |
After Width: | Height: | Size: 26 KiB |
After Width: | Height: | Size: 10 KiB |
|
@ -0,0 +1,16 @@
|
|||
|
||||
[Com0com Installation and Configuration(Windows)](https://lcgamboa.github.io/picsimlab_docs/stable/Com0comInstallationandConfigurationWindows.html)
|
||||
|
||||
|
||||
### Instalad: [Com RS232 com0com](file:///D:%5CInstalad%5CCom%20RS232%20com0com)
|
||||
|
||||
### Setup APP: [Setup.lnk](file:///C:%5CUsers%5Cmigue%5CAppData%5CRoaming%5CMicrosoft%5CWindows%5CStart%20Menu%5CPrograms%5Ccom0com%5CSetup.lnk)
|
||||
|
||||
![[Pasted image 20250522170556.png]]
|
||||
|
||||
![[Pasted image 20250523122236.png]]
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -9,6 +9,12 @@
|
|||
### App for SETUP SERIAL
|
||||
***
|
||||
[RS-232_422_485 AP.lnk](file:///C:%5CProgramData%5CMicrosoft%5CWindows%5CStart%20Menu%5CPrograms%5CRS-232_422_485%20AP%5CRS-232_422_485%20AP.lnk)
|
||||
|
||||
#### With ADAM works this configuration: without Echo / Bias / Terminal
|
||||
|
||||
![[Pasted image 20250521093618.png|400]]
|
||||
|
||||
|
||||
### Terminal software:
|
||||
***
|
||||
Terminal Software: [AccessPort.exe](file:///D:%5CInstalad%5CRS232%20-%20422%20-%20485%5CAccessPort%5CAccessPort137%5CAccessPort.exe)
|
||||
|
@ -45,4 +51,8 @@ The serial port is software configurable for RS-232, RS-422, and RS-485 with the
|
|||
### OS Support
|
||||
|
||||
- Windows Windows 7, 8, & 10
|
||||
- Linux and Mac OS 10.X
|
||||
- Linux and Mac OS 10.X
|
||||
|
||||
|
||||
|
||||
![[Pasted image 20250521084831.png|800]]![[Pasted image 20250521085218.png|800]]
|
|
@ -44,7 +44,7 @@ The following SCL code provides a complete implementation for handling this comm
|
|||
### Main Function Block
|
||||
|
||||
```pascal
|
||||
FUNCTION_BLOCK "FB_Maselli_Communications"
|
||||
FUNCTION_BLOCK "Maselli_Comm"
|
||||
VAR_INPUT
|
||||
xExecute : BOOL; // Trigger to initiate connection
|
||||
tConnectionID : TCON_IP_v4; // TCP connection parameters
|
||||
|
@ -268,10 +268,10 @@ BEGIN
|
|||
g_tConnection.ActiveEstablished := TRUE; // PLC initiates connection
|
||||
|
||||
// IP and port of Waveshare gateway
|
||||
g_tConnection.RemoteAddress.ADDR[1] := 192; // IP Address: 192.168.x.x
|
||||
g_tConnection.RemoteAddress.ADDR[2] := 168; // Adjust according to gateway IP
|
||||
g_tConnection.RemoteAddress.ADDR[3] := 1; // Adjust according to gateway IP
|
||||
g_tConnection.RemoteAddress.ADDR[4] := 10; // Adjust according to gateway IP
|
||||
g_tConnection.RemoteAddress.ADDR[1] := 10; // IP Address: 192.168.x.x
|
||||
g_tConnection.RemoteAddress.ADDR[2] := 1; // Adjust according to gateway IP
|
||||
g_tConnection.RemoteAddress.ADDR[3] := 33; // Adjust according to gateway IP
|
||||
g_tConnection.RemoteAddress.ADDR[4] := 18; // Adjust according to gateway IP
|
||||
g_tConnection.RemotePort := 8899; // Default gateway port
|
||||
|
||||
// Local port for TCP connection
|
||||
|
|
|
@ -0,0 +1,72 @@
|
|||
|
||||
* Last IP: 10.1.33.18
|
||||
* user: admin
|
||||
* password: 9991
|
||||
|
||||
Wifi: Waveshare_32AC
|
||||
|
||||
UART: 9600 Transparent
|
||||
|
||||
Server: 8899
|
||||
|
||||
### Serial Tool: [SerialTool.lnk](file:///C:%5CProgramData%5CMicrosoft%5CWindows%5CStart%20Menu%5CSerialTool.lnk)
|
||||
|
||||
* On serial tool open as Administrator to create Virtual Ports
|
||||
*
|
||||
|
||||
![[Pasted image 20250520140844.png]]
|
||||
|
||||
![[Pasted image 20250520141047.png]]
|
||||
|
||||
![[Pasted image 20250520141123.png]]
|
||||
|
||||
|
||||
![[Pasted image 20250520141219.png]]
|
||||
|
||||
|
||||
|
||||
### Configuration of Waveshare device 10.1.33.18 :
|
||||
|
||||
* Last IP: 10.1.33.18
|
||||
* user: admin
|
||||
* password: 9991
|
||||
|
||||
![[Pasted image 20250520140520.png]]
|
||||
|
||||
![[Pasted image 20250520140532.png]]
|
||||
|
||||
![[Pasted image 20250522183148.png]]
|
||||
|
||||
![[Pasted image 20250520140552.png]]
|
||||
|
||||
|
||||
|
||||
|
||||
### Connections: B = - / A = +
|
||||
***
|
||||
![[Pasted image 20250521094630.png|500]]
|
||||
|
||||
### ADAM Setup using Waveshare
|
||||
***
|
||||
|
||||
* First SET the ADAM in Init mode with the selector, and switch off - on
|
||||
|
||||
![[Pasted image 20250521100002.png|350]]
|
||||
|
||||
* If serial port is not in the list do right clik on the Serial and select Refresh
|
||||
|
||||
![[Pasted image 20250521095447.png]]
|
||||
|
||||
![[Pasted image 20250521095638.png]]
|
||||
|
||||
![[Pasted image 20250521095659.png]]
|
||||
|
||||
![[Pasted image 20250521095735.png|800]]
|
||||
|
||||
After running the search will appear the connected ADAM
|
||||
|
||||
![[Pasted image 20250521100106.png|800]]
|
||||
|
||||
* Selecting the ADAM under COM8 the ADAM can be configured
|
||||
* After changing the setup need click Apply change
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
|
||||
|
||||
### com0com:
|
||||
***
|
||||
* Install com0com version 2.2 fre signed ( Version 3 is not working on Windows 11 - signed until 2018 )
|
||||
|
||||
Setup :
|
||||
|
||||
![[Pasted image 20250523122530.png]]
|
||||
|
||||
Setup APP: [Setup.lnk](file:///C:%5CUsers%5Cmigue%5CAppData%5CRoaming%5CMicrosoft%5CWindows%5CStart%20Menu%5CPrograms%5Ccom0com%5CSetup.lnk)
|
||||
|
||||
Python NetCom:
|
||||
***
|
||||
![[Pasted image 20250523122629.png]]
|
||||
|
||||
### ADAM Utility:
|
||||
***
|
||||
![[Pasted image 20250523122653.png]]
|
||||
|
||||
* Using Groups dont requiere to search the node that is not working on this setup. Only works with Serial2000
|
||||
|
||||
|
||||
|
After Width: | Height: | Size: 13 KiB |
After Width: | Height: | Size: 32 KiB |
After Width: | Height: | Size: 29 KiB |
After Width: | Height: | Size: 13 KiB |
After Width: | Height: | Size: 5.4 KiB |
After Width: | Height: | Size: 12 KiB |
After Width: | Height: | Size: 14 KiB |
After Width: | Height: | Size: 40 KiB |
After Width: | Height: | Size: 43 KiB |
After Width: | Height: | Size: 64 KiB |
After Width: | Height: | Size: 54 KiB |
After Width: | Height: | Size: 135 KiB |
After Width: | Height: | Size: 3.4 MiB |
After Width: | Height: | Size: 21 KiB |
After Width: | Height: | Size: 3.3 MiB |
After Width: | Height: | Size: 18 KiB |
After Width: | Height: | Size: 22 KiB |
After Width: | Height: | Size: 23 KiB |
After Width: | Height: | Size: 4.4 KiB |
After Width: | Height: | Size: 31 KiB |
After Width: | Height: | Size: 3.6 MiB |
After Width: | Height: | Size: 25 KiB |
After Width: | Height: | Size: 9.5 KiB |
|
@ -0,0 +1,100 @@
|
|||
# Elementos STL Definidos en SW.PlcBlocks.STL_v4.xlm.txt (STL_TE) con Parámetros Típicos
|
||||
|
||||
Este documento lista las instrucciones STL y sus operandos/parámetros típicos.
|
||||
La columna "Parámetros Típicos / Operandos" indica:
|
||||
1. El operando directo que sigue a la instrucción (si lo hay).
|
||||
2. Entre corchetes `[]`, operandos implícitos, cargados previamente, o resultados principales.
|
||||
|
||||
**Categorías de Parámetros:**
|
||||
* **Entrada:** Valores que la instrucción utiliza. Pueden ser directos, o cargados previamente en acumuladores.
|
||||
* **Salida/Resultado:** Dónde la instrucción almacena su resultado (ej. RLO, ACCU1, un operando de memoria).
|
||||
* **Instancia:** Para temporizadores, contadores, FBs (ej. `T1`, `C10`, `DB10 (instancia de FB)`).
|
||||
* **Configuración:** Valores que configuran la operación (ej. tiempo para temporizador, valor de preset para contador).
|
||||
|
||||
| Valor XML (STL_TE) | Mnemónico(s) STL Común(es) | Parámetros Típicos / Operandos (Entradas -> Salidas/Afectados) |
|
||||
|--------------------|---------------------------|------------------------------------------------------------------------------------------------------|
|
||||
| `A` | `A` | `Op (BOOL)` -> `[RLO]` |
|
||||
| `AN` | `AN` | `Op (BOOL)` -> `[RLO]` |
|
||||
| `O` | `O` | `Op (BOOL)` -> `[RLO]` |
|
||||
| `ON` | `ON` | `Op (BOOL)` -> `[RLO]` |
|
||||
| `X` | `X` | `Op (BOOL)` -> `[RLO]` |
|
||||
| `XN` | `XN` | `Op (BOOL)` -> `[RLO]` |
|
||||
| `S` | `S` | `Op (BOOL/Timer/Counter)` (Instancia/Salida a activar) -> `[Op]` |
|
||||
| `R` | `R` | `Op (BOOL/Timer/Counter)` (Instancia/Salida a desactivar) -> `[Op]` |
|
||||
| `Assign` | `=` | `Op (BOOL)` (Destino) <- `[RLO]` |
|
||||
| `Rise` | `FP` | `Op (BOOL)` (Entrada para detección) -> `[RLO, BR]` |
|
||||
| `Fall` | `FN` | `Op (BOOL)` (Entrada para detección) -> `[RLO, BR]` |
|
||||
| `L` | `L` | `Op/Lit (ANY)` (Fuente) -> `[ACCU1]` |
|
||||
| `T` | `T` | `Op (ANY)` (Destino) <- `[ACCU1]` |
|
||||
| `LAR1` | `LAR1` | `Op/Lit (POINTER/DWORD)` (Fuente para AR1) -> `[AR1]` |
|
||||
| `LAR2` | `LAR2` | `Op/Lit (POINTER/DWORD)` (Fuente para AR2) -> `[AR2]` |
|
||||
| `TAR1` | `TAR1` | `Op (POINTER/DWORD)` (Destino) <- `[AR1]` |
|
||||
| `TAR2` | `TAR2` | `Op (POINTER/DWORD)` (Destino) <- `[AR2]` |
|
||||
| `Extend` | `SE` | `Op (TIMER)` (Instancia Timer) `[Entrada: RLO, Config: Previo L S5T#]` -> `[Salida Q en Op, STW]` |
|
||||
| `Free` | `FR` | `Op (TIMER)` (Instancia Timer) `[Entrada: RLO]` -> `[STW]` |
|
||||
| `LC` | `LC` | `Op (TIMER)` (Instancia Timer) `[Entrada: RLO, Config: ACCU1 como S5T#]` -> `[Salida Q en Op, STW]` |
|
||||
| `OffDelay` | `SF` | `Op (TIMER)` (Instancia Timer) `[Entrada: RLO, Config: Previo L S5T#]` -> `[Salida Q en Op, STW]` |
|
||||
| `Retentive` | `SS` | `Op (TIMER)` (Instancia Timer) `[Entrada: RLO, Config: Previo L S5T#]` -> `[Salida Q en Op, STW]` |
|
||||
| `OnDelay` | `SD` | `Op (TIMER)` (Instancia Timer) `[Entrada: RLO, Config: Previo L S5T#]` -> `[Salida Q en Op, STW]` |
|
||||
| `Pulse` | `SP` | `Op (TIMER)` (Instancia Timer) `[Entrada: RLO, Config: Previo L S5T#]` -> `[Salida Q en Op, STW]` |
|
||||
| `CD` | `CD` | `Op (COUNTER)` (Instancia Contador) `[Entrada: RLO (pulso)]` -> `[Salida Q en Op, Valor CV, STW]` |
|
||||
| `CU` | `CU` | `Op (COUNTER)` (Instancia Contador) `[Entrada: RLO (pulso)]` -> `[Salida Q en Op, Valor CV, STW]` |
|
||||
| `CALL` | `CALL` | `BlkID (FC/FB/SFC/SFB)` `[Params: Varios según bloque, RLO]` -> `[Resultados: Varios según bloque, STW, RLO]` |
|
||||
| `CC` | `CC` | `BlkID (FC/FB/SFC/SFB)` `[Condición: RLO, Params: Varios]` -> `[Resultados: Varios, STW, RLO]` |
|
||||
| `UC` | `UC` | `BlkID (FC/FB/SFC/SFB)` `[Params: Varios]` -> `[Resultados: Varios, STW, RLO]` |
|
||||
| `OPEN_DB` | `AUF DB`, `OPN DB` | `BlkID/Op (DB_ANY)` (DB a abrir) -> `[Registro DB global]` |
|
||||
| `OPEN_DI` | `AUF DI`, `OPN DI` | `BlkID/Op (DB_ANY)` (DB Instancia a abrir) -> `[Registro DI]` |
|
||||
| `LT_I` ... `NE_D` | `<I` ... `<>D` | `Op/Lit (Tipo Comp.)` `[Implícito: ACCU1 vs ACCU2 ó ACCU1 vs Op/Lit]` -> `[RLO]` |
|
||||
| `JU` | `JU`, `SPA` | `Lbl` (Destino Salto) |
|
||||
| `JC` ... `JPZ` | `JC` ... `JPZ` | `Lbl` (Destino Salto) `[Condición: RLO/STW bits]` |
|
||||
| `LOOP` | `LOOP` | `Lbl` (Destino Salto) `[Implícito: AR2 como contador]` |
|
||||
| `JL` | `JL` | `Op (WORD)` (Índice en tabla de saltos) `[Implícito: Tabla de saltos definida después]` |
|
||||
| `ADD` | `+I` | `Op/Lit (INT)` `[ACCU2 (si T op) ó Op/Lit, ACCU1]` -> `[ACCU1, STW]` |
|
||||
| `SLD` / `SLW` | `SLD` / `SLW` | `Op (DWORD/WORD)` (A desplazar), `Op/Lit (BYTE)` (Cantidad, a veces en ACCU1-L) -> `[Op, STW]` |
|
||||
| `SRD` / `SRW` | `SRD` / `SRW` | `Op (DWORD/WORD)` (A desplazar), `Op/Lit (BYTE)` (Cantidad, a veces en ACCU1-L) -> `[Op, STW]` |
|
||||
| `RLD` / `RRD` | `RLD` / `RRD` | `Op (DWORD/WORD)` (A rotar), `Op/Lit (BYTE)` (Cantidad, a veces en ACCU1-L) -> `[Op, STW]` |
|
||||
| `BLD` | `BLD` | `Op/Lit (INT)` (Instrucción de visualización) -> `[PG Display]` |
|
||||
| `ADDAR1` | `+AR1` | `Op/Lit (WORD/DWORD)` (Valor a sumar a AR1) `[AR1]` -> `[AR1]` |
|
||||
| `ADDAR2` | `+AR2` | `Op/Lit (WORD/DWORD)` (Valor a sumar a AR2) `[AR2]` -> `[AR2]` |
|
||||
| `INC` | `INC` | `Op (INT/DINT)` (Operando a incrementar) -> `[Op]` |
|
||||
| `DEC` | `DEC` | `Op (INT/DINT)` (Operando a decrementar) -> `[Op]` |
|
||||
| `AW`... `XD` | `AW`...`XOD` | `Op/Lit (WORD/DWORD)` `[ACCU1, Op/Lit]` -> `[ACCU1, STW]` |
|
||||
| `A_BRACK`...`XN_BRACK`| `A(`...`XN(` | (Apertura de paréntesis para pila RLO) |
|
||||
| `INV_I`...`NEG_R` | `INV_I`...`NEG_R` | (Opera sobre `ACCU1`) -> `[ACCU1, STW]` |
|
||||
| `ABS_R`...`ATAN` | `ABS`...`ATAN` | (Opera sobre `ACCU1` como REAL) -> `[ACCU1, STW]` |
|
||||
| `RLDA` / `RRDA` | `RLDA` / `RRDA` | (Opera sobre `ACCU1`) -> `[ACCU1, STW]` |
|
||||
| `BTI`...`TRUNC` | `BTI`...`TRUNC` | (Conversión de tipo, opera sobre `ACCU1`) -> `[ACCU1, STW]` |
|
||||
| `CAW` / `CAD` | `CAW` / `CAD` | (Intercambia `ACCU1` y `ACCU2`) |
|
||||
| `ADD_I`...`DIV_R` | `+I`...`/R` | `[ACCU2, ACCU1]` (formato `L Op1 L Op2 +I`) o `Op/Lit (TipoArit)` `[ACCU1, Op/Lit]` -> `[ACCU1, STW]` |
|
||||
| `MOD_D` | `MOD` | `[ACCU2, ACCU1]` o `Op/Lit (DINT)` `[ACCU1, Op/Lit]` -> `[ACCU1, STW]` |
|
||||
| `L_DBLG`...`L_DINO`| `L DBLG`...`L DINO` | (Carga info del DB abierto) -> `[ACCU1]` |
|
||||
| `CAC` | `TAK` | (Intercambia `ACCU1` y `ACCU2`) |
|
||||
| `LEAVE` | `LEAVE` | (Salir de bucle MCR) |
|
||||
| `PUSH` / `POP` | `PUSH` / `POP` | (Opera sobre `ACCU1` y pila interna S5) |
|
||||
| `SET` | `SET` | -> `[RLO=1]` |
|
||||
| `NEG` | `NOT` | `[RLO]` -> `[RLO]` |
|
||||
| `CLR` | `CLR` | -> `[RLO=0, STW (/0 bit)]` |
|
||||
| `BEC` | `BEC` | `[Condición: RLO]` (Fin de bloque si RLO=0) |
|
||||
| `BRACKET` | `)` | (Cierre de paréntesis, evalúa pila RLO) -> `[RLO]` |
|
||||
| `SAVE` | `SAVE` | `[RLO]` -> `[BR bit en STW]` |
|
||||
| `NOP_0` / `NOP_1` | `NOP 0` / `NOP 1` | (No operación) |
|
||||
| `MCR_BRACK` | `MCR(` | `[Condición: RLO]` (Inicio MCR) |
|
||||
| `BRACK_MCR` | `MCR)` | (Fin MCR) |
|
||||
| `MCRA` / `MCRD` | `MCRA` / `MCRD` | (Activa/Desactiva MCR anidado) |
|
||||
| `CAR` | `CAR` | (Intercambia `AR1` y `AR2`) |
|
||||
| `CDB` | `CDB` | (Intercambia registro DB global y DI) |
|
||||
| `MOVE_BLOCK` | `BLKMOV` (SFC20) | `SRC: Op(ANY), DST: Op(ANY), COUNT: Op/Lit(WORD/INT)` (Parámetros a SFC20, usualmente vía ACCU o punteros) |
|
||||
| `BE` | `BE` | (Fin de bloque incondicional) |
|
||||
| `BEU` | `BEU` | (Fin de bloque incondicional) |
|
||||
|
||||
**Notas sobre "Parámetros" en STL:**
|
||||
|
||||
* **Carga Previa:** Muchas instrucciones aritméticas (`+I`, `*R`), de comparación, o temporizadores/contadores (`SD`, `CU`) esperan que sus operandos de entrada o valores de configuración (como el tiempo `S5TIME` o el valor de preset `Integer`) hayan sido cargados en `ACCU1` (y `ACCU2` si es necesario) mediante instrucciones `L` previas.
|
||||
* Ejemplo Temporizador: `L S5T#5S` (Carga 5 segundos en ACCU1) / `SD T1` (Inicia T1 con el valor de ACCU1).
|
||||
* Ejemplo Contador: `L 10` (Carga 10 en ACCU1) / `S C1` (Preselecciona C1 con 10). Luego `CU C1` usa el RLO como pulso.
|
||||
* **`CALL` de FBs/FCs:** Los parámetros para FBs/FCs definidos por el usuario se pasan típicamente cargando los valores de entrada en `ACCU1` (y `ACCU2`) secuencialmente antes de la instrucción `CALL` si no se usa una sintaxis de asignación de parámetros más estructurada (que el XML podría representar de forma diferente si proviene de LAD/FBD). Para FBs, el `BlkID` es a menudo el DB de instancia.
|
||||
* **SFCs/SFBs (System Functions/Blocks):** Tienen definiciones de parámetros fijas. La forma de pasar estos parámetros en STL puro es a menudo cargándolos en `ACCU1`/`ACCU2` o usando punteros en `AR1`/`AR2` antes del `CALL`.
|
||||
* **Flexibilidad de Operandos:** La columna "Parámetros Típicos / Operandos" es una guía. STL permite muchas combinaciones de direccionamiento.
|
||||
* **El XML y los Parámetros:** Si tu XML proviene de una conversión de LAD/FBD a STL, la estructura XML alrededor de un `CALL` podría ser más rica y detallar los parámetros de forma explícita, los cuales el generador STL luego traduce a las secuencias `L`...`CALL` apropiadas. El `STL_TE` solo define el token de la instrucción principal.
|
||||
|
||||
Esta tabla debería darte una mejor idea de qué esperar para cada instrucción STL al analizar el XML.
|
|
@ -0,0 +1,191 @@
|
|||
# Elementos STL Definidos en SW.PlcBlocks.STL_v4.xlm.txt (STL_TE)
|
||||
|
||||
Este documento lista las instrucciones STL (Statement List) tal como se definen en la enumeración `STL_TE` dentro del archivo `SW.PlcBlocks.STL_v4.xlm.txt`.
|
||||
Esto puede ser útil para construir o mejorar un parser que convierte el formato XML de bloques Siemens a texto plano STL.
|
||||
|
||||
| Valor XML (STL_TE) | Mnemónico(s) STL Común(es) | Descripción Breve / Categoría (de XSD o inferida) |
|
||||
|----------------------------|---------------------------|------------------------------------------------------------|
|
||||
| `A` | `A` | AND Lógico |
|
||||
| `AN` | `AN` | AND NOT Lógico |
|
||||
| `O` | `O` | OR Lógico |
|
||||
| `ON` | `ON` | OR NOT Lógico |
|
||||
| `X` | `X` | Exclusive OR Lógico |
|
||||
| `XN` | `XN` | Exclusive NOR Lógico |
|
||||
| `S` | `S` | Set (Activar Bit) |
|
||||
| `R` | `R` | Reset (Desactivar Bit) |
|
||||
| `Assign` | `=` | Asignación (Salida) |
|
||||
| `Rise` | `FP` | Flanco Positivo (Rising Edge) |
|
||||
| `Fall` | `FN` | Flanco Negativo (Falling Edge) |
|
||||
| `L` | `L` | Load (Cargar en Acumulador 1) |
|
||||
| `T` | `T` | Transfer (Transferir desde Acumulador 1) |
|
||||
| `LAR1` | `LAR1` | Load Address Register 1 |
|
||||
| `LAR2` | `LAR2` | Load Address Register 2 |
|
||||
| `TAR1` | `TAR1` | Transfer Address Register 1 |
|
||||
| `TAR2` | `TAR2` | Transfer Address Register 2 |
|
||||
| `Extend` | `SE` (S5), `SV` (S5) | Temporizador: Extender Pulso (S5: SE=Impulso, SV=Impulso Prolongado) |
|
||||
| `Free` | `FR` | Temporizador: Liberar (Enable Timer) |
|
||||
| `LC` | `LC` | Temporizador: Load and Activate Timer (S5) |
|
||||
| `OffDelay` | `SF` (S7), `SA` (S5) | Temporizador: Retardo a la Desconexión (Off-Delay) |
|
||||
| `Retentive` | `SS` (S7/S5) | Temporizador: Retentivo con Retardo a la Conexión |
|
||||
| `OnDelay` | `SD` (S7/S5) | Temporizador: Retardo a la Conexión (On-Delay) |
|
||||
| `Pulse` | `SP` (S7/S5), `SI` (S5) | Temporizador: Generador de Pulsos (Pulse) |
|
||||
| `CD` | `CD` | Contador: Decrementar (Count Down) |
|
||||
| `CU` | `CU` | Contador: Incrementar (Count Up) |
|
||||
| `CALL` | `CALL` | Llamada a Bloque (FC, FB, SFB, SFC) |
|
||||
| `CC` | `CC` | Conditional Call (Llamada Condicional) |
|
||||
| `UC` | `UC` | Unconditional Call (Llamada Incondicional) |
|
||||
| `OPEN_DB` | `AUF DB`, `OPN DB` | Abrir Data Block (Global) |
|
||||
| `OPEN_DI` | `AUF DI`, `OPN DI` | Abrir Data Block de Instancia |
|
||||
| `LT_I` | `<I` (S7: `CMP < I`) | Comparación: Menor Que (Integer) |
|
||||
| `LT_R` | `<R` (S7: `CMP < R`) | Comparación: Menor Que (Real) |
|
||||
| `LT_D` | `<D` (S7: `CMP < D`) | Comparación: Menor Que (Double Integer/S5 DWord) |
|
||||
| `LE_I` | `<=I` (S7: `CMP <= I`) | Comparación: Menor o Igual Que (Integer) |
|
||||
| `LE_R` | `<=R` (S7: `CMP <= R`) | Comparación: Menor o Igual Que (Real) |
|
||||
| `LE_D` | `<=D` (S7: `CMP <= D`) | Comparación: Menor o Igual Que (Double Integer/S5 DWord) |
|
||||
| `EQ_I` | `==I` (S7: `CMP == I`) | Comparación: Igual Que (Integer) |
|
||||
| `EQ_R` | `==R` (S7: `CMP == R`) | Comparación: Igual Que (Real) |
|
||||
| `EQ_D` | `==D` (S7: `CMP == D`) | Comparación: Igual Que (Double Integer/S5 DWord) |
|
||||
| `GE_I` | `>=I` (S7: `CMP >= I`) | Comparación: Mayor o Igual Que (Integer) |
|
||||
| `GE_R` | `>=R` (S7: `CMP >= R`) | Comparación: Mayor o Igual Que (Real) |
|
||||
| `GE_D` | `>=D` (S7: `CMP >= D`) | Comparación: Mayor o Igual Que (Double Integer/S5 DWord) |
|
||||
| `GT_I` | `>I` (S7: `CMP > I`) | Comparación: Mayor Que (Integer) |
|
||||
| `GT_R` | `>R` (S7: `CMP > R`) | Comparación: Mayor Que (Real) |
|
||||
| `GT_D` | `>D` (S7: `CMP > D`) | Comparación: Mayor Que (Double Integer/S5 DWord) |
|
||||
| `NE_I` | `<>I` (S7: `CMP <> I`) | Comparación: Distinto De (Integer) |
|
||||
| `NE_R` | `<>R` (S7: `CMP <> R`) | Comparación: Distinto De (Real) |
|
||||
| `NE_D` | `<>D` (S7: `CMP <> D`) | Comparación: Distinto De (Double Integer/S5 DWord) |
|
||||
| `JU` | `JU`, `SPA` (S5) | Salto Incondicional (Jump Unconditional) |
|
||||
| `JC` | `JC`, `SPB` (S5) | Salto si RLO=1 (Jump if Condition) |
|
||||
| `JO` | `JO`, `SPO` (S5) | Salto si OV=1 (Jump if Overflow) |
|
||||
| `JZ` | `JZ`, `SPZ` (S5) | Salto si Resultado=0 (Jump if Zero) |
|
||||
| `JP` | `JP`, `SPP` (S5) | Salto si Resultado Positivo (Jump if Positive) |
|
||||
| `JM` | `JM`, `SPM` (S5) | Salto si Resultado Negativo (Jump if Minus) |
|
||||
| `JN` | `JN` | Salto si Resultado No Cero (Jump if Not Zero) (S5: SPN) |
|
||||
| `JCN` | `JCN`, `SPBN` (S5) | Salto si RLO=0 (Jump if Condition Not Met) |
|
||||
| `JCB` | `JCB`, `SPBB` (S5) | Salto si RLO=1 y OS=0 (Jump if Condition Met and BR) |
|
||||
| `JNB` | `JNB`, `SPBNB` (S5) | Salto si (RLO=0 o OS=1) (Jump if Not BR) |
|
||||
| `JBI` | `JBI`, `SPBI` (S5) | Salto si RLO=1 y Estado Binario = 1 (Jump if Binary Result True) |
|
||||
| `JNBI` | `JNBI`, `SPBNI` (S5) | Salto si RLO=0 o Estado Binario = 0 (Jump if Not Binary Result True) |
|
||||
| `JOS` | `JOS`, `SPS` (S5) | Salto si Desbordamiento Almacenado (Jump if Overflow Stored) |
|
||||
| `JUN` | `JUN` | Salto si Resultado No Ordenado (Jump if Unordered) (Reales) |
|
||||
| `JMZ` | `JMZ`, `SPMZ` (S5) | Salto si Resultado Menor o Igual a Cero |
|
||||
| `JPZ` | `JPZ` (S7), `SPPZ` (S5) | Salto si Resultado Mayor o Igual a Cero |
|
||||
| `LOOP` | `LOOP` | Salto a Etiqueta (decrementando contenido de AR2) |
|
||||
| `JL` | `JL` | Salto a destino en lista de saltos (Jump List) |
|
||||
| `ADD` | `+I` | Suma Integer (Acum1 = Acum1 + Acum2) |
|
||||
| `SLD` | `SLD` | Desplazamiento Lógico a la Izquierda (Double Word) |
|
||||
| `SLW` | `SLW` | Desplazamiento Lógico a la Izquierda (Word) |
|
||||
| `SRD` | `SRD` | Desplazamiento Lógico a la Derecha (Double Word) |
|
||||
| `SRW` | `SRW` | Desplazamiento Lógico a la Derecha (Word) |
|
||||
| `SRSD` | `SSD` (S5), `SVD` (S5) | Shift Register Start/Stop (Double Word) (S5) |
|
||||
| `SRSW` | `SSW` (S5), `SVW` (S5) | Shift Register Start/Stop (Word) (S5) |
|
||||
| `RLD` | `RLD` | Rotación a la Izquierda (Double Word) |
|
||||
| `RRD` | `RRD` | Rotación a la Derecha (Double Word) |
|
||||
| `BLD` | `BLD` | Program Display (Visualizar en PG) |
|
||||
| `ADDAR1` | `+AR1` | Sumar al Registro de Direcciones AR1 |
|
||||
| `ADDAR2` | `+AR2` | Sumar al Registro de Direcciones AR2 |
|
||||
| `INC` | `INC` | Incrementar Operando |
|
||||
| `DEC` | `DEC` | Decrementar Operando |
|
||||
| `AW` | `AW` | AND Word (Lógico a nivel de bit) |
|
||||
| `OW` | `OW` | OR Word (Lógico a nivel de bit) |
|
||||
| `XW` | `XOW` | Exclusive OR Word (Lógico a nivel de bit) |
|
||||
| `AD` | `AD` | AND Double Word (Lógico a nivel de bit) |
|
||||
| `OD` | `OD` | OR Double Word (Lógico a nivel de bit) |
|
||||
| `XD` | `XOD` | Exclusive OR Double Word (Lógico a nivel de bit) |
|
||||
| `A_BRACK` | `A(` | AND con Apertura de Paréntesis en Pila RLO |
|
||||
| `AN_BRACK` | `AN(` | AND NOT con Apertura de Paréntesis en Pila RLO |
|
||||
| `O_BRACK` | `O(` | OR con Apertura de Paréntesis en Pila RLO |
|
||||
| `ON_BRACK` | `ON(` | OR NOT con Apertura de Paréntesis en Pila RLO |
|
||||
| `X_BRACK` | `X(` | XOR con Apertura de Paréntesis en Pila RLO |
|
||||
| `XN_BRACK` | `XN(` | XNOR con Apertura de Paréntesis en Pila RLO |
|
||||
| `INV_I` | `INV_I` (S7), `KEW` (S5) | Invertir Integer (Complemento a 1) |
|
||||
| `NEG_I` | `NEG_I` (S7), `KZW` (S5) | Negar Integer (Complemento a 2) |
|
||||
| `INV_D` | `INV_D` (S7), `KED` (S5) | Invertir Double Integer (Complemento a 1) |
|
||||
| `NEG_D` | `NEG_D` (S7), `KZD` (S5) | Negar Double Integer (Complemento a 2) |
|
||||
| `NEG_R` | `NEG_R` (S7), `NEG_G` (S5) | Negar Real (Cambio de Signo) |
|
||||
| `ABS_R` | `ABS` (S7), `ABS_G` (S5) | Valor Absoluto de Real |
|
||||
| `SQRT` | `SQRT` | Raíz Cuadrada (Real) |
|
||||
| `SQR` | `SQR` | Cuadrado (Real) |
|
||||
| `LN` | `LN` | Logaritmo Natural (Real) |
|
||||
| `EXP` | `EXP` | Exponencial (e^x) (Real) |
|
||||
| `SIN` | `SIN` | Seno (Real, ángulo en radianes) |
|
||||
| `ASIN` | `ASIN` | Arcoseno (Real) |
|
||||
| `COS` | `COS` | Coseno (Real, ángulo en radianes) |
|
||||
| `ACOS` | `ACOS` | Arcocoseno (Real) |
|
||||
| `TAN` | `TAN` | Tangente (Real, ángulo en radianes) |
|
||||
| `ATAN` | `ATAN` | Arcotangente (Real) |
|
||||
| `RLDA` | `RLDA` | Rotar Acumulador Izquierda vía CC1 |
|
||||
| `RRDA` | `RRDA` | Rotar Acumulador Derecha vía CC1 |
|
||||
| `BTI` | `BTI` (S7), `DEF` (S5) | BCD a Integer |
|
||||
| `ITB` | `ITB` (S7), `DUF` (S5) | Integer a BCD |
|
||||
| `BTD` | `BTD` (S7), `DED` (S5) | BCD a Double Integer |
|
||||
| `DTB` | `DTB` (S7), `DUD` (S5) | Double Integer a BCD |
|
||||
| `DTR` | `DTR` (S7), `FDG` (S5) | Double Integer a Real |
|
||||
| `RND` | `RND` (S7), `GFDN` (S5) | Redondear Real a Double Integer (al más cercano) |
|
||||
| `RND_M` | `RND-` (S7), `GFDM` (S5) | Redondear Real a Double Integer (hacia menos infinito) |
|
||||
| `RND_P` | `RND+` (S7), `GFDP` (S5) | Redondear Real a Double Integer (hacia más infinito) |
|
||||
| `TRUNC` | `TRUNC` | Truncar Real a Double Integer (parte entera) |
|
||||
| `ITD` | `ITD` (S7), `FD` (S5) | Integer a Double Integer |
|
||||
| `CAW` | `CAW` (S7), `TAW` (S5) | Intercambiar Acumuladores (Word) |
|
||||
| `CAD` | `CAD` (S7), `TAD` (S5) | Intercambiar Acumuladores (Double Word) |
|
||||
| `TAR1_ACCU1` | `TAR1` (operando Acum1) | Transferir AR1 a Acum1 (S5) |
|
||||
| `TAR2_ACCU1` | `TAR2` (operando Acum1) | Transferir AR2 a Acum1 (S5) |
|
||||
| `ADD_I` | `+I` | Suma Integer (Acum1 = Acum2 + Acum1) S7. XSD doc: `+F` (S5 Real Add) |
|
||||
| `SUB_I` | `-I` | Resta Integer (Acum1 = Acum2 - Acum1) S7. XSD doc: `-F` (S5 Real Sub) |
|
||||
| `MUL_I` | `*I` | Multiplicación Integer (Acum1 = Acum2 * Acum1) S7. XSD doc: `xF` (S5 Real Mul) |
|
||||
| `DIV_I` | `/I` | División Integer (Acum1 = Acum2 / Acum1) S7. XSD doc: `:F` (S5 Real Div) |
|
||||
| `ADD_D` | `+D` | Suma Double Integer (S7) |
|
||||
| `SUB_D` | `-D` | Resta Double Integer (S7) |
|
||||
| `MUL_D` | `*D` | Multiplicación Double Integer (S7) |
|
||||
| `DIV_D` | `/D` | División Double Integer (S7) |
|
||||
| `MOD_D` | `MOD` | Módulo (Resto de división) (Double Integer) (S7) |
|
||||
| `L_DBLG` | `L DBLG` | Cargar Longitud del DB Global Abierto |
|
||||
| `L_DILG` | `L DILG` | Cargar Longitud del DB de Instancia Abierto |
|
||||
| `L_DBNO` | `L DBNO` | Cargar Número del DB Global Abierto |
|
||||
| `L_DINO` | `L DINO` | Cargar Número del DB de Instancia Abierto |
|
||||
| `ADD_R` | `+R` (S7), `+G` (S5) | Suma Real |
|
||||
| `SUB_R` | `-R` (S7), `-G` (S5) | Resta Real |
|
||||
| `MUL_R` | `*R` (S7), `xG` (S5) | Multiplicación Real |
|
||||
| `DIV_R` | `/R` (S7), `:G` (S5) | División Real |
|
||||
| `CAC` | `TAK` | Intercambiar Acumulador 1 y Acumulador 2 |
|
||||
| `LEAVE` | `LEAVE` | Salir de Bucle MCR |
|
||||
| `PUSH` | `PUSH` | Poner Acumulador 1 en Pila (S5) |
|
||||
| `POP` | `POP` | Sacar de Pila a Acumulador 1 (S5) |
|
||||
| `SET` | `SET` | Activar RLO (Resultado Lógico de Operación) a 1 |
|
||||
| `NEG` | `NOT` | Negar RLO |
|
||||
| `CLR` | `CLR` | Poner RLO a 0 (Clear RLO) |
|
||||
| `BEC` | `BEC` (S7), `BEB` (S5) | Fin de Bloque Condicional (Block End Conditional) |
|
||||
| `BRACKET` | `)` | Cerrar Paréntesis en Pila RLO (Evaluar Pila) |
|
||||
| `SAVE` | `SAVE` | Guardar RLO en bit BR (Binary Result) |
|
||||
| `NOP_0` | `NOP 0` | No Operación (0) |
|
||||
| `NOP_1` | `NOP 1` | No Operación (1) |
|
||||
| `MCR_BRACK` | `MCR(` | Inicio de Zona de Control Maestro (Master Control Relay) |
|
||||
| `BRACK_MCR` | `MCR)` | Fin de Zona de Control Maestro |
|
||||
| `MCRA` | `MCRA` | Activar Zona de Control Maestro |
|
||||
| `MCRD` | `MCRD` | Desactivar Zona de Control Maestro |
|
||||
| `ENT` | `ENT` | Entrar en Pila (S5) |
|
||||
| `LAR1_ACCU1` | `LAR1 P#ACCU1` (S5) | Cargar AR1 con dirección del Acumulador 1 (S5) |
|
||||
| `LAR1_AR2` | `LAR1 AR2` | Cargar AR1 con contenido de AR2 |
|
||||
| `LAR2_ACCU1` | `LAR2 P#ACCU1` (S5) | Cargar AR2 con dirección del Acumulador 1 (S5) |
|
||||
| `TAR1_AR2` | `TAR1 AR2` | Transferir AR1 a AR2 |
|
||||
| `CAR` | `CAR` (S7), `TAR` (S5) | Intercambiar Registros de Direcciones AR1 y AR2 |
|
||||
| `CDB` | `CDB` (S7), `TDB` (S5) | Intercambiar Registros DB y DI |
|
||||
| `COMMENT` | `;` o `//` | Indica que la línea es un comentario (parser específico) |
|
||||
| `EMPTY_LINE` | | Indica una línea vacía (parser específico) |
|
||||
| `PSEUDO` | | Pseudo instrucción (no es STL estándar, uso interno TIA) |
|
||||
| `MOVE` | `MOVE` (SCL/Graph) | Mover valor (más común en SCL, pero puede aparecer) |
|
||||
| `MOVE_BLOCK` | `BLKMOV` | Mover Bloque de Memoria |
|
||||
| `BE` | `BE` (S7), `BEA` (S5) | Fin de Bloque Incondicional (Block End) |
|
||||
| `BEU` | `BEU` | Fin de Bloque Incondicional (Unconditional Block End) |
|
||||
|
||||
**Notas Importantes:**
|
||||
|
||||
* **Mnemónicos Comunes:** La columna "Mnemónico(s) STL Común(es)" intenta reflejar lo que un programador S7 esperaría o lo que se usa más frecuentemente. A veces, el valor XML es más una categoría (ej. `OffDelay` para `SF`).
|
||||
* **Contexto S5/S7:** Algunas anotaciones en el XSD apuntan a mnemónicos de SIMATIC S5 (ej. `SPA`, `SPB`). Las instrucciones de comparación (`<I`, `==R`, etc.) en S7 a menudo se usan después de dos cargas `L` o con la instrucción `CMP` (ej. `CMP < I`). El XSD parece preferir la forma más directa sin `CMP`.
|
||||
* **Temporizadores y Contadores:** Las instrucciones como `SF`, `SD`, `CU`, `CD` requieren un operando que es la instancia del temporizador/contador (ej. `T1`, `C10`).
|
||||
* **Operandos:** Este listado se centra en la instrucción en sí. Cada instrucción puede ir seguida de un operando (definido por `Access_T` en `SW.PlcBlocks.Access_v4.xsd`), como `DB1.DBW0`, `#tempVar`, `P#DBX 0.0 BYTE 10`, `123`, `L#10s`, etc.
|
||||
* **`COMMENT` y `EMPTY_LINE`:** Estos no son mnemónicos STL, sino tokens que el parser XML usa para representar estas estructuras en el código fuente.
|
||||
* **`PSEUDO`:** No es una instrucción STL estándar, probablemente usada internamente por TIA Portal.
|
||||
* **Documentación Oficial:** Para un entendimiento completo de cada instrucción, sus operandos válidos y su comportamiento, siempre consulta la documentación oficial de Siemens para el sistema PLC específico (S7-300/400, S7-1200/1500).
|
||||
|
||||
Espero que esta tabla te sea de gran ayuda para tu parser.
|
|
@ -0,0 +1,56 @@
|
|||
|
||||
Objeto de TIA Portal Openness : [TIA Portal Information System](https://docs.tia.siemens.cloud/r/es-es/v20/tia-portal-openness-api-para-la-automatizacion-de-flujos-de-trabajo-de-ingenieria/tia-portal-openness-api/objeto-de-tia-portal-openness)
|
||||
|
||||
|
||||
**Metodología para esta tabla:**
|
||||
|
||||
* Me centraré en los `Name` de `Part` que son comúnmente usados o deducibles para elementos LAD estándar.
|
||||
* Incluiré elementos estructurales (`Wire_T`, `Network_T`).
|
||||
* Consideraré los `TemplateValue Name="..." Type="..."` que ayudan a especializar un `Part` genérico.
|
||||
* Mencionaré cuando la `Interface` (de `SW.InterfaceSections_v5.xlm.txt`) es crucial para definir los pines de un bloque.
|
||||
|
||||
**Tabla de Elementos LAD/FBD Derivados de los XSDs**
|
||||
|
||||
| Elemento XML Principal / `Part Name` (o inferido) | Elemento LAD/FBD Típico | Descripción / Función | Pines/Parámetros Clave (XML) | Operando Asociado (XML `Access`) / Tipo de Instancia | Referencia XSD Primaria |
|
||||
|---|---|---|---|---|---|
|
||||
| **Estructura de Red** | | | | | |
|
||||
| `Network_T` (contenido dentro de `FlgNet` en `CompileUnit`) | Red (Network) | Contenedor para una secuencia lógica de LAD/FBD. | `Parts` (lista de elementos), `Wires` (lista de conexiones) | - | `SW.PlcBlocks.LADFBD_v4.xsd` |
|
||||
| `Wire_T` | Cable (Wire) | Conecta pines de diferentes `Part`s. | `NameCon` (pin/UID origen), `IdentCon` (pin/UID destino), `Points` (para ruta visual) | - | `SW.PlcBlocks.LADFBD_v4.xsd` |
|
||||
| `Powerrail` (como origen en `Wire_T`) | Riel Izquierdo (Power Rail) | Inicio del flujo de potencia en la red. | - | - | `SW.PlcBlocks.LADFBD_v4.xsd` |
|
||||
| **Elementos Lógicos LAD Básicos (`Part_T`)** | | | | | |
|
||||
| `Part` con `Name="Contact"` | Contacto | Evalúa una condición booleana. | `operand` (pin para el valor lógico), `EN`, `ENO`. <br> `TemplateValue Name="Type"`: "NormallyOpen", "NormallyClosed", "PositiveTransition", "NegativeTransition", "Comparator". <br> `TemplateValue Name="Card"` (Cardinalidad) | `Access` a `BOOL` | `SW.PlcBlocks.LADFBD_v4.xsd` |
|
||||
| `Part` con `Name="Coil"` | Bobina | Asigna un valor booleano. | `operand` (pin para el valor lógico), `EN`, `ENO`. <br> `TemplateValue Name="Type"`: "Assign", "Set", "Reset", "PositivePulse", "NegativePulse". <br> `TemplateValue Name="Card"` | `Access` a `BOOL` | `SW.PlcBlocks.LADFBD_v4.xsd` |
|
||||
| `Part` con `Name="Negation"` | Bobina de Negación / NOT | Invierte el estado lógico. | `IN` (entrada), `OUT` (salida) | - | `SW.PlcBlocks.LADFBD_v4.xsd` |
|
||||
| **Elementos Estructurales LAD (`Part_T`)** | | | | | |
|
||||
| `Part` con `Name="OpenBranch"` | Abrir Rama | Inicia una rama paralela. | - <br> `TemplateValue Name="Type"`: "OR" (típicamente) | - | `SW.PlcBlocks.LADFBD_v4.xsd` |
|
||||
| `Part` con `Name="CloseBranch"` | Cerrar Rama | Cierra una rama paralela. | - | - | `SW.PlcBlocks.LADFBD_v4.xsd` |
|
||||
| **Bloques de Instrucción Comunes (`Part_T` con `Name` específico o genérico + `Interface`)** | | | | | |
|
||||
| `Part` con `Name="ADD"`, `"SUB"`, `"MUL"`, `"DIV"` (o `Name="Box"`/`"InstructionBox"` con interfaz correspondiente) | Bloque Aritmético | Realiza operaciones aritméticas. | `EN`, `ENO`. <br> `Interface`: `IN1`, `IN2` (entradas), `OUT` (salida). Tipos: `INT`, `DINT`, `REAL`, etc. | `Access` a numéricos | `SW.PlcBlocks.LADFBD_v4.xsd`, `SW.InterfaceSections_v5.xlm.txt` |
|
||||
| `Part` con `Name="MOVE"` (o `Name="Box"`/`"InstructionBox"` con interfaz correspondiente) | Bloque de Movimiento | Copia un valor a otro. | `EN`, `ENO`. <br> `Interface`: `IN` (entrada), `OUT` (salida). Tipo: `ANY`. | `Access` a variables | `SW.PlcBlocks.LADFBD_v4.xsd`, `SW.InterfaceSections_v5.xlm.txt` |
|
||||
| `Part` con `Name="CMP"` (o `Name="Compare"`, o `Name="Box"` con interfaz de comparación) | Bloque de Comparación | Compara dos valores. | `EN`, `ENO`. <br> `Interface`: `IN1`, `IN2` (entradas), `OUT` (salida `BOOL`). <br> `TemplateValue Name="Mode"`: "EQ", "NE", "GT", "GE", "LT", "LE". | `Access` a numéricos/comparables | `SW.PlcBlocks.LADFBD_v4.xsd`, `SW.InterfaceSections_v5.xlm.txt` |
|
||||
| `Part` con `Name="CONV"` (o `Name="Box"` con interfaz de conversión) | Bloque de Conversión | Convierte un valor de un tipo a otro. | `EN`, `ENO`. <br> `Interface`: `IN` (entrada), `OUT` (salida). Tipos varían. | `Access` a variables | `SW.PlcBlocks.LADFBD_v4.xsd`, `SW.InterfaceSections_v5.xlm.txt` |
|
||||
| **Temporizadores y Contadores (`Part_T` con `Name` específico o como SFB)** | | | | | |
|
||||
| `Part` con `Name="TON"`, `"TOF"`, `"TP"` (Temporizadores IEC, a menudo como SFBs) o `Name="S_ONDELAY"`, `"S_ODT"`, `"S_PULSE"` (Temporizadores S7) | Bloque Temporizador | Operaciones de temporización. | `EN`, `ENO`. <br> `Interface`: `IN` (`BOOL`), `PT` (`TIME`), `Q` (`BOOL`), `ET` (`TIME`). | `Instance_T` (`#timerVar` o DB de instancia), `Access` para `IN`, `PT`. | `SW.PlcBlocks.LADFBD_v4.xsd`, `SW.InterfaceSections_v5.xlm.txt` |
|
||||
| `Part` con `Name="CTU"`, `"CTD"`, `"CTUD"` (Contadores IEC, a menudo como SFBs) o `Name="S_CU"`, `"S_CD"`, `"S_CUD"` (Contadores S7) | Bloque Contador | Operaciones de conteo. | `EN`, `ENO`. <br> `Interface`: `CU`/`CD` (`BOOL`), `R` (Reset, `BOOL`), `LD` (Load, `BOOL`), `PV` (Preset Value, `INT`/`DINT`), `Q`/`QU`/`QD` (`BOOL`), `CV` (`INT`/`DINT`). | `Instance_T` (`#counterVar` o DB de instancia), `Access` para entradas. | `SW.PlcBlocks.LADFBD_v4.xsd`, `SW.InterfaceSections_v5.xlm.txt` |
|
||||
| **Control de Programa (`Part_T`)** | | | | | |
|
||||
| `Part` con `Name="JMP"` (o `Name="Jump"`) | Salto (JMP) | Salta a una etiqueta. | `EN` (para salto condicional), `ENO`. <br> Parámetro o atributo para el nombre de la etiqueta destino. | - | `SW.PlcBlocks.LADFBD_v4.xsd` |
|
||||
| `Part` con `Name="LABEL"` (o `Name="Label"`) | Etiqueta (LBL) | Destino para un salto. | Atributo con el nombre de la etiqueta. | - | `SW.PlcBlocks.LADFBD_v4.xsd` (implícito, a menudo asociado a un punto en la red) |
|
||||
| `Part` con `Name="RETURN"` | Retorno (RET) | Termina la ejecución del bloque. | `EN` (para retorno condicional). | - | `SW.PlcBlocks.LADFBD_v4.xsd` |
|
||||
| `Part` con `Name="CALL"` (o el nombre del FC/FB llamado, o `Name="Box"`/`"InstructionBox"`) | Llamada a Bloque (FC/FB) | Ejecuta otro bloque. | `EN`, `ENO`. <br> `Interface` (pines del bloque llamado). | `Access` para parámetros de entrada/salida. `Instance_T` para FBs. | `SW.PlcBlocks.LADFBD_v4.xsd`, `SW.InterfaceSections_v5.xlm.txt` |
|
||||
| **Misceláneos** | | | | | |
|
||||
| `Parameter_T` (dentro de `Part_T` o `CallInfo_T`) | Parámetro de Bloque | Define un pin de entrada/salida/InOut de un `Part`. | `Name`, `Datatype`, `Section` (`Input`, `Output`, `InOut`). Puede contener `Access` o `Connection`. | Varía | `SW.PlcBlocks.LADFBD_v4.xsd` |
|
||||
| `Access_T` (referenciado desde `Part` o `Parameter`) | Operando | Representa una variable, constante o dirección. | Varía según el tipo de acceso (`Symbol`, `Constant`, `Address`, etc.) | - | `SW.PlcBlocks.Access_v4.xsd` |
|
||||
| `Constant_T` (dentro de `Access_T`) | Constante | Un valor literal. | `ConstantType`, `Value`. | - | `SW.PlcBlocks.Access_v4.xsd` |
|
||||
| `Symbol_T` (dentro de `Access_T`) | Símbolo (Variable) | Una variable simbólica. | `Component` (para nombres estructurados o UDTs), `Scope`. | - | `SW.PlcBlocks.Access_v4.xsd` |
|
||||
| `Address_T` (dentro de `Access_T`) | Dirección Absoluta | Una dirección de memoria directa (I, Q, M). | `Area`, `Type`, `BitOffset`, `ByteOffset`. | - | `SW.PlcBlocks.Access_v4.xsd` |
|
||||
| `Comment_T` (asociado a Red o `Part`) | Comentario | Texto descriptivo. | `MultiLanguageText`. | - | `SW.Common_v3.xsd` |
|
||||
| **Elementos Gráficos (implícitos o atributos)** | | | | | |
|
||||
| Atributos/Elementos para posición y tamaño (ej. `ViewInfo_T`, `XPos`, `YPos`, `Width`, `Height`) | Posición/Tamaño Visual | Dónde y cómo se dibuja el elemento. | Coordenadas, dimensiones. | - | `SW.Common_v3.xsd`, atributos en `Part_T` o `Wire_T` |
|
||||
|
||||
**Consideraciones Adicionales:**
|
||||
|
||||
* **`CallInfo_T` y `Call_T`:** Estos tipos en `SW.PlcBlocks.LADFBD_v4.xsd` son importantes para las llamadas a bloques. `CallInfo_T` puede contener una lista de `Parameter_T` que especifican las asignaciones a los pines del bloque llamado.
|
||||
* **Instrucciones Complejas:** Algunas "instrucciones" que en STL son una sola línea (ej. ciertas conversiones o manipulaciones de bits) pueden aparecer como una "caja" (un `Part`) en LAD/FBD si tienen múltiples entradas/salidas o una interfaz más compleja.
|
||||
* **Bloques Tecnológicos (Motion, PID):** Estos tendrían sus propios `Name` para el `Part` (ej. `"MC_MoveAbsolute"`, `"PID_Compact"`) y una `Interface` muy específica definida por sus XSDs particulares (ej. `SW.TechnologicalObjects_Parameters_v1.xlm.txt`, etc., aunque estos XSDs describen más los parámetros internos que la representación LAD).
|
||||
|
||||
Esta tabla es un intento de cubrir los elementos más comunes y estructurales de LAD/FBD según los XSDs proporcionados. La forma más segura de confirmar la representación de un elemento LAD específico es siempre exportar un ejemplo de TIA Portal y analizar el XML resultante, usando estos XSDs como guía para interpretarlo.
|
|
@ -0,0 +1,108 @@
|
|||
|
||||
## 1. Introducción
|
||||
|
||||
El formato SIMATIC SD (Source Document) es un formato de archivo textual, basado en YAML, introducido en TIA Portal V20. Su objetivo es modernizar la gestión de los programas de PLC (Controlador Lógico Programable), permitiendo que el código fuente de los bloques de programación sea legible tanto por humanos como por máquinas. Esto facilita enormemente la integración con sistemas de control de versiones (como Git), mejora la colaboración y permite la automatización de flujos de trabajo de desarrollo.
|
||||
|
||||
TIA Portal Openness es la Interfaz de Programación de Aplicaciones (API) que proporciona Siemens para interactuar programáticamente con proyectos, dispositivos y configuraciones de TIA Portal. A través de Openness, es posible automatizar diversas tareas de ingeniería, incluida la exportación de bloques de programa al formato SIMATIC SD.
|
||||
|
||||
Esta guía se centra en el procedimiento para exportar bloques de programación del lenguaje LAD, bloques de datos y tipos de datos PLC utilizando TIA Portal Openness con C#.
|
||||
|
||||
## 2. Requisitos Previos
|
||||
|
||||
Para poder utilizar la funcionalidad de exportación a SIMATIC SD mediante TIA Portal Openness y C#, es necesario cumplir con los siguientes requisitos:
|
||||
|
||||
- **Instalación de TIA Portal con TIA Portal Openness:** Asegúrate de tener instalada una versión de TIA Portal (V20 o superior) que incluya el componente TIA Portal Openness.
|
||||
|
||||
- **Microsoft Visual Studio:** Necesitarás Microsoft Visual Studio con el SDK de .NET Framework en la versión requerida por la API de TIA Portal Openness que estés utilizando (generalmente .NET Framework 4.8 o superior para TIA Portal V20).
|
||||
|
||||
- **Conocimientos de Programación:** Se requieren conocimientos avanzados de programación en C# (o VB.NET) y familiaridad con las herramientas de desarrollo mencionadas.
|
||||
|
||||
- **Permisos de Usuario:** El usuario que ejecute la aplicación C# que interactúa con TIA Portal Openness debe ser miembro del grupo de usuarios "Siemens TIA Openness" en el sistema operativo.
|
||||
|
||||
|
||||
## 3. Acceso a los Bloques del Proyecto TIA Portal
|
||||
|
||||
TIA Portal Openness permite acceder a los bloques dentro de un proyecto de TIA Portal desde un entorno de desarrollo externo como Visual Studio. Esto se logra interactuando con la API de Openness, que expone objetos y métodos para navegar y manipular la estructura del proyecto.
|
||||
|
||||
La documentación de TIA Portal Openness, específicamente la sección "TIA Portal Openness API" bajo "Funciones para acceder a los datos de un dispositivo PLC", proporciona instrucciones detalladas sobre cómo establecer esta conexión y acceder a los componentes del PLC.
|
||||
|
||||
## 4. El Método `ExportAsDocuments`
|
||||
|
||||
El método clave para exportar bloques en formato SIMATIC SD es `ExportAsDocuments`. Este método está disponible para varios objetos dentro de la API de Openness, principalmente para:
|
||||
|
||||
- **Bloques de PLC (`PlcBlock`):** Permite exportar bloques de programa (FBs, FCs) y bloques de datos (DBs).
|
||||
|
||||
- Referencia API: `M:Siemens.Engineering.SW.Blocks.PlcBlock.ExportAsDocuments(System.IO.DirectoryInfo,System.String)`
|
||||
|
||||
- **Tipos de Datos PLC (`PlcType`):** Permite exportar tipos de datos definidos por el usuario (UDTs).
|
||||
|
||||
- Referencia API: `M:Siemens.Engineering.SW.Types.PlcType.ExportAsDocuments(System.IO.DirectoryInfo,System.String)`
|
||||
|
||||
- **Documentos PLC Genéricos (`PlcDocument`):** También existe una versión de este método para la clase base `PlcDocument`.
|
||||
|
||||
- Referencia API: `M:Siemens.Engineering.SW.PlcDocument.ExportAsDocuments(System.IO.DirectoryInfo,System.String)`
|
||||
|
||||
|
||||
### 4.1. Sintaxis del Método
|
||||
|
||||
La sintaxis general del método `ExportAsDocuments` es la siguiente:
|
||||
|
||||
```
|
||||
// Para un objeto PlcBlock
|
||||
InstanciaDePlcBlock.ExportAsDocuments(DirectoryInfo directorioDestino, string nombreArchivoSinExtension);
|
||||
|
||||
// Para un objeto PlcType
|
||||
InstanciaDePlcType.ExportAsDocuments(DirectoryInfo directorioDestino, string nombreArchivoSinExtension);
|
||||
```
|
||||
|
||||
### 4.2. Parámetros
|
||||
|
||||
El método `ExportAsDocuments` acepta dos parámetros principales:
|
||||
|
||||
1. `directorioDestino` (`System.IO.DirectoryInfo`):
|
||||
|
||||
- Un objeto que representa la ruta de la carpeta donde se guardarán los archivos exportados en formato SIMATIC SD.
|
||||
|
||||
- Es importante asegurarse de que el directorio exista antes de llamar al método, o crearlo mediante programación si es necesario, para evitar errores.
|
||||
|
||||
2. `nombreArchivoSinExtension` (`string`):
|
||||
|
||||
- Una cadena de texto que especifica el nombre base para los archivos que se generarán.
|
||||
|
||||
- TIA Portal generará dos archivos por cada bloque exportado utilizando este nombre base:
|
||||
|
||||
- Un archivo con extensión `.s7dcl` (contiene el código del programa o la estructura de datos).
|
||||
|
||||
- Un archivo con extensión `.s7res` (almacena los comentarios y textos dependientes del idioma asociados al bloque).
|
||||
|
||||
- **Nota Importante:** El nombre del bloque en TIA Portal y el `nombreArchivoSinExtension` pueden diferir. Si el nombre del bloque contiene caracteres que no son compatibles con el sistema de archivos, se debe proporcionar un `nombreArchivoSinExtension` válido y diferente.
|
||||
|
||||
|
||||
### 4.3. Resultado de la Exportación
|
||||
|
||||
La llamada al método `ExportAsDocuments` devuelve un objeto de tipo `Siemens.Engineering.SW.DocumentExportResult`. Este objeto contiene información sobre el resultado de la operación de exportación, como el estado (`State`) y una lista de los documentos exportados (`ExportedDocuments`) y cualquier mensaje (`Messages`) generado durante el proceso.
|
||||
|
||||
## 5. Ejemplo de Código en C#
|
||||
|
||||
El siguiente fragmento de código muestra cómo se puede acceder a un bloque LAD llamado "Example_Block" y exportarlo en formato SIMATIC SD. Este ejemplo asume que ya se ha establecido una conexión a una instancia de TIA Portal, se ha abierto un proyecto y se tiene una referencia al objeto `PlcSoftware` (representado aquí por la variable `sw`).
|
||||
|
||||
```
|
||||
using Siemens.Engineering;
|
||||
using Siemens.Engineering.HW;
|
||||
using Siemens.Engineering.SW;
|
||||
using Siemens.Engineering.SW.Blocks;
|
||||
using System.IO;
|
||||
using System; // Para Console.WriteLine
|
||||
|
||||
public class SimaticSDExporter
|
||||
{
|
||||
// Asumimos que 'tiaPortalInstance' es una instancia de TiaPortal conectada
|
||||
// y 'projectInstance' es el proyecto abierto.
|
||||
// PlcSoftware plcSoftware = GetPlcSoftware(projectInstance); // Método hipotético para obtener PlcSoftware
|
||||
|
||||
public void ExportSingleBlock(PlcSoftware plcSoftware, string blockName, string exportDirectoryPath, string outputFileName)
|
||||
{
|
||||
if (plcSoftware == null)
|
||||
{
|
||||
Console.WriteLine("Error: El objeto PlcSoftware es nulo
|
||||
```
|
|
@ -0,0 +1,22 @@
|
|||
***
|
||||
### This was done on SAE463/SAE469:
|
||||
***
|
||||
|
||||
#mixer #updatepromass #sae463 #sae469 #sae052
|
||||
|
||||
With new Promass/GSD:
|
||||
![[Pasted image 20250519110548.png|800]]
|
||||
|
||||
| Description | Old Slot | In PEW | Out PAW | New Slot |
|
||||
| ------------ | :------: | ------ | ------- | :------: |
|
||||
| Massflow | 1 | 1030 | | 1 |
|
||||
| Totalizer | 2 | 1035 | 1030 | 9 |
|
||||
| Density | 3 | 1040 | | 3 |
|
||||
| Temperature | 4 | 1045 | | 4 |
|
||||
| Calc Density | 10 | 1050 | | 5 |
|
||||
| | | 1055 | | 6 |
|
||||
|
||||
OLD: SAE0469
|
||||
![[Pasted image 20250428145219.png]]
|
||||
|
||||
* Need to check the SAE052 for report return from field by Javier Vargas.
|
After Width: | Height: | Size: 39 KiB |
|
@ -8,14 +8,14 @@ New Promass: from 0027
|
|||
![[Pasted image 20250428145209.png]]
|
||||
|
||||
|
||||
| Description | Slot | Old Slot | | New Slot | New |
|
||||
| ------------ | ---- | -------- | --- | -------- | --- |
|
||||
| Massflow | 1 | 1030 | | 1 | |
|
||||
| Totalizer | 2 | 1035 | | 9 | |
|
||||
| Density | 3 | 1040 | | 3 | |
|
||||
| Temperature | 4 | 1045 | | 4 | |
|
||||
| Calc Density | 10 | 1050 | | 5 | |
|
||||
| | | 1055 | | 6 | |
|
||||
| Description | Old Slot | In PEW | Out PAW | New Slot |
|
||||
| ------------ | :------: | ------ | ------- | :------: |
|
||||
| Massflow | 1 | 1030 | | 1 |
|
||||
| Totalizer | 2 | 1035 | 1030 | 9 |
|
||||
| Density | 3 | 1040 | | 3 |
|
||||
| Temperature | 4 | 1045 | | 4 |
|
||||
| Calc Density | 10 | 1050 | | 5 |
|
||||
| | | 1055 | | 6 |
|
||||
|
||||
|
||||
![[Pasted image 20250428173456.png]]
|
||||
|
|
|
@ -0,0 +1,335 @@
|
|||
|
||||
***
|
||||
|
||||
### Progetto:
|
||||
|
||||
Scrivo quanto presentato, condiviso e concordato nell’incontro del 15-03-24.
|
||||
Il progetto Diet As Regular (DAR) ha lo scopo di:
|
||||
1. ridurre le perdite di sciroppo
|
||||
2. compensare il differente valore di brix sciroppo a fine preparazione dello stesso, dovuto all’”annacquamento” causato dal processo di pastorizzazione, brix differente al variare della quantità di sciroppo preparato
|
||||
|
||||
* E stato proposto e deciso di dividere il progetto in 2 step:
|
||||
* Step 1: aumentare la ripetibilità della soglia di brix di taglio per discriminare la fase di “syrup line preparation” dalla prima produzione: hardware utilizzato refrattometro Maselli, procedura da utilizzare sia per le bibite diet che le regular, posizione antecedente alla mixproof AVS347 AVS348, ed il drenaggio AVS344
|
||||
* Step 2: “autocorrezione diet”
|
||||
|
||||
> Il progetto deve essere coperto da NDA (Sidel/Nestle)
|
||||
|
||||
|
||||
## Step 1:
|
||||
***
|
||||
Esecuzione dello step 1 orientativamente in autunno entro Novembre 2024
|
||||
Hardware necessario:
|
||||
1. refrattometro da inserire nella tubazione in ingresso sciroppo: UR62 senza pulitore, con clamp 2”, occorre anche un deflettore per creare la giusta turbolenza al fine di evitare depositi e quindi ottenere una misura più robusta
|
||||
|
||||
![[Pasted image 20250518194043.png|400]]
|
||||
Esempio di montaggio:
|
||||
![[Pasted image 20250518194107.png]]
|
||||
Posizione di installazione nel mixer SAE452:
|
||||
![[Pasted image 20250518194121.png]]
|
||||
|
||||
Sulla linea sciroppo tra la AVS347, AVS348 e l’HVP302 (da spostare)
|
||||
![[Pasted image 20250518194134.png]]
|
||||
|
||||
* Aggiornamento ==05-12-24==:
|
||||
* Preparazione fittings UR62, tubazione ingresso sciroppo da parte del cliente:
|
||||
* Per quanto riguarda l’installazione dell’UR62 su DN50, avviene attraverso il DF15, del tutto analogo a quello dell’UR29. Il DF6N andrà poi Inserito all’interno del DF15 (vedi disegno sotto):
|
||||
|
||||
![[Pasted image 20250518194150.png|800]]
|
||||
|
||||
![[Pasted image 20250518194506.png|803]]
|
||||
2. refrattometro da inserire nella tubazione sciroppo dopo il massico FTP302: UR29
|
||||
presumibilmente con DN50 anche questo con deflettore, possibile taglia DN40
|
||||
![[Pasted image 20250518194523.png|510]]
|
||||
![[Pasted image 20250518194529.png|630]]
|
||||
|
||||
Si potrebbe pensare di fare un tubo nuovo tra l’uscita del massico FTP302 e l’ingresso modulante sciroppo RMP302
|
||||
|
||||
![[Pasted image 20250518194544.png|800]]
|
||||
|
||||
![[Pasted image 20250518194550.png|800]]
|
||||
![[Pasted image 20250518194557.png|800]]
|
||||
![[Pasted image 20250518194626.png|800]]
|
||||
3. conduttivimetro E&H da inserire in ingresso tubazione acqua: (nostro codice anche profibus)
|
||||
|
||||
![[Pasted image 20250518200611.png|800]]
|
||||
|
||||
Aggiornamento ==05-12-24==:
|
||||
4. centralina MP06 Maselli per gestione Maselli da remoto, alla quale vanno passati alcuni dati:
|
||||
da Sidel a Maselli
|
||||
~~·~~ ~~lettura brix UR62 in ingresso linea sciroppo [°Brix]~~
|
||||
~~·~~ ~~lettura brix UR29 da stream sciroppo [°Brix]~~
|
||||
~~·~~ ~~temperatura sciroppo [°C]~~
|
||||
· flusso sciroppo [kg/min]
|
||||
· flusso acqua [l/min]
|
||||
· densità sciroppo [kg/dm3]
|
||||
· livello tank sciroppo [%]
|
||||
· volume attivo tank sciroppo [L]
|
||||
· lettura brix prodotto [°Brix]
|
||||
· temperatura prodotto [°C]
|
||||
· CO2 prodotto
|
||||
~~·~~ ~~lettura conducibilità dell’acqua in ingresso macchina (?)~~
|
||||
~~·~~ ~~temperatura acqua in ingresso macchina (?)~~
|
||||
· Pressione ingresso linea sciroppo
|
||||
· Pressione stream sciroppo
|
||||
|
||||
5. segnali da Maselli a Sidel (Profibus):
|
||||
· Brix sciroppo ingresso linea sciroppo UR62
|
||||
· Brix sciroppo stream sciroppo UR29
|
||||
· Conducibilità acqua ingresso
|
||||
· Brix acqua
|
||||
|
||||
Occorre accordarsi con Maselli, sul telegramma di scambio dati.
|
||||
schema di cablaggio draft:
|
||||
|
||||
![[Pasted image 20250518200645.png|850]]
|
||||
|
||||
#### Step 0 : Ottimizzazione sw alla produzione diet, preliminare al progetto Step 1 & 2.Intervento del 20 21/01/2025
|
||||
|
||||
La predisposizione dei componenti Maselli è stata effettuata dal cliente entro fine anno scorso, come da accordi.
|
||||
## Conduttivimetro tubazione ingresso acqua:
|
||||
![[Pasted image 20250518200702.png|850]]
|
||||
![[Pasted image 20250518200707.png]]
|
||||
## UR62 ingresso sciroppo:
|
||||
![[Pasted image 20250518200731.png]]
|
||||
![[Pasted image 20250518200737.png]]
|
||||
![[Pasted image 20250518200743.png]]
|
||||
![[Pasted image 20250518200751.png]]
|
||||
|
||||
Equazioni, fornite da Maselli:
|
||||
|
||||
# 1. RATEO
|
||||
|
||||
## 1.1 Refractometric brix vs rateo.
|
||||
|
||||
Since the Brix is defined as follow:
|
||||
|
||||
$$Brix = \frac{Solid_Weight}{Total_Weight}$$
|
||||
|
||||
and:
|
||||
|
||||
$$\delta = \frac{W}{V} \Rightarrow W = \delta \cdot V$$
|
||||
|
||||
considering that: $$V_{Water} = (V_{syrup} \cdot Rateo)$$ we have:
|
||||
|
||||
$$Brix = \frac{Brix_{syrup} \cdot \delta_{syrup} + (Brix_{water} \cdot \delta_{water} \cdot Rateo)}{\delta_{syrup} + \delta_{water} \cdot Rateo}$$
|
||||
|
||||
using the same water and syrup and changing only the rateo it is possible to define the relation refractometric brix vs rateo.
|
||||
|
||||
|% value|brix diet|brix syrup|d204 syrup|rateo|d204 water|brix water|
|
||||
|---|---|---|---|---|---|---|
|
||||
|100.0|0.2497|1.59|1.00436|5.4|0.99823|0|
|
||||
|100.5|0.2509|1.59|1.00436|5.37|0.99823|0|
|
||||
|100.8|0.2517|1.59|1.00436|5.35|0.99823|0|
|
||||
|101.1|0.2525|1.59|1.00436|5.33|0.99823|0|
|
||||
|
||||
|
||||
$$Brix_{Bev} = \frac{Brix_{syr} + Brix_{H_2O} \cdot R_M}{R_M + 1}$$
|
||||
|
||||
|
||||
#### Per questioni di ottimizzazione software, le ho trasformate nella seguente:
|
||||
* Equazione 1:
|
||||
* Ottenuta partendo dalla definizione di brix, ovvero massa del solido (partecipano la parte di solido dello sciroppo ma anche il ”solido”, sali minerali dell’acqua. Perché il brix è molto basso e quindi non si possono trascurare) diviso massa totale.
|
||||
* E manipolando quest’ultima si ottiene il Rapporto Massico, necessario per il calcolo del set point del flusso sciroppo, in modo da mantenere a rapporto i flussi acqua ed appunto sciroppo.
|
||||
|
||||
* Equazione 2:
|
||||
E’ evidente l’aspetto di instabilità insito nell’equazione 2, facendo il $$\lim_{Brix \to 0} \frac{Brix_{syr}-Brix_{Bev}}{Brix_{Bev}-Brix_{H_2O}} \approx \frac{0}{0}$$ , che matematicamente è una forma nota di indeterminazione.
|
||||
Osservando meglio, però, c’è da mettere in evidenza che a denominatore ci sono il brix bibita ed il brix dell’acqua (misurato dal conduttivimetro e trasformato in brix, supporto Maselli), questo deve essere molto “stabile” eventualmente con una media robusta di misure, mentre per il brix bibita abbiamo due possibilità (analogamente alle bibite regular):
|
||||
1. Brixbev = parametro ricetta
|
||||
2. Brixbev = valore letto da Maselli in uscita macchina (Product Brix Tracking)
|
||||
|
||||
Il secondo ha i limiti del suo “fratello” realizzato per le bibite regular (fine tuning) molto lento, le correzioni vanno sincronizzate con il “ritardo” introdotto dal volume di prodotto contenuto nel serbatoio prodotto, vedi algoritmo per i regular.
|
||||
Occorre quindi che il valore letto dall’UR29 posto nello stream sciroppo deve essere il più “stabile” possibile, ogni sua “pendolazione“ impatta in misura proporzionale il rapporto massico e quindi i flussi acqua e sciroppo.
|
||||
|
||||
Riassumo le verifiche effettuate con i dati richiesti ed inviati dal cliente, non ho considerato il brix acqua:
|
||||
## Tabella SCIROPPO
|
||||
|
||||
|Prodotto|Brix Target Ricetta|Media Brix|Brix Min|Brix Max|Dev. Std.|
|
||||
|---|---|---|---|---|---|
|
||||
|Limonata Zero|5,7|5,7575|5,63|5,91|0,14|
|
||||
|Aranciata Zero|14,6|14,1967|13,97|14,52|0,275|
|
||||
|Aranciata Rossa Zero|8,7|8,671|8,36|9,07|0,355|
|
||||
|Clementina pesca zero|7,8|7,774|7,46|7,93|0,235|
|
||||
|Chinò zero|3,17|2,8633|2,81|2,91|0,05|
|
||||
|Cocktail Zero|1,35|1,3543|1,35|1,36|0,005|
|
||||
|
||||
## Tabella BIBITA
|
||||
|
||||
|Prodotto|Brix Target Ricetta|Tolleranza|Media Brix|Brix Min|Brix Max|Dev. Std.|RV Nominale|
|
||||
|---|---|---|---|---|---|---|---|
|
||||
|Limonata Zero|1,1|0,06|1,1195|1,118|1,12|0,001|4,25|
|
||||
|Aranciata Zero|2,6|0,06|2,617|2,574|2,66|0,06|5|
|
||||
|Aranciata Rossa Zero|1,7|0,06|1,7606|1,665|1,886|0,08|4,25|
|
||||
|Clementina pesca zero|1,5|0,06|1,48|1,45|1,53|0,81|4,25|
|
||||
|Chinò zero|0,53|0,06|0,5085|0,447|0,57|0,09|4,25|
|
||||
|Cocktail Zero|0,25|0,06|0,2591|0,217|0,29|0,04|4,25|
|
||||
|
||||
## Tabella Rapporto Massico
|
||||
|
||||
| |Rapporto Massico| | |
|
||||
|---|---|---|---|
|
||||
||R₍ₘ₎ Min|R₍ₘ₎ Nominale|R₍ₘ₎ Max|
|
||||
|Limonata Zero|4,11818182|4,18181818|4,372727|
|
||||
|Aranciata Zero|4,37307692|4,61538462|5,584615|
|
||||
|Aranciata Rossa Zero|3,91764706|4,11764706|4,335294|
|
||||
|Clementina pesca zero|3,97333333|4,2|4,286667|
|
||||
|Chinò zero|4,30188679|4,98113208|4,490566|
|
||||
|Cocktail Zero|4,4|4,4|4,44|
|
||||
L'acqua utilizzata ha conducibilità di circa 267μS/cm a 20°C, durezza 15.1°F
|
||||
|
||||
Tₛᵧᵣ [°C]: 20
|
||||
T₍ₕ₂ₒ₎ [°C]: 20
|
||||
|
||||
$$Brix_{Bev} = \frac{Brix_{syr} + Brix_{H₂O} \cdot R_M}{R_M + 1}$$
|
||||
|
||||
$$R_{M} = \frac{Brix_{syr} - Brix_{Bev}}{Brix_{Bev} - Brix_{H₂O}}$$
|
||||
|
||||
$$R_{V} = R_{M} \cdot \frac{\rho_{syr}}{\rho_{H₂O}}$$
|
||||
|
||||
## Tabella Dati
|
||||
|
||||
|ρ₍ₛᵧᵣ₎ Kg/l|Brix Target sciroppo Ricetta|Brix Target Bibita Ricetta|Brix Min|Brix Max|R₍ₘ₎ Min|R₍ₘ₎ Nominale|R₍ₘ₎ Max|R₍ᵥ₎ Nominale|Brix H2O|RV Nominale|
|
||||
|---|---|---|---|---|---|---|---|---|---|---|
|
||||
|0,998202|1,021712778|5,7|5,63|5,91|4,118182|4,1818182|4,372727|4,2803127|0|4,25|
|
||||
|0,998202|1,058021481|14,6|13,97|14,52|4,373077|4,6153846|4,584615|4,8919714|0|5|
|
||||
|0,998202|1,033623889|8,7|8,36|9,07|3,917647|4,1176471|4,335294|4,2637642|0|4,25|
|
||||
|0,998202|1,030015556|7,8|7,46|7,93|3,973333|4,2|4,286667|4,3338572|0|4,25|
|
||||
|0,998202|1,011926831|3,17|2,81|2,91|4,301887|4,9811321|4,490566|5,044627|0|4,25|
|
||||
|0,998202|1,00503375|1,35|1,35|1,36|4,700855|4,7008547|4,74359|4,7339272|0,016|4,25|
|
||||
|
||||
|
||||
Si vede che per alcune bibite il rapporto volumetrico calcolato non coincide con quello nominale consistente alla bibita.
|
||||
# Aggiornamento a seguito dell’incontro in Maselli del 21-06-24:
|
||||
|
||||
## Misure su sciroppi cliente diluzione nominale con acqua distillata
|
||||
|
||||
| | aranciata zero | chinò zero |
|
||||
| ------------ | -------------- | ---------- |
|
||||
| Bx₍ₛᵧᵣ₎ mis | 12,81 | 2,87 |
|
||||
| Bx₍ᵦₑᵥ₎ mis | 2,26 | 0,48 |
|
||||
| Bx₍ₕ₂ₒ₎ mis | 0 | 0 |
|
||||
| Rm₍ₙₒₘ₎ | 4,615 | 4,98 |
|
||||
| Bx₍ᵦₑᵥ₎ calc | 2,28 | 0,480 |
|
||||
|
||||
### Aggiornamento dopo visita 20-21/01/2025:
|
||||
***
|
||||
Innesti per i componenti forniti da Maselli:
|
||||
1. Conduttivimetro ingresso acqua
|
||||
2. Refrattometro UR62 ingresso linea sciroppo
|
||||
3. Refrattometro UR29 stream sciroppo
|
||||
|
||||
1. Conduttivimetro ingresso acqua
|
||||
![[Pasted image 20250518200932.png]]
|
||||
|
||||
2. Refrattometro UR62 ingresso linea sciroppo
|
||||
![[Pasted image 20250518200954.png]]
|
||||
3. Refrattometro UR29 stream sciroppo
|
||||
![[Pasted image 20250518201008.png]]
|
||||
|
||||
### Step0 Intervento Orsi W. Con produzione diet 05-02-25
|
||||
#### Maselli Device Latency Measure 14-03-25
|
||||
***
|
||||
|
||||
Aggiornamento architettura dispositivi Maselli per ridurre il tempo di acquisizione delle misure dai sensori:
|
||||
Test effettuato da Maselli in Maselli:
|
||||
Test Bench:
|
||||
![[Pasted image 20250518201034.png]]
|
||||
#### Nuova architettura sistema
|
||||
Aggiornamento architettura dispositivi Maselli:
|
||||
![[Pasted image 20250518201047.png]]
|
||||
|
||||
```plantuml
|
||||
@startuml "Process Monitoring System"
|
||||
|
||||
' Title and styling
|
||||
title Process Monitoring System with Signal Conversion
|
||||
skinparam componentStyle rectangle
|
||||
skinparam backgroundColor white
|
||||
skinparam defaultTextAlignment center
|
||||
|
||||
' Define main packages
|
||||
package "Syrup Line" {
|
||||
rectangle "Syrup Pipe" as syrup #ADD8E6
|
||||
|
||||
component "Maselli UR29\nRefractometer" as ur29 #FFDD88
|
||||
component "ADAM Module\n(RS485 to 4-20mA)" as adam1 #ADD8E6
|
||||
note bottom of adam1: Converts RS485 to 4-20mA
|
||||
|
||||
component "Maselli UR62\nRefractometer" as ur62 #FFDD88
|
||||
component "ADAM Module\n(RS485 to 4-20mA)" as adam2 #ADD8E6
|
||||
note bottom of adam2: Converts RS485 to 4-20mA
|
||||
}
|
||||
|
||||
package "Water Line" {
|
||||
rectangle "Water Pipe" as water #ADD8E6
|
||||
|
||||
component "Conductivity 401U3\nProbe" as probe #FFDD88
|
||||
component "2405 Knick\nTransmitter" as knick #B6D7A8
|
||||
note bottom of knick: Converts conductivity signals to 4-20mA
|
||||
}
|
||||
|
||||
component "PLC\nControl System" as plc #D5A6BD
|
||||
|
||||
' Connections
|
||||
syrup --> ur29 : "Process\nMeasurement"
|
||||
syrup --> ur62 : "Process\nMeasurement"
|
||||
water --> probe : "Process\nMeasurement"
|
||||
|
||||
ur29 --> adam1 : "RS485"
|
||||
ur62 --> adam2 : "RS485"
|
||||
probe --> knick : "Conductivity\nSignal"
|
||||
|
||||
adam1 --> plc : "4-20mA"
|
||||
adam2 --> plc : "4-20mA"
|
||||
knick --> plc : "4-20mA"
|
||||
|
||||
@enduml
|
||||
```
|
||||
## Implementazione SW
|
||||
***
|
||||
## HMI:
|
||||
Gestione ricetta unica sia per bibite regular (zuccherine) che diet, rendere visibili i parametri brix sciroppo, bibita, compensazioni caratteristiche, ad oggi, per le solo bibite regular.
|
||||
![[Pasted image 20250518201101.png]]
|
||||
|
||||
Parametri da aggiungere:
|
||||
* Valore di conducibilità dell’acqua, nominale, valore conducibilità acqua minima e massima, da aggiungere in una carpetta adiacente a quella “Analizzatore”
|
||||
* Aggiungere SP conducibilità acqua
|
||||
* Aggiungere allarme di conducibilità fuori range, in prima battuta +/- 50µS/cm
|
||||
* Percentuale del brix sciroppo da considerare come soglia per distinguere l’interfaccia acqua/sciroppo e sciroppo/acqua: per partire 50% del valore nominale di brix sciroppo.
|
||||
|
||||
|
||||
$$SyrBrix_{Threshold} = SyrBrix_{Recipe} * 0.5$$
|
||||
|
||||
Consideriamo anche il contatore litri sciroppo caricati:
|
||||
|
||||
$$\text{IF } (UR62_{Brix}) \geq SyrBrix_{Threshold} \text{ THEN } (SyrupLoaded = TRUE) \text{ ELSE } (SyrupLoaded = FALSE)$$
|
||||
|
||||
Inseriamo comunque un TON di 0,5s come piccolo filtro, inserire il blocchetto di “statical analisys” con 6 campioni, di solito è sempre utile, ho visto che nel sw le procedure sono richiamate dal “BlenderCtrl_Main” che è a sua volta richiamato da OB1 che non è richiamato a tempo costante. In Twincat le procedure sono richiamate sempre nel “BlenderCtrl_Main” che è però richiamato nella TASK 2 a 240mSec, comunque a tempo costante.
|
||||
|
||||
![[Pasted image 20250518201114.png]]
|
||||
Nel sw S7 è caricata solo la OB35, secondo me la OB34 potrebbe andare bene. Vediamo
|
||||
Da creare una nuova procedura di caricamento sciroppo in linea sciroppo, ad esempio FC1813 che non esiste, da chiamare “Syrup Line Prep_Seq”
|
||||
Syrup Line Prep_Seq:
|
||||
· Step 0: Attesa del segnale di Sciroppo Pronto dalla sala sciroppi e pulsante Syrup Prep premuto (da
|
||||
rimuovere dalla Syrup prep MFM) Ingresso analogico UR62 OK, se not OK considerare l’attuale conteggio litri preset da array tank sala sciroppi
|
||||
· Step 1: marcia pompa sala sciroppi e sollevamento sede superiore AVS347/348 (Kv1,5) per drenare lo sciroppo, conteggio litri sciroppo e monitoraggio lettura UR62 confrontandolo con la soglia Brix
|
||||
· Step 2: …..
|
||||
· Step 3: ….
|
||||
· Step 4:
|
||||
· Step 5:
|
||||
· Step 6:
|
||||
· Step 7:
|
||||
|
||||
![[Pasted image 20250518201137.png]]
|
||||
![[Pasted image 20250518201143.png]]
|
||||
|
||||
|
||||
|
||||
|
||||
| | Names | Date | Signatures |
|
||||
| -------------------------- | --------------- | -------- | ----------------------------------- |
|
||||
| Writer | Riccardo Guerra | 14-03-14 | |
|
||||
| Rev 1 | Riccardo Guerra | 19-05-24 | |
|
||||
| | Riccardo Guerra | 21-06-24 | Meeting in Maselli Misure |
|
||||
| | Riccardo Guerra | 05-12-24 | Predisposizione fitting dal cliente |
|
||||
| | Riccardo Guerra | 20-01-25 | Step0 |
|
||||
| Checker<br><br>Approver(s) | Riccardo Guerra | 02-04-25 | STEP1 & 2 |
|
|
@ -0,0 +1,26 @@
|
|||
|
||||
FB1701
|
||||
FB1702
|
||||
FB1704
|
||||
FB1708
|
||||
FB1720
|
||||
FB1755
|
||||
FB1788
|
||||
FB1792
|
||||
FC1790
|
||||
FC1798
|
||||
FC1840
|
||||
FC1842
|
||||
FC1887
|
||||
FC1906
|
||||
FC1908
|
||||
FC1912
|
||||
FC1924
|
||||
FC1935
|
||||
FC1936
|
||||
FC1939
|
||||
FC1941
|
||||
FC1988
|
||||
FC1989
|
||||
FC2002
|
||||
FC2038
|
After Width: | Height: | Size: 44 KiB |
After Width: | Height: | Size: 8.2 KiB |
After Width: | Height: | Size: 52 KiB |
After Width: | Height: | Size: 1012 KiB |
After Width: | Height: | Size: 210 KiB |
After Width: | Height: | Size: 274 KiB |
After Width: | Height: | Size: 44 KiB |
After Width: | Height: | Size: 1.3 MiB |
After Width: | Height: | Size: 1.4 MiB |
After Width: | Height: | Size: 1.3 MiB |
After Width: | Height: | Size: 121 KiB |
After Width: | Height: | Size: 264 KiB |
After Width: | Height: | Size: 43 KiB |
After Width: | Height: | Size: 177 KiB |
After Width: | Height: | Size: 94 KiB |
After Width: | Height: | Size: 1.1 MiB |
After Width: | Height: | Size: 44 KiB |
After Width: | Height: | Size: 1.4 MiB |
After Width: | Height: | Size: 52 KiB |
After Width: | Height: | Size: 1.3 MiB |
After Width: | Height: | Size: 102 KiB |
After Width: | Height: | Size: 33 KiB |
After Width: | Height: | Size: 38 KiB |
After Width: | Height: | Size: 16 KiB |
After Width: | Height: | Size: 642 KiB |
After Width: | Height: | Size: 684 KiB |
After Width: | Height: | Size: 1.7 MiB |
After Width: | Height: | Size: 172 KiB |
After Width: | Height: | Size: 216 KiB |
After Width: | Height: | Size: 1.8 MiB |
After Width: | Height: | Size: 142 KiB |
After Width: | Height: | Size: 29 KiB |
After Width: | Height: | Size: 1.6 MiB |
After Width: | Height: | Size: 7.0 KiB |
After Width: | Height: | Size: 3.1 KiB |
After Width: | Height: | Size: 3.2 KiB |
After Width: | Height: | Size: 3.5 KiB |
After Width: | Height: | Size: 67 KiB |
After Width: | Height: | Size: 64 KiB |