vault backup: 2025-05-18 12:04:58

This commit is contained in:
Miguel 2025-05-18 12:04:58 +02:00
parent 8b67a46b66
commit 6b51c9d523
56 changed files with 4377 additions and 794 deletions

View File

@ -1,6 +1,9 @@
{ {
"version": "2.0", "version": "2.0",
"layout": [ "layout": [
null,
null,
null,
null, null,
null, null,
null, null,

View File

@ -1,24 +1,188 @@
{ {
"recentFiles": [ "recentFiles": [
{ {
"basename": "9.402x - Notes for technician on site - CARTON REJECT SYSTEM", "basename": "Utilities - Windows Helpers - Utilidades",
"path": "03-VM/33 - 9.402x - Shibuya/Notes for techinician on site/9.402x - Notes for technician on site - CARTON REJECT SYSTEM.md" "path": "01-Documentation/Windows/Utilities - Windows Helpers - Utilidades.md"
}, },
{ {
"basename": "9.402x - Shibuya - Logics & Control", "basename": "Notes for Windows - Chris Titus Tool - Online - Offline",
"path": "03-VM/33 - 9.402x - Shibuya/Notes for techinician on site/9.402x - Shibuya - Logics & Control.md" "path": "01-Documentation/Windows/Notes for Windows - Chris Titus Tool - Online - Offline.md"
}, },
{ {
"basename": "9.402x - After FAT considerations from customer", "basename": "E5.007600 - SAE469 - FDM",
"path": "03-VM/33 - 9.402x - Shibuya/9.402x - After FAT considerations from customer.md" "path": "04-SIDEL/07 - E5.007600 - SAE469/E5.007600 - SAE469 - FDM.md"
}, },
{ {
"basename": "ADAM 4021 - 485 to 4..20ma - Commissioning & Firmware update", "basename": "Calculo de Offsets de DBs",
"path": "01-Documentation/Dispositivos - Manuales/ADAM/ADAM 4021 - 485 to 4..20ma - Commissioning & Firmware update.md" "path": "01-Documentation/Siemens/Scripts/Calculo de Offsets de DBs.md"
}, },
{ {
"basename": "GIT commands HELP", "basename": "x1 Copiar valores actuales y iniciales de una DB a otra manteniendo la estructura",
"path": "01-Documentation/GIT/GIT commands HELP.md" "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": "Untitled",
"path": "01-Documentation/Siemens/Scripts/Untitled.md"
},
{
"basename": "AI Prompts useful",
"path": "01-Documentation/AI - IA - LLM - Artificial Intelligence/AI Prompts useful.md"
},
{
"basename": "Untitled",
"path": "01-Documentation/Siemens/Simulator Advanced Siemens/Untitled.md"
},
{
"basename": "IM Siemens - Profibus - Comissioning",
"path": "01-Documentation/Siemens/IM Siemens - Profibus - Comissioning.md"
},
{
"basename": "Notes",
"path": "01-Documentation/Siemens/Siemens T Simulator/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": "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": "SIDEL - Upgrades - Promemoria",
"path": "04-SIDEL/SIDEL - Upgrades - Promemoria.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": "Projects",
"path": "04-SIDEL/Projects.md"
},
{
"basename": "SAE463",
"path": "04-SIDEL/09 - SAE452 - Diet as Regular - San Giovanni in Bosco/DB1001 Problem/SAE463.md"
},
{
"basename": "SAE452",
"path": "04-SIDEL/09 - SAE452 - Diet as Regular - San Giovanni in Bosco/DB1001 Problem/SAE452.md"
},
{
"basename": "SIDEL - Mixer - Equivalences",
"path": "04-SIDEL/00 - MASTER/MIXER/IO/SIDEL - Mixer - Equivalences.md"
},
{
"basename": "Bandwith control - Queues",
"path": "01-Documentation/Routers/Mikrotik - Network Redes/Bandwith control - Queues.md"
},
{
"basename": "Backups - Mikrotik",
"path": "01-Documentation/Routers/Mikrotik - Network Redes/Backups - Mikrotik.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": "5.007382-EXMU01UF - RVU008 - EQPT24731 - Notes",
"path": "04-SIDEL/03 - 5.007382-EXMU01UF - RVU008 - EQPT24731/5.007382-EXMU01UF - RVU008 - EQPT24731 - Notes.md"
},
{
"basename": "SAE196 - IO Adapted",
"path": "04-SIDEL/06 - E5.007363 - Modifica O&U - SAE196 (cip integrato)/SAE196 - IO Adapted.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": "Visit to Maselli 06-05-2025",
"path": "04-SIDEL/09 - SAE452 - Diet as Regular - San Giovanni in Bosco/Documentation/Visit to Maselli 06-05-2025.md"
},
{
"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"
},
{
"basename": "Masselli (UR62 & UR29)",
"path": "04-SIDEL/09 - SAE452 - Diet as Regular - San Giovanni in Bosco/Masselli (UR62 & UR29).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": "Default IO for Analog",
"path": "04-SIDEL/00 - MASTER/MIXER/IO/Default IO for Analog.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 - 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", "basename": "SysInternals Tools",
@ -29,176 +193,12 @@
"path": "01-Documentation/GIT/Git - Start New Repository with Visual Studio Code - VS Code.md" "path": "01-Documentation/GIT/Git - Start New Repository with Visual Studio Code - VS Code.md"
}, },
{ {
"basename": "Emails", "basename": "GIT commands HELP",
"path": "04-SIDEL/10 - E5.007095 - Modifica O&U - SAE463/Emails.md" "path": "01-Documentation/GIT/GIT commands HELP.md"
}, },
{ {
"basename": "Differences", "basename": "9.402x - Notes for technician on site - CARTON REJECT SYSTEM",
"path": "04-SIDEL/10 - E5.007095 - Modifica O&U - SAE463/Differences.md" "path": "03-VM/33 - 9.402x - Shibuya/Notes for techinician on site/9.402x - Notes for technician on site - CARTON REJECT SYSTEM.md"
},
{
"basename": "Misuratori Endress&Hauser",
"path": "04-SIDEL/CheckList/Misuratori Endress&Hauser.md"
},
{
"basename": "8F3B25-AAILABBFAASAFMWAA1+NB - Adapter RJ45 M12 (service interface)",
"path": "01-Documentation/Endress+Houser/8F3B25-AAILABBFAASAFMWAA1+NB - Adapter RJ45 M12 (service interface).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": "Maselli - Protocol - Gateway - 485 - Ethernet",
"path": "01-Documentation/Dispositivos - Manuales/Maselli/Maselli - Protocol - Gateway - 485 - Ethernet.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": "Notes - Git - Gitea",
"path": "01-Documentation/GIT/Notes - Git - Gitea.md"
},
{
"basename": "PC HMI Zenon",
"path": "04-SIDEL/CheckList/PC HMI Zenon.md"
},
{
"basename": "MSI decompiler",
"path": "01-Documentation/Decompiler/MSI decompiler.md"
},
{
"basename": "cSharp Decompiler",
"path": "01-Documentation/Decompiler/cSharp Decompiler.md"
},
{
"basename": "Singleton",
"path": "01-Documentation/Visual Studio Cn/Singleton.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": "MCP",
"path": "01-Documentation/AI - IA - LLM - Artificial Intelligence/MCP.md"
},
{
"basename": "AI Prompts useful",
"path": "01-Documentation/AI - IA - LLM - Artificial Intelligence/AI Prompts useful.md"
},
{
"basename": "Routes",
"path": "DB/RouteHelper/Routes.md"
},
{
"basename": "SIDEL - Mixer - Equivalences",
"path": "04-SIDEL/00 - MASTER/MIXER/SIDEL - Mixer - Equivalences.md"
},
{
"basename": "Backups - Mikrotik",
"path": "01-Documentation/Routers/Mikrotik - Network Redes/Backups - Mikrotik.md"
},
{
"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"
},
{
"basename": "ADAM -",
"path": "04-SIDEL/09 - SAE452 - Diet as Regular - San Giovanni in Bosco/ADAM -.md"
},
{
"basename": "SIDEL - Upgrades - Promemoria",
"path": "04-SIDEL/SIDEL - Upgrades - Promemoria.md"
},
{
"basename": "Riunione Endress&Hauser",
"path": "01-Documentation/Endress+Houser/Riunione Endress&Hauser.md"
},
{
"basename": "E5.007600 - SAE469 - FDM",
"path": "04-SIDEL/07 - E5.007600 - SAE469/E5.007600 - SAE469 - FDM.md"
},
{
"basename": "Endress+Hauser WEB Access",
"path": "01-Documentation/Endress+Houser/Endress+Hauser WEB Access.md"
},
{
"basename": "Profibus_Variables",
"path": "04-SIDEL/06 - E5.007363 - Modifica O&U - SAE196 (cip integrato)/Source/source/Profibus_Variables.md"
},
{
"basename": "MFMAnalogValues",
"path": "04-SIDEL/06 - E5.007363 - Modifica O&U - SAE196 (cip integrato)/Source/source/MFMAnalogValues.md"
},
{
"basename": "xref_calls_tree",
"path": "04-SIDEL/06 - E5.007363 - Modifica O&U - SAE196 (cip integrato)/Source/xref_calls_tree.md"
},
{
"basename": "SAE196 - IO Adapted",
"path": "04-SIDEL/06 - E5.007363 - Modifica O&U - SAE196 (cip integrato)/SAE196 - IO Adapted.md"
},
{
"basename": "SAE196 - IO",
"path": "04-SIDEL/06 - E5.007363 - Modifica O&U - SAE196 (cip integrato)/SAE196 - IO.md"
},
{
"basename": "Maselli - Utility",
"path": "01-Documentation/Dispositivos - Manuales/Maselli/Maselli - Utility/Maselli - Utility.md"
},
{
"basename": "UI.Library - Sensor Management Library Documentation",
"path": "01-Documentation/Dispositivos - Manuales/Maselli/Maselli - Utility/UI.Library - Sensor Management Library Documentation.md"
},
{
"basename": "SIMATIC ET 200S 2AI I 4WIRE ST",
"path": "01-Documentation/Siemens/Peripherics - Schede - IM/SIMATIC ET 200S 2AI I 4WIRE ST.md"
},
{
"basename": "DB5100 - Supervisor SIPA - Script en VBA for Import and Export DB from Tia Portal",
"path": "01-Documentation/VB.NET Scripts VBA/DB5100 - Supervisor SIPA - Script en VBA for Import and Export DB from Tia Portal.md"
},
{
"basename": "FC551 FC FC Compute Machine Speed",
"path": "03-VM/9..... MASTER Transport/Standard Transport/FC551 FC FC Compute Machine Speed.md"
},
{
"basename": "Software General Description",
"path": "01-Documentation/Dispositivos - Manuales/Maselli/Maselli - Utility/Software General Description.md"
},
{
"basename": "Maselli Proprietary Serial-Socket Protocol",
"path": "01-Documentation/Dispositivos - Manuales/Maselli/Maselli - Utility/Maselli Proprietary Serial-Socket Protocol.md"
},
{
"basename": "Instrument Protocol Switching Mechanism",
"path": "01-Documentation/Dispositivos - Manuales/Maselli/Maselli - Utility/Instrument Protocol Switching Mechanism.md"
},
{
"basename": "Instrument Communication Service",
"path": "01-Documentation/Dispositivos - Manuales/Maselli/Maselli - Utility/Instrument Communication Service.md"
},
{
"basename": "Basic FAQ Software",
"path": "01-Documentation/Dispositivos - Manuales/Maselli/Maselli - Utility/Basic FAQ Software.md"
},
{
"basename": "Maselli - ADAM - Protocol",
"path": "01-Documentation/Dispositivos - Manuales/Maselli/Maselli - ADAM - Protocol.md"
},
{
"basename": "Masselli (UR62 & UR29)",
"path": "04-SIDEL/09 - SAE452 - Diet as Regular - San Giovanni in Bosco/Masselli (UR62 & UR29).md"
},
{
"basename": "Diet As Regular - Emails",
"path": "04-SIDEL/09 - SAE452 - Diet as Regular - San Giovanni in Bosco/Emails/Diet As Regular - Emails.md"
},
{
"basename": "CIPLocal",
"path": "04-SIDEL/00 - MASTER/Source/source/CIPLocal.md"
} }
], ],
"omittedPaths": [], "omittedPaths": [],

View File

@ -4,86 +4,131 @@
"type": "split", "type": "split",
"children": [ "children": [
{ {
"id": "129706cddff31cc9", "id": "3b4a7d5d0b5c2e8e",
"type": "tabs", "type": "tabs",
"children": [ "children": [
{ {
"id": "897643dd9b93c638", "id": "b0de106fff7d02eb",
"type": "leaf", "type": "leaf",
"state": { "state": {
"type": "markdown", "type": "markdown",
"state": { "state": {
"file": "04-SIDEL/06 - E5.007363 - Modifica O&U - SAE196 (cip integrato)/Source/source/Profibus_Variables.md", "file": "04-SIDEL/06 - E5.007363 - Modifica O&U - SAE196 (cip integrato)/Untitled.md",
"mode": "source", "mode": "source",
"source": false, "source": false,
"backlinks": false "backlinks": false
}, },
"icon": "lucide-file", "icon": "lucide-file",
"title": "Profibus_Variables" "title": "Untitled"
} }
}, },
{ {
"id": "a54b4dc763211462", "id": "8797e7c787c270f6",
"type": "leaf", "type": "leaf",
"state": { "state": {
"type": "markdown", "type": "markdown",
"state": { "state": {
"file": "01-Documentation/Windows/SysInternals Tools.md", "file": "04-SIDEL/00 - MASTER/MIXER/SIDEL - Mixer - Equivalences.md",
"mode": "source", "mode": "source",
"source": false, "source": false,
"backlinks": false "backlinks": false
}, },
"icon": "lucide-file", "icon": "lucide-file",
"title": "SysInternals Tools" "title": "SIDEL - Mixer - Equivalences"
} }
}, },
{ {
"id": "7ca06d73d28f59fc", "id": "547be2f4b95bfe48",
"type": "leaf", "type": "leaf",
"state": { "state": {
"type": "markdown", "type": "markdown",
"state": { "state": {
"file": "01-Documentation/GIT/Git - Start New Repository with Visual Studio Code - VS Code.md", "file": "04-SIDEL/00 - MASTER/MIXER/SIDEL - Mixer - Master - IO Tags.md",
"mode": "source", "mode": "source",
"source": false, "source": false,
"backlinks": false "backlinks": false
}, },
"icon": "lucide-file", "icon": "lucide-file",
"title": "Git - Start New Repository with Visual Studio Code - VS Code" "title": "SIDEL - Mixer - Master - IO Tags"
} }
}, },
{ {
"id": "70fc8b0e35ca06c6", "id": "0d16ec442a845801",
"type": "leaf", "type": "leaf",
"state": { "state": {
"type": "markdown", "type": "markdown",
"state": { "state": {
"file": "01-Documentation/GIT/GIT commands HELP.md", "file": "01-Documentation/AI - IA - LLM - Artificial Intelligence/Prompts/Scripts/Update S7 DB without names/x2 Comparación Excel.md",
"mode": "source", "mode": "source",
"source": false, "source": false,
"backlinks": false "backlinks": false
}, },
"icon": "lucide-file", "icon": "lucide-file",
"title": "GIT commands HELP" "title": "x2 Comparación Excel"
} }
}, },
{ {
"id": "f3acf87b79b7f9ad", "id": "5b05a5caf75bafcb",
"type": "leaf", "type": "leaf",
"state": { "state": {
"type": "markdown", "type": "markdown",
"state": { "state": {
"file": "03-VM/33 - 9.402x - Shibuya/Notes for techinician on site/9.402x - Notes for technician on site - CARTON REJECT SYSTEM.md", "file": "01-Documentation/Siemens/Simulator Advanced Siemens/Untitled.md",
"mode": "source", "mode": "source",
"source": false, "source": false,
"backlinks": false "backlinks": false
}, },
"icon": "lucide-file", "icon": "lucide-file",
"title": "9.402x - Notes for technician on site - CARTON REJECT SYSTEM" "title": "Untitled"
}
},
{
"id": "4bf66f30d4592b8a",
"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",
"mode": "source",
"source": false,
"backlinks": false
},
"icon": "lucide-file",
"title": "x1 Copiar valores actuales y iniciales de una DB a otra manteniendo la estructura"
}
},
{
"id": "9039b6cbe10151a2",
"type": "leaf",
"state": {
"type": "markdown",
"state": {
"file": "04-SIDEL/07 - E5.007600 - SAE469/E5.007600 - SAE469 - FDM.md",
"mode": "source",
"source": false,
"backlinks": false
},
"icon": "lucide-file",
"title": "E5.007600 - SAE469 - FDM"
}
},
{
"id": "d2013245d4885df4",
"type": "leaf",
"state": {
"type": "markdown",
"state": {
"file": "01-Documentation/Windows/Utilities - Windows Helpers - Utilidades.md",
"mode": "source",
"source": false,
"backlinks": false
},
"icon": "lucide-file",
"title": "Utilities - Windows Helpers - Utilidades"
} }
} }
], ],
"currentTab": 4 "currentTab": 7
} }
], ],
"direction": "vertical" "direction": "vertical"
@ -103,7 +148,7 @@
"type": "file-explorer", "type": "file-explorer",
"state": { "state": {
"sortOrder": "alphabetical", "sortOrder": "alphabetical",
"autoReveal": true "autoReveal": false
}, },
"icon": "lucide-folder-closed", "icon": "lucide-folder-closed",
"title": "Files" "title": "Files"
@ -277,54 +322,54 @@
"obsidian-importer:Open Importer": false "obsidian-importer:Open Importer": false
} }
}, },
"active": "f3acf87b79b7f9ad", "active": "d2013245d4885df4",
"lastOpenFiles": [ "lastOpenFiles": [
"03-VM/33 - 9.402x - Shibuya/Notes for techinician on site/9.402x - Shibuya - Logics & Control.md", "01-Documentation/Windows/adjuntos/Pasted image 20250517141817.png",
"03-VM/33 - 9.402x - Shibuya/9.402x - After FAT considerations from customer.md", "01-Documentation/Windows/Notes for Windows - Chris Titus Tool - Online - Offline.md",
"03-VM/33 - 9.402x - Shibuya/Notes for techinician on site/9.402x - Notes for technician on site - CARTON REJECT SYSTEM.md", "01-Documentation/Windows/Utilities - Windows Helpers - Utilidades.md",
"01-Documentation/Dispositivos - Manuales/ADAM/ADAM 4021 - 485 to 4..20ma - Commissioning & Firmware update.md", "04-SIDEL/07 - E5.007600 - SAE469/E5.007600 - SAE469 - FDM.md",
"01-Documentation/GIT/GIT commands HELP.md", "01-Documentation/Siemens/Scripts/Calculo de Offsets de DBs.md",
"01-Documentation/Windows/SysInternals Tools.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/GIT/Git - Start New Repository with Visual Studio Code - VS Code.md", "01-Documentation/Siemens/Scripts/Untitled.md",
"04-SIDEL/10 - E5.007095 - Modifica O&U - SAE463/Emails.md",
"04-SIDEL/10 - E5.007095 - Modifica O&U - SAE463/Differences.md",
"04-SIDEL/CheckList/Misuratori Endress&Hauser.md",
"01-Documentation/Endress+Houser/8F3B25-AAILABBFAASAFMWAA1+NB - Adapter RJ45 M12 (service interface).md",
"04-SIDEL/10 - E5.007095 - Modifica O&U - SAE463/adjuntos/Pasted image 20250509125112.png",
"04-SIDEL/10 - E5.007095 - Modifica O&U - SAE463/adjuntos/Pasted image 20250509125000.png",
"04-SIDEL/10 - E5.007095 - Modifica O&U - SAE463/adjuntos",
"04-SIDEL/09 - SAE452 - Diet as Regular - San Giovanni in Bosco/Maselli Sensor to Siemens PLC Communication Implementation.md",
"04-SIDEL/10 - E5.007095 - Modifica O&U - SAE463",
"01-Documentation/Endress+Houser/adjuntos/Pasted image 20250508205345.png",
"01-Documentation/Endress+Houser/adjuntos/Pasted image 20250508205329.png",
"markitdown-output/My Endress+Hauser _ Endress+Hauser.md",
"markitdown-output/1746730275557_My Endress+Hauser _ Endress+Hauser.html",
"markitdown-output",
"01-Documentation/Dispositivos - Manuales/Maselli/Maselli - Protocol - Gateway - 485 - Ethernet.md",
"01-Documentation/Dispositivos - Manuales/CableMAX - Converter 485 - Serial Adaptor RS232 - CM-RSDB9-PRO.md",
"01-Documentation/GIT/Notes - Git - Gitea.md",
"04-SIDEL/CheckList/PC HMI Zenon.md",
"01-Documentation/Decompiler/MSI decompiler.md",
"01-Documentation/Decompiler/cSharp Decompiler.md",
"01-Documentation/Visual Studio Cn/Singleton.md",
"01-Documentation/Decompiler",
"04-SIDEL/06 - E5.007363 - Modifica O&U - SAE196 (cip integrato)/Source/SAE196_c0.2_CAx_Export_Hardware_Tree.md",
"01-Documentation/AI - IA - LLM - Artificial Intelligence/MCP.md",
"01-Documentation/AI - IA - LLM - Artificial Intelligence/AI Prompts useful.md", "01-Documentation/AI - IA - LLM - Artificial Intelligence/AI Prompts useful.md",
"DB/RouteHelper/Routes.md", "01-Documentation/Siemens/Simulator Advanced Siemens/Untitled.md",
"04-SIDEL/00 - MASTER/MIXER/SIDEL - Mixer - Equivalences.md", "01-Documentation/Siemens/IM Siemens - Profibus - Comissioning.md",
"adjuntos/Promag300_500DP_verificationreport_2025-04-14_1243.pdf", "01-Documentation/Siemens/Simulator Advanced Siemens",
"adjuntos/presente_indicativo_completo.pdf", "01-Documentation/Siemens/Siemens T Simulator/Notes.md",
"01-Documentation/Routers/Mikrotik - Network Redes/Backups - Mikrotik.md", "04-SIDEL/06 - E5.007363 - Modifica O&U - SAE196 (cip integrato)/IO/IO Adapted.md",
"04-SIDEL/CheckList/adjuntos/Pasted image 20250508101219.png", "04-SIDEL/00 - MASTER/MIXER/HMI/B&R Panel PC 3100/B&R Panel PC 3100 - Bios - Password.md",
"04-SIDEL/CheckList/adjuntos/Pasted image 20250508101103.png", "01-Documentation/AI - IA - LLM - Artificial Intelligence/Prompts/Scripts/Update S7 DB without names/x2 Comparación Excel.md",
"04-SIDEL/CheckList/adjuntos/Pasted image 20250508101040.png", "01-Documentation/AI - IA - LLM - Artificial Intelligence/Prompts/Scripts/Update S7 DB without names",
"04-SIDEL/CheckList/adjuntos", "01-Documentation/AI - IA - LLM - Artificial Intelligence/Prompts/Scripts",
"04-SIDEL/CheckList", "01-Documentation/AI - IA - LLM - Artificial Intelligence/Prompts",
"05-COMS/02 - PANELLO NESTLE/Reporte", "04-SIDEL/06 - E5.007363 - Modifica O&U - SAE196 (cip integrato)/IO/Hardware.md",
"01-Documentation/Siemens/Peripherics - Schede - IM/adjuntos/Pasted image 20250507112955.png", "04-SIDEL/06 - E5.007363 - Modifica O&U - SAE196 (cip integrato)/IO/IO Adapted_old.md",
"03-VM/9..... MASTER Transport/Standard Transport/adjuntos/Pasted image 20250507111418.png", "04-SIDEL/06 - E5.007363 - Modifica O&U - SAE196 (cip integrato)/Untitled.md",
"01-Documentation/Dispositivos - Manuales/Maselli/adjuntos/Pasted image 20250506165059.png", "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",
"03-Revised/93789 Sipa Italia - Tinny - HSCounters - Piattaforma/Divider/Untitled.canvas", "03-Revised/93789 Sipa Italia - Tinny - HSCounters - Piattaforma/Divider/Untitled.canvas",
"04-InLavoro/9..... MASTER Transport/Standard Transport/FB500 Logic.canvas", "04-InLavoro/9..... MASTER Transport/Standard Transport/FB500 Logic.canvas",
"04-InLavoro/HENKEL/93040 - HENKEL - BowlingGreen/TL22-L25/Synoptic Change/Q3.canvas", "04-InLavoro/HENKEL/93040 - HENKEL - BowlingGreen/TL22-L25/Synoptic Change/Q3.canvas",

View File

@ -4,6 +4,7 @@
* filesystem must be enables * filesystem must be enables
* ==Deep thinking needed== * ==Deep thinking needed==
### Pasando los archivos como links:
```pascal ```pascal
$Master: "C:\Users\migue\OneDrive\Miguel\Obsidean\Trabajo\VM\04-SIDEL\00 - MASTER\MIXER\SIDEL - Mixer - Master - IO Tags.md" $Master: "C:\Users\migue\OneDrive\Miguel\Obsidean\Trabajo\VM\04-SIDEL\00 - MASTER\MIXER\SIDEL - Mixer - Master - IO Tags.md"
@ -14,5 +15,280 @@ $Equivalences: "C:\Users\migue\OneDrive\Miguel\Obsidean\Trabajo\VM\04-SIDEL\00 -
Tengo dos tablas de IO, una $Master con los Tags y Descripciones del software y otra tabla $PLC con los IO y las descripciones de cada IO. Los IO son con nomenclatura siemens I0.0 significa ingreso digital byte 0, bit 0. PEW... significa ingreso analogico, mientras que PAW... significa salida analogica. Tengo dos tablas de IO, una $Master con los Tags y Descripciones del software y otra tabla $PLC con los IO y las descripciones de cada IO. Los IO son con nomenclatura siemens I0.0 significa ingreso digital byte 0, bit 0. PEW... significa ingreso analogico, mientras que PAW... significa salida analogica.
Quisiera que me ayudes a crear otra tabla $Adaptation en donde a las filas de la tabla $PLC se le complete la celda de Master Tag buscando el mejor candidato de la tabla $Master. En esta tabla quisiera agregar la descripcion revisada de cada uno de las tablas. Podrías agregar una columna con información del nivel de certeza. El archivo $Equivalences tiene información de ciertas equivalencias que pueden ser útiles para las búsquedas. Para acceder a los archivos para leer o escribir puedes usar el MCP filesystem. Quisiera que me ayudes a crear otra tabla $Adaptation en donde a las filas de la tabla $PLC se le complete la celda de Master Tag buscando el mejor candidato de la tabla $Master. En esta tabla quisiera agregar la descripcion revisada de cada uno de las tablas. Podrías agregar una columna con información del nivel de certeza. El archivo $Equivalences tiene información de ciertas equivalencias que pueden ser útiles para las búsquedas. Para acceder a los archivos para leer o escribir puedes usar el MCP filesystem.
``` ```
### Pasando los archivos como copia:
```pascal
$Equivalences = "SIDEL - Mixer - Equivalences.md"
$MASTER = "IO Tags consolidated.md"
$PLC = "SAE196 - IO.md"
Tengo dos tablas de Entradas/Salidas, una $MASTER con los Tags y Descripciones del software y otra tabla $PLC con los IO y las descripciones de cada IO de una maquina especifica. Los IO son con nomenclatura siemens I0.0 significa ingreso digital byte 0, bit 0. PEW... significa ingreso analogico, mientras que PAW... significa salida analogica.
Quisiera que me ayudes a crear otra tabla Adaptation en donde a las filas de la tabla $PLC se le complete la celda de Master Tag buscando el mejor candidato de la tabla $Master. En esta tabla quisiera agregar la descripcion revisada de cada uno de las tablas. Podrías agregar una columna con información del nivel de certeza. El archivo $Equivalences tiene información de ciertas equivalencias que pueden ser útiles para las búsquedas.
```
### Prompt para adaptación de IO:
***
```bash
# Definiciones de rutas
$Project = "06 - E5.007363 - Modifica O&U - SAE196 (cip integrato)"
$PLC_Base_Folder = "C:\Trabajo\SIDEL\" + $Project
$Obsidean_Base_Folder = "C:\Users\migue\OneDrive\Miguel\Obsidean\Trabajo\VM\04-SIDEL\" + $Project
# Archivos de entrada
$Master_table = $PLC_Base_Folder + "\Reporte\IOExport\IO Tags consolidated.md"
$Hardware_table = $Obsidean_Base_Folder + "\IO\Hardware - IO.md"
# Archivo de salida
$Adaptation_table = $Obsidean_Base_Folder + "\IO\IO Adapted.md"
# Datos semanticos de apoyo
$Equivalences_data = $Obsidean_Base_Folder + "\00 - MASTER\MIXER\IO\SIDEL - Mixer - Equivalences.md"
$DefaultIO_data = $Obsidean_Base_Folder + "\00 - MASTER\MIXER\IO\Default IO for Analog.md"
Estoy adaptando las entradas y salidas entre un hardware de PLC Siemens Tia Portal y un software master. Para lograr identificar que tags del software master se deben asignar a cada IO del hardware del PLC. Se debe asignar a cada IO del harware un Tag del software master.
Para que me ayudes con este proceso de busqueda he creado las tablas:
$Master_table: que contiene los tags del software master con las descripciones. Esta tabla se divide en 4 subtablas. La "Inputs PLCTags" son los inputs mas utilizados, luego estan los "InputsMaster PLCTags" que son inputs menos utilizados. Lo mismo sucede con "Outputs PLCTags" que son los mas utilizados y "OutputsMaster PLCTags" son los outputs menos utilizados.
$Hardware_table: que contiene todo el IO del hardware del PLC. Esta dibidido en diferentes dispositivos ya que algunos componentes se acceden mediante interfaces de comunicaciones como profibus. Pero desde el punto de vista del PLC son inputs o outputs definidos como PEW que significa: P:periferia, W:word , se sigue la nomenclatura alemana de siemens, A:output, E:input.
$Adaptation_table: es la tabla que deseo que crees con los IO adaptados. Seria la $Hardware_table con los tags de la $Master_table. Quisiera que se agrege una columna con el nivel de certeza y en caso que el nivel no sea el maximo quisiera que agregues 3 posibles opciones como tag1,tag2,tag3 en una columna nueva.
$Equivalences_data tiene información de ciertas equivalencias que pueden ser útiles para las búsquedas.
$DefaultIO_data tiene conexiones estandard en los casos mas comunes.
Para acceder a los archivos para leer o escribir puedes usar el MCP filesystem.
```
### Version mejorada de Prompt con MCP
***
```bash
Estoy adaptando las entradas y salidas entre un hardware de PLC Siemens Tia Portal y un software master. Para lograr identificar que tags del software master se deben asignar a cada IO del hardware del PLC. Se debe asignar a cada IO del harware un Tag del software master.
Para que me ayudes con este proceso de busqueda he creado las tablas:
$Master_table: que contiene los tags del software master con las descripciones. Esta tabla se divide en 4 subtablas. La "Inputs PLCTags" son los inputs mas utilizados, luego estan los "InputsMaster PLCTags" que son inputs menos utilizados. Lo mismo sucede con "Outputs PLCTags" que son los mas utilizados y "OutputsMaster PLCTags" son los outputs menos utilizados.
$Hardware_table: que contiene todo el IO del hardware del PLC. Esta dibidido en diferentes dispositivos ya que algunos componentes se acceden mediante interfaces de comunicaciones como profibus. Pero desde el punto de vista del PLC son inputs o outputs definidos como PEW que significa: P:periferia, W:word , se sigue la nomenclatura alemana de siemens, A:output, E:input.
$Adaptation_table: es la tabla que deseo que crees con los IO adaptados. Seria la $Hardware_table con los tags de la $Master_table. Quisiera que se agrege una columna con el nivel de certeza y en caso que el nivel no sea el maximo quisiera que agregues 3 posibles opciones como tag1,tag2,tag3 en una columna nueva.
$Equivalences_data tiene información de ciertas equivalencias que pueden ser útiles para las búsquedas.
$DefaultIO_data tiene conexiones estandard en los casos mas comunes.
Para acceder a los archivos para leer o escribir puedes usar el MCP filesystem.
# Definiciones de rutas
$Project = "06 - E5.007363 - Modifica O&U - SAE196 (cip integrato)"
$PLC_Base_Folder = "C:\Trabajo\SIDEL\" + $Project
$Obsidean_Base_Folder = "C:\Users\migue\OneDrive\Miguel\Obsidean\Trabajo\VM\04-SIDEL\" + $Project
# Archivos de entrada
$Master_table = $PLC_Base_Folder + "\Reporte\IOExport\IO Tags consolidated.md"
$Hardware_table = $Obsidean_Base_Folder + "\IO\Hardware.md"
# Archivo de salida
$Adaptation_table = $Obsidean_Base_Folder + "\IO\IO Adapted.md"
# Datos semánticos de apoyo
$Equivalences_data = $Obsidean_Base_Folder + "\00 - MASTER\MIXER\IO\SIDEL - Mixer - Equivalences.md"
$DefaultIO_data = $Obsidean_Base_Folder + "\00 - MASTER\MIXER\IO\Default IO for Analog.md"
# CONTEXTO DEL PROYECTO
Estoy realizando un upgrade de software para equipos SIDEL que migran de un sistema antiguo a uno nuevo. Estos equipos de mezclado de bebidas (mixers) tienen hardware de PLC Siemens que debe ser adaptado al software master moderno. La correcta asignación de entradas/salidas es fundamental para que el sistema funcione adecuadamente.
# OBJETIVO
Crear una tabla de adaptación que asigne correctamente cada entrada/salida (I/O) del hardware de PLC Siemens TIA Portal a los tags correspondientes del software master moderno. Este mapeo permitirá la comunicación efectiva entre el hardware existente y el nuevo software de control.
# TECNOLOGÍA Y NOMENCLATURA
- Sistema de control: Siemens PLC con TIA Portal
- Nomenclatura Siemens (alemana):
* E: Entrada (Input) - Ejemplo: I0.1, EW100
* A: Salida (Output) - Ejemplo: Q0.1, AW100
* P: Periferia
* W: Word (16 bits)
* D: Double Word (32 bits)
- PEW: Entrada de Periferia Word (Peripheral Input Word)
- PAW: Salida de Periferia Word (Peripheral Output Word)
# DESCRIPCIÓN DE LOS ARCHIVOS
## Hardware_table ($Hardware_table)
- FUNCIÓN: Contiene la configuración completa del hardware del PLC y el detalle de todas las señales de I/O físicas.
- ESTRUCTURA:
* Primera sección: Tabla de configuración del PLC con red, direcciones y dispositivos
* Segunda sección: Tabla de I/O con dirección (ej. I0.1, PEW100), descripción en italiano/inglés y sensor asociado
- INFORMACIÓN CLAVE: Direcciones de hardware, descripciones físicas y conexiones de sensores/actuadores
## Master_table ($Master_table)
- FUNCIÓN: Define los tags estandarizados en el software master moderno que deben mapearse a las I/O físicas.
- ESTRUCTURA: Dividido en 4 secciones:
* "Inputs PLCTags": Entradas más utilizadas
* "InputsMaster PLCTags": Entradas secundarias
* "Outputs PLCTags": Salidas más utilizadas
* "OutputsMaster PLCTags": Salidas secundarias
- INFORMACIÓN CLAVE: Tags estandarizados, tipos de datos y descripciones en inglés
## Equivalences_data ($Equivalences_data)
- FUNCIÓN: Proporciona equivalencias semánticas entre terminologías antiguas/nuevas y abreviaturas.
- ESTRUCTURA: Listado de equivalencias como "301 : WATER PUMP = P1"
- INFORMACIÓN CLAVE: Traducciones entre nomenclaturas, equivalencias entre códigos y nombres descriptivos
## DefaultIO_data ($DefaultIO_data)
- FUNCIÓN: Contiene configuraciones predeterminadas para señales analógicas específicas.
- ESTRUCTURA: Tabla con tags, tipos de datos y direcciones de memoria para señales analógicas estándar
- INFORMACIÓN CLAVE: Mapeos predefinidos para señales analógicas comunes, especialmente para comunicación Profibus
## Adaptation_table (a crear en $Adaptation_table)
- FUNCIÓN: Tabla final que mapea cada I/O del hardware a su correspondiente tag del master.
- ESTRUCTURA: Formato requerido:
| IO | Master Tag | PLC Description | Master Description | Certeza | Alternative |
- INFORMACIÓN CLAVE: Resultado del proceso de adaptación con nivel de confianza y alternativas
# PROCESO DE ADAPTACIÓN
Lee ambos archivos ($Hardware_table y $Master_table) y crea una tabla de adaptación que asigne a cada IO del hardware un Tag del software master.
El proceso de asignación debe:
1. Comparar semánticamente descripciones entre ambas tablas, teniendo en cuenta el idioma (italiano/inglés)
2. Verificar compatibilidad de tipo (input/output) y tamaño de datos
3. Utilizar las equivalencias en $Equivalences_data para mejorar la coincidencia semántica
4. Verificar configuraciones estándar en $DefaultIO_data para señales analógicas
5. Priorizar los tags de las tablas principales ("Inputs PLCTags"/"Outputs PLCTags") sobre las secundarias
# FORMATO DE SALIDA
Crea la tabla con esta estructura exacta:
| IO | Master Tag | PLC Description | Master Description | Certeza | Alternative |
# NIVELES DE CERTEZA
Asigna niveles de certeza según estos criterios:
- Alto (90%+): Coincidencia evidente en nombre y descripción
- Medio (70-90%): Similitud semántica notable pero no exacta
- Bajo (<70%): Similitud limitada, requiere revisión manual
Para entradas con nivel de certeza medio o bajo, añade hasta 3 tags alternativos en la columna "Alternative" separados por comas.
# 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.
```
### Version mejorada de Prompt con MCP v2
***
```yaml
Estoy adaptando las entradas y salidas entre un hardware de PLC Siemens Tia Portal y un software master. Para lograr identificar que tags del software master se deben asignar a cada IO del hardware del PLC. Se debe asignar a cada IO del harware un Tag del software master.
Para que me ayudes con este proceso de busqueda he creado las tablas:
$Master_table: que contiene los tags del software master con las descripciones. Esta tabla se divide en 4 subtablas. La "Inputs PLCTags" son los inputs mas utilizados, luego estan los "InputsMaster PLCTags" que son inputs menos utilizados. Lo mismo sucede con "Outputs PLCTags" que son los mas utilizados y "OutputsMaster PLCTags" son los outputs menos utilizados.
$Hardware_table: que contiene todo el IO del hardware del PLC. Esta dibidido en diferentes dispositivos ya que algunos componentes se acceden mediante interfaces de comunicaciones como profibus. Pero desde el punto de vista del PLC son inputs o outputs definidos como PEW que significa: P:periferia, W:word , se sigue la nomenclatura alemana de siemens, A:output, E:input.
$Adaptation_table: es la tabla que deseo que crees con los IO adaptados. Seria la $Hardware_table con los tags de la $Master_table. Quisiera que se agrege una columna con el nivel de certeza y en caso que el nivel no sea el maximo quisiera que agregues 3 posibles opciones como tag1,tag2,tag3 en una columna nueva.
$Equivalences_data tiene información de ciertas equivalencias que pueden ser útiles para las búsquedas.
$DefaultIO_data tiene conexiones estandard en los casos mas comunes.
Para acceder a los archivos para leer o escribir puedes usar el MCP filesystem.
# Definiciones de rutas
$Working_Directory = working_directory
$Obsidean_Base_Folder = "C:\Users\migue\OneDrive\Miguel\Obsidean\Trabajo\VM\04-SIDEL\"
# Archivos de entrada
$Master_table = $Working_Directory + "Master IO Tags.md"
$Hardware_table = $Working_Directory + "Hardware.md"
# Archivo de salida
$Adaptation_table = $Working_Directory + "IO Adapted.md"
# Datos semánticos de apoyo
$Equivalences_data = $Obsidean_Base_Folder + "\00 - MASTER\MIXER\IO\SIDEL - Mixer - Equivalences.md"
$DefaultIO_data = $Obsidean_Base_Folder + "\00 - MASTER\MIXER\IO\Default IO for Analog.md"
# CONTEXTO DEL PROYECTO
Estoy realizando un upgrade de software para equipos SIDEL que migran de un sistema antiguo a uno nuevo. Estos equipos de mezclado de bebidas (mixers) tienen hardware de PLC Siemens que debe ser adaptado al software master moderno. La correcta asignación de entradas/salidas es fundamental para que el sistema funcione adecuadamente.
# OBJETIVO
Crear una tabla de adaptación que asigne correctamente cada entrada/salida (I/O) del hardware de PLC Siemens TIA Portal a los tags correspondientes del software master moderno. Este mapeo permitirá la comunicación efectiva entre el hardware existente y el nuevo software de control.
# TECNOLOGÍA Y NOMENCLATURA
- Sistema de control: Siemens PLC con TIA Portal
- Nomenclatura Siemens (alemana):
* E: Entrada (Input) - Ejemplo: I0.1, EW100
* A: Salida (Output) - Ejemplo: Q0.1, AW100
* P: Periferia
* W: Word (16 bits)
* D: Double Word (32 bits)
- PEW: Entrada de Periferia Word (Peripheral Input Word)
- PAW: Salida de Periferia Word (Peripheral Output Word)
# DESCRIPCIÓN DE LOS ARCHIVOS
## Hardware_table ($Hardware_table)
- FUNCIÓN: Contiene la configuración completa del hardware del PLC y el detalle de todas las señales de I/O físicas.
- ESTRUCTURA:
* Primera sección: Tabla de configuración del PLC con red, direcciones y dispositivos
* Segunda sección: Tabla de I/O con dirección (ej. I0.1, PEW100), descripción en italiano/inglés y sensor asociado
- INFORMACIÓN CLAVE: Direcciones de hardware, descripciones físicas y conexiones de sensores/actuadores
## Master_table ($Master_table)
- FUNCIÓN: Define los tags estandarizados en el software master moderno que deben mapearse a las I/O físicas.
- ESTRUCTURA: Dividido en 4 secciones:
* "Inputs PLCTags": Entradas más utilizadas
* "InputsMaster PLCTags": Entradas secundarias
* "Outputs PLCTags": Salidas más utilizadas
* "OutputsMaster PLCTags": Salidas secundarias
- INFORMACIÓN CLAVE: Tags estandarizados, tipos de datos y descripciones en inglés
## Equivalences_data ($Equivalences_data)
- FUNCIÓN: Proporciona equivalencias semánticas entre terminologías antiguas/nuevas y abreviaturas.
- ESTRUCTURA: Listado de equivalencias como "301 : WATER PUMP = P1"
- INFORMACIÓN CLAVE: Traducciones entre nomenclaturas, equivalencias entre códigos y nombres descriptivos
## DefaultIO_data ($DefaultIO_data)
- FUNCIÓN: Contiene configuraciones predeterminadas para señales analógicas específicas.
- ESTRUCTURA: Tabla con tags, tipos de datos y direcciones de memoria para señales analógicas estándar
- INFORMACIÓN CLAVE: Mapeos predefinidos para señales analógicas comunes, especialmente para comunicación Profibus
## Adaptation_table (a crear en $Adaptation_table)
- FUNCIÓN: Tabla final que mapea cada I/O del hardware a su correspondiente tag del master.
- ESTRUCTURA: Formato requerido:
| IO | Master Tag | PLC Description | Master Description | Certeza | Alternative |
- INFORMACIÓN CLAVE: Resultado del proceso de adaptación con nivel de confianza y alternativas
# PROCESO DE ADAPTACIÓN
Lee ambos archivos ($Hardware_table y $Master_table) y crea una tabla de adaptación que asigne a cada IO del hardware un Tag del software master.
El proceso de asignación debe:
1. Comparar semánticamente descripciones entre ambas tablas, teniendo en cuenta el idioma (italiano/inglés)
2. Verificar compatibilidad de tipo (input/output) y tamaño de datos
3. Utilizar las equivalencias en $Equivalences_data para mejorar la coincidencia semántica
4. Verificar configuraciones estándar en $DefaultIO_data para señales analógicas
5. Priorizar los tags de las tablas principales ("Inputs PLCTags"/"Outputs PLCTags") sobre las secundarias
# FORMATO DE SALIDA
Crea la tabla con esta estructura exacta:
| IO | Master Tag | PLC Description | Master Description | Certeza | Alternative |
# NIVELES DE CERTEZA
Asigna niveles de certeza según estos criterios:
- Alto (90%+): Coincidencia evidente en nombre y descripción
- Medio (70-90%): Similitud semántica notable pero no exacta
- Bajo (<70%): Similitud limitada, requiere revisión manual
Para entradas con nivel de certeza medio o bajo, añade hasta 3 tags alternativos en la columna "Alternative" separados por comas.
# 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.
```

View File

@ -0,0 +1,133 @@
[S7_DB_Utils](file:///D:%5CProyectos%5CScripts%5CParamManagerScripts%5Cbackend%5Cscript_groups%5CS7_DB_Utils)
```bash
************************************
file _format.db
************************************
TYPE "udt1"
FAMILY : DataType
VERSION : 0.1
STRUCT
xxx : type := ddd;
xx1 : type := ddd;
END_STRUCT ;
END_TYPE
DATA_BLOCK "NAME"
TITLE =
{ S7_language := '28(1) Albanese 15.06.2005 17:07:04' }
FAMILY : Resource
VERSION : 0.0
STRUCT
name : STRUCT
name : STRUCT
yyy : type := value;
yy1 : type := value;
udt_name : "udt1";
yy3 : type := value;
END_STRUCT ;
yyy1 : type := value;
END_STRUCT ;
BEGIN
yyy : type := value;
yy1 : type := value;
xxx : type := ddd;
xx1 : type := ddd;
yy3 : type := value;
yyy1 : type := value;
END_DATA_BLOCK
************************************
file _data.db
************************************
DATA_BLOCK "NAME"
TITLE =
{ S7_language := '28(1) Albanese 15.06.2005 17:07:04' }
FAMILY : Resource
VERSION : 0.0
STRUCT
name : STRUCT
name : STRUCT
STAT_yyy : type := data_value_1;
STAT_yy1 : type := data_value_2;
STAT_xxx : type := data_ddd_3;
STAT_xx1 : type := data_ddd_4;
STAT_yy3 : type := data_value_5;
END_STRUCT ;
STAT_yyy1 : type := data_value_6;
END_STRUCT ;
BEGIN
STAT_yyy : type := data_value_7;
STAT_yy1 : type := data_value_8;
STAT_xxx : type := data_ddd_9;
STAT_xx1 : type := data_ddd_10;
STAT_yy3 : type := data_value_11;
STAT_yyy1 : type := data_value_12;
END_DATA_BLOCK
************************************
file _updated.db
************************************
TYPE "udt1"
FAMILY : DataType
VERSION : 0.1
STRUCT
xxx : type := data_ddd_3;
xx1 : type := data_ddd_4;
END_STRUCT ;
END_TYPE
DATA_BLOCK "NAME"
TITLE =
{ S7_language := '28(1) Albanese 15.06.2005 17:07:04' }
FAMILY : Resource
VERSION : 0.0
STRUCT
name : STRUCT
name : STRUCT
yyy : type := data_value_1;
yy1 : type := data_value_2;
udt_name : "udt1";
yy3 : type := data_value_5;
END_STRUCT ;
yyy1 : type := data_value_6;
END_STRUCT ;
BEGIN
yyy : type := data_value_7;
yy1 : type := data_value_8;
xxx : type := data_ddd_9;
xx1 : type := data_ddd_10;
yy3 : type := data_value_11;
yyy1 : type := data_value_12;
END_DATA_BLOCK
Quiero que me ayudes a revisar este script para usar los valores iniciales y actuales del archivo source_file se copien a un nuevo archivo pero con los nombres de las variables tomados de target_file. Esto lo debo realizar porque se han perdido los nombres de las variables y quiero volver a recuperar los nombres pero con los datos actuales provenientes de source_file. Por ejemplo source_file :"STAT3 : REAL := 2.000000e-01; ", target_file: "CO2Offset : REAL := 4.500000e-01;" debe copiar lo que esta luego del := "2.000000e-01" hasta el ";" de source_file y lo que esta antes del := y luego del ";" del target_file. El resultado seria: "CO2Offset : REAL :=2.000000e-01;". Lo que esta luego del ";" pueden ser comentarios que son utiles mantener. Puede ser tambien que no haya asignaciones en source_file , en ese caso tampoco las debe haber en target_file. Este procedimiento se debe seguir para los valores inciales ( primera parte de DATA_BLOCK antes de BEGIN, para las UDT y luego con los valores actuales que es el area entre el BEGIN y END_DATA_BLOCK.
En realidad como estamos asignando por posicion y no por nombre la idea seria usar un indice de posicion. El indice se puede incrementar siempre que una linea termine o centenga ";" ya que puede haber comentarios luego del ";". Teniendo en cuenta este sistema solo debemos saltar a las UDT para los valores iniciales pero a nivel de posicionamiento se debe seguir. Por lo que una variable posicionada en la indice 40 se debe asignar a una posicionada en la indice 40 siempre siguiendo que estos indices trabajen siguiengo los ";" y haciendo los saltos para las UDT.
El archivo output_file debe ser similar a output_file solo con los valores actualizados tomas desde source_file. Lo que propongo seria que se analice el archivo source_file y se cree una lista con el indice consecutivo, tipo de tado y valor a copiar ( valor entre := y ";" ) inicial y actual ( luego del BEGIN ) . Luego se analice cada linea del target_file creando un diccionario con las tuplas ( numero de linea, indice ) . En esta pasada al crear el diccionario se puede controlar los tipos de datos y se asocian numero de linea con el indice correspondiente sobre el source_file. De esta manera en una nueva pasada se va copiando cada linea de target_file y si aparece en el diccionario se copia el correspondiente valor inicial o actual segun el arean donde estamos.
Te adjunto un ejemplo de los archivos que debo procesar y el script de partida que aun no funciona correctamente.
```

View File

@ -0,0 +1,6 @@
```bash
Quisiera crear luego otro script que tome luego los 3 archivos db y genere un archivo excel con la comparacion de los valores para poder controlar que todo se proceso correctamente. Quisiera que se use como nombre de cada fila el nombre de las variables tomado de target_f , se cree una seguna columna para el tipo de datos y luego las siguientes columnas sean los valores de cada archivo o vacio si no hay valores
```

View File

@ -19,3 +19,9 @@ Backups: [Setups](file:///C:%5CTrabajo%5CManuales%5CMikrotik%5CSetups)
*** ***
https://help.mikrotik.com/docs/spaces/ROS/pages/328059/RouterOS https://help.mikrotik.com/docs/spaces/ROS/pages/328059/RouterOS
### Descripción de diferentes configuraciones:
***
* [SIDEL Router 192.168.199.1 - Internet](file:///C:%5CTrabajo%5CManuales%5CMikrotik%5CSetups%5CSIDEL%20Router%20192.168.199.1%20-%20Internet) : Esta configuracion es simpre como router de internet con DHCP forzado a 8.8.8.8
* [SIDEL Router ZeroTier 10.1.33.251](file:///C:%5CTrabajo%5CManuales%5CMikrotik%5CSetups%5CSIDEL%20Router%20ZeroTier%2010.1.33.251) : Este router tiene un cliente Zerotier que permite hacer routing layer 2 de la red Lan. El puerto 5 esta configurado para routear la il 192.168.1.212 que se usan con los medidores Endress-Hauser.

View File

@ -1,5 +1,75 @@
***
#### **Step 1: Disable FastTrack**
FastTrack allows packets to bypass the firewall, mangle, and queue processing for established and related connections, which can improve performance. However, for queueing and mangle rules to work correctly, FastTrack needs to be disabled for the traffic you want to manage.
```
/ip firewall filter set [find comment="defconf: fasttrack"] disabled=yes
```
Or, you can find the rule in WinBox under `IP > Firewall > Filter Rules`, select it, and click the "Disable" button (which might look like an 'X' or have a tooltip indicating disable).
#### **Step 2: Create Mangle Packet Marks**
Mangle rules are used to mark specific packets so that they can be identified and processed by other router features, such as queues. In this configuration, we mark upload and download traffic.
The following commands create the necessary packet marks:  
- **To mark client upload traffic:** This rule marks packets originating from your local network (bridge interface) as `client-upload`.
```
/ip firewall mangle
add action=mark-packet chain=prerouting comment=client-upload in-interface=bridge new-packet-mark=client-upload passthrough=yes
```
_Note: The provided configuration has `passthrough=yes` implied by default. It's good practice to explicitly state it if needed, though for simple marking like this, its default behavior is usually fine._
- **To mark client download traffic:** This rule marks packets coming from the internet (ether1 interface) as `client-download`.
```
/ip firewall mangle
add action=mark-packet chain=prerouting comment=client-download in-interface=ether1 new-packet-mark=client-download passthrough=yes
```
_Make sure `ether1` is indeed your WAN interface on the new router. If not, replace `ether1` with the correct WAN interface name._ _Again, `passthrough=yes` is implied by default._
You can add these rules via the MikroTik terminal or in WinBox under `IP > Firewall > Mangle`.
#### **Step 3: Create Queue Tree**
The Queue Tree is used to implement more complex queueing scenarios using the packet marks created in the previous step. This configuration uses PCQ (Per Connection Queueing) to fairly distribute bandwidth among active users.
The following commands create the queue tree structure:  
- **Download Queue:** This rule creates a queue for download traffic, limiting it to ==90M== with a burst to ==140M==. It uses the `client-download` packet mark.
```bash
/queue tree
add burst-limit=140M burst-time=10s max-limit=90M name="Trafico Download" \
packet-mark=client-download parent=global priority=1 queue=pcq-download-default
```
- **Upload Queue:** This rule creates a queue for upload traffic, limiting it to ==19M== with a burst to ==25M==. It uses the `client-upload` packet mark.
```
/queue tree
add burst-limit=25M burst-time=10s max-limit=19M name="Trafico Upload" \
packet-mark=client-upload parent=global priority=1 queue=pcq-upload-default
```
You can add these queue tree rules via the MikroTik terminal or in WinBox under `Queues > Queue Tree`.
**Important Considerations:**
- **Interface Names:** Double-check your interface names on the new router. The configuration uses `bridge` for the LAN interface and `ether1` for the WAN interface. If your new router has different names (e.g., `bridge-local` or `ether2-wan`), you must update the commands accordingly.  
- **PCQ Defaults:** The queues use `pcq-download-default` and `pcq-upload-default`. These are default PCQ queue types. If you need to customize PCQ parameters (like classifier or rate), you would first define your own PCQ queue types under `/queue type` and then reference them in the queue tree. For this setup, the defaults are being used.
- **Global Parent:** Both queues are attached to the `global` parent, which represents all traffic passing through the router.
- **Order of Rules:** In `/ip firewall mangle` and `/ip firewall filter`, the order of rules can be important. Ensure these rules are placed appropriately, usually before any general "drop" or "accept" rules if there's a chance of traffic not being marked correctly.
***
### It is better the Mangle - Queue Tree system: ### It is better the Mangle - Queue Tree system:
1. Disable the fasttrack to allow the Mangle to function 1. Disable the fasttrack to allow the Mangle to function

View File

@ -1,339 +1,275 @@
# Parser de Archivos de Definición de DB y UDT de Step 7 (Formato Texto)
# Documentación: Cálculo de Direcciones en Siemens S7 Data Blocks ## 1. Introducción
## Índice Este documento describe el proceso y la arquitectura de un parser diseñado para analizar archivos de texto que contienen definiciones de Bloques de Datos (DB) y Tipos de Datos de Usuario (UDT) exportados desde Siemens Step 7 (o TIA Portal en formato AWL/STL). El objetivo principal del parser es extraer la estructura de estos bloques, incluyendo los nombres de las variables, tipos de datos, dimensiones de arrays, comentarios, y, crucialmente, calcular el offset (desplazamiento) absoluto en bytes y bits para cada variable dentro de su DB o UDT padre.
1. [Introducción](https://claude.ai/chat/06d8e88f-8d18-41c2-8601-4b63debb19f1#introducci%C3%B3n) El resultado final del parsing es una representación estructurada (por ejemplo, en formato JSON) que puede ser utilizada para diversas aplicaciones, como la generación automática de documentación, la creación de interfaces HMI/SCADA, herramientas de diagnóstico, o la integración con otros sistemas.
2. [Conceptos Básicos](https://claude.ai/chat/06d8e88f-8d18-41c2-8601-4b63debb19f1#conceptos-b%C3%A1sicos)
3. [Tipos de Datos y Tamaños](https://claude.ai/chat/06d8e88f-8d18-41c2-8601-4b63debb19f1#tipos-de-datos-y-tama%C3%B1os)
4. [Reglas de Alineación](https://claude.ai/chat/06d8e88f-8d18-41c2-8601-4b63debb19f1#reglas-de-alineaci%C3%B3n)
5. [Algoritmo de Cálculo de Direcciones](https://claude.ai/chat/06d8e88f-8d18-41c2-8601-4b63debb19f1#algoritmo-de-c%C3%A1lculo-de-direcciones)
6. [Casos Especiales](https://claude.ai/chat/06d8e88f-8d18-41c2-8601-4b63debb19f1#casos-especiales)
- [Arrays](https://claude.ai/chat/06d8e88f-8d18-41c2-8601-4b63debb19f1#arrays)
- [Estructuras Anidadas](https://claude.ai/chat/06d8e88f-8d18-41c2-8601-4b63debb19f1#estructuras-anidadas)
- [User-Defined Types (UDT)](https://claude.ai/chat/06d8e88f-8d18-41c2-8601-4b63debb19f1#user-defined-types-udt)
- [Parámetros IN_OUT](https://claude.ai/chat/06d8e88f-8d18-41c2-8601-4b63debb19f1#par%C3%A1metros-in_out)
7. [Ejemplos Prácticos](https://claude.ai/chat/06d8e88f-8d18-41c2-8601-4b63debb19f1#ejemplos-pr%C3%A1cticos)
8. [Implementación de un Parser](https://claude.ai/chat/06d8e88f-8d18-41c2-8601-4b63debb19f1#implementaci%C3%B3n-de-un-parser)
9. [Referencias](https://claude.ai/chat/06d8e88f-8d18-41c2-8601-4b63debb19f1#referencias)
## Introducción ## 2. Conceptos Clave de Step 7 Relevantes para el Parsing
Este documento describe los mecanismos de cálculo de direcciones (offsets) para Data Blocks (DBs) en PLCs Siemens S7. El objetivo es proporcionar información detallada para implementar un parser que pueda analizar estructuras de DB y calcular correctamente las direcciones de cada elemento. Antes de detallar el proceso de parsing, es fundamental comprender algunos conceptos de Step 7:
El algoritmo descrito se basa en el análisis del código fuente de la biblioteca DotNetSiemensPLCToolBoxLibrary, específicamente la clase `S7DataRow` y su método `FillBlockAddresses`. ### 2.1. Tipos de Datos Primitivos y Tamaños
El parser debe conocer el tamaño en bytes (y bits para BOOL) de los tipos de datos fundamentales de S7:
* **BOOL**: 1 bit.
* **BYTE**: 1 byte (8 bits).
* **CHAR**: 1 byte (representación ASCII).
* **WORD**: 2 bytes.
* **INT**: 2 bytes (entero con signo).
* **UINT**: 2 bytes (entero sin signo, TIA Portal).
* **DWORD**: 4 bytes.
* **DINT**: 4 bytes (entero con signo).
* **UDINT**: 4 bytes (entero sin signo, TIA Portal).
* **REAL**: 4 bytes (punto flotante, IEEE 754).
* **S5TIME**: 2 bytes (formato de temporizador S5).
* **TIME**: 4 bytes (formato de tiempo IEC).
* **TIME_OF_DAY (TOD)**: 4 bytes.
* **DATE**: 2 bytes.
* **DATE_AND_TIME (DT)**: 8 bytes.
* **STRING[N]**: N+2 bytes (1 byte max_len, 1 byte actual_len, N bytes para caracteres).
* **LREAL, LINT, ULINT, LWORD, LTIME, LTIME_OF_DAY** (TIA Portal): Generalmente 8 bytes.
## Conceptos Básicos ### 2.2. Tipos de Datos Compuestos
* **STRUCT**: Una colección de variables (miembros) de diferentes tipos, agrupadas bajo un nombre. Los miembros se almacenan secuencialmente.
* **UDT (User Defined Type)**: Un tipo de dato definido por el usuario, que internamente es un STRUCT. Permite reutilizar estructuras complejas.
* **ARRAY [L..U] OF Type**: Una colección de elementos del mismo tipo (`Type`), indexados desde `L` (límite inferior) hasta `U` (límite superior).
### Direcciones en S7 ### 2.3. Reglas de Alineación y Offsets
Siemens S7 tiene reglas estrictas para la alineación de datos en memoria, lo cual afecta el cálculo de offsets:
* **BOOL**: Se empaquetan en bytes. Ocho BOOLs pueden ocupar un solo byte.
* **BYTE, CHAR**: Pueden comenzar en cualquier offset de byte.
* **WORD (y tipos de 2 bytes)**: Deben comenzar en un offset de byte par (0, 2, 4,...). Si el offset actual es impar, se inserta un byte de relleno (padding) antes del WORD.
* **DWORD (y tipos de 4 bytes)**: También deben comenzar en un offset de byte par.
* **LWORD (y tipos de 8 bytes)**: También deben comenzar en un offset de byte par.
* **STRUCT / UDT**: Como un todo, un STRUCT o UDT comienza en un offset de byte par. Su tamaño total también se redondea (padding) para que sea un número par de bytes. Los miembros internos siguen sus propias reglas de alineación relativas al inicio del STRUCT/UDT.
* **STRING**: El tipo STRING (con sus 2 bytes de cabecera) se considera alineado a palabra (comienza en offset par).
* **ARRAY**: Un array de tipos que requieren alineación (ej. `ARRAY OF INT`) comenzará en un offset alineado (par). Los elementos dentro del array se colocan consecutivamente según el tamaño del tipo base. El tamaño total de un array de tipos alineados a palabra también resultará en un tamaño par o se le añadirá padding al final si el siguiente elemento lo requiere.
En los PLCs Siemens S7, una dirección dentro de un DB se representa con dos componentes: ### 2.4. Formato del Archivo de Texto
Los archivos `.db` o `.udt` exportados como "fuente" (source) tienen una sintaxis similar a AWL/STL:
* Bloques `TYPE "Nombre_UDT" ... END_TYPE` para UDTs.
* Bloques `DATA_BLOCK "Nombre_DB" ... END_DATA_BLOCK` para DBs.
* Declaraciones de variables: `NombreVar : TIPO_DATO [:= ValorInicial] [// Comentario]`
* Estructuras: `STRUCT ... END_STRUCT`.
* Arrays: `ARRAY [inferior..superior] OF TIPO_DATO`.
* Sección `BEGIN ... END_DATA_BLOCK` (para DBs) contiene los valores iniciales efectivos.
- **ByteAddress**: La dirección del byte (comenzando desde 0) ## 3. Arquitectura del Parser
- **BitAddress**: La posición del bit dentro del byte (0-7)
Esta notación se representa comúnmente como "ByteAddress.BitAddress", por ejemplo: El parser se estructura en varios componentes lógicos:
- "0.0" representa el primer bit del primer byte ### 3.1. Lector de Archivo
- "10.4" representa el quinto bit del byte 11 * Lee el archivo de entrada línea por línea.
### Representación interna ### 3.2. Identificador de Bloques
* Detecta el inicio y fin de bloques UDT (`TYPE ... END_TYPE`) y DB (`DATA_BLOCK ... END_DATA_BLOCK`).
La biblioteca utiliza la clase `ByteBitAddress` para representar una dirección: ### 3.3. Analizador de Declaraciones
* Utiliza expresiones regulares (regex) para identificar y extraer información de:
* Propiedades del bloque (FAMILY, VERSION, TITLE).
* Declaraciones de variables (nombre, tipo, valor inicial, comentario).
* Inicio y fin de `STRUCT`.
* Declaraciones de `ARRAY`.
* Maneja la recursividad de `STRUCT` anidados.
```csharp ### 3.4. Calculadora de Offsets y Tamaños
public class ByteBitAddress * Mantiene el `byte_offset` y `bit_offset` actual durante el parsing de un `STRUCT` (o el cuerpo principal de un DB/UDT).
* Aplica las reglas de alineación de S7.
* Consulta una tabla interna de tamaños de tipos de datos primitivos.
* Para UDTs usados como tipo de dato, consulta la información de UDTs previamente parseados.
* Calcula el tamaño total de `STRUCT`s, `UDT`s y `ARRAY`s.
### 3.5. Gestor de UDTs
* Almacena las definiciones de UDTs parseadas en un diccionario o estructura similar.
* Cuando una variable es de un tipo UDT, el parser consulta este gestor para obtener el tamaño y la estructura del UDT.
### 3.6. Analizador de la Sección `BEGIN` (para DBs)
* Parsea las asignaciones de valores en la sección `BEGIN` para actualizar los valores iniciales de las variables del DB.
### 3.7. Estructuras de Datos Internas
* Se utilizan clases o diccionarios para representar:
* `VariableInfo`: Nombre, tipo, offset, tamaño, sub-miembros (si es STRUCT/UDT), dimensiones de array, etc.
* `UdtInfo`: Nombre, lista de `VariableInfo` (miembros), tamaño total.
* `DbInfo`: Nombre, lista de `VariableInfo` (miembros), tamaño total, valores de la sección `BEGIN`.
* `ParsedData`: Contenedor raíz para todos los UDTs y DBs parseados.
### 3.8. Serializador de Salida
* Convierte las estructuras de datos internas a formato JSON.
## 4. Proceso Detallado del Parsing
El proceso general sigue estos pasos:
1. **Inicialización**:
* Crear un objeto `ParsedData` para almacenar los resultados.
* Crear un diccionario `known_udts` para almacenar las definiciones de UDTs a medida que se parsean.
* Inicializar `current_byte_offset = 0`, `current_bit_offset = 0`.
2. **Lectura Línea por Línea**:
* Para cada línea del archivo:
* **Detección de Bloque UDT**: Si la línea marca el inicio de un UDT (`TYPE "Nombre"`):
* Crear un nuevo objeto `UdtInfo`.
* Parsear las propiedades del UDT (FAMILY, VERSION).
* Resetear `current_byte_offset = 0`, `current_bit_offset = 0` para este UDT.
* Llamar a una función recursiva/iterativa `parse_struct_members` para los miembros del UDT.
* Al encontrar `END_TYPE`, finalizar el UDT, aplicar padding final si es necesario para que el tamaño total sea par, y almacenar el UDT en `known_udts` y `ParsedData.udts`.
* **Detección de Bloque DB**: Si la línea marca el inicio de un DB (`DATA_BLOCK "Nombre"`):
* Crear un nuevo objeto `DbInfo`.
* Parsear las propiedades del DB (TITLE, FAMILY, VERSION).
* Resetear `current_byte_offset = 0`, `current_bit_offset = 0` para este DB.
* Llamar a `parse_struct_members` para los miembros del DB.
* Si se encuentra `BEGIN`:
* Finalizar el cálculo de offsets para la sección de declaración (aplicar padding si el offset es impar).
* Llamar a una función `parse_begin_section` para extraer los valores iniciales.
* Al encontrar `END_DATA_BLOCK`, finalizar el DB, aplicar padding final al tamaño total de las declaraciones si es necesario, y almacenar el DB en `ParsedData.dbs`.
* **Dentro de `parse_struct_members(parent_members_list, current_offsets)`**:
* Si la línea es `STRUCT`:
* Alinear `current_offsets` a palabra (byte par).
* Crear un `VariableInfo` para el `STRUCT` anónimo o nombrado.
* Grabar el offset de inicio del `STRUCT`.
* Hacer una llamada recursiva a `parse_struct_members` para los hijos del `STRUCT`, pasándole nuevos offsets relativos (0.0).
* Al retornar de la llamada recursiva (al encontrar `END_STRUCT`):
* El tamaño del `STRUCT` es el offset final retornado por la llamada recursiva (después de su propio padding final a par).
* Actualizar `current_offsets` del nivel padre sumando el tamaño del `STRUCT`.
* Añadir el `VariableInfo` del `STRUCT` a `parent_members_list`.
* Si la línea es `END_STRUCT`: Retornar (indicando el fin de este nivel de `STRUCT`).
* Si la línea es una **declaración de variable** (detectada por regex):
* Extraer `nombre_var`, `tipo_completo` (ej. `ARRAY [0..9] OF INT`, `STRING[32]`, `"MiUDT"`), `valor_inicial`, `comentario`.
* Analizar `tipo_completo` para determinar:
* Si es `ARRAY`: extraer dimensiones y `tipo_base_array`.
* Si es `STRING`: extraer `longitud_string`.
* Si es un UDT (entre comillas): `nombre_udt_usado`.
* Sino: `tipo_primitivo`.
* Obtener `tamaño_unitario` y `alineacion_requerida_bytes` para el `tipo_base_final` (primitivo, UDT, STRING):
* Para UDT: `tamaño_unitario = known_udts[nombre_udt_usado].total_size_in_bytes`. `alineacion_requerida_bytes = 2`.
* Para STRING[N]: `tamaño_unitario = N + 2`. `alineacion_requerida_bytes = 2`.
* Para primitivos: obtener de una tabla interna.
* Crear un `VariableInfo`.
* **Cálculo de Offset para la variable actual**:
* Si el `tipo_base_final` es `BOOL`:
* `VariableInfo.offset = current_offsets.byte + (current_offsets.bit / 10.0)` (representación decimal).
* `current_offsets.bit += 1`.
* Si `current_offsets.bit >= 8`:
* `current_offsets.byte += 1`.
* `current_offsets.bit = 0`.
* El tamaño para `BOOL` es 1 bit. Si es un array de BOOLs, este proceso se repite para cada elemento.
* Si el `tipo_base_final` **no** es `BOOL`:
* Si `current_offsets.bit > 0` (se estaba empaquetando BOOLs):
* `current_offsets.byte += 1` (terminar el byte actual).
* `current_offsets.bit = 0`.
* Si `alineacion_requerida_bytes == 2` y `current_offsets.byte` es impar:
* `current_offsets.byte += 1` (insertar byte de padding).
* `VariableInfo.offset = current_offsets.byte`.
* `tamaño_total_var = tamaño_unitario`.
* Si es `ARRAY`: `tamaño_total_var *= numero_total_elementos_array`.
* `VariableInfo.size_in_bytes = tamaño_total_var`.
* `current_offsets.byte += tamaño_total_var`.
* Si es un array de elementos alineados a palabra y `tamaño_total_var` es impar (esto es raro, usualmente el `tamaño_unitario` ya es par), S7 no suele añadir padding *dentro* del array, sino que el padding general del STRUCT/UDT se encarga. La alineación es para el *inicio* del array y de cada elemento *si el tipo base lo requiere*.
* Añadir el `VariableInfo` a `parent_members_list`.
3. **Post-Procesamiento**:
* Una vez que todos los bloques han sido parseados, serializar el objeto `ParsedData` a JSON.
## 5. Expresiones Regulares Clave (Ejemplos Conceptuales)
* **Inicio UDT**: `^\s*TYPE\s+"([^"]+)"`
* **Inicio DB**: `^\s*DATA_BLOCK\s+"([^"]+)"`
* **Propiedad**: `^\s*([A-Z_]+)\s*:\s*(.+?)\s*(?://.*)?$`
* **Inicio STRUCT**: `^\s*STRUCT`
* **Fin STRUCT/TYPE/DB**: `^\s*END_(STRUCT|TYPE|DATA_BLOCK)`
* **Declaración de Variable (simplificada)**: `^\s*(?<name>[a-zA-Z_]\w*)\s*:\s*(?<typefull>(?:ARRAY\s*\[(?<arraydims>[^\]]+)\]\s*OF\s*)?(?<basetype>(?:"[^"]+"|\w+))(?:\s*\[\s*(?<strlen>\d+)\s*\])?)\s*(?::=\s*(?<initval>.+?))?\s*(?://\s*(?<comment>.*))?;?\s*$`
* Esta regex es compleja y necesita ser probada y refinada cuidadosamente. Captura:
* `name`: Nombre de la variable.
* `typefull`: La declaración de tipo completa.
* `arraydims`: Dimensiones del array (ej. `1..5,0..2`).
* `basetype`: El tipo base (ej. `INT`, `"MiUDT"`, `STRING`).
* `strlen`: Longitud para `STRING[N]`.
* `initval`: Valor inicial.
* `comment`: Comentario.
## 6. Estructura de Salida JSON (Ejemplo Conceptual)
```json
{ {
public int ByteAddress { get; set; } "udts": [
public int BitAddress { get; set; }
}
```
## Tipos de Datos y Tamaños
|Tipo de Dato|Tamaño (bytes)|Alineación|
|---|---|---|
|BOOL|1 bit|Bit|
|BYTE|1|Byte|
|CHAR|1|Byte|
|WORD|2|Word (dirección par)|
|INT|2|Word (dirección par)|
|DWORD|4|Word (dirección par)|
|DINT|4|Word (dirección par)|
|REAL|4|Word (dirección par)|
|S5TIME|2|Word (dirección par)|
|TIME|4|Word (dirección par)|
|DATE|2|Word (dirección par)|
|TIME_OF_DAY|4|Word (dirección par)|
|DATE_AND_TIME|8|Word (dirección par)|
|STRING|Variable|Word + 2 bytes de cabecera|
|STRUCT|Variable|Según contenido|
|UDT|Variable|Según definición|
|ARRAY|Variable|Según tipo base|
## Reglas de Alineación
Las siguientes reglas determinan cómo se posicionan los datos en memoria:
### 1. Alineación General
- **Inicialización**: Al comenzar una estructura, la dirección se inicializa en 0.0
- **Bytes pares**: Los tipos de datos que requieren alineación a word se colocan en direcciones de byte par
### 2. Reglas por Tipo de Dato
#### Elementos Alineados a Bit
- **BOOL**:
- Variables BOOL individuales se almacenan bit a bit secuencialmente
- Se pueden colocar hasta 8 BOOLs en un solo byte
#### Elementos Alineados a Byte
- **BYTE** y **CHAR**:
- Se alinean a nivel de byte
- Pueden comenzar en cualquier dirección de byte (par o impar)
#### Elementos Alineados a Word (dirección par)
- Tipos de 2+ bytes (**WORD**, **INT**, **DWORD**, **DINT**, **REAL**, etc.):
- Se alinean a direcciones de byte par
- Si la dirección actual es impar, se avanza al siguiente byte par
#### Arrays
- Los arrays siempre se alinean al menos a nivel de byte
- El tipo base del array determina alineaciones adicionales
- Arrays de BOOL tienen reglas especiales de empaquetado
#### Estructuras (STRUCT)
- Las estructuras siguen sus propias reglas internas de alineación
- La estructura como un todo se alinea según el elemento con requisito de alineación más estricto
## Algoritmo de Cálculo de Direcciones
El algoritmo para calcular direcciones es el siguiente:
1. Se inicializa la dirección de inicio (normalmente 0.0)
2. Para cada elemento en la estructura:
- Se aplican reglas de alineación según el tipo
- Se asigna la dirección actual al elemento
- Se calcula la siguiente dirección basada en el tamaño del elemento
- Se actualiza la dirección actual para el siguiente elemento
### Pseudocódigo Fundamental
```
función CalcularDirecciones(estructura, direcciónInicial)
dirActual = direcciónInicial
// Ajuste inicial
si dirActual.bitAddress != 0 entonces
dirActual.byteAddress++
dirActual.bitAddress = 0
fin si
si dirActual.byteAddress % 2 != 0 entonces
dirActual.byteAddress++ // Alinear a word si es necesario
fin si
para cada elemento en estructura hacer
// Aplicar reglas de alineación según tipo
si elemento.tipo necesita alineación a word Y dirActual.byteAddress % 2 != 0 entonces
dirActual.byteAddress++
fin si
// BOOLs - manejar bits
si elemento.tipo == BOOL Y !elemento.esArray entonces
elemento.dirección = dirActual
dirActual = ObtenerSiguienteDirecciónBit(dirActual)
sino
// Otros tipos - reset bit address y avanzar bytes
elemento.dirección = dirActual
dirActual.bitAddress = 0
dirActual.byteAddress += elemento.tamaño
fin si
// Si es estructura con hijos, procesar recursivamente
si elemento tiene hijos entonces
CalcularDirecciones(elemento.hijos, elemento.dirección)
fin si
fin para
retornar dirActual
fin función
función ObtenerSiguienteDirecciónBit(dirección)
dirección.bitAddress++
si dirección.bitAddress > 7 entonces
dirección.bitAddress = 0
dirección.byteAddress++
fin si
retornar dirección
fin función
```
## Casos Especiales
### Arrays
Los arrays requieren atención especial:
1. **Alineación**: Los arrays siempre se alinean al menos a nivel de byte, y si el tipo base requiere alineación a word, todo el array se alinea a word.
2. **Arrays de BOOL**:
- Pueden ser empaquetados bit a bit dentro de bytes consecutivos
- Al cambiar de índice dentro del array, pueden aplicarse reglas especiales
3. **Cálculo de tamaño**: El tamaño total es el producto del tamaño del tipo base y el número de elementos.
4. **Arrays multidimensionales**: Se procesan como arrays anidados, aplicando las mismas reglas recursivamente.
### Estructuras Anidadas
Las estructuras anidadas siguen estas reglas:
1. La estructura como un todo se alinea según las reglas del tipo más exigente que contiene
2. Cada campo dentro de la estructura sigue sus propias reglas de alineación
3. El proceso es recursivo: se calculan las direcciones de los campos internos en relación a la dirección inicial de la estructura
### User-Defined Types (UDT)
Los UDTs se tratan de manera similar a las estructuras:
1. Se alinean como una entidad completa según sus requisitos internos
2. Las direcciones internas se calculan según las reglas estándar
3. Al utilizarse dentro de un DB, se expanden completamente (excepto con opciones específicas)
### Parámetros IN_OUT
Los parámetros IN_OUT tienen un tratamiento especial:
```csharp
if (plcDataRow.Parent != null && ((S7DataRow)plcDataRow.Parent).isInOut)
useAddr = new ByteBitAddress(0, 0);
```
Esto indica que los parámetros IN_OUT se manejan como punteros, por lo que su contenido interno se dirige a dirección 0.0 en su propio espacio.
## Ejemplos Prácticos
### Ejemplo 1: Estructura Simple
```
STRUCT
Flag1 : BOOL; // Dirección: 0.0
Flag2 : BOOL; // Dirección: 0.1
Count : INT; // Requiere alineación a WORD -> Dirección: 2.0 (no 1.0)
Value : REAL; // Dirección: 4.0
Code : BYTE; // Dirección: 8.0
END_STRUCT
```
Proceso de cálculo:
1. Comenzamos en dirección 0.0
2. Flag1 (BOOL) se asigna a 0.0, avanzamos a 0.1
3. Flag2 (BOOL) se asigna a 0.1, avanzamos a 0.2
4. Count (INT) requiere alineación a word. La dirección actual tiene bit ≠ 0, así que avanzamos al siguiente byte (1.0). Como 1 es impar, avanzamos a 2.0.
5. Count ocupa 2 bytes, avanzamos a 4.0
6. Value (REAL) ya está alineado a word en 4.0, ocupa 4 bytes, avanzamos a 8.0
7. Code (BYTE) se asigna a 8.0, avanza a 9.0
### Ejemplo 2: Arrays y Estructuras
```
STRUCT
Flags : ARRAY[0..15] OF BOOL; // Dirección: 0.0 a 1.7
Data : ARRAY[1..5] OF STRUCT // Comienza en dirección 2.0 (alineada a word)
ID : INT; // Offset relativo 0.0 en cada elemento
Value : REAL; // Offset relativo 2.0 en cada elemento
END_STRUCT; // Cada elemento ocupa 6 bytes, total: 30 bytes
END_STRUCT
```
## Implementación de un Parser
Para implementar un parser que calcule direcciones correctamente:
### 1. Componentes necesarios
- **Analizador lexicográfico/sintáctico**: Para parsear la definición de la estructura
- **Modelo de datos**: Clases para representar tipos, estructuras, arrays, etc.
- **Motor de cálculo de direcciones**: Implementación del algoritmo descrito
- **Manejo de UDTs**: Sistema para resolver y expandir UDTs
### 2. Pasos del algoritmo
1. **Parsear la definición**: Convertir el texto de definición a un árbol de estructura
2. **Resolver UDTs**: Expandir cualquier UDT referenciado
3. **Calcular tamaños**: Determinar el tamaño de cada elemento
4. **Calcular direcciones**: Aplicar el algoritmo de cálculo de direcciones
5. **Generar salida**: Producir una lista plana de elementos con sus offsets
### 3. Consideraciones
- **Expansión de arrays**: Decidir si expandir arrays o representarlos de forma condensada
- **Opciones de expansión**: Implementar opciones como en `S7DataBlockExpandOptions`
- **Resolución de conflictos**: Manejar casos donde la definición del DB no coincide con la estructura
### 4. Clase de Ejemplo para el Parser
```csharp
public class S7AddressCalculator
{
public List<S7DataRowWithAddress> CalculateAddresses(S7DataRow rootStructure)
{ {
var result = new List<S7DataRowWithAddress>(); "name": "Recipe_Prod",
var currentAddress = new ByteBitAddress(0, 0); "family": "DataType",
"version": "0.1",
CalculateAddressesInternal(rootStructure, currentAddress, "", result); "total_size_in_bytes": 218, // Ejemplo, calculado
"members": [
return result; {
"name": "_Name",
"data_type": "STRING",
"string_length": 32,
"initial_value": "' '",
"byte_offset": 0.0,
"size_in_bytes": 34
},
{
"name": "_EnProdTemp",
"data_type": "BOOL",
"byte_offset": 34.0, // Byte 34, bit 0
"size_in_bytes": 0 // Representa 1 bit
},
// ... más miembros
{
"name": "_Type",
"data_type": "INT",
"initial_value": "1",
"byte_offset": 40.0, // Ejemplo, después de padding y otros BOOLs/BYTEs
"size_in_bytes": 2
}
]
} }
],
private void CalculateAddressesInternal( "dbs": [
S7DataRow structure,
ByteBitAddress baseAddress,
string parentPath,
List<S7DataRowWithAddress> result)
{ {
// Implementar el algoritmo de cálculo de direcciones aquí "name": "HMI_Blender_Parameters",
// Aplicar las reglas de alineación descritas anteriormente "title": "{ S7_language := '28(1) Albanese 15.06.2005 17:07:04' }",
"family": "Resource",
// Para cada elemento: "version": "0.0",
// 1. Calcular la dirección según las reglas "total_size_in_bytes": 1024, // Ejemplo, calculado
// 2. Agregar el elemento a la lista de resultados "members": [
// 3. Si es estructura, procesar recursivamente {
"name": "Processor_Options",
"data_type": "STRUCT",
"byte_offset": 0.0,
"size_in_bytes": 100, // Ejemplo
"children": [
{
"name": "Blender_OPT",
"data_type": "STRUCT",
"byte_offset": 0.0, // Relativo a Processor_Options
"size_in_bytes": 80, // Ejemplo
"children": [
{
"name": "_ModelNum",
"data_type": "INT",
"initial_value": "6",
"byte_offset": 0.0, // Relativo a Blender_OPT
"size_in_bytes": 2
}
// ...
]
}
]
},
{
"name": "Actual_Recipe_Parameters",
"data_type": "UDT", // El parser identifica esto como UDT
"udt_source_name": "Recipe_Prod", // Nombre del UDT original
"byte_offset": 120.0, // Ejemplo
"size_in_bytes": 218, // Tamaño del UDT "Recipe_Prod"
"children": [] // Opcionalmente, se pueden expandir los miembros del UDT aquí
}
// ... más miembros
],
"initial_values_from_begin_block": {
"Processor_Options.Blender_OPT._ModelNum": "6",
"Actual_Recipe_Parameters._Name": "''"
// ...
}
} }
} ]
}
public class S7DataRowWithAddress
{
public string Name { get; set; }
public string FullPath { get; set; }
public S7DataRowType DataType { get; set; }
public ByteBitAddress Address { get; set; }
public int Size { get; set; }
public bool IsArray { get; set; }
public int[] ArrayDimensions { get; set; }
public string Comment { get; set; }
}
```
## Referencias
1. Biblioteca DotNetSiemensPLCToolBoxLibrary
- Clase `S7DataRow` - Método `FillBlockAddresses`
- Enumeración `S7DataRowType`
- Clase `S7DataBlockExpandOptions`
2. Documentación Siemens S7
- Tipos de datos y requisitos de alineación
- Estructura de DBs y UDTs
3. Norma IEC 61131-3
- Definición de tipos de datos para PLCs

View File

@ -0,0 +1,91 @@
### ¿Qué es una Válvula Mixproof?
Una válvula Mixproof (a prueba de mezcla) es un tipo de válvula diseñada para permitir el flujo simultáneo de dos fluidos diferentes a través del cuerpo de la válvula sin riesgo de que se mezclen. Esto se logra mediante dos asientos y obturadores independientes con una cámara de fuga intermedia que drena cualquier posible fuga al exterior. Son comúnmente utilizadas en industrias higiénicas como la alimentaria, de bebidas y farmacéutica.
### Principio de Funcionamiento General
La Válvula Mixproof Unique opera mediante un actuador neumático que controla la posición de dos obturadores (superior e inferior). Estos obturadores sellan contra asientos dedicados, creando cámaras separadas dentro del cuerpo de la válvula.
- **Posición Cerrada (Segura):** Ambos obturadores están cerrados. Cualquier fuga de producto que pudiera pasar por los asientos se dirige a una cámara de fuga atmosférica entre los obturadores y se drena al exterior. Esto previene la contaminación cruzada.
- **Posición Abierta (Flujo):** Dependiendo de la necesidad, uno o ambos obturadores pueden abrirse para permitir el flujo de líquido a través de una o ambas líneas.
- **Limpieza (CIP - Cleaning In Place):** Las válvulas Mixproof están diseñadas para una limpieza CIP eficiente. Durante los ciclos de limpieza, los asientos de la válvula pueden levantarse ligeramente (seat lift) para permitir que el fluido de limpieza alcance todas las superficies en contacto con el producto, incluyendo la cámara de fuga.  
### Entradas de Aire y su Función
La válvula utiliza aire comprimido para accionar los movimientos de los obturadores. Generalmente, existen las siguientes conexiones de aire en el actuador:  
- **AC1 (Air Connection 1): Limpieza del asiento superior.** Al aplicar aire a esta entrada, se levanta ligeramente el obturador superior, permitiendo la limpieza de su asiento.  
- **AC2 (Air Connection 2): Abrir válvula.** Al aplicar aire a esta entrada, se produce el movimiento principal de los obturadores para permitir el flujo del producto.  
- **AC3 (Air Connection 3): Limpieza del asiento inferior.** Al aplicar aire a esta entrada, se levanta ligeramente el obturador inferior, permitiendo la limpieza de su asiento.  
**¡Importante!** Nunca se deben presurizar las conexiones de aire AC1 y AC3 simultáneamente, ya que esto podría levantar ambos obturadores de la válvula y causar una mezcla no deseada de productos.  
### Flujo de Líquido a Través de la Válvula
El flujo de líquido a través de la válvula depende de la posición de los obturadores, controlada por las entradas de aire:
- **Válvula Cerrada:**
- Ambos obturadores están sellando sus respectivos asientos.
- No hay flujo de producto a través de ninguna de las líneas.
- Cualquier posible fuga se dirige a la cámara de fuga y sale por el drenaje de fuga.  
- **Flujo por la Línea Inferior (Ejemplo):**
- El actuador recibe la señal de aire (generalmente a través de AC2) para abrir el paso inferior.
- El obturador inferior se levanta de su asiento.
- El líquido fluye a través de la línea inferior.
- El obturador superior permanece cerrado, aislando la línea superior.
- La cámara de fuga sigue protegiendo contra la mezcla en caso de fallo de un sello.
- **Flujo por la Línea Superior (Ejemplo):**
- El actuador recibe la señal de aire (generalmente a través de AC2) para abrir el paso superior.
- El obturador superior se levanta de su asiento.
- El líquido fluye a través de la línea superior.
- El obturador inferior permanece cerrado, aislando la línea inferior.
- La cámara de fuga sigue protegiendo contra la mezcla.
- **Limpieza del Asiento Inferior (Seat Lift Inferior):**
- Se aplica aire a la conexión AC3.  
- El obturador inferior se levanta ligeramente.
- El fluido de limpieza (CIP) fluye a través de la línea inferior y limpia el asiento inferior y la superficie del obturador.  
- El obturador superior permanece cerrado. La cámara de fuga se limpia y drena.
- **Limpieza del Asiento Superior (Seat Lift Superior):**
- Se aplica aire a la conexión AC1.  
- El obturador superior se levanta ligeramente.
- El fluido de limpieza (CIP) fluye a través de la línea superior y limpia el asiento superior y la superficie del obturador.  
- El obturador inferior permanece cerrado. La cámara de fuga se limpia y drena.
- **Limpieza de la Cámara de Fuga (Opcional con CIP Externo):**
- Algunas configuraciones permiten una limpieza dedicada de la cámara de fuga mediante conexiones CIP externas. El fluido de limpieza se introduce en la cámara y se drena.  
### Consideraciones de Seguridad e Instalación
- Lea siempre detenidamente los datos técnicos antes de la instalación, operación y mantenimiento.  
- Libere siempre el aire comprimido después de su uso y antes de cualquier mantenimiento.  
- Nunca toque el conjunto del clip o el vástago del pistón del actuador si el actuador está alimentado con aire comprimido.  
- Nunca introduzca los dedos por los puertos de la válvula si el actuador está alimentado con aire comprimido.  
- Instale siempre la válvula verticalmente con la salida de fuga hacia abajo.  
- Maneje la lejía y el ácido con sumo cuidado durante la limpieza.  
- Nunca estrangule la salida de fuga ni la salida CIP (si está equipada).  
Esta documentación proporciona una visión general. Para obtener información detallada sobre la instalación, operación, mantenimiento y listas de piezas, consulte el [Manual de Instrucciones - Válvula Sanitaria Mixproof Unique](https://www.google.com/search?q=uploaded:Instruction%2520manual%2520-%2520Unique%2520Mixproof%2520Valve%2520-%2520EN.pdf&authuser=1).

View File

@ -0,0 +1,15 @@
![[Pasted image 20250512163106.png]]
![[Pasted image 20250512163533.png]]
![[Pasted image 20250512163553.png]]
![[Pasted image 20250512163622.png]]
![[Pasted image 20250512163640.png]]
### Configuration Export:
***
![[SiteManager_00c0a20a150c.xmlcfg]]

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 69 KiB

View File

@ -0,0 +1,369 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE config>
<!--
Export date: Mon May 12 14:37:04 2025
Device name: TEKNORS_WorkShop_1
MAC address: 00c0a20a150c
-->
<config model="SiteManager 1529" firmware="v1529_622465022" macaddress="00c0a20a150c" xmlconfig="1.1">
<basic>
<subject label="General" id="512">
<string label="Device Name" id="688">TEKNORS_WorkShop_1</string>
<enum label="Configuration via USB" id="659" ordinal="1">Enabled</enum>
<enum label="USB/IP Interface" id="660" ordinal="0">LinkManager only</enum>
<enum label="Management via Uplink" id="657" ordinal="1">Enabled</enum>
<string label="Trusted Troubleshooters" id="694"></string>
<string label="SysAdmin" id="656"></string>
<string label="Location" id="672"></string>
<string label="Organization" id="689"></string>
<number label="GUI Timeout" id="693">10</number>
<number label="Output Boot State Mask" id="723">0</number>
<number label="Output Boot States" id="724">0</number>
<enum label="Remote Management" id="759" ordinal="2">Enabled</enum>
<enum label="Go To Appliance" id="746" ordinal="2">Automatic Login</enum>
<enum label="Input 1 Action" id="769" ordinal="1">Control Remote Management</enum>
<enum label="Input 2 Action" id="770" ordinal="2">Trigger Alert INPUT2 if ON</enum>
<enum label="Output 1 Signal" id="785" ordinal="2">LinkManager Connected</enum>
<enum label="Output 2 Signal" id="786" ordinal="0">None</enum>
<string label="GateManager Address" id="737">gm7.gate-manager.it 212.35.205.41</string>
<string label="Domain Token" id="743">clienti.teknors</string>
<string label="Appliance Name" id="741"></string>
<enum label="Preferred Protocol" id="748" ordinal="0">Automatic</enum>
<string label="Web-proxy Address" id="749"></string>
<string label="Web-proxy Account" id="750"></string>
<string label="Web-proxy Password" id="751"></string>
<enum label="Connection Watchdog" id="764" ordinal="2">Reset modem only</enum>
<number label="Keep-Alive Interval" id="761">0</number>
<string label="Master Name Format" id="752">{%N|%D|%S}{ %W}</string>
<string label="Agent Name Format" id="753">{%n|%s} (%m){ - %t}{ %W}</string>
<string label="Relay Name Format" id="754">{%n|%s} (%m) - %f{:%p} &gt; %t</string>
</subject>
<subject label="Web Proxy Relay" id="1280">
<enum label="Web Proxy Relay" id="1281" ordinal="1">Enabled</enum>
<enum label="Auto-Discovery Modes" id="1290" ordinal="1">DHCP only</enum>
<number label="Local Port" id="1282">8080</number>
<string label="Remote Web Proxy" id="1289">WEBPROXY</string>
<number label="Idle Timeout" id="1287">600</number>
<number label="Idle Threshold" id="1288">0</number>
<enum label="Connect Forwarding" id="1283" ordinal="0">Via Remote Proxy</enum>
</subject>
<subject label="SMS Alerts" id="1536">
<enum label="Alert Mode" id="1537" ordinal="0">Disabled</enum>
<enum label="Alert Identification" id="1545" ordinal="31">All Alerts</enum>
<enum label="Email Alert Gateway" id="1547" ordinal="0">SiteManager</enum>
<enum label="Input 1 Alert" id="1585" ordinal="0">Disabled</enum>
<string label="Alert Recipients" id="1553"></string>
<string label="Alert ON Text" id="1569">IN1=ON</string>
<string label="Alert OFF Text" id="1601">IN1=OFF</string>
<enum label="Input 2 Alert" id="1586" ordinal="0">Disabled</enum>
<string label="Alert Recipients" id="1554"></string>
<string label="Alert ON Text" id="1570">IN2=ON</string>
<string label="Alert OFF Text" id="1602">IN2=OFF</string>
<number label="Agent Alerts TCP Port" id="1539">26864</number>
<number label="Agent Alerts UDP Port" id="1540">26864</number>
<string label="Agent Alerts Recipients" id="1538"></string>
<string label="Agent Alerts User Name" id="1541"></string>
<string label="Agent Alerts Password" id="1542"></string>
</subject>
<subject label="DEV1" id="2656">
<ipaddress label="IP Address" id="2608">10.1.33.101</ipaddress>
<ipaddress label="Subnet Mask" id="2624">255.240.0.0</ipaddress>
<enum label="Auto Subnet Agent" id="2630" ordinal="1">Enabled</enum>
<enum label="Cable Quirk Settings" id="2635" ordinal="0">WA1+WA2</enum>
<bool label="Proxy ARP" id="2632">Disabled</bool>
<string label="WiFi SSID" id="2625"></string>
<string label="WiFi Key" id="2626"></string>
<enum label="SSID Visibility" id="2627" ordinal="0">Visible</enum>
</subject>
<subject label="UPLINK" id="35328">
<enum label="Mode" id="35440" ordinal="1">DHCP</enum>
<ipaddress label="IP Address" id="35376">192.168.100.249</ipaddress>
<ipaddress label="Subnet Mask" id="35392">255.255.255.0</ipaddress>
<ipaddress label="Default Gateway" id="35424">192.168.100.1</ipaddress>
<enum label="Ethernet Settings" id="35401" ordinal="0">Autonegotiation</enum>
<enum label="MTU Mode" id="35408" ordinal="0">Auto</enum>
<number label="MTU" id="35409">1500</number>
<enum label="Priority" id="35349" ordinal="1">First</enum>
<enum label="Probe Type" id="35352" ordinal="255">Any</enum>
<string label="Probe Hosts" id="35344"></string>
<number label="Probe Port (TCP)" id="35353">80</number>
<number label="Probe Interval A" id="35350">10</number>
<number label="Probe Interval B" id="35351">60</number>
<string label="User Name" id="33312"></string>
<string label="Password" id="33328"></string>
<enum label="ISP Authentication" id="33376" ordinal="0">None</enum>
<string label="ISP User Name" id="33344"></string>
<string label="ISP Password" id="33360"></string>
</subject>
<subject label="UPLINK2" id="39424">
<enum label="Mode" id="39536" ordinal="3">IP (and SMS)</enum>
<string label="WiFi SSID" id="39616"></string>
<string label="WiFi Key" id="39617"></string>
<string label="APN" id="37400"></string>
<string label="SIM PIN Code" id="39600"></string>
<ipaddress label="IP Address" id="39472">0.0.0.0</ipaddress>
<ipaddress label="Subnet Mask" id="39488">255.255.255.255</ipaddress>
<ipaddress label="Default Gateway" id="39520">0.0.0.0</ipaddress>
<enum label="Priority" id="39445" ordinal="2">Second</enum>
<enum label="Probe Type" id="39448" ordinal="255">Any</enum>
<string label="Probe Hosts" id="39440"></string>
<number label="Probe Port (TCP)" id="39449">80</number>
<number label="Probe Interval A" id="39446">180</number>
<number label="Probe Interval B" id="39447">0</number>
<string label="SMS Wakeup Parameters" id="39604"></string>
<string label="SMS Wakeup Secret" id="39607">Wakeup</string>
<string label="Init String" id="39603"></string>
<enum label="Speed" id="39609" ordinal="0">Auto</enum>
<enum label="Roaming" id="39610" ordinal="1">Allowed</enum>
<string label="Operator ID" id="39602"></string>
<bool label="Use Cache" id="39611">Yes</bool>
<string label="User Name" id="37408"></string>
<string label="Password" id="37424"></string>
</subject>
<subject label="DEV2" id="35712">
<enum label="Mode" id="35728" ordinal="1">Separation</enum>
<ipaddress label="IP Address" id="35744">10.2.33.101</ipaddress>
<ipaddress label="Subnet Mask" id="35760">255.240.0.0</ipaddress>
<enum label="Auto Subnet Agent" id="35766" ordinal="1">Enabled</enum>
<bool label="Proxy ARP" id="35784">Disabled</bool>
</subject>
<subject label="DEV3" id="39808">
<enum label="Mode" id="39824" ordinal="0">Bridge</enum>
<ipaddress label="IP Address" id="39840">0.0.0.0</ipaddress>
<ipaddress label="Subnet Mask" id="39856">255.255.255.0</ipaddress>
<enum label="Auto Subnet Agent" id="39862" ordinal="1">Enabled</enum>
<bool label="Proxy ARP" id="39880">Disabled</bool>
</subject>
<subject label="WLAN" id="52096">
<enum label="WiFi Mode" id="52098" ordinal="2">Client</enum>
<enum label="802.11 Mode" id="52115" ordinal="3">802.11b/g/n</enum>
<number label="Channel" id="52116">1</number>
<number label="TX Power" id="52119">0</number>
</subject>
<subject label="DNS" id="33536">
<bool label="Use ISP-Assigned DNS" id="33568">Yes</bool>
<ipaddress label="Primary DNS" id="33585">192.168.100.1</ipaddress>
<ipaddress label="Secondary DNS" id="33584">0.0.0.0</ipaddress>
<ipaddress label="[UPLINK2] Primary DNS" id="33586">0.0.0.0</ipaddress>
<ipaddress label="[UPLINK2] Secondary DNS" id="33587">0.0.0.0</ipaddress>
<bool label="DNS Proxy" id="33552">Enabled</bool>
</subject>
<subject label="DNS2" id="37632">
<bool label="Use ISP-Assigned DNS" id="37664">Yes</bool>
<ipaddress label="Primary DNS" id="37681">192.168.100.1</ipaddress>
<ipaddress label="Secondary DNS" id="37680">0.0.0.0</ipaddress>
<ipaddress label="[UPLINK2] Primary DNS" id="37682">0.0.0.0</ipaddress>
<ipaddress label="[UPLINK2] Secondary DNS" id="37683">0.0.0.0</ipaddress>
<bool label="DNS Proxy" id="37648">Enabled</bool>
</subject>
<subject label="DNS3" id="41728">
<bool label="Use ISP-Assigned DNS" id="41760">Yes</bool>
<ipaddress label="Primary DNS" id="41777">192.168.100.1</ipaddress>
<ipaddress label="Secondary DNS" id="41776">0.0.0.0</ipaddress>
<ipaddress label="[UPLINK2] Primary DNS" id="41778">0.0.0.0</ipaddress>
<ipaddress label="[UPLINK2] Secondary DNS" id="41779">0.0.0.0</ipaddress>
<bool label="DNS Proxy" id="41744">Enabled</bool>
</subject>
<subject label="DHCP" id="33792">
<enum label="DHCP Server Mode" id="33808" ordinal="0">Disabled</enum>
<ipaddress label="Pool Start" id="33888">0.0.0.0</ipaddress>
<ipaddress label="Pool Stop" id="33904">0.0.0.0</ipaddress>
<number label="Lease Time" id="33920">86400</number>
<string label="Domain Name" id="33840"></string>
<ipaddress label="WINS Server" id="33856">0.0.0.0</ipaddress>
<ipaddress label="WINS Secondary" id="33857">0.0.0.0</ipaddress>
</subject>
<subject label="DHCP2" id="37888">
<enum label="DHCP Server Mode" id="37904" ordinal="0">Disabled</enum>
<ipaddress label="Pool Start" id="37984">0.0.0.0</ipaddress>
<ipaddress label="Pool Stop" id="38000">0.0.0.0</ipaddress>
<number label="Lease Time" id="38016">86400</number>
<string label="Domain Name" id="37936"></string>
<ipaddress label="WINS Server" id="37952">0.0.0.0</ipaddress>
<ipaddress label="WINS Secondary" id="37953">0.0.0.0</ipaddress>
</subject>
<subject label="DHCP3" id="41984">
<enum label="DHCP Server Mode" id="42000" ordinal="0">Disabled</enum>
<ipaddress label="Pool Start" id="42080">0.0.0.0</ipaddress>
<ipaddress label="Pool Stop" id="42096">0.0.0.0</ipaddress>
<number label="Lease Time" id="42112">86400</number>
<string label="Domain Name" id="42032"></string>
<ipaddress label="WINS Server" id="42048">0.0.0.0</ipaddress>
<ipaddress label="WINS Secondary" id="42049">0.0.0.0</ipaddress>
</subject>
<subject label="Log" id="34816">
<bool label="Log Debug Messages" id="800">No</bool>
<enum label="System Watchdog" id="801" ordinal="1">Enabled</enum>
<string label="SMTP Server" id="34928"></string>
<string label="SMTP Auth Username" id="34946"></string>
<string label="SMTP Auth Password" id="34945"></string>
<string label="Sender E-mail Address" id="34944"></string>
<string label="Remote Syslog Server" id="34976"></string>
</subject>
<subject label="Time" id="35840">
<bool label="Auto update via NTP" id="35856">Yes</bool>
<string label="NTP Server" id="35872">ntp.secomea.com</string>
<number label="Time Zone Offset" id="35920" type="signed">0</number>
<enum label="Daylight Saving Time" id="35921" ordinal="0">No</enum>
<number label="Automatic Reboot" id="35904">0</number>
</subject>
<subject label="Serial" id="37120">
<enum label="Protocol" id="37136" ordinal="0">Vendor Agent Controlled</enum>
<enum label="Serial Driver" id="37137" ordinal="0">Standard</enum>
<number label="Serial Driver Frame Size" id="37138">0</number>
<number label="Serial Driver Frame Timeout" id="37139">0</number>
<number label="Add Latency" id="37141">0</number>
<number label="Send Break on Connect" id="37169">0</number>
<number label="Send Break on Disconnect" id="37170">0</number>
<number label="Port Number" id="37152">23</number>
<enum label="Interface" id="37153" ordinal="0">LinkManager only</enum>
<number label="Inactivity Timeout" id="37168">0</number>
<enum label="Baud Rate" id="37184" ordinal="4">9600</enum>
<enum label="Parity" id="37185" ordinal="0">None</enum>
<enum label="Data Bits" id="37186" ordinal="8">8</enum>
<enum label="Stop Bits" id="37187" ordinal="1">1</enum>
<enum label="Flow Control" id="37188" ordinal="0">None</enum>
<string label="Escape Character" id="37216">^K</string>
<number label="Monitor Buffer Size" id="37200">0</number>
<string label="AT Command{Response}" id="37142"></string>
</subject>
</basic>
<dns>
<static>
</static>
</dns>
<ipaliases>
</ipaliases>
<staticroutes>
</staticroutes>
<gm>
<agent>
<entry id="0">
<string label="Agent">SI:LAN</string>
<string label="Appliance Name">PLC</string>
<string label="Serial Number">#00</string>
<string label="Config">10.1.20.11</string>
</entry>
<entry id="1">
<string label="Agent">SI:LAN</string>
<string label="Appliance Name">PLC</string>
<string label="Serial Number">#01</string>
<string label="Config">10.1.20.12</string>
</entry>
<entry id="2">
<string label="Agent">CP:ZEN</string>
<string label="Appliance Name">HMI</string>
<string label="Serial Number">#02</string>
<string label="Config">10.1.20.14</string>
</entry>
<entry id="3">
<string label="Agent">SI:LAN</string>
<string label="Appliance Name">PLC</string>
<string label="Serial Number">#03</string>
<string label="Config">10.1.21.11</string>
</entry>
<entry id="4">
<string label="Agent">ZZ:L2</string>
<string label="Appliance Name">Layer2</string>
<string label="Serial Number">#04</string>
</entry>
<entry id="5">
<string label="Agent">CP:ZEN</string>
<string label="Appliance Name">HMI</string>
<string label="Serial Number">#05</string>
<string label="Config">10.1.21.14</string>
</entry>
<entry id="6">
<string label="Agent">BR:LAN</string>
<string label="Appliance Name">PLC</string>
<string label="Serial Number">#06</string>
<string label="Config">10.1.21.17</string>
</entry>
<entry id="7">
<string label="Agent">SI:LAN</string>
<string label="Appliance Name">PLC</string>
<string label="Serial Number">#07</string>
<string label="Config">10.1.33.11</string>
</entry>
<entry id="8">
<string label="Agent">CP:ZEN</string>
<string label="Appliance Name">HMI</string>
<string label="Serial Number">#08</string>
<string label="Config">10.1.33.14</string>
</entry>
<entry id="9">
<string label="Agent">CP:ZEN</string>
<string label="Appliance Name">HMI</string>
<string label="Serial Number">#09</string>
<string label="Config">10.1.22.14</string>
</entry>
</agent>
<relays>
<device>
</device>
<server>
</server>
</relays>
</gm>
<dhcpserver>
<leases>
</leases>
</dhcpserver>
<dcm>
<params>
<string label="Last changed">CcAiBnGiLkKeNlAb</string>
<enum label="Last source" ordinal="3">Maint Import</enum>
<ipaddress label="Last IP">0.0.0.0</ipaddress>
<string label="DCM JSON">{
&quot;ConfigName&quot; : &quot;DefaultConfig&quot;,
&quot;ConfigDescription&quot; : &quot;Default Configuration&quot;,
&quot;CheckpointInterval&quot; : 0,
&quot;Collectors&quot; : [
{
&quot;CollectorName&quot; : &quot;sim&quot;,
&quot;CollectorDescription&quot; : &quot;DCM Internal Simulation Server&quot;,
&quot;Protocol&quot; : &quot;Simulator&quot;,
&quot;SamplePoints&quot; : [
{
&quot;SampleName&quot; : &quot;Sim_sine&quot;,
&quot;SampleDescription&quot; : &quot;DCM simulation of sine curve&quot;,
&quot;SamplesSaved&quot; : 360,
&quot;SampleDataType&quot; : &quot;double&quot;,
&quot;SimulatorData&quot; : {
&quot;SimulatorFunction&quot; : &quot;sine&quot;,
&quot;SimulatorInitValue&quot; : 1000,
&quot;SimulatorIncValue&quot; : 100,
&quot;SimulatorSampleInterval&quot; : 1
}
}
]
}
],
&quot;DataServers&quot; : [
{
&quot;DatasrvName&quot; : &quot;dcc_iot&quot;,
&quot;DatasrvProtocol&quot; : &quot;SCI\/SPD&quot;,
&quot;ConnectRetryMin&quot; : 2,
&quot;ConnectRetryMax&quot; : 10,
&quot;IOPin&quot; : true,
&quot;SCISPDParams&quot; : {
&quot;DevCertName&quot; : &quot;dccdev&quot;,
&quot;DevPkeyName&quot; : &quot;dccpriv&quot;,
&quot;PushInterval&quot; : 0,
&quot;RootCAName&quot; : &quot;dccca&quot;,
&quot;SCIServerAddr&quot; : &quot;dcm-dcc.secomea.com&quot;,
&quot;SPDPort&quot; : 443,
&quot;Security&quot; : &quot;TLS1.2&quot;
}
}
]
}
</string>
<enum label="SSFD store" ordinal="1">mmcdisk</enum>
<number label="SSFD store Size">0</number>
<number label="SSFD db cache Size">0</number>
</params>
</dcm>
</config>

View File

@ -0,0 +1,10 @@
[GitHub - valinet/ExplorerPatcher: This project aims to enhance the working environment on Windows](https://github.com/valinet/ExplorerPatcher?tab=readme-ov-file)
#### ExplorerPatcher:
This project aims to enhance the working environment on Windows.
[Redirigiendo](https://answers.microsoft.com/en-us/windows/forum/all/it-is-2024-and-windows-taskbar-icons-are-still/55b6d0d7-88a1-4218-9f9e-eecb7e6b9223)
![[Pasted image 20250517141817.png]]

Binary file not shown.

After

Width:  |  Height:  |  Size: 109 KiB

View File

@ -0,0 +1,31 @@
***
[br-automation.com/en-ca/products/industrial-pcs/panel-pc-3100-multi-touch/system-units/5ppc3100kbu2-000/](https://www.br-automation.com/en-ca/products/industrial-pcs/panel-pc-3100-multi-touch/system-units/5ppc3100kbu2-000/)
AUDIO: [__Industrial BIOS Security_ Fortifying Your B&R HMIs Against Cyber Threats__.mp3](file:///C:%5CTrabajo%5CSIDEL%5C00%20-%20MASTER%5CMIXER%5CDocuments%5C__Industrial%20BIOS%20Security_%20Fortifying%20Your%20B&R%20HMIs%20Against%20Cyber%20Threats__.mp3)
Per migliorare la sicurezza dei pannelli B&R PC HMI 3100, si raccomanda di implementare le seguenti configurazioni a livello BIOS:
1. **Gestione delle Password:** Impostare una **Password di Supervisore** robusta e unica per proteggere l'accesso e la modifica delle impostazioni del BIOS. Considerare l'uso di una Password Utente se è necessario impedire l'avvio del sistema operativo a personale non autorizzato.
2. **Secure Boot:** Abilitare la modalità di avvio **UEFI** e successivamente abilitare **Secure Boot**. Utilizzare le policy di fabbrica (chiavi predefinite) a meno che non vi sia una necessità stringente e ben compresa di personalizzare le chiavi (PK, KEK, db, dbx), procedendo in tal caso con estrema cautela.
3. **Trusted Platform Module (TPM 2.0):** Abilitare il **TPM 2.0** seguendo le specifiche indicazioni di B&R (inclusa la disabilitazione di Intel PTT, se necessario).3 Considerare l'utilizzo del TPM in congiunzione con la crittografia dell'intero disco (ad esempio, BitLocker), assicurandosi di gestire in modo impeccabile e sicuro le chiavi di ripristino.
4. **Controllo dell'Avvio e delle Porte I/O:**
- Disabilitare la possibilità di **avviare il sistema da supporti esterni** non strettamente necessari (come dispositivi USB o eSATA).
- Configurare o **disabilitare selettivamente le porte I/O** (come porte COM, porte USB dati, controller LAN integrato, controller audio) in base alle effettive necessità dell'applicazione HMI, per ridurre la superficie di attacco.
5. **Aggiornamenti del Firmware:** Mantenere il **firmware del BIOS costantemente aggiornato** all'ultima versione stabile fornita da B&R, seguendo scrupolosamente le procedure di aggiornamento e prendendo le dovute precauzioni per evitare interruzioni durante il processo.
6. **Hardening Aggiuntivo:** Disabilitare funzionalità hardware non utilizzate (come Intel VT-x/VT-d se non richieste) e rivedere periodicamente tutte le impostazioni del BIOS.
![[Pasted image 20250428111855.png|800]]
![[20250512_114108.jpg|800]]
* Secure Boot Database
![[20250512_114209.jpg|800]]
![[20250512_114224.jpg|800]]
* Supervisor Password

View File

@ -0,0 +1,523 @@
## 1. Introduzione alla Sicurezza del BIOS sui Pannelli B&R PC HMI 3100
La sicurezza del firmware, in particolare del Basic Input/Output System (BIOS) o della sua evoluzione Unified Extensible Firmware Interface (UEFI), riveste un'importanza cruciale negli ambienti industriali. Il BIOS è il primo strato di software che viene eseguito all'avvio di un sistema e una sua compromissione può minare la sicurezza dell'intero Human-Machine Interface (HMI), con potenziali ripercussioni sulla continuità operativa, sulla sicurezza degli operatori e sulla protezione della proprietà intellettuale. Gli HMI, essendo spesso punti di accesso nevralgici ai sistemi di controllo industriale (ICS), sono bersagli appetibili per attacchi mirati. Comprendere e configurare correttamente le funzionalità di sicurezza offerte dal BIOS è quindi un passo fondamentale per la protezione di questi dispositivi critici.
I pannelli B&R PC HMI 3100 sono equipaggiati con un firmware UEFI BIOS fornito da Insyde Software, noto come InsydeH2O.1 Questo tipo di BIOS è ampiamente diffuso e offre funzionalità di sicurezza moderne, tra cui il Secure Boot e il supporto per il Trusted Platform Module (TPM) 2.0, come confermato per i Panel PC 3100.1 Il BIOS InsydeH2O è progettato con un approccio modulare e per supportare le più recenti tecnologie e specifiche di sicurezza, consentendo ai produttori di Original Equipment Manufacturer (OEM) come B&R di implementare un solido strato di sicurezza a livello firmware.2
L'obiettivo di questo report è fornire una guida esaustiva e pratica per la configurazione ottimale delle opzioni di sicurezza disponibili nel BIOS InsydeH2O dei pannelli B&R PC HMI 3100. Data la difficoltà, segnalata dall'utente, nel reperire un manuale specifico del BIOS B&R focalizzato esclusivamente sulle impostazioni di sicurezza, questo documento si propone di consolidare le informazioni disponibili specifiche per i prodotti B&R (estratte da manuali utente generali e note tecniche) con le direttive e le funzionalità generali del BIOS InsydeH2O (come le linee guida sulla sicurezza UEFI).
È importante sottolineare una potenziale carenza documentale: l'assenza di un manuale B&R dedicato specificamente alla configurazione di sicurezza del BIOS InsydeH2O per i Panel PC 3100 implica che gli utenti debbano spesso estrapolare informazioni da manuali di prodotto più generici. Questi manuali, come il "Panel PC 3100 panel mount device User's manual" 3 o discussioni in forum della comunità B&R 5, toccano solo marginalmente alcune impostazioni del BIOS, come l'abilitazione del TPM o la configurazione delle porte COM. Di conseguenza, gli utenti potrebbero dover combinare queste informazioni frammentarie con la documentazione generale di InsydeH2O o con le best practice del settore, come le linee guida della National Security Agency (NSA) statunitense per la sicurezza UEFI.6 Questo approccio frammentato può portare a configurazioni di sicurezza subottimali o alla mancata implementazione di funzionalità cruciali se l'utente non è particolarmente proattivo e meticoloso nella ricerca e nell'applicazione di tali informazioni. Questo report si prefigge di colmare questa lacuna, offrendo un quadro più strutturato e completo delle opzioni di sicurezza del BIOS per i dispositivi in questione.
## 2. Accesso e Navigazione nell'Utility di Configurazione del BIOS InsydeH2O
Per poter configurare le impostazioni di sicurezza, è innanzitutto necessario accedere all'utility di configurazione del BIOS, spesso denominata Setup Utility (SCU) o BIOS Setup.
Procedure standard per accedere al BIOS Setup Utility (SCU) all'avvio del sistema:
L'accesso al BIOS InsydeH2O avviene tipicamente durante le primissime fasi di avvio del pannello HMI, prima che il sistema operativo inizi il suo caricamento. La procedura standard prevede la pressione ripetuta di un tasto specifico subito dopo l'accensione del dispositivo. Per i sistemi con BIOS InsydeH2O, i tasti più comuni sono Delete (Canc) o F2.7 In alcuni casi, potrebbe essere utilizzato il tasto F12 per accedere a un menu di avvio, dal quale poi selezionare l'ingresso nel setup del BIOS, o altri tasti specifici a seconda della configurazione OEM.8 È consigliabile premere il tasto designato più volte consecutivamente per assicurarsi che l'input venga registrato dal sistema prima che la finestra temporale per l'accesso al BIOS si chiuda. Ad esempio, alcune guide per dispositivi IGEL con InsydeH2O indicano di tenere premuto il tasto o [F2] fino alla comparsa del menu.7
Descrizione della struttura tipica dei menu del BIOS InsydeH2O per familiarizzare l'utente:
Una volta entrati nell'utility di configurazione del BIOS InsydeH2O, ci si troverà di fronte a un'interfaccia testuale navigabile tramite tastiera (solitamente i tasti freccia per muoversi, Invio per selezionare, Esc per tornare indietro o uscire, e F10 per salvare le modifiche ed uscire 7). La struttura dei menu è generalmente organizzata in schede (tab) principali, sebbene la loro esatta denominazione e il contenuto possano subire leggere variazioni a seconda delle personalizzazioni apportate dall'OEM (B&R in questo caso).
Una struttura tipica include:
- **Main:** Questa scheda visualizza informazioni generali sul sistema, come la versione del BIOS, il tipo di processore, la quantità di memoria RAM installata, la data e l'ora del sistema.8 Solitamente, le opzioni in questa scheda sono puramente informative e non contengono impostazioni di sicurezza configurabili.
- **Advanced:** Qui si trovano le configurazioni avanzate relative ai componenti hardware del sistema, come le impostazioni della CPU (ad esempio, per tecnologie di virtualizzazione), del chipset, delle periferiche integrate (SATA, USB), e altre funzionalità specifiche della piattaforma. Il manuale utente del Panel PC 3100 menziona, ad esempio, il sottomenu "Advanced - Chipset configuration" per la gestione del Platform Trust Technology (PTT) in relazione al TPM.3 Un altro esempio, proveniente da una discussione della comunità B&R, indica il percorso "Advanced → OEM Features → Super IO" per la configurazione delle porte COM.5
- **Security:** Questa è la scheda cruciale per tutte le impostazioni direttamente correlate alla sicurezza. Qui si trovano le opzioni per impostare e gestire le password del BIOS (Supervisore e Utente), configurare il Trusted Platform Module (TPM) e, in alcune implementazioni, gestire aspetti del Secure Boot.3
- **Boot:** Questa scheda contiene tutte le opzioni relative al processo di avvio del sistema. Include la configurazione della sequenza di avvio (boot order), la selezione della modalità di avvio (UEFI o Legacy/CSM), e le impostazioni per abilitare e gestire il Secure Boot.7
- **Exit:** Da questa scheda è possibile uscire dall'utility del BIOS, scegliendo se salvare le modifiche apportate ("Exit Saving Changes" o "Save Changes and Exit"), scartare le modifiche ("Exit Discarding Changes" o "Discard Changes and Exit"), o caricare le impostazioni predefinite del BIOS ("Load Setup Defaults" o "Load Optimized Defaults"). Il tasto F10 è frequentemente associato all'opzione "Save and Exit".7
È importante notare che, sebbene la struttura generale dei menu di InsydeH2O (Main, Advanced, Security, Boot, Exit) sia abbastanza standardizzata, la posizione esatta di alcune sotto-opzioni o la loro effettiva disponibilità possono essere influenzate dalle personalizzazioni specifiche implementate da B&R. Ad esempio, il percorso menzionato per la configurazione delle porte COM (`Advanced → OEM Features → Super IO → COM A`) 5 è verosimilmente una personalizzazione di B&R all'interno della struttura più ampia di InsydeH2O. Pertanto, mentre le funzionalità di sicurezza principali come le password e il Secure Boot si troveranno con alta probabilità nelle schede "Security" e "Boot" rispettivamente, alcune configurazioni specifiche di periferiche potrebbero risiedere in sottomenu personalizzati da B&R. L'utente dovrà quindi navigare attentamente all'interno dei menu per localizzare tutte le opzioni rilevanti per la sicurezza.
## 3. Gestione Avanzata delle Password del BIOS
Le password del BIOS rappresentano la prima e fondamentale linea di difesa contro accessi non autorizzati alla configurazione del firmware e, in alcuni casi, all'avvio stesso del sistema. Il BIOS InsydeH2O tipicamente offre due livelli principali di password: la Password di Supervisore e la Password Utente.11
Password di Supervisore (Administrator/Supervisor Password):
Questa password è la più critica per la sicurezza del BIOS.
- **Guida all'impostazione, modifica e rimozione sicura:**
- L'opzione per impostare, modificare o rimuovere la Password di Supervisore si trova generalmente nella scheda "Security" dell'utility di configurazione del BIOS.8
- **Per impostare:** Selezionare l'opzione "Set Supervisor Password" (o dicitura simile). Verrà richiesto di inserire la nuova password e di confermarla digitandola una seconda volta.
- **Per modificare:** Se una Password di Supervisore è già impostata, per modificarla sarà necessario prima inserire la password corrente. Successivamente, si potranno inserire la nuova password e la sua conferma.13
- **Per rimuovere (disabilitare):** Selezionare l'opzione per impostare/modificare la Password di Supervisore. Inserire la password corrente quando richiesto. Quando viene chiesto di inserire la nuova password, lasciare il campo vuoto e premere Invio. Confermare lasciando vuoto anche il campo di conferma della nuova password e premere nuovamente Invio.13 Questo procedimento dovrebbe disabilitare la password.
- **Implicazioni e privilegi associati:** La Password di Supervisore protegge l'accesso e la modifica di _tutte_ le impostazioni del BIOS. Ciò include la capacità di cambiare la sequenza di avvio, abilitare o disabilitare Secure Boot, configurare il TPM, abilitare o disabilitare periferiche hardware integrate (come porte USB o seriali), e modificare o rimuovere la Password Utente.11 È quindi essenziale per prevenire qualsiasi modifica non autorizzata alle configurazioni di sicurezza del sistema. In molti BIOS InsydeH2O, diverse operazioni sensibili, come la disabilitazione di Secure Boot o la modifica delle sue chiavi, richiedono che una Password di Supervisore sia stata precedentemente impostata e venga inserita per autorizzare tali modifiche.7
Password Utente (User Password):
Questa password offre un livello di protezione diverso, focalizzato sull'avvio del sistema.
- **Procedura per l'impostazione, modifica e rimozione:** Le opzioni per la Password Utente ("Set User Password" o simile) si trovano anch'esse tipicamente nella scheda "Security". Le procedure per impostarla, modificarla o rimuoverla sono analoghe a quelle della Password di Supervisore.
- **Funzionalità e livello di protezione:** Se impostata, la Password Utente viene richiesta ad ogni avvio del sistema, prima del caricamento del sistema operativo.11 Se la password corretta non viene fornita, il processo di avvio si interrompe. È importante notare che la Password Utente, da sola, non impedisce l'accesso all'utility di configurazione del BIOS se non è impostata anche una Password di Supervisore (o se si conosce la Password di Supervisore). In molte implementazioni, se la Password di Supervisore viene rimossa o disabilitata, anche la Password Utente viene automaticamente disabilitata.13
Interdipendenza delle Password e Implicazioni sulla Sicurezza:
La Password di Supervisore assume un ruolo gerarchicamente superiore e spesso funge da prerequisito per la configurazione efficace di altre importanti funzionalità di sicurezza. Ad esempio, documenti relativi alla configurazione di Secure Boot su sistemi con BIOS InsydeH2O sottolineano che è "cruciale impostare una password del BIOS (supervisore) per impedire agli utenti di disabilitare Secure Boot".7 Altre fonti confermano che per disabilitare Secure Boot è necessario prima impostare una Password di Supervisore.8 Questo crea una dipendenza fondamentale: senza una Password di Supervisore robusta e gestita in modo sicuro, la protezione offerta da funzionalità avanzate come Secure Boot può essere facilmente aggirata da chiunque abbia accesso fisico al pannello HMI. Un utente malintenzionato con accesso fisico a un pannello HMI il cui BIOS non è protetto da una Password di Supervisore (o se la password è debole, predefinita o facilmente indovinabile) potrebbe entrare nel BIOS, disabilitare Secure Boot, modificare l'ordine di avvio per caricare un sistema operativo compromesso da un dispositivo USB, e bypassare così molte delle misure di sicurezza implementate a livello di sistema operativo. La Password di Supervisore è quindi il custode dell'integrità della configurazione del BIOS stesso.
Impostare solamente una Password Utente, senza una Password di Supervisore, offre un livello di protezione significativamente limitato. Sebbene impedisca l'avvio del sistema operativo a un utente non autorizzato, non protegge le impostazioni del BIOS. Un utente non autorizzato potrebbe non essere in grado di avviare il sistema operativo, ma se non è presente una Password di Supervisore, potrebbe comunque riuscire ad accedere all'utility di configurazione del BIOS (se il tasto di accesso è noto) e visualizzare (anche se non modificare) le configurazioni. Questa visualizzazione potrebbe fornire informazioni utili per pianificare un attacco successivo. La Password Utente blocca l'avvio del sistema, mentre la Password di Supervisore blocca le modifiche al BIOS.11 Se l'obiettivo primario è impedire l'uso non autorizzato della macchina, la Password Utente può essere sufficiente. Tuttavia, se l'obiettivo è proteggere l'integrità della configurazione di sicurezza della macchina come le impostazioni di Secure Boot, TPM, e il controllo delle porte I/O allora la Password di Supervisore è indispensabile. Il fatto che la disabilitazione della Password di Supervisore spesso comporti la disabilitazione automatica anche della Password Utente 13 ne sottolinea ulteriormente la sua superiorità gerarchica e la sua importanza fondamentale.
Linee guida per la creazione di password robuste e best practice per la loro gestione:
La robustezza delle password del BIOS è essenziale. InsydeH2O supporta le best practice del settore per la creazione e la manutenzione delle password di amministratore (supervisore).6 Si raccomanda di:
- Utilizzare password che combinino lettere maiuscole e minuscole, numeri e, se il BIOS lo permette, caratteri speciali.
- Scegliere password di lunghezza adeguata (ad esempio, almeno 8-12 caratteri, se supportato).
- Evitare password banali, sequenze di tastiera, date di nascita, nomi comuni o informazioni facilmente associabili all'azienda o al dispositivo.
- Cambiare le password del BIOS periodicamente, specialmente in ambienti industriali dove il personale può cambiare o dove il rischio di compromissione è più elevato.
- Conservare le password del BIOS in un luogo estremamente sicuro (ad esempio, un password manager crittografato o una cassaforte fisica), accessibile solo a personale strettamente autorizzato. La perdita della Password di Supervisore può rendere molto difficile o impossibile la riconfigurazione del BIOS senza procedure di recupero complesse o l'intervento del produttore.
**Tabella 1: Riepilogo delle Tipologie di Password del BIOS InsydeH2O**
| | | | | |
|---|---|---|---|---|
|**Tipo di Password**|**Scopo Principale**|**Azioni Controllate/Impedite**|**Menu Tipico di Configurazione**|**Note/Raccomandazioni**|
|**Password di Supervisore** (Administrator/Supervisor)|Proteggere l'accesso e la modifica delle impostazioni del BIOS.|Modifica di tutte le impostazioni del BIOS, inclusa la configurazione di Secure Boot, TPM, password utente, sequenza di avvio, abilitazione/disabilitazione periferiche.|"Security"|Essenziale per la sicurezza del firmware. Deve essere robusta e gestita con cura. Spesso richiesta per modificare impostazioni di sicurezza critiche.|
|**Password Utente** (User/Power-On)|Impedire l'avvio del sistema operativo a utenti non autorizzati.|Avvio del sistema operativo.|"Security"|Utile per controllare l'accesso al sistema operativo. Da sola, non protegge le impostazioni del BIOS. Spesso disabilitata se la Password di Supervisore viene rimossa.|
Questa tabella fornisce un riferimento rapido per comprendere le differenze funzionali tra i due tipi di password e l'importanza di implementarle correttamente in base al livello di sicurezza desiderato.
## 4. Implementazione e Configurazione Dettagliata di Secure Boot
UEFI Secure Boot è una caratteristica di sicurezza fondamentale progettata per prevenire l'esecuzione di software non autorizzato o malevolo durante il processo di avvio del sistema.
Spiegazione approfondita dei principi di UEFI Secure Boot e del suo meccanismo di verifica della catena di fiducia:
Secure Boot è uno standard UEFI che garantisce che ogni componente software caricato durante la sequenza di avvio inclusi il firmware della piattaforma, i driver UEFI, le applicazioni UEFI e il bootloader del sistema operativo sia firmato digitalmente. La firma di ciascun componente viene convalidata rispetto a un database di firme (o certificati) attendibili memorizzato in modo sicuro nel firmware stesso.6 Se un componente non è firmato, o se la sua firma non corrisponde a una firma attendibile o corrisponde a una firma presente in un database di firme revocate (dbx), il BIOS impedirà il caricamento di tale componente. Questo meccanismo crea una "catena di fiducia" che parte dal firmware e si estende fino al sistema operativo, proteggendo il sistema da malware come i rootkit a livello di boot o bootloader non autorizzati che potrebbero compromettere la sicurezza del sistema prima ancora che il sistema operativo principale sia caricato.11
Procedura passo-passo per l'abilitazione di UEFI Boot e successivamente di Secure Boot:
Per implementare Secure Boot, è necessario seguire una sequenza specifica:
1. **Abilitare la Modalità di Avvio UEFI:** Secure Boot è una funzionalità esclusiva della modalità UEFI. Pertanto, il primo passo è assicurarsi che il sistema sia configurato per avviarsi in modalità UEFI nativa, e non in modalità Legacy BIOS (a volte chiamata CSM - Compatibility Support Module). Questa impostazione si trova tipicamente nella scheda "Boot" dell'utility di configurazione del BIOS, dove si può selezionare un'opzione come "UEFI Boot Type" o "Boot Mode" impostandola su "UEFI".7 La National Security Agency (NSA) degli Stati Uniti raccomanda di abilitare l'avvio UEFI come primo passo fondamentale per migliorare la sicurezza del firmware, poiché la modalità Legacy è intrinsecamente meno sicura.6
2. **Abilitare Secure Boot:** Una volta che il sistema è configurato per l'avvio UEFI, l'opzione per abilitare Secure Boot diventa disponibile. Questa opzione si trova solitamente nella scheda "Boot" o, in alcune implementazioni, nella scheda "Security".7 Potrebbe essere necessario navigare in un sottomenu specifico, come "Secure Boot Option" 7 o "Secure Boot Configuration".15 L'opzione tipica è un semplice toggle "Enable/Disable".
3. **Importanza della Password di Supervisore:** Come discusso in precedenza, la modifica delle impostazioni di Secure Boot è un'operazione critica per la sicurezza. Pertanto, è fortemente raccomandato, e spesso richiesto dal BIOS stesso, impostare una Password di Supervisore prima di tentare di abilitare o disabilitare Secure Boot o di gestirne le chiavi.7 Questo impedisce a utenti non autorizzati di manomettere questa fondamentale funzionalità di sicurezza.
Gestione Esperta delle Chiavi di Secure Boot (PK, KEK, db, dbx):
Il funzionamento di Secure Boot si basa su diversi database di chiavi crittografiche memorizzati nel firmware:
- **PK (Platform Key):** È la chiave radice della fiducia per Secure Boot. Solitamente, l'OEM (B&R, in questo caso, o il produttore della scheda madre) installa la propria PK o una PK standard. Il proprietario della PK (o chi ne ha il controllo) ha l'autorità di aggiornare il database KEK.6 La gestione della PK è estremamente critica; la sua compromissione minerebbe l'intera catena di fiducia di Secure Boot.
- **KEK (Key Exchange Keys):** È un database di chiavi che sono autorizzate a modificare i database delle firme (db e dbx).6 Tipicamente, questo database contiene le chiavi dei fornitori di sistemi operativi (come Microsoft) e potenzialmente altre chiavi dell'OEM, permettendo loro di fornire aggiornamenti sicuri alle firme dei bootloader e dei driver.
- **db (Authorized Signature Database):** Questo database contiene le firme digitali (o gli hash dei file binari) dei bootloader UEFI, delle applicazioni UEFI e dei driver del sistema operativo che sono considerati attendibili e quindi autorizzati ad essere caricati ed eseguiti durante il processo di avvio.6
- **dbx (Forbidden Signature Database / Revocation Database):** Questo database contiene le firme digitali (o gli hash) di componenti software noti per essere malevoli, vulnerabili o non più attendibili. Ai componenti le cui firme o hash corrispondono a una voce in dbx viene impedita l'esecuzione, anche se fossero firmati da una chiave presente nel db.6 Questo database viene aggiornato per bloccare malware noti o certificati compromessi.
Le utility di configurazione del BIOS InsydeH2O, a seconda dell'implementazione dell'OEM, possono offrire le seguenti opzioni avanzate per la gestione di queste chiavi (spesso sotto un menu "Administer Secure Boot" o "Secure Boot Custom Policy" 6):
- **Visualizzazione delle Chiavi (View Secure Boot Keys):** Permette di ispezionare il contenuto attuale della PK, delle KEK, del db e del dbx.15
- **Ripristino ai Valori di Fabbrica (Factory Policy / Restore Secure Boot to Factory Settings / Reset All Keys to Default):** Questa opzione cancella tutte le chiavi personalizzate e ripristina la PK, le KEK, il db e il dbx ai valori predefiniti dal produttore.6 È un'opzione utile se la configurazione personalizzata causa problemi di avvio o se si sospetta una compromissione delle chiavi personalizzate.
- **Eliminazione delle Chiavi (Delete PK / Delete All Keys / Erase all Secure Boot Settings):** Queste opzioni rimuovono la PK e/o le altre chiavi, portando il sistema in "Setup Mode".6 In Setup Mode, Secure Boot è effettivamente disabilitato e il sistema permette l'installazione di nuove chiavi (ad esempio, una nuova PK). L'eliminazione della PK è un'operazione particolarmente critica e deve essere eseguita con estrema cautela, poiché rende il sistema vulnerabile fino a quando una nuova PK valida non viene installata e Secure Boot non viene riattivato in "User Mode".
- **Modalità Setup vs. Utente (Setup Mode / User Mode):** Quando Secure Boot è in "Setup Mode", le policy di sicurezza non vengono applicate e le chiavi possono essere gestite liberamente. Quando è in "User Mode" e Secure Boot è abilitato, il sistema esegue la verifica crittografica di tutti i componenti di avvio rispetto ai database db e dbx.15 Il passaggio da Setup Mode a User Mode avviene tipicamente dopo l'installazione della PK.
Personalizzazione di Secure Boot (Custom Policy) e Registrazione di Certificati Personalizzati:
In alcuni scenari, potrebbe essere necessario personalizzare la configurazione di Secure Boot, ad esempio per utilizzare sistemi operativi non firmati da Microsoft (alcune distribuzioni Linux), bootloader personalizzati, o driver UEFI specifici che non sono firmati da un'autorità di certificazione (CA) le cui chiavi sono presenti di default nel db.
- Le linee guida NSA suggeriscono che la personalizzazione di Secure Boot può rafforzare ulteriormente la sicurezza, ad esempio registrando nel db solo il certificato specifico che firma il bootloader del sistema operativo effettivamente in uso, piuttosto che fare affidamento su un certificato CA più generico che potrebbe firmare molti altri bootloader.6
- Il BIOS InsydeH2O può offrire opzioni sotto "Custom Policy" o simili per registrare (enroll) manualmente certificati o firme nel db o nuove KEK.6 Questo processo richiede tipicamente di avere il file del certificato (spesso in formato `.cer`, `.der`, o `.auth`) o il file della firma su un supporto accessibile dal BIOS (come una chiavetta USB) e di seguire una procedura guidata per selezionare e installare la chiave/firma nel database appropriato.
- È fondamentale comprendere che la personalizzazione di Secure Boot è un'operazione avanzata e potenzialmente rischiosa. Un errore nella gestione delle chiavi o nella registrazione di certificati non validi può facilmente rendere il sistema non avviabile ("bricked"). Per i pannelli HMI in ambienti industriali, la stabilità e l'affidabilità sono prioritarie. Pertanto, qualsiasi personalizzazione di Secure Boot dovrebbe essere eseguita solo dopo un'attenta valutazione, con una profonda comprensione della Public Key Infrastructure (PKI) e delle procedure coinvolte, e dopo test approfonditi in un ambiente non di produzione. La documentazione B&R disponibile non fornisce guide specifiche su come eseguire la personalizzazione di Secure Boot sui Panel PC 3100.
**Metodi per la verifica dello stato di attivazione e funzionamento di Secure Boot:**
- **All'interno del BIOS:** L'utility di configurazione del BIOS stessa dovrebbe indicare chiaramente lo stato corrente di Secure Boot (ad esempio, "Secure Boot Status: Enabled" o "Disabled").15
- **Dal Sistema Operativo:** Molti sistemi operativi forniscono strumenti per verificare lo stato di Secure Boot. Ad esempio, in Windows, è possibile utilizzare l'utility `msinfo32.exe` (System Information), che mostrerà lo "Stato Avvio Protetto", oppure eseguire comandi PowerShell come `Confirm-SecureBootUEFI`. Anche diverse distribuzioni Linux offrono comandi per interrogare lo stato di Secure Boot.
Le impostazioni predefinite di Secure Boot (Factory Policy) sono progettate per garantire la compatibilità con i sistemi operativi più diffusi (come Windows) e con il software fornito dall'OEM. Questo approccio, sebbene comodo, potrebbe creare una sorta di "vendor lock-in" o limitare la flessibilità se si desidera utilizzare sistemi operativi alternativi o versioni meno recenti che non supportano pienamente Secure Boot o non sono firmati con chiavi pre-caricate. In tali casi, l'utente potrebbe essere costretto a disabilitare Secure Boot (compromettendo la sicurezza) o ad affrontare il complesso processo di personalizzazione delle chiavi. L'opzione "Restore Secure Boot to Factory Settings" 7 rappresenta una via di ritorno sicura a una configurazione nota e funzionante, ma potrebbe non essere adatta a tutti gli scenari d'uso. Per un HMI industriale, la priorità è spesso la stabilità e la sicurezza; quindi, attenersi alle policy di fabbrica o a personalizzazioni estremamente ben testate, documentate e giustificate è generalmente la scelta più prudente.
**Tabella 2: Gestione delle Chiavi di Secure Boot nel BIOS InsydeH2O**
| | | | |
|---|---|---|---|
|**Tipo di Chiave/Database**|**Descrizione Funzionale**|**Opzioni Comuni di Gestione nel BIOS**|**Implicazioni della Modifica**|
|**PK** (Platform Key)|Chiave radice che stabilisce la fiducia nella piattaforma. Controlla gli aggiornamenti alla KEK.|Visualizza, Elimina (mette in Setup Mode), Installa/Aggiorna (in Setup Mode).|L'eliminazione disabilita Secure Boot. Una PK compromessa o errata invalida la catena di fiducia.|
|**KEK** (Key Exchange Keys)|Database di chiavi autorizzate a modificare i database db e dbx.|Visualizza, Aggiungi, Elimina, Ripristina Default.|L'eliminazione di KEK necessarie può impedire aggiornamenti a db/dbx da parte di OS vendor. L'aggiunta di KEK non attendibili è un rischio.|
|**db** (Authorized Signature Database)|Database di firme/hash di software di avvio attendibile.|Visualizza, Aggiungi Firma/Certificato, Elimina Firma/Certificato, Ripristina Default.|L'aggiunta di firme non valide può bloccare l'avvio. L'eliminazione di firme necessarie può impedire l'avvio di OS/componenti legittimi.|
|**dbx** (Forbidden Signature Database)|Database di firme/hash di software di avvio revocato o malevolo.|Visualizza, Aggiungi Firma/Certificato, Elimina Firma/Certificato, Ripristina Default.|L'eliminazione di voci da dbx può permettere l'esecuzione di malware noto. L'aggiunta errata potrebbe bloccare componenti legittimi.|
Questa tabella riassuntiva è intesa ad aiutare l'utente a comprendere il ruolo di ciascun componente nella gestione di Secure Boot e le potenziali conseguenze delle modifiche apportate, specialmente considerando la limitata documentazione specifica di B&R su queste configurazioni avanzate.
## 5. Sfruttamento del Trusted Platform Module (TPM 2.0)
Il Trusted Platform Module (TPM) è un componente hardware dedicato che fornisce funzionalità crittografiche essenziali per rafforzare la sicurezza della piattaforma.
Descrizione del TPM 2.0, la sua presenza sui Panel PC 3100 e il suo contributo fondamentale alla sicurezza hardware:
Il TPM è un microchip sicuro, conforme alle specifiche del Trusted Computing Group (TCG), progettato per fornire funzionalità di sicurezza basate su hardware. Queste includono la generazione sicura e la memorizzazione di chiavi crittografiche, la creazione di misurazioni dell'integrità dei componenti di sistema durante l'avvio (registrate nei Platform Configuration Registers - PCRs), e la capacità di attestare lo stato della piattaforma a entità remote.6 I pannelli B&R PC HMI 3100 sono dotati di un TPM 2.0 1, che rappresenta la versione più recente e sicura dello standard. Il BIOS InsydeH2O utilizzato su questi pannelli supporta pienamente il TPM 2.0.2
Guida all'Abilitazione del TPM nel BIOS dei B&R Panel PC 3100:
Il manuale utente del Panel PC 3100 di B&R fornisce istruzioni specifiche per l'abilitazione del TPM, che risulta disabilitato per impostazione predefinita 3:
1. Accedere all'utility di configurazione del BIOS.
2. Navigare fino al menu **"Security"**.
3. Trovare l'opzione relativa al TPM (potrebbe essere etichettata come "TPM Device", "TPM Support", o simile) e impostarla su **"Enabled"** (o l'equivalente opzione di abilitazione).
4. Successivamente, è necessario navigare nel menu **"Advanced"**, poi nel sottomenu **"Chipset configuration"**.
5. All'interno di "Chipset configuration", individuare il parametro **"Platform Trust Technology (PTT)"** (o Intel PTT) e impostarlo su **"Disabled"**.
Questo secondo passaggio è cruciale: Platform Trust Technology è una soluzione TPM basata su firmware fornita da Intel e integrata in alcuni chipset. Se sia il TPM discreto (il chip fisico) sia il PTT basato su firmware sono disponibili, è necessario specificare al BIOS quale utilizzare. Disabilitando PTT, si indica al sistema di utilizzare il TPM discreto hardware. Senza questo passaggio, anche se il TPM è abilitato nel menu "Security", potrebbe non funzionare come previsto perché il PTT basato su firmware potrebbe avere la precedenza. Questa è un'informazione di configurazione specifica e di grande valore fornita da B&R, che difficilmente si troverebbe in una guida generica sul TPM. È sempre raccomandato seguire le istruzioni specifiche presenti nel BIOS Setup del dispositivo.
Utilizzo del TPM con funzionalità del sistema operativo come BitLocker per la crittografia dell'intero disco:
Una delle applicazioni più comuni e potenti del TPM è il suo utilizzo in congiunzione con software di crittografia dell'intero disco, come Microsoft BitLocker Drive Encryption (in Windows) o soluzioni analoghe in altri sistemi operativi.3
- Il TPM può generare e memorizzare in modo sicuro le chiavi crittografiche utilizzate per cifrare l'intero volume di sistema. Poiché le chiavi sono conservate all'interno del chip TPM, sono protette da attacchi software e anche da tentativi di accesso fisico se l'unità di archiviazione (ad esempio, SSD o CFast card) viene rimossa dal pannello HMI e collegata a un altro sistema.
- Inoltre, il TPM può "sigillare" la chiave di decrittografia del volume in base allo stato della piattaforma, misurato durante l'avvio. Il BIOS e i componenti di avvio iniziali registrano le loro misurazioni (hash) nei PCR del TPM. Se queste misurazioni cambiano rispetto a quelle registrate al momento della cifratura (ad esempio, a causa di una modifica non autorizzata del BIOS, del bootloader, o di un tentativo di avviare un sistema operativo diverso), il TPM non rilascerà automaticamente la chiave di decrittografia, richiedendo un intervento manuale (come l'inserimento di una chiave di ripristino).6 Questo protegge contro tentativi di manomissione offline del sistema.
Avvertenze cruciali sulla gestione delle chiavi di crittografia e sul rischio di perdita di dati:
L'utilizzo del TPM per la crittografia del disco introduce considerazioni importanti sulla gestione delle chiavi. Il manuale B&R 3 sottolinea un aspetto critico:
- **Se la password o la chiave di ripristino di BitLocker (o di un'altra soluzione di crittografia) viene persa, diventa impossibile decrittografare i dati.** Questo può accadere, ad esempio, dopo un aggiornamento del BIOS o del firmware del TPM, poiché tali aggiornamenti possono alterare le misurazioni della piattaforma a cui la chiave di BitLocker è legata. In tali casi, l'accesso all'unità crittografata è irrimediabilmente perso.
- È quindi **assolutamente imperativo** che le password e, soprattutto, le chiavi di ripristino di BitLocker siano conservate con la massima cura, in un luogo sicuro e protetto da accessi non autorizzati, ma recuperabile dal personale autorizzato in caso di necessità.
Considerazioni normative locali relative all'uso del TPM:
Il manuale B&R 3 consiglia anche di verificare, prima di abilitare il TPM, l'esistenza di eventuali restrizioni d'uso o normative specifiche del paese relative all'impiego di tecnologie crittografiche. Alcune giurisdizioni potrebbero avere regolamentazioni sull'importazione, l'esportazione o l'uso di dispositivi con crittografia forte.
Importanza critica degli aggiornamenti firmware del BIOS e del TPM:
Un avviso di sicurezza emesso nel marzo 2020 (e riportato da fonti governative nel maggio 2020) ha evidenziato una vulnerabilità di divulgazione di informazioni relativa al TPM nelle versioni BIOS 1.18 per i sistemi B&R APC3100 e PPC3100.17 Sebbene questa specifica vulnerabilità sia stata presumibilmente risolta con aggiornamenti successivi, essa serve come un importante promemoria della necessità di mantenere aggiornato il firmware del BIOS e, se applicabile e disponibile, anche il firmware del TPM stesso.
L'avvertimento sulla potenziale perdita di accesso ai dati crittografati dopo un aggiornamento del BIOS o del firmware TPM 3, unito alla realtà delle vulnerabilità del firmware 17, crea una sfida operativa per gli amministratori di sistema. Da un lato, gli aggiornamenti sono essenziali per la sicurezza e per correggere bug. Dall'altro, ogni aggiornamento su un sistema con crittografia del disco legata al TPM comporta un rischio per l'accessibilità dei dati se le procedure di gestione delle chiavi (come il backup sicuro e la verifica della chiave di ripristino di BitLocker, e la sospensione di BitLocker prima dell'aggiornamento) non sono eseguite in modo impeccabile. Questo sottolinea la necessità di procedure operative rigorose e ben testate per la manutenzione del firmware su sistemi critici che utilizzano la crittografia del disco basata su TPM.
## 6. Controllo Granulare e Sicurezza delle Porte I/O e delle Periferiche Integrate
Un aspetto fondamentale dell'hardening di un sistema HMI industriale è la riduzione della sua superficie di attacco attraverso la disabilitazione selettiva delle porte di Input/Output (I/O) e delle periferiche integrate che non sono strettamente necessarie per l'applicazione specifica. Ogni porta o dispositivo abilitato rappresenta un potenziale vettore per attacchi, introduzione di malware, o estrazione non autorizzata di dati. Le linee guida della NSA per la sicurezza dei BIOS UEFI, come InsydeH2O, raccomandano esplicitamente di disabilitare la possibilità di avviare il sistema da porte USB esterne e da porte eSATA, se non necessarie.6
**Disabilitazione/Controllo Porte USB:**
- **Disabilitare l'avvio da USB (USB Boot):** Questa è un'opzione di sicurezza molto comune e importante, solitamente presente nei menu "Boot" o "Security" del BIOS. Disabilitandola, si impedisce che il sistema possa essere avviato da un sistema operativo presente su una chiavetta USB o un altro dispositivo di archiviazione USB. Ciò previene l'avvio di sistemi operativi non autorizzati o potenzialmente malevoli che potrebbero bypassare le misure di sicurezza del sistema operativo installato.6
- **Disabilitazione completa delle porte USB o del trasferimento dati USB:** La documentazione fornita non conferma esplicitamente la presenza di opzioni granulari nel BIOS dei B&R Panel PC 3100 per disabilitare _singole_ porte USB o per disabilitare solo il trasferimento dati (mantenendo, ad esempio, l'alimentazione per dispositivi come tastiere o mouse che non necessitano di trasferimento file).
- In generale, i BIOS InsydeH2O potrebbero offrire tali opzioni all'interno di menu come "Advanced" -> "USB Configuration" (come mostrato in un esempio relativo a un sistema IBM 18) o sotto "Onboard Devices Configuration" / "Integrated Peripherals" (un video tutorial menziona la possibilità di disabilitare "USB Mass Storage support" 19).
- Tuttavia, l'accesso a questi menu avanzati o a opzioni così granulari potrebbe essere limitato o nascosto dall'OEM (B&R). Alcune fonti descrivono metodi non documentati (combinazioni di tasti speciali) per sbloccare menu avanzati nei BIOS InsydeH2O su alcuni laptop.20 L'applicazione di tali metodi non documentati sui Panel PC 3100 di B&R è fortemente sconsigliata in ambienti industriali critici, a causa dei rischi di instabilità o di rendere il sistema non avviabile.
- È stato menzionato che un supervisore potrebbe, in linea di principio, disabilitare le interfacce USB tramite BIOS 11, il che implica che tale capacità esiste in alcune implementazioni BIOS, ma non è garantita per tutti i sistemi o per tutte le porte.
Disabilitazione/Controllo Porte Seriali (COM):
Per i sistemi B&R APC3100/PPC3100, esiste una documentazione (proveniente da una discussione della comunità B&R, quindi da considerare con la dovuta cautela ma indicativa) che suggerisce la possibilità di abilitare o disabilitare porte COM specifiche.5 Questo è particolarmente rilevante perché alcune configurazioni, come i touchscreen single-touch che utilizzano l'interfaccia SDL4, possono trasmettere i dati del tocco tramite una porta COM (ad esempio, COM A o COM E, a seconda della configurazione del trasmettitore SDL4). Il percorso indicato per questa configurazione è: Setup Utility → Advanced → OEM Features → Super IO → COM A (o COM E).5
In un contesto più generale di BIOS InsydeH2O, un utente su un forum tecnico ha descritto la disabilitazione delle porte seriali tramite un percorso come CONFIGURATION → ONBOARD DEVICES → DISABLE serial port 1 / DISABLE serial port 2.22 Sebbene questo percorso possa non corrispondere esattamente all'implementazione specifica di B&R, illustra la logica generale di trovare tali controlli sotto menu relativi alla configurazione delle periferiche integrate.
Disabilitazione/Controllo Porte SATA:
Analogamente alle porte USB, è buona norma disabilitare la possibilità di avviare il sistema da dispositivi eSATA (External SATA), se presenti e non utilizzati.6 In alcuni BIOS, potrebbero esistere opzioni per disabilitare completamente porte SATA interne o interi controller SATA se non sono in uso (ad esempio, se il sistema si avvia esclusivamente da supporti CFast e non sono presenti dischi rigidi o SSD SATA). Un documento sulle linee guida NSA menziona anche una funzionalità interessante chiamata "SATA ports Connected only. Disables SATA ports when no device is connected" 6, che, se disponibile, offrirebbe una forma di sicurezza dinamica.
Controllo di Altre Periferiche Integrate (Audio, LAN):
Le opzioni per abilitare o disabilitare altre periferiche integrate, come il controller audio o il controller di rete LAN onboard, si trovano solitamente nei menu "Advanced" o in sottomenu dedicati come "Peripheral Configuration" o "Onboard Devices Configuration".19
- **Audio:** Se l'applicazione HMI non richiede funzionalità audio, disabilitare il controller audio integrato può ridurre minimamente la superficie di attacco e liberare risorse di sistema.
- **LAN:** Se il pannello HMI non necessita di connettività di rete diretta tramite la porta LAN integrata (ad esempio, perché utilizza un'interfaccia di rete dedicata su una scheda di espansione o perché la comunicazione avviene tramite bus di campo specifici), è una buona pratica di sicurezza disabilitare il controller LAN onboard per prevenire accessi di rete non autorizzati.
È importante notare la differenza di dettaglio informativo disponibile: mentre per le porte COM sui sistemi B&R esiste un'indicazione specifica (sebbene non da un manuale ufficiale) su come configurarle 5, per un controllo granulare delle porte USB (oltre alla disabilitazione dell'avvio) non emergono prove dirette dai materiali forniti che B&R esponga tali opzioni in modo facilmente accessibile sui Panel PC 3100. Ciò potrebbe suggerire che B&R abbia personalizzato l'accesso alle configurazioni del chip Super I/O (per le porte COM, data la loro importanza per alcune periferiche come i touchscreen) ma potrebbe aver lasciato le configurazioni USB più standard o limitate a quelle offerte di base da InsydeH2O, che potrebbero non includere la disabilitazione di singole porte dati. In assenza di opzioni BIOS chiare e documentate per un controllo USB più fine, gli utenti potrebbero dover fare affidamento sulla disabilitazione del boot da USB e su misure di sicurezza implementate a livello di sistema operativo (come policy di gruppo per la gestione dei dispositivi USB in Windows).
Infine, è fondamentale ricordare che anche con tutte le opzioni di disabilitazione offerte dal BIOS, la sicurezza fisica del pannello HMI rimane un complemento cruciale. Se un utente malintenzionato ha accesso fisico prolungato e indisturbato al dispositivo, potrebbe tentare di bypassare le impostazioni del BIOS (ad esempio, tramite un reset del CMOS, sebbene questa operazione sia spesso resa più difficile o protetta sui PC industriali) o di sfruttare porte che non possono essere completamente disabilitate via BIOS (come le porte di alimentazione o di display per attacchi specifici). Le linee guida generali sulla cybersecurity fornite da B&R includono esplicitamente la raccomandazione di "Proteggere i sistemi di controllo dall'accesso fisico da parte di personale non autorizzato".23 Il controllo delle porte I/O nel BIOS è uno strato di sicurezza importante, ma deve essere integrato in una strategia di difesa in profondità che comprenda anche la sicurezza fisica.
## 7. Ulteriori Misure di Rafforzamento della Sicurezza del BIOS (Hardening)
Oltre alla gestione delle password, alla configurazione di Secure Boot, all'utilizzo del TPM e al controllo delle porte I/O, esistono ulteriori misure che possono contribuire a rafforzare la sicurezza del BIOS (hardening) sui pannelli B&R PC HMI 3100.
Aggiornamenti Regolari del BIOS:
Mantenere il firmware del BIOS aggiornato è una delle pratiche di sicurezza più importanti e fondamentali. Gli aggiornamenti del BIOS forniti dal produttore (B&R, in questo caso) possono:
- Correggere vulnerabilità di sicurezza note scoperte nel firmware. Un esempio è la vulnerabilità relativa al TPM menzionata in precedenza, che affliggeva specifiche versioni del BIOS dei sistemi APC3100/PPC3100 e che richiedeva un aggiornamento per la mitigazione.17
- Migliorare la stabilità generale del sistema e la compatibilità con l'hardware.
- Introdurre il supporto per nuovo hardware o nuove funzionalità di sicurezza.6
**Procedura e Precauzioni per l'Aggiornamento del BIOS:**
- **Fonte Affidabile:** Ottenere i file di aggiornamento del BIOS esclusivamente dal sito web ufficiale di B&R Industrial Automation. La pagina del prodotto per il Panel PC 3100 modello 5PPC3100.KBU2-000, ad esempio, fornisce link per il download di "BIOS Upgrade Kabylake-U (APC3100/PPC3100)".1
- **Seguire le Istruzioni:** È cruciale seguire attentamente le istruzioni di aggiornamento fornite da B&R. Documenti relativi all'aggiornamento del BIOS per altri sistemi B&R (come Panel PC 300 e Power Panel, ma la logica è applicabile) contengono avvertenze molto importanti 24:
- **Annotare le Impostazioni Correnti:** "Scrivere le impostazioni del BIOS prima dell'aggiornamento!" Questo perché, dopo un aggiornamento, le impostazioni del BIOS vengono spesso ripristinate ai valori predefiniti e dovranno essere riconfigurate manualmente.
- **Non Interrompere il Processo:** "Non interrompere un aggiornamento del BIOS!" Un'interruzione durante il processo di flashing (ad esempio, a causa di un'interruzione di corrente o di un riavvio accidentale) può corrompere il firmware del BIOS, rendendo il dispositivo non avviabile. In tal caso, il pannello potrebbe dover essere inviato a B&R per la riparazione.
- **Salvataggio del BIOS Esistente:** Alcune procedure di aggiornamento potrebbero offrire l'opzione di salvare una copia del BIOS corrente prima di procedere con l'aggiornamento.24 Se disponibile, questa è una buona pratica.
- **Riconfigurazione Post-Aggiornamento:** Dopo un aggiornamento del BIOS riuscito, è necessario rientrare nell'utility di configurazione del BIOS e verificare tutte le impostazioni, ripristinando quelle personalizzate (specialmente quelle relative alla sicurezza) che potrebbero essere state resettate ai valori predefiniti.24
L'aggiornamento del BIOS, sebbene essenziale, comporta sempre un piccolo rischio intrinseco (interruzione di corrente, file di aggiornamento corrotto, incompatibilità imprevista). Per gli HMI industriali, un aggiornamento fallito può tradursi in un costoso fermo macchina. Questo rischio operativo deve essere attentamente bilanciato con il rischio di sicurezza derivante dal non aggiornare e rimanere esposti a vulnerabilità note. Le aziende dovrebbero implementare procedure rigorose per la gestione degli aggiornamenti del firmware, che potrebbero includere test su sistemi non di produzione (se disponibili), backup completi dei sistemi e piani di ripristino.
Protezione da Modifiche non Autorizzate al BIOS ("BIOS Lock" / "Flash Protection"):
Alcune implementazioni del BIOS InsydeH2O offrono funzionalità specifiche per proteggere il firmware del BIOS da modifiche non autorizzate, anche da parte di software in esecuzione con privilegi elevati all'interno del sistema operativo. Queste funzionalità sono a volte denominate "BIOS Lock", "Flash Protection Range Registers (FPRR)", o simili.20 Se abilitate, impediscono la scrittura (flashing) della memoria flash che contiene il BIOS, a meno che non venga seguita una procedura di sblocco specifica (spesso richiedente l'accesso fisico o una password di supervisore).
- La disponibilità e la configurabilità di tali opzioni sui Panel PC 3100 di B&R non sono esplicitamente confermate dai materiali di ricerca forniti.26 Se presenti, si troverebbero tipicamente nel menu "Security" o in un sottomenu "Advanced" e la loro modifica richiederebbe l'inserimento della Password di Supervisore.
- Queste funzionalità, se disponibili e correttamente configurate, offrono un ulteriore strato di protezione contro tipi di malware persistenti (come i rootkit del firmware) che tentano di infettare o modificare il BIOS per ottenere un controllo duraturo e nascosto del sistema. La mancanza di conferma esplicita sulla presenza e configurabilità di una funzione come "BIOS Lock" sui sistemi B&R Panel PC 3100 merita attenzione. Se tale funzionalità non è implementata o non è esposta all'utente per la configurazione, la protezione contro la modifica non autorizzata del BIOS da parte di malware a livello di sistema operativo si affida principalmente alla sicurezza del sistema operativo stesso e ai controlli degli accessi. Un malware che riuscisse a ottenere privilegi di root o di amministratore sul sistema operativo potrebbe, in assenza di una protezione hardware/firmware specifica, tentare di flashare un BIOS malevolo.
Disabilitazione di funzionalità hardware non utilizzate:
Per ridurre ulteriormente la potenziale superficie di attacco, è consigliabile disabilitare nel BIOS qualsiasi funzionalità hardware che non sia strettamente necessaria per l'applicazione HMI:
- **Intel Virtualization Technology (VT-x, VT-d):** I processori utilizzati nei Panel PC 3100 (come l'Intel Core i5-7300U) supportano le tecnologie di virtualizzazione Intel VT-x (per la virtualizzazione della CPU) e Intel VT-d (per la virtualizzazione dell'I/O diretto).1 Se sull'HMI non vengono utilizzate macchine virtuali o funzionalità che dipendono specificamente da VT-d (come il passthrough di dispositivi PCI a una VM), queste opzioni possono essere disabilitate. Si trovano solitamente nel menu "Advanced", sotto sottomenu come "CPU Configuration" o "Chipset Configuration".
- **Altre funzionalità specifiche:** Valutare la disabilitazione di altre funzionalità del chipset o della CPU che non sono richieste dall'applicazione HMI specifica (ad esempio, alcune interfacce di gestione remota se non utilizzate, o funzionalità di overclocking che sono irrilevanti e potenzialmente destabilizzanti per un HMI).
Best practice: revisione sistematica delle impostazioni del BIOS:
È una buona pratica di sicurezza effettuare una revisione sistematica e periodica di tutte le impostazioni del BIOS, specialmente dopo ogni aggiornamento del firmware, modifica hardware significativa, o se si sospetta un incidente di sicurezza. Questa revisione dovrebbe verificare che tutte le configurazioni di sicurezza desiderate (password, Secure Boot, TPM, controllo porte I/O, ecc.) siano ancora attive e correttamente impostate secondo le policy aziendali.
## 8. Conclusioni e Strategie Riepilogative per la Sicurezza dei Pannelli B&R
La messa in sicurezza dei pannelli B&R PC HMI 3100, dotati di BIOS InsydeH2O, richiede un approccio metodico e una comprensione approfondita delle funzionalità di sicurezza offerte a livello firmware. Sebbene la documentazione specifica di B&R sulle configurazioni di sicurezza avanzate del BIOS possa non essere centralizzata o esaustiva come un manuale dedicato, è possibile, combinando le informazioni disponibili con le best practice generali per i BIOS UEFI InsydeH2O, implementare un solido livello di protezione.
Sintesi delle principali configurazioni di sicurezza del BIOS raccomandate:
Per migliorare la sicurezza dei pannelli B&R PC HMI 3100, si raccomanda di implementare le seguenti configurazioni a livello BIOS:
1. **Gestione delle Password:** Impostare una **Password di Supervisore** robusta e unica per proteggere l'accesso e la modifica delle impostazioni del BIOS. Considerare l'uso di una Password Utente se è necessario impedire l'avvio del sistema operativo a personale non autorizzato.
2. **Secure Boot:** Abilitare la modalità di avvio **UEFI** e successivamente abilitare **Secure Boot**. Utilizzare le policy di fabbrica (chiavi predefinite) a meno che non vi sia una necessità stringente e ben compresa di personalizzare le chiavi (PK, KEK, db, dbx), procedendo in tal caso con estrema cautela.
3. **Trusted Platform Module (TPM 2.0):** Abilitare il **TPM 2.0** seguendo le specifiche indicazioni di B&R (inclusa la disabilitazione di Intel PTT, se necessario).3 Considerare l'utilizzo del TPM in congiunzione con la crittografia dell'intero disco (ad esempio, BitLocker), assicurandosi di gestire in modo impeccabile e sicuro le chiavi di ripristino.
4. **Controllo dell'Avvio e delle Porte I/O:**
- Disabilitare la possibilità di **avviare il sistema da supporti esterni** non strettamente necessari (come dispositivi USB o eSATA).
- Configurare o **disabilitare selettivamente le porte I/O** (come porte COM, porte USB dati, controller LAN integrato, controller audio) in base alle effettive necessità dell'applicazione HMI, per ridurre la superficie di attacco.
5. **Aggiornamenti del Firmware:** Mantenere il **firmware del BIOS costantemente aggiornato** all'ultima versione stabile fornita da B&R, seguendo scrupolosamente le procedure di aggiornamento e prendendo le dovute precauzioni per evitare interruzioni durante il processo.
6. **Hardening Aggiuntivo:** Disabilitare funzionalità hardware non utilizzate (come Intel VT-x/VT-d se non richieste) e rivedere periodicamente tutte le impostazioni del BIOS.
Importanza di un approccio olistico e multi-livello alla sicurezza:
È fondamentale comprendere che la sicurezza del BIOS, per quanto critica, è solo uno degli strati di una strategia di difesa in profondità. Per una protezione efficace degli HMI industriali, le misure a livello firmware devono essere integrate e supportate da:
- **Sicurezza del Sistema Operativo:** Hardening del sistema operativo (rimozione di software e servizi non necessari), patching regolare delle vulnerabilità, utilizzo di software antimalware (se appropriato per l'ambiente industriale e il sistema operativo), e configurazione di account utente con privilegi minimi.
- **Sicurezza della Rete:** Segmentazione della rete per isolare i sistemi di controllo industriale (ICS) dalle reti aziendali e da Internet, utilizzo di firewall per controllare il traffico di rete in entrata e in uscita, e implementazione di sistemi di rilevamento/prevenzione delle intrusioni (IDS/IPS).23 Le linee guida sulla cybersecurity di B&R per i sistemi di controllo enfatizzano questi aspetti.23
- **Sicurezza Fisica:** Controllo rigoroso dell'accesso fisico ai pannelli HMI e ai quadri di controllo per prevenire manomissioni hardware o accessi non autorizzati al BIOS o alle porte fisiche.23
- **Consapevolezza e Procedure:** Formazione del personale sulle policy di sicurezza e sulle procedure operative sicure. Documenti B&R menzionano la necessità di un "Concetto di sicurezza" e forniscono "Disclaimer sulla cybersecurity", indicando una consapevolezza del rischio che deve essere condivisa con gli utenti.26
La sicurezza degli HMI industriali è una responsabilità condivisa. I fornitori come B&R e Insyde Software hanno la responsabilità di fornire prodotti con funzionalità di sicurezza robuste e di rilasciare aggiornamenti tempestivi per correggere le vulnerabilità. L'utente finale o l'integratore di sistema ha la responsabilità di comprendere, configurare correttamente e mantenere queste funzionalità di sicurezza, nonché di implementare le misure di protezione aggiuntive necessarie a livello di sistema, rete e procedure operative. Le linee guida di B&R 23 incoraggiano esplicitamente gli integratori di sistema e i proprietari degli asset a implementare le misure che ritengono appropriate per il loro specifico ambiente di controllo.
Raccomandazioni Finali:
Si raccomanda vivamente di consultare sempre la documentazione tecnica più recente e gli avvisi di sicurezza forniti da B&R Industrial Automation e da Insyde Software, poiché le funzionalità del BIOS, le vulnerabilità note e le best practice di sicurezza possono evolvere nel tempo. Il panorama delle minacce alla cybersecurity, anche per i sistemi industriali e il firmware, è in continua evoluzione. La vulnerabilità del TPM del 2020 17 e le linee guida NSA del 2021 6 sono esempi di come le conoscenze e le minacce cambino. Pertanto, un approccio "imposta e dimentica" alla sicurezza del BIOS non è sufficiente. È necessaria una vigilanza continua e un adattamento proattivo delle strategie di sicurezza per affrontare le nuove sfide.
Infine, si ricorda che nessuna singola misura o combinazione di misure può garantire una sicurezza assoluta. L'efficacia delle configurazioni del BIOS e delle altre misure di sicurezza dipende dalla loro corretta implementazione e manutenzione continua, nonché dalla postura di sicurezza complessiva dell'organizzazione e dalla consapevolezza dei rischi da parte di tutto il personale coinvolto.
[
![](https://t2.gstatic.com/faviconV2?url=https://icdn.tradew.com/&client=BARD&type=FAVICON&size=256&fallback_opts=TYPE,SIZE,URL)
icdn.tradew.com
icdn.tradew.com
Se abre en una ventana nueva](https://icdn.tradew.com/file/201606/1569362/pdf/7466441.pdf)[
![](https://t2.gstatic.com/faviconV2?url=https://www.professormesser.com/&client=BARD&type=FAVICON&size=256&fallback_opts=TYPE,SIZE,URL)
professormesser.com
BIOS Security - CompTIA A+ 220-1001 - 3.5 - Professor Messer
Se abre en una ventana nueva](https://www.professormesser.com/professor-messer-archives/220-1001/bios-security-2/)[
![](https://t0.gstatic.com/faviconV2?url=https://appstoragepublicprod.s3-us-west-1.amazonaws.com/&client=BARD&type=FAVICON&size=256&fallback_opts=TYPE,SIZE,URL)
appstoragepublicprod.s3-us-west-1.amazonaws.com
Panel PC 3100 panel mount device - AWS
Se abre en una ventana nueva](https://appstoragepublicprod.s3-us-west-1.amazonaws.com/PartAttachment%2F2124585%2FPanelPC3100Built-indevicesuser%27smanual.pdf)[
![](https://t3.gstatic.com/faviconV2?url=https://www.br-automation.com/&client=BARD&type=FAVICON&size=256&fallback_opts=TYPE,SIZE,URL)
br-automation.com
5PPC3100.KBU2-000 - B&R Industrial Automation
Se abre en una ventana nueva](https://www.br-automation.com/en-ca/products/industrial-pcs/panel-pc-3100-multi-touch/system-units/5ppc3100kbu2-000/)[
![](https://t1.gstatic.com/faviconV2?url=https://winraid.level1techs.com/&client=BARD&type=FAVICON&size=256&fallback_opts=TYPE,SIZE,URL)
winraid.level1techs.com
[Guide] How to Unlock an InsydeH2O BIOS - Win-Raid Forum
Se abre en una ventana nueva](https://winraid.level1techs.com/t/guide-how-to-unlock-an-insydeh2o-bios/40081)[
![](https://t0.gstatic.com/faviconV2?url=https://www.insyde.com/&client=BARD&type=FAVICON&size=256&fallback_opts=TYPE,SIZE,URL)
insyde.com
UEFI & OpenBMC Firmware Products - Insyde Software
Se abre en una ventana nueva](https://www.insyde.com/products/)[
![](https://t3.gstatic.com/faviconV2?url=https://713itsupport.com/&client=BARD&type=FAVICON&size=256&fallback_opts=TYPE,SIZE,URL)
713itsupport.com
TECH NOTE: How To Remove A Bios Password From an Insyde H2O EFI BIOS [UPDATED]
Se abre en una ventana nueva](https://713itsupport.com/blog/2012/01/how-to-remove-a-bios-password-from-an-insyde-h2o-efi-bios-updated/)[
![](https://t1.gstatic.com/faviconV2?url=https://kb.igel.com/&client=BARD&type=FAVICON&size=256&fallback_opts=TYPE,SIZE,URL)
kb.igel.com
Enabling UEFI Secure Boot in UD6-W10 51 - IGEL Knowledge Base
Se abre en una ventana nueva](https://kb.igel.com/security-safety/current/enabling-uefi-secure-boot-in-ud6-w10-51)[
![](https://t0.gstatic.com/faviconV2?url=https://www.youtube.com/&client=BARD&type=FAVICON&size=256&fallback_opts=TYPE,SIZE,URL)
youtube.com
How to Set, Reset and Disable BIOS Password (Complete Tutorial ...
Se abre en una ventana nueva](https://www.youtube.com/watch?v=IsRwZbKl5-k&pp=0gcJCdgAo7VqN5tD)[
![](https://t1.gstatic.com/faviconV2?url=https://kb.igel.com/&client=BARD&type=FAVICON&size=256&fallback_opts=TYPE,SIZE,URL)
kb.igel.com
Enabling UEFI Secure Boot in UD2-LX 40 - IGEL Knowledge Base
Se abre en una ventana nueva](https://kb.igel.com/security-safety/current/enabling-uefi-secure-boot-in-ud2-lx-40)[
![](https://t0.gstatic.com/faviconV2?url=https://www.insyde.com/&client=BARD&type=FAVICON&size=256&fallback_opts=TYPE,SIZE,URL)
insyde.com
InsydeH2O® UEFI BIOS for Intelligent Client PCs - Insyde Software
Se abre en una ventana nueva](https://www.insyde.com/products/insydeh2o/)[
![](https://t0.gstatic.com/faviconV2?url=https://www.insyde.com/&client=BARD&type=FAVICON&size=256&fallback_opts=TYPE,SIZE,URL)
insyde.com
Best Practices for NSA's UEFI Secure Boot Guidelines - Insyde Software
Se abre en una ventana nueva](https://www.insyde.com/wp-content/uploads/INSYDE_NSA_UEFISecurity_Guidelines_REV14APR2021.pdf)[
![](https://t3.gstatic.com/faviconV2?url=https://community.acer.com/&client=BARD&type=FAVICON&size=256&fallback_opts=TYPE,SIZE,URL)
community.acer.com
Is there a Tutorial or Manual on how to use the Insydeh20 Setup Utility 5.0 for Aspire R 11 Win 10? - Acer Community
Se abre en una ventana nueva](https://community.acer.com/en/discussion/604304/is-there-a-tutorial-or-manual-on-how-to-use-the-insydeh20-setup-utility-5-0-for-aspire-r-11-win-10)[
![](https://t3.gstatic.com/faviconV2?url=https://pubs.lenovo.com/&client=BARD&type=FAVICON&size=256&fallback_opts=TYPE,SIZE,URL)
pubs.lenovo.com
Secure Boot Configuration | UEFI_IOT | Lenovo Docs
Se abre en una ventana nueva](https://pubs.lenovo.com/uefi_iot/secure_boot_config)[
![](https://t0.gstatic.com/faviconV2?url=https://www.youtube.com/&client=BARD&type=FAVICON&size=256&fallback_opts=TYPE,SIZE,URL)
youtube.com
Disable secure boot in Acer bios | Acer Laptop | Insyde H2O Bios - YouTube
Se abre en una ventana nueva](https://www.youtube.com/watch?v=4Qkr8aoA0wU&pp=0gcJCdgAo7VqN5tD)[
![](https://t3.gstatic.com/faviconV2?url=https://learn.microsoft.com/&client=BARD&type=FAVICON&size=256&fallback_opts=TYPE,SIZE,URL)
learn.microsoft.com
Can Windows Updates Add DBX Keys to Secure Boot Key Management? - Learn Microsoft
Se abre en una ventana nueva](https://learn.microsoft.com/en-us/answers/questions/1426670/can-windows-updates-add-dbx-keys-to-secure-boot-ke)[
![](https://t0.gstatic.com/faviconV2?url=https://www.slideshare.net/&client=BARD&type=FAVICON&size=256&fallback_opts=TYPE,SIZE,URL)
slideshare.net
Module 5 raw | PDF - SlideShare
Se abre en una ventana nueva](https://www.slideshare.net/slideshow/module-5-raw/238622348)[
![](https://t0.gstatic.com/faviconV2?url=https://www.ibm.com/&client=BARD&type=FAVICON&size=256&fallback_opts=TYPE,SIZE,URL)
ibm.com
Support Element 2461-SE4 configuration - IBM
Se abre en una ventana nueva](https://www.ibm.com/docs/en/systems-hardware/zsystems/3932-AGZ?topic=configuration-support-element-2461-se4)[
![](https://t3.gstatic.com/faviconV2?url=https://www.br-automation.com/&client=BARD&type=FAVICON&size=256&fallback_opts=TYPE,SIZE,URL)
br-automation.com
BIOS Upgrade - B&R Industrial Automation
Se abre en una ventana nueva](https://www.br-automation.com/fr-ch/downloads/industrial-pcs-and-panels/panel-pc-300/bios-upgrade-1/)[
![](https://t2.gstatic.com/faviconV2?url=https://www.reddit.com/&client=BARD&type=FAVICON&size=256&fallback_opts=TYPE,SIZE,URL)
reddit.com
Unlock Advanced Menu Hidden in BIOS : r/laptops - Reddit
Se abre en una ventana nueva](https://www.reddit.com/r/laptops/comments/tibjy1/unlock_advanced_menu_hidden_in_bios/)[
![](https://t0.gstatic.com/faviconV2?url=https://superuser.com/&client=BARD&type=FAVICON&size=256&fallback_opts=TYPE,SIZE,URL)
superuser.com
How to avoid having to re-disable serial ports in bios on restart? [closed] - Super User
Se abre en una ventana nueva](https://superuser.com/questions/1430444/how-to-avoid-having-to-re-disable-serial-ports-in-bios-on-restart)[
![](https://t0.gstatic.com/faviconV2?url=https://www.youtube.com/&client=BARD&type=FAVICON&size=256&fallback_opts=TYPE,SIZE,URL)
youtube.com
How to enable or disable these devices in BIOS settings - YouTube
Se abre en una ventana nueva](https://www.youtube.com/watch?v=UcU4oVeudFc)[
![](https://t3.gstatic.com/faviconV2?url=https://www.cyber.gc.ca/&client=BARD&type=FAVICON&size=256&fallback_opts=TYPE,SIZE,URL)
cyber.gc.ca
[Control systems] B&R Industrial Automation security advisory
Se abre en una ventana nueva](https://www.cyber.gc.ca/en/alerts/control-systems-br-industrial-automation-security-advisory-1)[
![](https://t2.gstatic.com/faviconV2?url=https://community.br-automation.com/&client=BARD&type=FAVICON&size=256&fallback_opts=TYPE,SIZE,URL)
community.br-automation.com
PC3100 + Panel SLD4 but no touch work - Ask Questions - B&R Community
Se abre en una ventana nueva](https://community.br-automation.com/t/pc3100-panel-sld4-but-no-touch-work/4335)[
![](https://t3.gstatic.com/faviconV2?url=https://www.br-automation.com/&client=BARD&type=FAVICON&size=256&fallback_opts=TYPE,SIZE,URL)
br-automation.com
BIOS Upgrade | B&R Industrial Automation
Se abre en una ventana nueva](https://www.br-automation.com/fr-ca/telechargements/industrial-pcs-and-panels/power-panel-100200/bios-upgrade/)[
![](https://t3.gstatic.com/faviconV2?url=https://www.br-automation.com/&client=BARD&type=FAVICON&size=256&fallback_opts=TYPE,SIZE,URL)
br-automation.com
www.br-automation.com
Se abre en una ventana nueva](https://www.br-automation.com/downloads_br_productcatalogue/assets/1587069858896-en-original-1.0.pdf)[
![](https://t1.gstatic.com/faviconV2?url=https://no-cdn.br-automation.com/&client=BARD&type=FAVICON&size=256&fallback_opts=TYPE,SIZE,URL)
no-cdn.br-automation.com
Panel PC 3100 panel mount device - AWS
Se abre en una ventana nueva](https://no-cdn.br-automation.com/fr-ca/telechargements/?tx_brcdn_downloadlist%5Baction%5D=download&tx_brcdn_downloadlist%5Bcontroller%5D=Download&tx_brcdn_downloadlist%5Bid%5D=DWL%40DWL10000506575%4005&tx_brcdn_downloadlist%5Blang%5D=EN&cHash=f14493560995937715e23fd7724a0cad)[
![](https://t3.gstatic.com/faviconV2?url=https://www.remontservo.ru/&client=BARD&type=FAVICON&size=256&fallback_opts=TYPE,SIZE,URL)
remontservo.ru
Automation PC 4100
](https://www.remontservo.ru/pap/pages/publications/article-618/img-article/MAAPC4100_en-V1.00.pdf)

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 MiB

View File

@ -9,6 +9,38 @@ VIDEO: [hot to Licence BR Windows PC Zenon 10.mp4](file:///C:%5CTrabajo%5CSIDEL%
* Serial Number on paper to get the Certificate * Serial Number on paper to get the Certificate
* Check if the PC has internet. On the Operator account Win+X
![[Pasted image 20250512155847.png]]
![[Pasted image 20250512160055.png]]
* To change the IP on the PC
* switch to Administrator
* Go to Network
* Network and Sharing Center
* Change advanced sharing settings
* Change the customer network to adapt the internet conncetion
* Enable if disabled
* Try again to Activate licence
* To enable the network adapter, switch to the Administrator account.
![[Pasted image 20250512160217.png]]
* Password: 9-3urKW*
![[Pasted image 20250512153122.png]]
* Go to the **adaptors**, enable DHCP mode on the adaptor.
![[Pasted image 20250512153523.png|787]]
![[Pasted image 20250512160055.png]]
* Check if the internet is working.
* Switch to the operator account and proceed with the licensing procedure.
![[Pasted image 20250428140526.png|800]] ![[Pasted image 20250428140526.png|800]]
* Step 1 . Go to License managment * Step 1 . Go to License managment
@ -56,4 +88,7 @@ VIDEO: [hot to Licence BR Windows PC Zenon 10.mp4](file:///C:%5CTrabajo%5CSIDEL%
![[Pasted image 20250428141328.png|800]] ![[Pasted image 20250428141328.png|800]]
* Close * Close
* Start the Zenon runtime * Start the Zenon runtime
* Remember to disable the network adapter after completing the license procedure.

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 97 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 101 KiB

View File

@ -0,0 +1,36 @@
***
### Default Analog Values
| Master TAG | | | |
| -------------------------- | ---- | ------- | ------------------------ |
| P_FTP302_Flow | Real | %ED2030 | MIX - Profibus Variables |
| P_FTP302_Flow_State | Byte | %EB2034 | MIX - Profibus Variables |
| P_FTP302_Density | Real | %ED2045 | MIX - Profibus Variables |
| P_FTP302_Density_State | Byte | %EB2049 | MIX - Profibus Variables |
| P_FTP302_Brix | Real | %ED2050 | MIX - Profibus Variables |
| P_FTP302_Brix_State | Byte | %EB2054 | MIX - Profibus Variables |
| P_FTP302_Temp | Real | %ED2055 | MIX - Profibus Variables |
| P_FTP302_Temp_State | Byte | %EB2059 | MIX - Profibus Variables |
| P_FTP302_Totalizer | Real | %ED2070 | MIX - Profibus Variables |
| P_FTP302_Totaliz_State | Byte | %EB2074 | MIX - Profibus Variables |
| P_FTN301_Flow | Real | %ED3080 | MIX - Profibus Variables |
| P_FTN301_Flow_State | Byte | %EB3084 | MIX - Profibus Variables |
| P_FTN301_Totalizer | Real | %ED3100 | MIX - Profibus Variables |
| P_FTN301_Totaliz_State | Byte | %EB3104 | MIX - Profibus Variables |
| P_FTM303_Flow | Real | %ED3200 | MIX - Profibus Variables |
| P_FTM303_Flow_State | Byte | %EB3204 | MIX - Profibus Variables |
| P_FTM303_Density | Real | %ED3215 | MIX - Profibus Variables |
| P_FTM303_Density_State | Byte | %EB3219 | MIX - Profibus Variables |
| P_FTM303_Temperature | Real | %ED3225 | MIX - Profibus Variables |
| P_FTM303_Temperature_State | Byte | %EB3229 | MIX - Profibus Variables |
| P_FTM303_Totalizer | Real | %ED3240 | MIX - Profibus Variables |
| P_FTM303_Totalizer_State | Byte | %EB3244 | MIX - Profibus Variables |
### Tag for Anto Paar:
| P_PDS_CO2 | Real | %ED15060 |
| ------------------ | ---- | -------- |
| P_PDS_Product_Brix | Real | %ED15084 |
| P_PDS_Temperature | Real | %ED15104 |
| P_PDS_Density | Real | %ED15112 |

View File

@ -25,3 +25,4 @@ P_gPPM303_VFC_ActualValue := PEW Inverter P3 + 2
P_gPPM303_VFC_ControlWord := PAW Inverter P3 P_gPPM303_VFC_ControlWord := PAW Inverter P3
P_gPPM303_VFC_Refvalue := PAW Inverter P3 + 2 P_gPPM303_VFC_Refvalue := PAW Inverter P3 + 2

View File

@ -461,5 +461,37 @@
| DI_SyrRoom_Alarm_Reset | Inputs | Bool | From Syrup Room - Alarm Reset | | DI_SyrRoom_Alarm_Reset | Inputs | Bool | From Syrup Room - Alarm Reset |
| DO_Analayzer_Enable | Output | Bool | To Analayzer ENABLE | | DO_Analayzer_Enable | Output | Bool | To Analayzer ENABLE |
# Default
| Master TAG | | | |
| -------------------------- | ---- | ------- | ------------------------ |
| P_FTP302_Flow | Real | %ED2030 | MIX - Profibus Variables |
| P_FTP302_Flow_State | Byte | %EB2034 | MIX - Profibus Variables |
| P_FTP302_Density | Real | %ED2045 | MIX - Profibus Variables |
| P_FTP302_Density_State | Byte | %EB2049 | MIX - Profibus Variables |
| P_FTP302_Brix | Real | %ED2050 | MIX - Profibus Variables |
| P_FTP302_Brix_State | Byte | %EB2054 | MIX - Profibus Variables |
| P_FTP302_Temp | Real | %ED2055 | MIX - Profibus Variables |
| P_FTP302_Temp_State | Byte | %EB2059 | MIX - Profibus Variables |
| P_FTP302_Totalizer | Real | %ED2070 | MIX - Profibus Variables |
| P_FTP302_Totaliz_State | Byte | %EB2074 | MIX - Profibus Variables |
| P_FTN301_Flow | Real | %ED3080 | MIX - Profibus Variables |
| P_FTN301_Flow_State | Byte | %EB3084 | MIX - Profibus Variables |
| P_FTN301_Totalizer | Real | %ED3100 | MIX - Profibus Variables |
| P_FTN301_Totaliz_State | Byte | %EB3104 | MIX - Profibus Variables |
| P_FTM303_Flow | Real | %ED3200 | MIX - Profibus Variables |
| P_FTM303_Flow_State | Byte | %EB3204 | MIX - Profibus Variables |
| P_FTM303_Density | Real | %ED3215 | MIX - Profibus Variables |
| P_FTM303_Density_State | Byte | %EB3219 | MIX - Profibus Variables |
| P_FTM303_Temperature | Real | %ED3225 | MIX - Profibus Variables |
| P_FTM303_Temperature_State | Byte | %EB3229 | MIX - Profibus Variables |
| P_FTM303_Totalizer | Real | %ED3240 | MIX - Profibus Variables |
| P_FTM303_Totalizer_State | Byte | %EB3244 | MIX - Profibus Variables |
Tag for Anto Paar:
| P_PDS_CO2 | Real | %ED15060 |
| ------------------ | ---- | -------- |
| P_PDS_Product_Brix | Real | %ED15084 |
| P_PDS_Temperature | Real | %ED15104 |
| P_PDS_Density | Real | %ED15112 |

View File

@ -0,0 +1,4 @@
* DI 0.5 : PRESENZA TENSIONE VOLTAGE PRESENCE
*

View File

@ -0,0 +1,157 @@
***
## PLC Hardware configurated
| Network | Type | Address | Device Name | Sub-Device | OrderNo | Type | IO Type | IO Address | Number of Bits |
| ---------- | -------- | ------- | ---------------------- | ---------------------------------- | ------------------- | ------------------- | ------- | ----------------- | -------------- |
| PROFIBUS_1 | Profibus | 8 | 045U1 | PPO Type 8 Module consistent PCD_1 | N/A | N/A | Input | `EW 1640..1659` | 160 |
| PROFIBUS_1 | Profibus | 8 | 045U1 | PPO Type 8 Module consistent PCD_1 | N/A | N/A | Output | `AW 1640..1659` | 160 |
| PROFIBUS_1 | Profibus | 10 | IM151_280A0 | 300A0 | 6ES7 131-6BF00-0CA0 | DI 8x24VDC HF | Input | `EW 0..0` | 8 |
| PROFIBUS_1 | Profibus | 10 | IM151_280A0 | 301A0 | 6ES7 131-6BF00-0CA0 | DI 8x24VDC HF | Input | `EW 1..1` | 8 |
| PROFIBUS_1 | Profibus | 10 | IM151_280A0 | 302A0 | 6ES7 131-6BF00-0CA0 | DI 8x24VDC HF | Input | `EW 2..2` | 8 |
| PROFIBUS_1 | Profibus | 10 | IM151_280A0 | 303A0 | 6ES7 131-6BF00-0CA0 | DI 8x24VDC HF | Input | `EW 3..3` | 8 |
| PROFIBUS_1 | Profibus | 10 | IM151_280A0 | 304A0 | 6ES7 131-6BF00-0CA0 | DI 8x24VDC HF | Input | `EW 4..4` | 8 |
| PROFIBUS_1 | Profibus | 10 | IM151_280A0 | 305A0 | 6ES7 131-6BF00-0CA0 | DI 8x24VDC HF | Input | `EW 5..5` | 8 |
| PROFIBUS_1 | Profibus | 10 | IM151_280A0 | 306A0 | 6ES7 131-6BF00-0CA0 | DI 8x24VDC HF | Input | `EW 6..6` | 8 |
| PROFIBUS_1 | Profibus | 10 | IM151_280A0 | 307A0 | 6ES7 131-6BF00-0CA0 | DI 8x24VDC HF | Input | `EW 7..7` | 8 |
| PROFIBUS_1 | Profibus | 10 | IM151_280A0 | 320A0 | 6ES7 132-6BF01-0BA0 | DQ 8x24VDC/0.5A ST | Output | `AW 0..0` | 8 |
| PROFIBUS_1 | Profibus | 10 | IM151_280A0 | 321A0 | 6ES7 132-6BF01-0BA0 | DQ 8x24VDC/0.5A ST | Output | `AW 1..1` | 8 |
| PROFIBUS_1 | Profibus | 10 | IM151_280A0 | 322A0 | 6ES7 132-6BF01-0BA0 | DQ 8x24VDC/0.5A ST | Output | `AW 2..2` | 8 |
| PROFIBUS_1 | Profibus | 10 | IM151_280A0 | 323A0 | 6ES7 132-6BF01-0BA0 | DQ 8x24VDC/0.5A ST | Output | `AW 3..3` | 8 |
| PROFIBUS_1 | Profibus | 10 | IM151_280A0 | 324A0 | 6ES7 132-6BF01-0BA0 | DQ 8x24VDC/0.5A ST | Output | `AW 4..4` | 8 |
| PROFIBUS_1 | Profibus | 10 | IM151_280A0 | 325A0 | 6ES7 132-6BF01-0BA0 | DQ 8x24VDC/0.5A ST | Output | `AW 5..5` | 8 |
| PROFIBUS_1 | Profibus | 10 | IM151_280A0 | 326A0 | 6ES7 132-6BF01-0BA0 | DQ 8x24VDC/0.5A ST | Output | `AW 6..6` | 8 |
| PROFIBUS_1 | Profibus | 10 | IM151_280A0 | 327A0 | 6ES7 132-6BF01-0BA0 | DQ 8x24VDC/0.5A ST | Output | `AW 7..7` | 8 |
| PROFIBUS_1 | Profibus | 10 | IM151_280A0 | 340A1 | 6ES7 134-6GB00-0BA1 | AI 2xI 2-,4-wire ST | Input | `EW 100..103` | 32 |
| PROFIBUS_1 | Profibus | 10 | IM151_280A0 | 341A1 | 6ES7 134-6GB00-0BA1 | AI 2xI 2-,4-wire ST | Input | `EW 104..107` | 32 |
| PROFIBUS_1 | Profibus | 10 | IM151_280A0 | 342A1 | 6ES7 134-6GB00-0BA1 | AI 2xI 2-,4-wire ST | Input | `EW 108..111` | 32 |
| PROFIBUS_1 | Profibus | 10 | IM151_280A0 | 343A1 | 6ES7 134-6GB00-0BA1 | AI 2xI 2-,4-wire ST | Input | `EW 112..115` | 32 |
| PROFIBUS_1 | Profibus | 10 | IM151_280A0 | 344A1 | 6ES7 134-6GB00-0BA1 | AI 2xI 2-,4-wire ST | Input | `EW 116..119` | 32 |
| PROFIBUS_1 | Profibus | 10 | IM151_280A0 | 350A1 | 6ES7 135-6GB00-0BA1 | AQ 2xI ST | Output | `AW 100..103` | 32 |
| PROFIBUS_1 | Profibus | 10 | IM151_280A0 | 351A1 | 6ES7 135-6GB00-0BA1 | AQ 2xI ST | Output | `AW 104..107` | 32 |
| PROFIBUS_1 | Profibus | 10 | IM151_280A0 | 352A1 | 6ES7 135-6GB00-0BA1 | AQ 2xI ST | Output | `AW 108..111` | 32 |
| PROFIBUS_1 | Profibus | 10 | IM151_280A0 | 353A1 | 6ES7 135-6GB00-0BA1 | AQ 2xI ST | Output | `AW 112..115` | 32 |
| PROFIBUS_1 | Profibus | 10 | IM151_280A0 | 354A1 | 6ES7 135-6GB00-0BA1 | AQ 2xI ST | Output | `AW 116..119` | 32 |
| PROFIBUS_1 | Profibus | 10 | IM151_280A0 | 355A1 | 6ES7 135-6GB00-0BA1 | AQ 2xI ST | Output | `AW 120..123` | 32 |
| PROFIBUS_1 | Profibus | 12 | Festo_283E1 | CPX-FB13: DP-Slave [Status]_1 | N/A | N/A | Input | `EW 501..501` | 8 |
| PROFIBUS_1 | Profibus | 12 | Festo_283E1 | MPA1S: VMPA1-FB-EMS-8 [8DO]_1 | N/A | N/A | Output | `AW 16..16` | 8 |
| PROFIBUS_1 | Profibus | 12 | Festo_283E1 | MPA1S: VMPA1-FB-EMS-8 [8DO]_2 | N/A | N/A | Output | `AW 17..17` | 8 |
| PROFIBUS_1 | Profibus | 12 | Festo_283E1 | MPA1S: VMPA1-FB-EMS-8 [8DO]_3 | N/A | N/A | Output | `AW 18..18` | 8 |
| PROFIBUS_1 | Profibus | 12 | Festo_283E1 | MPA1S: VMPA1-FB-EMS-8 [8DO]_4 | N/A | N/A | Output | `AW 19..19` | 8 |
| PROFIBUS_1 | Profibus | 12 | Festo_283E1 | MPA1S: VMPA1-FB-EMS-8 [8DO]_5 | N/A | N/A | Output | `AW 20..20` | 8 |
| PROFIBUS_1 | Profibus | 20 | Water_Volumetric_251U1 | Volume Flow | N/A | N/A | Input | `EW 3080..3084` | 40 |
| PROFIBUS_1 | Profibus | 20 | Water_Volumetric_251U1 | Totalizer Value / Control | N/A | N/A | Input | `EW 3100..3104` | 40 |
| PROFIBUS_1 | Profibus | 20 | Water_Volumetric_251U1 | Totalizer Value / Control | N/A | N/A | Output | `AW 3100..3100` | 8 |
| PROFIBUS_1 | Profibus | 21 | Syrup_Mass_252U1 | Mass Flow | N/A | N/A | Input | `EW 2030..2034` | 40 |
| PROFIBUS_1 | Profibus | 21 | Syrup_Mass_252U1 | Density | N/A | N/A | Input | `EW 2045..2049` | 40 |
| PROFIBUS_1 | Profibus | 21 | Syrup_Mass_252U1 | Concentration | N/A | N/A | Input | `EW 2050..2054` | 40 |
| PROFIBUS_1 | Profibus | 21 | Syrup_Mass_252U1 | Temperature | N/A | N/A | Input | `EW 2055..2059` | 40 |
| PROFIBUS_1 | Profibus | 21 | Syrup_Mass_252U1 | Totalizer Value / Control | N/A | N/A | Input | `EW 2070..2074` | 40 |
| PROFIBUS_1 | Profibus | 21 | Syrup_Mass_252U1 | Totalizer Value / Control | N/A | N/A | Output | `AW 2070..2070` | 8 |
| PROFIBUS_1 | Profibus | 22 | CO2_Mass_253U1 | Mass Flow | N/A | N/A | Input | `EW 3200..3204` | 40 |
| PROFIBUS_1 | Profibus | 22 | CO2_Mass_253U1 | Density | N/A | N/A | Input | `EW 3215..3219` | 40 |
| PROFIBUS_1 | Profibus | 22 | CO2_Mass_253U1 | Temperature | N/A | N/A | Input | `EW 3225..3229` | 40 |
| PROFIBUS_1 | Profibus | 22 | CO2_Mass_253U1 | Totalizer Value / Control | N/A | N/A | Input | `EW 3240..3244` | 40 |
| PROFIBUS_1 | Profibus | 22 | CO2_Mass_253U1 | Totalizer Value / Control | N/A | N/A | Output | `AW 3240..3240` | 8 |
| PROFIBUS_1 | Profibus | 40 | Anton Paar_120U1 | IN128 mPDS5>PLC_4_1 | N/A | N/A | Input | `EW 15000..15031` | 256 |
| PROFIBUS_1 | Profibus | 40 | Anton Paar_120U1 | IN128 mPDS5>PLC_4_2 | N/A | N/A | Input | `EW 15032..15063` | 256 |
| PROFIBUS_1 | Profibus | 40 | Anton Paar_120U1 | IN128 mPDS5>PLC_4_3 | N/A | N/A | Input | `EW 15064..15095` | 256 |
| PROFIBUS_1 | Profibus | 40 | Anton Paar_120U1 | IN128 mPDS5>PLC_4_4 | N/A | N/A | Input | `EW 15096..15127` | 256 |
| PROFIBUS_1 | Profibus | 40 | Anton Paar_120U1 | OUT128 PLC>mPDS5_4_1 | N/A | N/A | Output | `AW 15000..15031` | 256 |
| PROFIBUS_1 | Profibus | 40 | Anton Paar_120U1 | OUT128 PLC>mPDS5_4_2 | N/A | N/A | Output | `AW 15032..15063` | 256 |
| PROFIBUS_1 | Profibus | 40 | Anton Paar_120U1 | OUT128 PLC>mPDS5_4_3 | N/A | N/A | Output | `AW 15064..15095` | 256 |
| PROFIBUS_1 | Profibus | 40 | Anton Paar_120U1 | OUT128 PLC>mPDS5_4_4 | N/A | N/A | Output | `AW 15096..15127` | 256 |
| | | | | | | | | | |
### IM155 IO - Description on the Electrical Diagram
***
| Master TAG | IO | Sensor | Description | Descripcion |
| :--------: | :----: | :------: | --------------------------------------------------------------------------- | ----------- |
| | I0.0 | | AUXILIARY CIRC. ON AUSILIARI INSERITI | |
| | I0.1 | 300S2 | SIREN RESET RESET SIRENA | |
| | I0.2 | 300S3 | RESET RESET | |
| | I0.3 | 300S4 | MACHINE STOP ARRESTO MACCHINA | |
| | I0.4 | 300S5 | MARCIA MACCHINA MACHINE START | |
| | I0.5 | | PRESENZA TENSIONE VOLTAGE PRESENCE | |
| | I0.6 | | SONDA LIVELLO MINIMO DEAREATORE 1 | |
| | I0.7 | | SONDA LIVELLO MINIMO SCIRO - PPC SYRUP MINIMUM LEVEL PROBE | |
| | I1.0 | 301B1 | SONDA LIVELLO MINIMO SERB.STOCCAGGIO - STORE TANK MIN LEVEL PROBE | |
| | I1.5 | | VALVOLA CHIUSA VM1 - CLOSED VALVE VM1 | |
| | I1.6 | | CLOSED VALVE VM2 - VALVOLA CHIUSA VM2 | |
| | I1.7 | | VALVOLA CHIUSA VM3 - CLOSED VALVE VM3 | |
| | I2.0 | 40Q2 | WATER PUMP OVERLOAD - TERMICO POMPA ACQUA | |
| | I2.1 | 40Q2 | AVARIA POMPA ACQUA - WATER PUMP FAULT | |
| | I2.2 | 42Q2 | SYRUP PUMP OVERLOAD - TERMICO POMPA SCIROPPC | |
| | I2.3 | 42Q2 | AVARIA POMPA SCIROPPO - SYRUP PUMP FAULT | |
| | I2.4 | 45Q2 | OVERPRESS.PUMP OVERLOAD - TERMICO POMPA SOVRAPRES. | |
| | I2.5 | 45Q2 | OVERPRESS.PUMP FAULT - AVARIA POMPA SOVRAPRES. | |
| | I3.5 | 303A0/1 | ALLARME UPS - UPS ALARM | |
| | I3.6 | 303A0/1_ | ALIMENTAZIONE DA BATTERIE - BATTERY POWER SUPPLY | |
| | I3.7 | 303A0/1 | BATTERIA TAMPONE PRONTA - BUFFER BATTERY READY | |
| | I4.3 | | ALARM ENABLING - ABILITAZIONE ALLARME | |
| | I4.4 | | ABILITAZIONE ALLARME - ALARM ENABLING | |
| | I5.0 | 305U1 | POMPA SALA SCIROPPI INMARCIA - SYRUPS ROOM PUMP RUN | |
| | I7.1 | 307S2 | AIR PRESSURE GAUGE - PRESSOSTATO ARIA | |
| | I7.2 | 307S3 | SENSORE VALVOLA SCARICO SCIROPPO - SYRUP DISCHARGE VALVE SENSOR | |
| | I7.3 | 307F4 | FLOW GAUGE FLUSSOSTATO | |
| | | | | |
| | Q0.0 | | RIPRISTINO ALIMENTAZIONE HMI - HMI POWER SUPPLY RESTORE | |
| | Q1.0 | | RICHIESTA SCIROPPO - SYRUP REQUEST | |
| | Q1.1 | | WATER REQUEST - RICHIESTA ACQUA | |
| | Q7.0 | 327H1 | ALLARME ACUSTICO - ACOUSTIC ALARM | |
| | Q7.1 | 300S5 | MACHINE START - MARCIA MACCHINA | |
| | Q7.2 | 300S3 | MACHINE ALARM - ALLARME MACCHINA | |
| | Q7.3 | 327HO | ROTAT. LAMP - ROT ALLARM | |
| | Q7.4 | 327K5 | COMANDO POMPA ACQUA - WATER PUMP CONTROL | |
| | Q7.5 | 327K6 | SYRUP PUMP CONTROL - COMANDO POMPA SCIROPPO | |
| | Q7.6 | 327K7 | COMANDO POMPA SOVRAPRESSIONE - OVERPRESSURE PUMP CONTROL | |
| | | | | |
| | A16.0 | FESTO | SFIATO SATURATORE - CARBONATOR BLOW-OFF - AVM311 - 200V1 | |
| | A16.1 | FESTO | DEAREAZIONE ACQUA - WATER DEAREATOR - AVM312 - 200V2 | |
| | A16.2 | FESTO | RICIRCOLO PRODOTTO - PRODUCT RECYCLE - AVM313 - 200V3 | |
| | A16.3 | FESTO | SCARICO DEAREATORE - DEAREATOR BLOW-OFF - AVN314 - 200V4 | |
| | A16.4 | FESTO | SCARICO SATURATORE - CARBONATOR DISCHARGE - AVM315 - 200V5 | |
| | A16.5 | FESTO | SCARICO SCIROPPO - SYRUP BLOW-OFF - AVP316 - 200V6 | |
| | A16.6 | FESTO | DIVISFERA SATURATORE - CARBONATOR SPRAY BALL - AVM317 - 200V7 | |
| | A16.7 | FESTO | TROPPO PIENO DEAREATORE - DEAREATOR OVERFLOW - AVN318 - 200V8 | |
| | A17.0 | FESTO | TROPPO PIENO SATURATORE - CARBONATOR OVERLOAD - AVM321 - 200V9 | |
| | A17.1 | FESTO | SFIATO ARIA POMPA PRODOTTO - PRODUCT PUMP AIR BLOW-OFF - AVM322 - 200V10 | |
| | A17.2 | FESTO | SCARICO SERPENTINA - TUBULAR EL. BLOW-OFF - AVM323 - 200V11 | |
| | A17.3 | FESTO | RICICLO SCIROPPO START-UP - SYRUP RECIRCULATION START-UP - AVP324 - 200V12 | |
| | A17.5 | FESTO | INTERCETTAZIONE INIETT. CO2 - INTERCEPTION CO2 INJECTOR - AVM326 - 200V14 | |
| | A17.6 | FESTO | DIVISFERA DEAREATORE - DEAREATOR SPRAY BALL - AVM327 - 200V15 | |
| | A17.7 | FESTO | DEAREAZ. ACQUA IN RISCIACQUO - RINSING WATER DEAREATOR - AVM328 - 200V16 | |
| | A18.0 | FESTO | ASPIRAZIONE VENTURI - VENTURI SUCTION - AVS331 - 200V17 | |
| | A18.1 | FESTO | LAVAGGIO VENTURI - VENTURI WASHING - AVS332 - 200V18 | |
| | A18.2 | FESTO | INGRESSO SANIFICANTE 1 - SANITIZING INFEED 1 - AVS333 - 200V19 | |
| | A18.3 | FESTO | INGRESSO SANIFICANTE 2 - SANITIZING INFEED 2 - AVS334 - 200V20 | |
| | A18.4 | FESTO | INGRESSO SANIFICANTE 3 - SANITIZING INFEED 3 - AVS335 - 200V21 | |
| | A18.5 | FESTO | RICIRCOLO SANIFICANTE - SANITIZING SOLUTION RECIRCULATION - AVS336 - 200V22 | |
| | A18.6 | FESTO | SCARICO SANIFICANTE 1 - SANITIZING BLOW-OFF 1 - AVS337 - 200V23 | |
| | A18.7 | FESTO | SCARICO SCAMBIATORE - EXCHANGER DISCHARGE - AVM345 - 200V24 | |
| | A19.1 | FESTO | DIVOSFERA SCIROPPO - SYRUP SPRAY BALL - AVP361 - 200V26 | |
| | A19.2 | FESTO | SCARICO TUBO SCIROPPO - SYRUP PIPE BLOW-OFF - AVP344 - 200V27 | |
| | A19.3 | FESTO | SCARICO SATURATORE - CARBONATOR DISCHARGE - AVM369 - 200V28 | |
| | A20.0 | FESTO | GALLEGGIANTE DEAREATORE 1 - DEAREATOR 1 FLOATER - RVN302 - 200V29 | |
| | A20.1 | FESTO | INVASAMENTO DEAREATORE 1 - DEAREATOR 1 MAX. FILL - RVN302 - 200V30 | |
| | A20.2 | FESTO | GALLEGGIANTE SCIROPPO - SYRUP FLOATER - RVP303 - 200V31 | |
| | A20.3 | FESTO | INVASAMENTO SCIROPPO - SYRUP MAX. FILL - RVP303 - 200V32 | |
| | | | | |
| | PEW100 | 258B1 | LIVELLO SERBATOIO DI STOCCAGGIO - STORAGE TANK LEVEL | |
| | PEW102 | 254B1 | SENSORE PRESSIONE SERB.DI STOCCAGGIO - STORAGE TANK PRESSURE SENSOR | |
| | PEW104 | 270B1 | CONTR.PORTATA CO2 PER DEAREAZIONE - AIR VACUUM CO2 FLOW CONTROL | |
| | PEW106 | 254B4 | CONTROLLO PRESSIONE SERBATOIO CO2 - CO2 TANK PRESSURE CONTROL | |
| | PEW108 | 256U1 | PRODUCT TEMPERATURE SENSOR - SENSORE TEMPERATURA PRODOTTO | |
| | PEW112 | 255U1 | TEMP. H2O DEAREATORE - H2O DEAREATOR TEMP. | |
| | PEW114 | 259U1 | NORGREN PV VLAVE ANALOG - OUTPUT USCITA ANALOGICA VALVOLA NORGREN PV | |
| | | | | |
| | PAW100 | 251U4 | VALVOLA MOTORIZZATA ACQUA - WATER MOTOR VALVE | |
| | PAW102 | 252U4 | VALVOLA MOTORIZZATA SCIROPPO - SYRUP MOTOR VALVE | |
| | PAW104 | 253U4 | VALVOLA MOTORIZZATA CO2 - CO2 MOTOR VALVE | |
| | PAW108 | 270B1 | AIR VACUUM CO2 FLOW CONTROL - CONTR.PORTATA CO2 PER DEAREAZIONE | |
| | PAW110 | 255B7 | PRODUCT TEMPERATURE REGULATION - REGOLAZIONE TEMPERATURA PRODOTTO | |
| | PAW112 | 254B7 | SANIT. TEMP. CONTROL C- ONTROLLO TEMPERATURA SANIFICANTE | |
| | PAW114 | 259U1 | USCITA ANALOGICA VALVOLA NORGREN - SP NORGREN SP VALVE ANALOG OUTPUT | |
| | PAW122 | 254B4 | CONTROLLO PRESSIONE SERBATOIO CO2 - CO2 TANK PRESSURE CONTROL | |

View File

@ -0,0 +1,127 @@
# Tabla de Adaptación IO
| IO | Master Tag | PLC Description | Master Description | Certeza | Alternative |
| ------- | -------------------------- | --------------------------------------------------------------------------- | ------------------------------------------- | ------- | -------------------------- |
| I0.0 | DI_AuxVoltage_On | AUXILIARY CIRC. ON AUSILIARI INSERITI | "Electrical Panel Restored" | Alto | |
| I0.1 | DI_PB_HornReset | SIREN RESET RESET SIRENA | "PB Horn Reset" | Alto | |
| I0.2 | DI_AlarmReset | RESET RESET | "PB Machine Reset" | Alto | |
| I0.3 | DI_PB_Machine_Stop | MACHINE STOP ARRESTO MACCHINA | "PB Machine Stop" | Alto | |
| I0.4 | DI_PB_Machine_Start | MARCIA MACCHINA MACHINE START | "PB Machine Start" | Alto | |
| I0.5 | DI_UPSsupply | PRESENZA TENSIONE VOLTAGE PRESENCE | "UPS supply OK" | Alto | |
| I0.6 | DI_LSN301L | SONDA LIVELLO MINIMO DEAREATORE 1 | "LSN301_L - Deaireator Tank Minimun Level" | Alto | |
| I0.7 | DI_Min_Syrup_Level | SONDA LIVELLO MINIMO SCIRO - PPC SYRUP MINIMUM LEVEL PROBE | " - Syrup Tank Minimun Level" | Alto | |
| I1.0 | DI_LSM302L | SONDA LIVELLO MINIMO SERB.STOCCAGGIO - STORE TANK MIN LEVEL PROBE | "LSM302_L - Product Tank Minimun Level" | Alto | |
| I1.5 | DI_RMM301_Closed | VALVOLA CHIUSA VM1 - CLOSED VALVE VM1 | "RMM301 - Feedback OFF (VM1WATER)" | Alto | |
| I1.6 | DI_RMP302_Closed | CLOSED VALVE VM2 - VALVOLA CHIUSA VM2 | "RMP302 - Feedback OFF (VM2 SYRUP)" | Alto | |
| I1.7 | DI_RMM303_Closed | VALVOLA CHIUSA VM3 - CLOSED VALVE VM3 | "RMM303 - Feedback OFF (VM3 CO2)" | Alto | |
| I2.0 | DI_PPN301_Ovrld | WATER PUMP OVERLOAD - TERMICO POMPA ACQUA | "PPN301 - Deaireator Pump Overload" | Alto | |
| I2.1 | DI_PPN301_SoftStart_Ovrld | AVARIA POMPA ACQUA - WATER PUMP FAULT | "PPN301 - Water_Pump_SoftStart_Ovrld" | Alto | |
| I2.2 | DI_PPP302_Ovrld | SYRUP PUMP OVERLOAD - TERMICO POMPA SCIROPPC | "PPP302 - Syrup Pump Overload" | Alto | |
| I2.3 | DI_PPP302_Contactor | AVARIA POMPA SCIROPPO - SYRUP PUMP FAULT | "PPP302 - Syrup Pump Feedback" | Medio | DI_SyrRoom_SyrPump_Running |
| I2.4 | DI_PPM303_Ovrld | OVERPRESS.PUMP OVERLOAD - TERMICO POMPA SOVRAPRES. | "PPM303 - Product Pump Overload" | Alto | |
| I2.5 | DI_PPM303_Contactor | OVERPRESS.PUMP FAULT - AVARIA POMPA SOVRAPRES. | "PPM303 - Product Pump Feedback" | Medio | DI_PPN301_Contactor |
| I3.5 | DI_UPSAlarm | ALLARME UPS - UPS ALARM | "UPS Alarm" | Alto | |
| I3.6 | DI_UPSsupply | ALIMENTAZIONE DA BATTERIE - BATTERY POWER SUPPLY | "UPS supply OK" | Medio | |
| I3.7 | DI_UPSBatteryReady | BATTERIA TAMPONE PRONTA - BUFFER BATTERY READY | "UPS Battery ready" | Alto | |
| I4.3 | | ALARM ENABLING - ABILITAZIONE ALLARME | | | |
| I4.4 | DI_Emergency_Pressed | ABILITAZIONE ALLARME - ALARM ENABLING | "Electrical Panel Emergency Button" | Medio | |
| I5.0 | DI_SyrRoom_SyrPump_Running | POMPA SALA SCIROPPI INMARCIA - SYRUPS ROOM PUMP RUN | "From Syrup Room - Syrup Pump Running" | Alto | |
| I7.1 | DI_Air_InletPress_OK | AIR PRESSURE GAUGE - PRESSOSTATO ARIA | "Air Pressure Switch" | Alto | |
| I7.2 | DI_HVP301_Sensor | SENSORE VALVOLA SCARICO SCIROPPO - SYRUP DISCHARGE VALVE SENSOR | "GCP301 - Manual Syrup Valve Closed (NO)" | Alto | |
| I7.3 | DI_FSS301 | FLOW GAUGE FLUSSOSTATO | "FSS301 - Local Cip Return Flow Switch" | Alto | |
| Q0.0 | DO_HMIPowerSupply | RIPRISTINO ALIMENTAZIONE HMI - HMI POWER SUPPLY RESTORE | "Cut Power to PC" | Alto | |
| Q1.0 | DO_SyrRoom_SyrupRequest | RICHIESTA SCIROPPO - SYRUP REQUEST | "To syrup Room Syrup Request" | Alto | |
| Q1.1 | DO_SyrupRoomWaterReq | WATER REQUEST - RICHIESTA ACQUA | "Syrup Room - Water Pump Request" | Alto | |
| Q7.0 | DO_Horn | ALLARME ACUSTICO - ACOUSTIC ALARM | "DO_Horn" | Alto | |
| Q7.1 | DO_PB_Green_Lamp | MACHINE START - MARCIA MACCHINA | "PB Machine Start Lamp" | Alto | |
| Q7.2 | DO_Red_Lamp | MACHINE ALARM - ALLARME MACCHINA | "DO_Red_Lamp" | Alto | |
| Q7.3 | DO_Yellow_Lamp | ROTAT. LAMP - ROT ALLARM | "DO_Yellow_Lamp" | Alto | |
| Q7.4 | DO_PPN301_Run | COMANDO POMPA ACQUA - WATER PUMP CONTROL | "DO_PPN301_SoftStartPower" | Alto | |
| Q7.5 | DO_PPP302_Run | SYRUP PUMP CONTROL - COMANDO POMPA SCIROPPO | "DO_PPP302_Run" | Alto | |
| Q7.6 | DO_PPM303_Run | COMANDO POMPA SOVRAPRESSIONE - OVERPRESSURE PUMP CONTROL | "DO_PPM303_Run" | Alto | |
| A16.0 | DO_AVM311 | SFIATO SATURATORE - CARBONATOR BLOW-OFF - AVM311 - 200V1 | "MIX - Product Tank Blow Off" | Alto | |
| A16.1 | DO_AVM312_Deair_Reflux | DEAREAZIONE ACQUA - WATER DEAREATOR - AVM312 - 200V2 | "MIX - N10_O41_" | Medio | |
| A16.2 | DO_AVM313 | RICIRCOLO PRODOTTO - PRODUCT RECYCLE - AVM313 - 200V3 | "MIX - Product Recirculation" | Alto | |
| A16.3 | DO_AVN314 | SCARICO DEAREATORE - DEAREATOR BLOW-OFF - AVN314 - 200V4 | "MIX - Deaireator Drain" | Alto | |
| A16.4 | DO_AVM315 | SCARICO SATURATORE - CARBONATOR DISCHARGE - AVM315 - 200V5 | "MIX - Product Tank Drain" | Alto | |
| A16.5 | DO_AVP316 | SCARICO SCIROPPO - SYRUP BLOW-OFF - AVP316 - 200V6 | "MIX - Syrup Tank Drain" | Alto | |
| A16.6 | DO_AVM317 | DIVISFERA SATURATORE - CARBONATOR SPRAY BALL - AVM317 - 200V7 | "MIX - Product Tank Spray Ball" | Alto | |
| A16.7 | DO_AVN318 | TROPPO PIENO DEAREATORE - DEAREATOR OVERFLOW - AVN318 - 200V8 | "MIX - Deaireator Over Fill" | Alto | |
| A17.0 | DO_AVM321 | TROPPO PIENO SATURATORE - CARBONATOR OVERLOAD - AVM321 - 200V9 | "MIX - Product Tank Over Fill" | Alto | |
| A17.1 | DO_AVM322 | SFIATO ARIA POMPA PRODOTTO - PRODUCT PUMP AIR BLOW-OFF - AVM322 - 200V10 | "MIX - Water Pump PPN301 Priming" | Alto | |
| A17.2 | DO_AVM323 | SCARICO SERPENTINA - TUBULAR EL. BLOW-OFF - AVM323 - 200V11 | "MIX - Water Pipe Drain" | Alto | |
| A17.3 | DO_AVP324 | RICICLO SCIROPPO START-UP - SYRUP RECIRCULATION START-UP - AVP324 - 200V12 | "MIX - Syrup Recirculation" | Alto | |
| A17.5 | DO_AVM326 | INTERCETTAZIONE INIETT. CO2 - INTERCEPTION CO2 INJECTOR - AVM326 - 200V14 | "MIX - CO2 Injection Shut Off" | Alto | |
| A17.6 | DO_AVN327 | DIVISFERA DEAREATORE - DEAREATOR SPRAY BALL - AVM327 - 200V15 | "MIX - Deaireator Tank Spray Ball" | Alto | |
| A17.7 | DO_AVN328 | DEAREAZ. ACQUA IN RISCIACQUO - RINSING WATER DEAREATOR - AVM328 - 200V16 | "MIX - Deaireator Tank Start CO2 Injection" | Medio | DO_AVN347 |
| A18.0 | DO_AVS331 | ASPIRAZIONE VENTURI - VENTURI SUCTION - AVS331 - 200V17 | "MIX - CIP Venturi" | Alto | |
| A18.1 | DO_AVS332 | LAVAGGIO VENTURI - VENTURI WASHING - AVS332 - 200V18 | "MIX - CIP Wash Venturi" | Alto | |
| A18.2 | DO_AVS333 | INGRESSO SANIFICANTE 1 - SANITIZING INFEED 1 - AVS333 - 200V19 | "MIX - CIP Caustic" | Alto | |
| A18.3 | DO_AVS334 | INGRESSO SANIFICANTE 2 - SANITIZING INFEED 2 - AVS334 - 200V20 | "MIX - CIP Acid" | Alto | |
| A18.4 | DO_AVS335 | INGRESSO SANIFICANTE 3 - SANITIZING INFEED 3 - AVS335 - 200V21 | "MIX - CIP Peracetic Acid" | Alto | |
| A18.5 | DO_AVS336 | RICIRCOLO SANIFICANTE - SANITIZING SOLUTION RECIRCULATION - AVS336 - 200V22 | "MIX - CIP Recirculation" | Alto | |
| A18.6 | DO_AVS337 | SCARICO SANIFICANTE 1 - SANITIZING BLOW-OFF 1 - AVS337 - 200V23 | "MIX - CIP Drain" | Alto | |
| A18.7 | DO_AVM345 | SCARICO SCAMBIATORE - EXCHANGER DISCHARGE - AVM345 - 200V24 | "MIX - Product Chiller Drain" | Alto | |
| A19.1 | DO_AVP361 | DIVOSFERA SCIROPPO - SYRUP SPRAY BALL - AVP361 - 200V26 | "MIX - Syrup Tank Spray Ball" | Alto | |
| A19.2 | DO_AVP344 | SCARICO TUBO SCIROPPO - SYRUP PIPE BLOW-OFF - AVP344 - 200V27 | "MIX - Syrup Line Drain" | Alto | |
| A19.3 | DO_AVM369 | SCARICO SATURATORE - CARBONATOR DISCHARGE - AVM369 - 200V28 | "MIX - Blender to filler 1 Drain" | Alto | |
| A20.0 | DO_RVN302 | GALLEGGIANTE DEAREATORE 1 - DEAREATOR 1 FLOATER - RVN302 - 200V29 | "MIX - Deaireator Floater" | Alto | |
| A20.1 | DO_RVN302_1 | INVASAMENTO DEAREATORE 1 - DEAREATOR 1 MAX. FILL - RVN302 - 200V30 | "MIX - Deaireator 2 Fill Up" | Alto | |
| PEW100 | P_AI_LTM302 | LIVELLO SERBATOIO DI STOCCAGGIO - STORAGE TANK LEVEL | "LTM302 - Product Tank Level" | Alto | |
| PEW102 | P_AI_PTM304 | SENSORE PRESSIONE SERB.DI STOCCAGGIO - STORAGE TANK PRESSURE SENSOR | "PTM304 - Product Tank Pressure" | Alto | |
| PEW104 | P_AI_RVN304 | CONTR.PORTATA CO2 PER DEAREAZIONE - AIR VACUUM CO2 FLOW CONTROL | "RVN304 - Deaireation Valve" | Alto | |
| PEW106 | P_AI_PCM306 | CONTROLLO PRESSIONE SERBATOIO CO2 - CO2 TANK PRESSURE CONTROL | "PCM306 - Gas Pressure Injection" | Alto | |
| PEW108 | P_AI_TTM306 | PRODUCT TEMPERATURE SENSOR - SENSORE TEMPERATURA PRODOTTO | "TTM306 - Chiller Temperature" | Alto | |
| PEW112 | P_AI_TTN321 | TEMP. H2O DEAREATORE - H2O DEAREATOR TEMP. | "TTN321 - Deaireator Temperature" | Alto | |
| PEW114 | P_AI_RVM301 | NORGREN PV VLAVE ANALOG - OUTPUT USCITA ANALOGICA VALVOLA NORGREN PV | "RVM301 - Product Tank Pressure Valve" | Alto | |
| PAW100 | P_AO_RMM301 | VALVOLA MOTORIZZATA ACQUA - WATER MOTOR VALVE | "RMM301 - Water Flow Control" | Alto | |
| PAW102 | P_AO_RMP302 | VALVOLA MOTORIZZATA SCIROPPO - SYRUP MOTOR VALVE | "RMP302 - Syrup Flow Control" | Alto | |
| PAW104 | P_AO_RMM303 | VALVOLA MOTORIZZATA CO2 - CO2 MOTOR VALVE | "RMM303 - Gas Flow Control" | Alto | |
| PAW108 | P_AO_RVN304 | AIR VACUUM CO2 FLOW CONTROL - CONTR.PORTATA CO2 PER DEAREAZIONE | "RVN304 - Deaireation Valve" | Alto | |
| PAW110 | P_AO_RVM319 | PRODUCT TEMPERATURE REGULATION - REGOLAZIONE TEMPERATURA PRODOTTO | "RVM319 - Chiller Temperature control" | Alto | |
| PAW112 | P_AO_RVS318 | SANIT. TEMP. CONTROL C- ONTROLLO TEMPERATURA SANIFICANTE | "RVS318 - Local Cip Heating Valve" | Alto | |
| PAW114 | P_AO_RVM301 | USCITA ANALOGICA VALVOLA NORGREN - SP NORGREN SP VALVE ANALOG OUTPUT | "RVM301 - Product Tank Pressure Valve" | Alto | |
| PAW122 | P_AO_PCM306 | CONTROLLO PRESSIONE SERBATOIO CO2 - CO2 TANK PRESSURE CONTROL | "PCM306 - Gas Injection Pressure Control" | Alto | |
| EW1640 | P_gPPM303_VFC_StatusWord | PROFIBUS PLC 045U1 - PPM303 - Inverter Status | "MIX - Product Pump - Profibus Variables" | Alto | |
| EW1642 | P_gPPM303_VFC_ActualValue | PROFIBUS PLC 045U1 - PPM303 - Inverter Actual Value | "MIX - Product Pump - Profibus Variables" | Alto | |
| AW1640 | P_gPPM303_VFC_ControlWord | PROFIBUS PLC 045U1 - PPM303 - Inverter Control | "MIX - Product Pump - Profibus Variables" | Alto | |
| AW1642 | P_gPPM303_VFC_Refvalue | PROFIBUS PLC 045U1 - PPM303 - Inverter Reference | "MIX - Product Pump - Profibus Variables" | Alto | |
| ED2030 | P_FTP302_Flow | PROFIBUS Syrup_Mass_252U1 - Mass Flow | "MIX - Profibus Variables" | Alto | |
| EB2034 | P_FTP302_Flow_State | PROFIBUS Syrup_Mass_252U1 - Mass Flow State | "MIX - Profibus Variables" | Alto | |
| ED2045 | P_FTP302_Density | PROFIBUS Syrup_Mass_252U1 - Density | "MIX - Profibus Variables" | Alto | |
| EB2049 | P_FTP302_Density_State | PROFIBUS Syrup_Mass_252U1 - Density State | "MIX - Profibus Variables" | Alto | |
| ED2050 | P_FTP302_Brix | PROFIBUS Syrup_Mass_252U1 - Concentration | "MIX - Profibus Variables" | Alto | |
| EB2054 | P_FTP302_Brix_State | PROFIBUS Syrup_Mass_252U1 - Concentration State | "MIX - Profibus Variables" | Alto | |
| ED2055 | P_FTP302_Temp | PROFIBUS Syrup_Mass_252U1 - Temperature | "MIX - Profibus Variables" | Alto | |
| EB2059 | P_FTP302_Temp_State | PROFIBUS Syrup_Mass_252U1 - Temperature State | "MIX - Profibus Variables" | Alto | |
| ED2070 | P_FTP302_Totalizer | PROFIBUS Syrup_Mass_252U1 - Totalizer Value | "MIX - Profibus Variables" | Alto | |
| EB2074 | P_FTP302_Totaliz_State | PROFIBUS Syrup_Mass_252U1 - Totalizer State | "MIX - Profibus Variables" | Alto | |
| AB2070 | P_FTP302_Tot_Ctrl | PROFIBUS Syrup_Mass_252U1 - Totalizer Control | "MIX -" | Alto | |
| ED3080 | P_FTN301_Flow | PROFIBUS Water_Volumetric_251U1 - Volume Flow | "MIX - Profibus Variables" | Alto | |
| EB3084 | P_FTN301_Flow_State | PROFIBUS Water_Volumetric_251U1 - Flow State | "MIX - Profibus Variables" | Alto | |
| ED3100 | P_FTN301_Totalizer | PROFIBUS Water_Volumetric_251U1 - Totalizer Value | "MIX - Profibus Variables" | Alto | |
| EB3104 | P_FTN301_Totaliz_State | PROFIBUS Water_Volumetric_251U1 - Totalizer State | "MIX - Profibus Variables" | Alto | |
| AB3100 | P_FTN301_Tot_Ctrl | PROFIBUS Water_Volumetric_251U1 - Totalizer Control | "MIX -" | Alto | |
| ED3200 | P_FTM303_Flow | PROFIBUS CO2_Mass_253U1 - Mass Flow | "MIX - Profibus Variables" | Alto | |
| EB3204 | P_FTM303_Flow_State | PROFIBUS CO2_Mass_253U1 - Flow State | "MIX - Profibus Variables" | Alto | |
| ED3215 | P_FTM303_Density | PROFIBUS CO2_Mass_253U1 - Density | "MIX - Profibus Variables" | Alto | |
| EB3219 | P_FTM303_Density_State | PROFIBUS CO2_Mass_253U1 - Density State | "MIX - Profibus Variables" | Alto | |
| ED3225 | P_FTM303_Temperature | PROFIBUS CO2_Mass_253U1 - Temperature | "MIX - Profibus Variables" | Alto | |
| EB3229 | P_FTM303_Temperature_State | PROFIBUS CO2_Mass_253U1 - Temperature State | "MIX - Profibus Variables" | Alto | |
| ED3240 | P_FTM303_Totalizer | PROFIBUS CO2_Mass_253U1 - Totalizer Value | "MIX - Profibus Variables" | Alto | |
| EB3244 | P_FTM303_Totalizer_State | PROFIBUS CO2_Mass_253U1 - Totalizer State | "MIX - Profibus Variables" | Alto | |
| AB3240 | P_FTM303_Tot_Ctrl | PROFIBUS CO2_Mass_253U1 - Totalizer Control | "MIX -" | Alto | |
| ED15060 | P_PDS_CO2 | PROFIBUS Anton Paar_120U1 - CO2 | | Alto | |
| ED15084 | P_PDS_Product_Brix | PROFIBUS Anton Paar_120U1 - Brix | | Alto | |
| ED15104 | P_PDS_Temperature | PROFIBUS Anton Paar_120U1 - Temperature | | Alto | |
| ED15112 | P_PDS_Density | PROFIBUS Anton Paar_120U1 - Density | | Alto | |
## Problemi
| IO | Nota |
| ------------ | ------------------------------------------------------------------------------------------------------------------ |
| I4.3, I4.4 | ALARM ENABLING - ABILITAZIONE ALLARME. Queste enable/disable non lo ho trovate sul master. Da vedere su il Twinkat |
| I0.5 | PRESENZA TENSIONE - sul schema e una linea diretta dal 24v su un ingresso PLC. Da vedere su il Twinkat |
| A19.3 | Duplicado de A16.4 (SCARICO SATURATORE). Se asignó el mismo tag DO_AVM315. |
| A20.2, A20.3 | Señales relacionadas con el nivel de sciroppo sin correspondencia exacta. Asignación con certeza media. |

View File

@ -0,0 +1,119 @@
# Tabla de Adaptación IO PLC Siemens - Software Master
| IO | Master Tag | PLC Description | Master Description | Certeza | Alternative |
| -------- | -------------------------- | -------------------------------------------------------------------- | ----------------------------------------- | ------- | ----------------------- |
| I0.0 | DI_AuxVoltage_On | AUXILIARY CIRC. ON AUSILIARI INSERITI | Electrical Panel Restored | 90% | - |
| I0.1 | DI_PB_HornReset | SIREN RESET RESET SIRENA | PB Horn Reset | 95% | - |
| I0.2 | DI_AlarmReset | RESET RESET | PB Machine Reset | 95% | - |
| I0.3 | DI_PB_Machine_Stop | MACHINE STOP ARRESTO MACCHINA | PB Machine Stop | 95% | - |
| I0.4 | DI_PB_Machine_Start | MARCIA MACCHINA MACHINE START | PB Machine Start | 95% | - |
| I0.5 | DI_UPSsupply | PRESENZA TENSIONE VOLTAGE PRESENCE | UPS supply OK | 80% | - |
| I0.6 | DI_LSN301L | SONDA LIVELLO MINIMO DEAREATORE 1 | Deaireator Tank Minimun Level | 90% | - |
| I0.7 | DI_Min_Syrup_Level | SONDA LIVELLO MINIMO SCIRO - PPC SYRUP MINIMUM LEVEL PROBE | Syrup Tank Minimun Level | 95% | - |
| I1.0 | DI_LSM302L | SONDA LIVELLO MINIMO SERB.STOCCAGGIO - STORE TANK MIN LEVEL PROBE | Product Tank Minimun Level | 90% | - |
| I1.5 | DI_RMM301_Closed | VALVOLA CHIUSA VM1 - CLOSED VALVE VM1 | RMM301 - Feedback OFF (VM1WATER) | 95% | - |
| I1.6 | DI_RMP302_Closed | CLOSED VALVE VM2 - VALVOLA CHIUSA VM2 | RMP302 - Feedback OFF (VM2 SYRUP) | 95% | - |
| I1.7 | DI_RMM303_Closed | VALVOLA CHIUSA VM3 - CLOSED VALVE VM3 | RMM303 - Feedback OFF (VM3 CO2) | 95% | - |
| I2.0 | DI_PPN301_Ovrld | WATER PUMP OVERLOAD - TERMICO POMPA ACQUA | PPN301 - Deaireator Pump Overload | 95% | - |
| I2.1 | DI_PPN301_SoftStart_Ovrld | AVARIA POMPA ACQUA - WATER PUMP FAULT | PPN301 - Water_Pump_SoftStart_Ovrld | 90% | PPN301_SoftStart_Averia |
| I2.2 | DI_PPP302_Ovrld | SYRUP PUMP OVERLOAD - TERMICO POMPA SCIROPPC | PPP302 - Syrup Pump Overload | 95% | - |
| I2.3 | DI_PPP302_Contactor | AVARIA POMPA SCIROPPO - SYRUP PUMP FAULT | PPP302 - Syrup Pump Feedback | 85% | - |
| I2.4 | DI_PPM303_Ovrld | OVERPRESS.PUMP OVERLOAD - TERMICO POMPA SOVRAPRES. | PPM303 - Product Pump Overload | 95% | - |
| I2.5 | DI_PPM303_Contactor | OVERPRESS.PUMP FAULT - AVARIA POMPA SOVRAPRES. | PPM303 - Product Pump Feedback | 85% | - |
| I3.5 | DI_UPSAlarm | ALLARME UPS - UPS ALARM | UPS Alarm | 95% | - |
| I3.6 | DI_UPSsupply | ALIMENTAZIONE DA BATTERIE - BATTERY POWER SUPPLY | UPS supply OK | 80% | - |
| I3.7 | DI_UPSBatteryReady | BATTERIA TAMPONE PRONTA - BUFFER BATTERY READY | UPS Battery ready | 95% | - |
| I5.0 | DI_SyrRoom_SyrPump_Running | POMPA SALA SCIROPPI INMARCIA - SYRUPS ROOM PUMP RUN | From Syrup Room - Syrup Pump Running | 95% | - |
| I7.1 | DI_Air_InletPress_OK | AIR PRESSURE GAUGE - PRESSOSTATO ARIA | Air Pressure Switch | 95% | - |
| I7.2 | DI_HVP301_Sensor | SENSORE VALVOLA SCARICO SCIROPPO - SYRUP DISCHARGE VALVE SENSOR | GCP301 - Manual Syrup Valve Closed (NO) | 90% | - |
| I7.3 | DI_FSS301 | FLOW GAUGE FLUSSOSTATO | FSS301 - Local Cip Return Flow Switch | 90% | - |
| Q0.0 | DO_HMIPowerSupply | RIPRISTINO ALIMENTAZIONE HMI - HMI POWER SUPPLY RESTORE | Cut Power to PC | 90% | DO_CtrlCircuitRun |
| Q1.0 | DO_SyrRoom_SyrupRequest | RICHIESTA SCIROPPO - SYRUP REQUEST | SYRUP ROOM - Syrup Request | 95% | DO_SyRm_SyrupReques |
| Q1.1 | DO_SyrupRoomWaterReq | WATER REQUEST - RICHIESTA ACQUA | Syrup Room - Water Pump Request | 95% | DO_SyRm_WaterRequest |
| Q7.0 | DO_Horn | ALLARME ACUSTICO - ACOUSTIC ALARM | DO_Horn | 95% | - |
| Q7.1 | DO_PB_Green_Lamp | MACHINE START - MARCIA MACCHINA | PB Machine Start Lamp | 95% | - |
| Q7.2 | DO_Red_Lamp | MACHINE ALARM - ALLARME MACCHINA | DO_Red_Lamp | 95% | - |
| Q7.3 | DO_Yellow_Lamp | ROTAT. LAMP - ROT ALLARM | DO_Yellow_Lamp | 95% | - |
| Q7.4 | DO_PPN301_Run | COMANDO POMPA ACQUA - WATER PUMP CONTROL | DO_PPN301_SoftStartPower | 95% | - |
| Q7.5 | DO_PPP302_Run | SYRUP PUMP CONTROL - COMANDO POMPA SCIROPPO | DO_PPP302_Run | 95% | - |
| Q7.6 | DO_PPM303_Run | COMANDO POMPA SOVRAPRESSIONE - OVERPRESSURE PUMP CONTROL | DO_PPM303_Run | 95% | - |
| A16.0 | DO_AVM311 | SFIATO SATURATORE | MIX - Product Tank Blow Off | 90% | - |
| A16.1 | DO_AVN314 | DEAREAZIONE ACQUA | MIX - Deaireator Drain | 85% | - |
| A16.2 | DO_AVM313 | RICIRCOLO PRODOTTO | MIX - Product Recirculation | 95% | - |
| A16.3 | DO_AVN314 | SCARICO DEAREATORE | MIX - Deaireator Drain | 95% | - |
| A16.4 | DO_AVM315 | SCARICO SATURATORE | MIX - Product Tank Drain | 95% | - |
| A16.5 | DO_AVP316 | SCARICO SCIROPPO | MIX - Syrup Tank Drain | 95% | - |
| A16.6 | DO_AVM317 | DIVOSFERA SATURATORE | MIX - Product Tank Spray Ball | 95% | - |
| A16.7 | DO_AVN318 | TROPPOPIENO DEAREATORE | MIX - Deaireator Over Fill | 95% | - |
| A17.0 | DO_AVM321 | TROPPO PIENO SATURATORE | MIX - Product Tank Over Fill | 95% | - |
| A17.1 | DO_AVM322 | SFIATO ARIA POMPA PRODOTTO | MIX - Water Pump PPN301 Priming | 90% | - |
| A17.2 | DO_AVM323 | SCARICO SERPENTINA | MIX - Water Pipe Drain | 95% | - |
| A17.3 | DO_AVP324 | RICICLO SCIROPPO START-UP | MIX - Syrup Recirculation | 95% | - |
| A17.5 | DO_AVM326 | INTERCETTAZIONE INIETT.CO2 | MIX - CO2 Injection Shut Off | 95% | - |
| A17.6 | DO_AVN327 | DIVOSFERADEAREATORE | MIX - Deaireator Tank Spray Ball | 95% | - |
| A17.7 | DO_AVN328 | DEAREAZ. ACOUA IN RISCACOUO | MIX - Deaireator Tank Start CO2 Injection | 80% | - |
| A18.0 | DO_AVN325 | ASPIRAZIONE VENTURI | MIX - Vacuum Pump PPN304 Water In | 85% | - |
| A18.1 | DO_AVS332 | LAVAGGIOVENTURI | MIX - CIP Wash Venturi | 95% | - |
| A18.2 | DO_AVS333 | INGRESSO SANIFICANTE 1 | MIX - CIP Caustic | 90% | - |
| A18.3 | DO_AVS334 | INGRESSO SANIFICANTE 2 | MIX - CIP Acid | 90% | - |
| A18.4 | DO_AVS335 | INGRESSO SANIFICANTE 3 | MIX - CIP Peracetic Acid | 90% | - |
| A18.5 | DO_AVS336 | RICIRCOLO SANIFICANTE | MIX - CIP Recirculation | 95% | - |
| A18.6 | DO_AVS337 | SCARICO SANIFICANTE 1 | MIX - CIP Drain | 95% | - |
| A18.7 | DO_AVM345 | SCARICO SCAMBIATORE | MIX - Product Chiller Drain | 85% | DO_AVS338 |
| A19.1 | DO_AVP361 | DIVOSFERA SCIROPPO | MIX - Syrup Tank Spray Ball | 95% | - |
| A19.2 | DO_AVP344 | SCARICO TUBO SCIROPPO | MIX - Syrup Line Drain | 95% | - |
| A19.3 | DO_AVM315 | SCARICO SATURATORE | MIX - Product Tank Drain | 95% | - |
| A20.0 | DO_RVN302 | GALLEGGIANTE DEAREATORE 1 | MIX - Deaireator Floater | 95% | - |
| A20.1 | DO_RVN302_1 | INVASAMENTODEAREATORE1 | MIX - Deaireator 2 Fill Up | 90% | - |
| A20.2 | DO_RVP303 | GALLEGGIANTE SCIROPPO | MIX - Syrup Tank Level Valve | 75% | - |
| A20.3 | DO_EV04_SyrupFillUp | INVASAMENTO SCIROPPO | MIX - N10_O07_ | 75% | DO_EV03_SyrupLvlCtrl |
| PEW100 | P_AI_LTM302 | LIVELLO SERBATOIO DI STOCCAGGIO - STORAGE TANK LEVEL | LTM302 - Product Tank Level | 95% | - |
| PEW102 | P_AI_PTM304 | SENSORE PRESSIONE SERB.DI STOCCAGGIO - STORAGE TANK PRESSURE SENSOR | PTM304 - Product Tank Pressure | 95% | - |
| PEW104 | P_AI_RVN304 | CONTR.PORTATA CO2 PER DEAREAZIONE - AIR VACUUM CO2 FLOW CONTROL | RVN304 - Deaireation Valve | 85% | - |
| PEW106 | P_AI_PCM306 | CONTROLLO PRESSIONE SERBATOIO CO2 - CO2 TANK PRESSURE CONTROL | PCM306 - Gas Pressure Injection | 90% | - |
| PEW108 | P_AI_TTM306 | PRODUCT TEMPERATURE SENSOR - SENSORE TEMPERATURA PRODOTTO | TTM306 - Chiller Temperature | 90% | - |
| PEW112 | P_AI_TTN321 | TEMP. H2O DEAREATORE - H2O DEAREATOR TEMP. | TTN321 - Deaireator Temperature | 95% | - |
| PEW114 | P_AI_RVM301 | NORGREN PV VLAVE ANALOG - OUTPUT USCITA ANALOGICA VALVOLA NORGREN PV | RVM301 - Product Tank Pressure Valve | 90% | - |
| PAW100 | P_AO_RMM301 | VALVOLA MOTORIZZATA ACQUA - WATER MOTOR VALVE | RMM301 - Water Flow Control | 95% | - |
| PAW102 | P_AO_RMP302 | VALVOLA MOTORIZZATA SCIROPPO - SYRUP MOTOR VALVE | RMP302 - Syrup Flow Control | 95% | - |
| PAW104 | P_AO_RMM303 | VALVOLA MOTORIZZATA CO2 - CO2 MOTOR VALVE | RMM303 - Gas Flow Control | 95% | - |
| PAW108 | P_AO_PCM306 | AIR VACUUM CO2 FLOW CONTROL - CONTR.PORTATA CO2 PER DEAREAZIONE | PCM306 - Gas Injection Pressure Control | 95% | - |
| PAW110 | P_AO_RVM319 | PRODUCT TEMPERATURE REGULATION - REGOLAZIONE TEMPERATURA PRODOTTO | RVM319 - Chiller Temperature control | 90% | - |
| PAW112 | P_AO_RVS318 | SANIT. TEMP. CONTROL C- ONTROLLO TEMPERATURA SANIFICANTE | RVS318 - Local Cip Heating Valve | 85% | - |
| PAW114 | P_AO_RVM301 | USCITA ANALOGICA VALVOLA NORGREN - SP NORGREN SP VALVE ANALOG OUTPUT | RVM301 - Product Tank Pressure Valve | 95% | - |
| PAW122 | P_AO_RVN304 | CONTROLLO PRESSIONE SERBATOIO CO2 - CO2 TANK PRESSURE CONTROL | RVN304 - Deaireation Valve | 85% | - |
| EW 3080 | P_FTN301_Flow | Volume Flow | MIX - Profibus Variables | 95% | - |
| EW 3100 | P_FTN301_Totalizer | Totalizer Value / Control | MIX - Profibus Variables | 95% | - |
| AW 3100 | P_FTN301_Tot_Ctrl | Totalizer Value / Control | MIX - | 95% | - |
| EW 2030 | P_FTP302_Flow | Mass Flow | MIX - Profibus Variables | 95% | - |
| EW 2045 | P_FTP302_Density | Density | MIX - Profibus Variables | 95% | - |
| EW 2050 | P_FTP302_Brix | Concentration | MIX - Profibus Variables | 95% | - |
| EW 2055 | P_FTP302_Temp | Temperature | MIX - Profibus Variables | 95% | - |
| EW 2070 | P_FTP302_Totalizer | Totalizer Value / Control | MIX - Profibus Variables | 95% | - |
| AW 2070 | P_FTP302_Tot_Ctrl | Totalizer Value / Control | MIX - | 95% | - |
| EW 3200 | P_FTM303_Flow | Mass Flow | MIX - Profibus Variables | 95% | - |
| EW 3215 | P_FTM303_Density | Density | MIX - Profibus Variables | 95% | - |
| EW 3225 | P_FTM303_Temperature | Temperature | MIX - Profibus Variables | 95% | - |
| EW 3240 | P_FTM303_Totalizer | Totalizer Value / Control | MIX - Profibus Variables | 95% | - |
| AW 3240 | P_FTM303_Tot_Ctrl | Totalizer Value / Control | MIX - | 95% | - |
| EW 15060 | P_PDS_CO2 | IN128 mPDS5>PLC | Product Analizer - Product CO2 | 95% | - |
| EW 15084 | P_PDS_Product_Brix | IN128 mPDS5>PLC | Product Analizer - Product Brix | 95% | - |
| EW 15104 | P_PDS_Temperature | IN128 mPDS5>PLC | Product Analizer - Temperature | 95% | - |
| EW 15112 | P_PDS_Density | IN128 mPDS5>PLC | Product Analizer - Density | 95% | - |
## Señales PROFIBUS con VFC (Variable Frequency Control)
| IO | Master Tag | PLC Description | Master Description | Certeza | Alternative |
| --- | --- | --- | --- | --- | --- |
| EW 1640 | P_gPPM303_VFC_StatusWord | PPO Type 8 Module consistent PCD_1 | MIX - Product Pump - Profibus Variables | 90% | - |
| EW 1642 | P_gPPM303_VFC_ActualValue | PPO Type 8 Module consistent PCD_1 | MIX - Product Pump - Profibus Variables | 90% | - |
| AW 1640 | P_gPPM303_VFC_ControlWord | PPO Type 8 Module consistent PCD_1 | MIX - Product Pump - Profibus Variables | 90% | - |
| AW 1642 | P_gPPM303_VFC_Refvalue | PPO Type 8 Module consistent PCD_1 | MIX - Product Pump - Profibus Variables | 90% | - |
## Problemi
| IO | Nota |
| ------------ | ------------------------------------------------------------------------------------------------------- |
| I4.3, I4.4 | ==ALARM ENABLING - ABILITAZIONE ALLARME== Queste enable/disable non lo ho trovate sul master. |
| I0.5 | PRESENZA TENSIONE - sul schema e una linea diretta dal 24v su un ingresso PLC |
| A19.3 | Duplicado de A16.4 (SCARICO SATURATORE). Se asignó el mismo tag DO_AVM315. |
| A20.2, A20.3 | Señales relacionadas con el nivel de sciroppo sin correspondencia exacta. Asignación con certeza media. |

View File

@ -0,0 +1,341 @@
## Inputs PLCTags
| Master Tag | Type | Data Type | Description |
| -------------------------------- | ------ | --------- | ----------------------------------------------------------------------- |
| DI_Emergency_Pilz_On | Input | Bool | "Pilz Emergency" |
| DI_LSN301L | Input | Bool | "LSN301_L - Deaireator Tank Minimun Level" |
| DI_LSM302L | Input | Bool | "LSM302_L - Product Tank Minimun Level" |
| DI_PPN301_SoftStart_Ovrld | Input | Bool | "PPN301 - Water_Pump_SoftStart_Ovrld" |
| DI_UPSBatteryReady | Input | Bool | "UPS Battery ready" |
| DI_RMM301_Closed | Input | Bool | "RMM301 - Feedback OFF (VM1WATER)" |
| DI_RMP302_Closed | Input | Bool | "RMP302 - Feedback OFF (VM2 SYRUP)" |
| DI_RMM303_Closed | Input | Bool | "RMM303 - Feedback OFF (VM3 CO2)" |
| DI_PPN301_Contactor | Input | Bool | "PPN301 - Deaireator Pump Feedback" |
| DI_PPP302_Ovrld | Input | Bool | "PPP302 - Syrup Pump Overload" |
| DI_PPP302_Contactor | Input | Bool | "PPP302 - Syrup Pump Feedback" |
| DI_PPM303_Ovrld | Input | Bool | "PPM303 - Product Pump Overload" |
| DI_PPM306_Contactor | Input | Bool | "PPM306 - Recirculating Pump Feedback" |
| DI_SyrRoom_SyrPump_Running | Input | Bool | "From Syrup Room - Syrup Pump Running" |
| DI_SyrRoom_WatPumpReady | Input | Bool | "From Syrup Room - Water Pump Ready" |
| DI_CIP_CIP_Rinse | Input | Bool | "From CIP Running " |
| DI_CIP_Drain | Input | Bool | "From CIP Drain" |
| DI_Air_InletPress_OK | Input | Bool | "Air Pressure Switch" |
| P_AI_LTM302 | Input | Word | "LTM302 - Product Tank Level" |
| P_AI_PTM304 | Input | Word | "PTM304 - Product Tank Pressure" |
| P_AI_LTP303 | Input | Word | "LTP303 - Syrup Tank Level" |
| P_AI_TTN321 | Input | Word | "TTN321 - Deaireator Temperature" |
| P_AI_PTF203 | Input | Word | "PTF203 - Differential Pressure" |
| DI_CIP_CIP_Enable | Input | Bool | "From CIP Enable" |
| DI_AVM362_Open | Input | Bool | "AVM362 - Feedback ON" |
| DI_AVM362_Close | Input | Bool | "AVM362 - Feedback OFF" |
| DI_AVM346_Open | Input | Bool | "AVM346 - Feedback ON" |
| DI_AVM346_Close | Input | Bool | "AVM346 - Feedback OFF" |
| DI_UPSAlarm | Input | Bool | "UPS Alarm" |
| DI_UPSsupply | Input | Bool | "UPS supply OK" |
| DI_Emergency_Pressed | Input | Bool | "Electrical Panel Emergency Button" |
| P_AI_PTP338 | Input | Word | "PTP338 - Syrup Inlet Pressure" |
| P_FTM303_Density | Input | Real | "MIX - Profibus Variables" |
| P_FTM303_Density_State | Input | Byte | "MIX - Profibus Variables" |
| P_FTM303_Flow | Input | Real | "MIX - Profibus Variables" |
| P_FTM303_Flow_State | Input | Byte | "MIX - Profibus Variables" |
| P_FTM303_Temperature | Input | Real | "MIX - Profibus Variables" |
| P_FTM303_Temperature_State | Input | Byte | "MIX - Profibus Variables" |
| P_FTM303_Totalizer | Input | Real | "MIX - Profibus Variables" |
| P_FTM303_Totalizer_State | Input | Byte | "MIX - Profibus Variables" |
| P_FTN301_Flow | Input | Real | "MIX - Profibus Variables" |
| P_FTN301_Flow_State | Input | Byte | "MIX - Profibus Variables" |
| P_FTN301_Totaliz_State | Input | Byte | "MIX - Profibus Variables" |
| P_FTN301_Totalizer | Input | Real | "MIX - Profibus Variables" |
| P_FTP302_Brix | Input | Real | "MIX - Profibus Variables" |
| P_FTP302_Brix_State | Input | Byte | "MIX - Profibus Variables" |
| P_FTP302_Density | Input | Real | "MIX - Profibus Variables" |
| P_FTP302_Density_State | Input | Byte | "MIX - Profibus Variables" |
| P_FTP302_Flow | Input | Real | "MIX - Profibus Variables" |
| P_FTP302_Flow_State | Input | Byte | "MIX - Profibus Variables" |
| P_FTP302_Temp | Input | Real | "MIX - Profibus Variables" |
| P_FTP302_Temp_State | Input | Byte | "MIX - Profibus Variables" |
| P_FTP302_Totaliz_State | Input | Byte | "MIX - Profibus Variables" |
| P_FTP302_Totalizer | Input | Real | "MIX - Profibus Variables" |
| DI_PPM306_Ovrld | Input | Bool | "PPM306 - Recirculating Pump Overload" |
| DI_CIP_CleaningCompleted | Input | Bool | "CIP - Cip Cleaning Completed" |
| P_AI_TTM306 | Input | Word | "TTM306 - Chiller Temperature" |
| P_AI_RVN304 | Input | Word | "RVN304 - Deaireation Valve" |
| P_AI_PCM306 | Input | Word | "PCM306 - Gas Pressure Injection" |
| P_AI_ProductCO2 | Input | Word | "Product Analizer - Product CO2" |
| P_gPPM303_VFC_StatusWord | Input | Word | "MIX - Product Pump - Profibus Variables" |
| P_PDS_CO2 | Input | Real | "nan" |
| P_PDS_Product_Brix | Input | Real | "nan" |
| P_PDS_Temperature | Input | Real | "nan" |
| P_PDS_Density | Input | Real | "nan" |
| DI_HVP301_Sensor | Input | Bool | "GCP301 - Manual Syrup Valve Closed (NO)" |
| DI_PB_HornReset | Input | Bool | "PB Horn Reset" |
| DI_PB_Machine_Start | Input | Bool | "PB Machine Start" |
| DI_PB_Machine_Stop | Input | Bool | "PB Machine Stop" |
| DI_PPN301_Ovrld | Input | Bool | "PPN301 - Deaireator Pump Overload" |
| DI_AuxVoltage_On | Input | Bool | "Electrical Panel Restored" |
| DI_AlarmReset | Input | Bool | "PB Machine Reset" |
| P_AI_RVM301 | Input | Word | "RVM301 - Product Tank Pressure Valve" |
| DI_Min_Syrup_Level | Input | Bool | " - Syrup Tank Minimun Level" |
| DI_FSS301 | Input | Bool | "FSS301 - Local Cip Return Flow Switch" |
## InputsMaster PLCTags
| Master Tag | Type | Data Type | Description |
| ------------------------------ | ----- | --------- | ----------------------------------------------------------------------- |
| PPN301_SoftStart_Averia | Input | Bool | "PPN301_SoftStart_Averia" |
| DI_PPN304_Contactor | Input | Bool | "PPN304 - Vaccum Pump Feedback" |
| DI_AmmoniaHighLev_Water | Input | Bool | "Water Chiller Ammonia High Level" |
| DI_Ammonia_High_Lev_Prod | Input | Bool | "Product Chiller Ammonia High Level" |
| DI_UV_Lamp_Ready | Input | Bool | "Water UV Lamp Ready" |
| DI_PPM305_Ovrld | Input | Bool | "PPM305 - Product Pump 2 Overload" |
| DI_Product_Analyzer_Prod_NO_OK | Input | Bool | "nan" |
| DI_DeairVacuumOk | Input | Bool | " - Deairator Vaccum Switch" |
| DI_CO2_InletPress_OK | Input | Bool | " - CO2 Inlet Pressure Switch" |
| DI_Water_Pump2_Contactor | Input | Bool | "PPN305 - Deaireator Pump #2 Feedback" |
| DI_RMM304_Closed | Input | Bool | "RMM304 - Feedback OFF" |
| DI_Log_Sidel | Input | Bool | "Log son usuario Sidel" |
| DI_SYRUP_Runout | Input | Bool | "nan" |
| DI_SYR_TANK_LEVEL | Input | Word | "DI_Syrup Room Tank Level %" |
| DI_SYR_COUNTER_LT | Input | Word | "DI_Syrup Room Liter Counter" |
| AI_SYRUP_Cip_Phase | Input | Byte | ""AI_SYRUP_Cip_Phase"" |
| AI_SYRUP_Cip_RemaningTime | Input | Byte | ""AI_SYRUP_Cip_RemaningTime"" |
| AI_SYRUP_Cip_TotalTime | Input | Byte | ""AI_SYRUP_Cip_TotalTime"" |
| AI_CIP_SetPoint_Temeperature | Input | Byte | ""AI_CIP_SetPoint_Temeperature"" |
| AI_CIP_CIP_Total_Time | Input | Int | ""AI_CIP_CIP_Total_Time"" |
| DI_CIP_Fault | Input | Bool | "From CIP Fault" |
| DI_Flr_EndProdLastBottleFilled | Input | Bool | "From FILLER - Production done Last bottle filled" |
| DI_WaterPipeCIP_Sensor | Input | Bool | "MIX - N10_I32_" |
| DI_HVM302_Sensor | Input | Bool | "GCM302 - Manual Water Valve Closed (NO)" |
| DI_Min_Deair2_Level | Input | Bool | "LSN302_L - Deaireator Tank #2 Minimun Level" |
| DI_Water_Pump2_Ovrld | Input | Bool | "PPN305 - Deaireator Pump #2 Overload" |
| DI_Flr_CIP_CleaningAlarm | Input | Bool | "FILLER - Alarm" |
| DI_CIP_CleaningFault | Input | Bool | "CIP - Cip in Fault" |
| DI_CIP_TankFilling | Input | Bool | "CIP - Flooding Request" |
| DI_CIP_ChemicalProd | Input | Bool | "CIP - Chemical Prod [for local CIP only]" |
| DI_CIP_HotWaterSending | Input | Bool | "CIP - Hot Water Sending [for local CIP only]" |
| DI_CIP_FreeSodaTank | Input | Bool | "CIP - Soda Tank is able to receive soda from mixer [for local CIP only |
| DI_Flr_CIP_FloodingEnd | Input | Bool | "FILLER - Flooding End" |
| DI_Flr_CIP_RinseMode | Input | Bool | "FILLER - Rinse Mode" |
| DI_Flr_CIP_RecoverReq | Input | Bool | "FILLER - Recover Request" |
| DI_SyrRoom_Cip_Mode | Input | Bool | "Syrup Room - Cip Mode" |
| P_CTS301_Conductivity | Input | Real | "MIX - Profibus Variables" |
| P_CTS301_Conductiv_State | Input | Byte | "MIX - Profibus Variables" |
| P_CTS301_Temperature | Input | Real | "MIX - Profibus Variables" |
| P_CTS301_Temperat_State | Input | Byte | "MIX - Profibus Variables" |
| P_CTS302_Conductivity | Input | Real | "MIX - Profibus Variables" |
| P_CTS302_Conductiv_State | Input | Byte | "MIX - Profibus Variables" |
| P_CTS302_Temperature | Input | Real | "MIX - Profibus Variables" |
| P_CTS302_Temperat_State | Input | Byte | "MIX - Profibus Variables" |
| P_gPAmPDS_INBlock01_0 | Input | Byte | "MIX - Profibus Variables" |
| P_gMaselli_ProductBrix | Input | Real | "MIX - Profibus Variables" |
| P_gMaselli_ProductTemp | Input | Real | "MIX - Profibus Variables" |
| P_gMaselli_ProductCO2 | Input | Real | "MIX - Profibus Variables" |
| P_gMaselli_ProductNumber | Input | Byte | "MIX - Profibus Variables" |
| P_gPPN301_VFC_StatusWord | Input | Word | "MIX - Water Pump - Profibus Variables" |
| P_gPPP302_VFC_StatusWord | Input | Word | "MIX - Syrup Pump - Profibus Variables" |
| P_gPPM307_VFC_StatusWord | Input | Word | "nan" |
| P_gPPM307_VFC_ActualVaule | Input | Int | "MIX - ProductPump - Profibus Variables" |
| P_gPPM305_VFC_StatusWord | Input | Word | "MIX - Product Pump 2 - Profibus Variables" |
| Tag_24 | Input | Real | "nan" |
| P_AI_CIPHeaterTemperature | Input | Word | "TTS305 - Local Cip Heating Temperature" |
| P_AI_FTM305 | Input | Word | "FTM305 - Storage Tank Baialage Flow" |
| P_AI_PTM308 | Input | Word | "PTM308 - PCM306 Infeed Pressure" |
| P_AI_CTS302 | Input | Word | "CTS302 - Local Cip Delivery Conductivity" |
| P_AI_CTS301 | Input | Word | "CTS301 - Local Cip Return Conductivity" |
| P_AI_CIPReturnTemperature | Input | Word | "TTS305_1 - Local Cip Return Temperature" |
| P_AI_FillerLevel | Input | Word | "Filler level " |
| P_AI_CTM304 | Input | Word | "CTM304 - Product Conductivity" |
| P_AI_PTN313 | Input | Word | "PTN313 - Deaireator Pressure (vacuostato)" |
| P_AI_RVN305 | Input | Word | "RVN305 - Deaireation Valve" |
| P_AI_ProductO2 | Input | Word | "Product Analizer - Product O2" |
| DI_Ammonia_CompressorReady | Input | Bool | "Cooler Power Supply" |
| DI_Flr1_CIP/RinseFiller | Input | Bool | "From FILLER 1 - Cip/rinse" |
| DI_Flr1_CIP_DrainComplete | Input | Bool | "From FILLER - Cip Drain Complete" |
| DI_Flr1_PROD_ok | Input | Bool | "From Filler Producion Filling Bottles" |
| DI_Flr1_PROD_Request | Input | Bool | "From FILLER 1 - Product Request" |
| DI_Flr1_WaterRequest | Input | Bool | "From FILLER - Water Request" |
| DI_Flr2_CIP/RinseFiller | Input | Bool | "From FILLER 2 - Cip/Rinse" |
| DI_Flr2_PROD_Request | Input | Bool | "From FILLER 2 - Product Request" |
| DI_SyrRoom_Pump_Ready | Input | Bool | "Syrup Room - Pump ready" |
| DI_CIP_End | Input | Bool | "From CIP End (Completed)" |
| DI_MaxTempAlarm | Input | Bool | "Electrical Cabinet High Temperature" |
## Outputs PLCTags
| Master Tag | Type | Data Type | Description |
| -------------------------------- | ------ | --------- | ----------------------------------------------------------------------- |
| DO_PPM306_Run | Output | Bool | "DO_PPM306_Run" |
| DO_SyrupValve_Enable | Output | Bool | "Valve Power Enable (Power Supply Analog Signal)" |
| DO_PPN301_Run | Output | Bool | "DO_PPN301_SoftStartPower" |
| DO_PPP302_Run | Output | Bool | "DO_PPP302_Run" |
| DO_SyRm_WaterRequest | Output | Bool | "To syrup Room Water Request" |
| P_AO_RMM301 | Output | Word | "RMM301 - Water Flow Control" |
| P_AO_RMP302 | Output | Word | "RMP302 - Syrup Flow Control" |
| P_AO_RMM303 | Output | Word | "RMM303 - Gas Flow Control" |
| P_AO_RVM301 | Output | Word | "RVM301 - Product Tank Pressure Valve" |
| P_AO_RVN304 | Output | Word | "RVN304 - Deaireation Valve" |
| P_AO_RVM319 | Output | Word | "RVM319 - Chiller Temperature control" |
| P_AO_RVP303 | Output | Word | "RVP303 - Syrup Tank Level Valve" |
| P_AO_PCM306 | Output | Word | "PCM306 - Gas Injection Pressure Control" |
| P_FTM303_Tot_Ctrl | Output | Byte | "MIX -" |
| P_FTP302_Tot_Ctrl | Output | Byte | "MIX -" |
| P_FTN301_Tot_Ctrl | Output | Byte | "MIX -" |
| DO_HMIPowerSupply | Output | Bool | "Cut Power to PC" |
| DO_CtrlCircuitRun | Output | Bool | "Electrical Panel Reset" |
| DO_Yellow_Lamp | Output | Bool | "DO_Yellow_Lamp" |
| DO_Horn | Output | Bool | "DO_Horn" |
| DO_CIP_Mode_En | Output | Bool | "To CIP Modo Enable" |
| DO_CIP_DrainCompleted | Output | Bool | "CIP - Drain Completed" |
| DO_SyrRoom_SyrupRequest | Output | Bool | "SYRUP ROOM - Syrup Request" |
| P_gPPM303_VFC_ControlWord | Output | Word | "MIX - Product Pump - Profibus Variables" |
| P_gPPM303_VFC_Refvalue | Output | Word | "MIX - Product Pump - Profibus Variables" |
| P_PDS_Recipe_Number | Output | Byte | "PDS Recipe Number" |
| P_PDS_Freeze_To_PDS | Output | Bool | "nan" |
| P_PDS_Stop_to_PDS | Output | Bool | "nan" |
| DO_SyrupRoomWaterReq | Output | Bool | "Syrup Room - Water Pump Request" |
| DO_AVP317_1 | Output | Bool | "MIX - CIP To Syrup " |
| DO_AVN373 | Output | Bool | "MIX - Deaireator 2 Drain" |
| DO_AVN374 | Output | Bool | "MIX - Deaireators Connection Drain" |
| DO_RVN301_Level | Output | Bool | "MIX - Deaireator Level Control" |
| DO_AVS331 | Output | Bool | "MIX - CIP Venturi" |
| DO_AVS332 | Output | Bool | "MIX - CIP Wash Venturi" |
| DO_AVS333 | Output | Bool | "MIX - CIP Caustic" |
| DO_AVS334 | Output | Bool | "MIX - CIP Acid" |
| DO_AVS335 | Output | Bool | "MIX - CIP Peracetic Acid" |
| DO_AVS336 | Output | Bool | "MIX - CIP Recirculation" |
| DO_AVS337 | Output | Bool | "MIX - CIP Drain" |
| DO_AVS338 | Output | Bool | "MIX - CIP Heater" |
| DO_EV67_SyrupLineDrain | Output | Bool | "MIX - N10_O101_" |
| DO_SyRm_SyrupReques | Output | Bool | "To syrup Room Syrup Request" |
| DO_PB_Green_Lamp | Output | Bool | "PB Machine Start Lamp" |
| DO_Red_Lamp | Output | Bool | "DO_Red_Lamp" |
| DO_PPM303_Run | Output | Bool | "DO_PPM303_Run" |
| DO_AVN348 | Output | Bool | "MIX - Deaireator Inlet" |
| DO_AVM382 | Output | Bool | "Mix - Product Recirculation though chiller" |
| DO_AVP363 | Output | Bool | "MIX - Syrup Line In H2O" |
| DO_AVN349 | Output | Bool | "MIX - Deaireator Bypass 1" |
| DO_AVM396 | Output | Bool | "MIX - Steril Air Inlet" |
| DO_AVM341 | Output | Bool | "MIX - CO2 Inlet" |
| DO_AVN329 | Output | Bool | "MIX - Deaireator 2 Tank Spray Ball" |
| DO_AVN325 | Output | Bool | "MIX - Vacuum Pump PPN304 Water In" |
| DO_AVN347 | Output | Bool | "MIX - Deaireator Tank Start CO2 Injection 1" |
| DO_EV03_SyrupLvlCtrl | Output | Bool | "MIX - N10_O06_" |
| DO_EV04_SyrupFillUp | Output | Bool | "MIX - N10_O07_" |
| P_AO_RVS318 | Output | Word | "RVS318 - Local Cip Heating Valve" |
## OutputsMaster PLCTags
| Master Tag | Type | Data Type | Description |
| ---------------------------- | ------ | --------- | ----------------------------------------------------------------- |
| DO_Syrup_Counter_Pulse | Output | Bool | "MIX - Syrup Counter Pulse ( 1 Pulse = 100 Lt.)" |
| DO_Aux24DC | Output | Bool | "MIX - 24DC ON" |
| DO_Water_Counter_Pulse | Output | Bool | "DO_Water_Counter_Pulse" |
| DO_PB_HornReset | Output | Bool | "DO PB horn Reset" |
| DO_CO2_Counter_Pulse | Output | Bool | "MIX - Water Counter Pulse ( 1 Pulse = 100 Kg)" |
| DO_Green_Lamp | Output | Bool | "DO_Green_Lamp" |
| DO_Blu_Lamp | Output | Bool | "DO_Blu_Lamp" |
| DO_MES_CIP | Output | Bool | "MES - CIP Mode" |
| DO_MES_PRODUCTION | Output | Bool | "MES - Production" |
| DO_MES_Running | Output | Bool | "MES - Running 1(Running - 0 Stop)" |
| DO_MES_FAULT | Output | Bool | "MES - FAULT (1= FAULT)" |
| DO_PPN304_Run | Output | Bool | "DO_PPN304_Run" |
| DO_PCM306En | Output | Bool | "DO_PCM306_Enabled Power On" |
| DO_CIP_CleaningFault | Output | Bool | "CIP - Cleaning Fault" |
| DO_CIP_SolutionReturn | Output | Bool | "CIP - Solution Return" |
| DO_CIP_RecoverCompleted | Output | Bool | "CIP - Recover Completed" |
| DO_CIP_SendSodaReq | Output | Bool | "CIP - Send Soda Request [for local CIP only]" |
| DO_CIP_WaterPipe_Ready | Output | Bool | "CIP - Water Pipe Ready [for local CIP only]" |
| DO_CIP_HotWaterReq | Output | Bool | "CIP - Hot Water Request [for local CIP only]" |
| DO_Flr_CIP_CleaningFault | Output | Bool | "FILLER - Cip Fault" |
| DO_Flr_CIP_ProdSending | Output | Bool | "FILLER - Cip Product Sending" |
| DO_Flr_CIP_RecoverReq | Output | Bool | "FILLER - Cip Recover Request" |
| DO_Flr_CIP_Running | Output | Bool | "FILLER - Cip Running" |
| DO_Flr_CIP_TankFilling | Output | Bool | "FILLER - Flooding Request" |
| DO_Flr_CIP_RinseSending | Output | Bool | "FILLER - Rinse Sending" |
| DO_Flr_BottleStop | Output | Bool | "FILLER - Bottles Stop" |
| DO_Flr_PROD_Run_Out | Output | Bool | "FILLER - Run Out Request" |
| DO_Flr_ProductCompleted | Output | Bool | "FILLER - Product Completed" |
| DO_Flr_FastRinseRequest | Output | Bool | "FILLER - Fast Change Over Rinse Request" |
| DO_Flr_WaterRinseReady | Output | Bool | "FILLER - Fast Change Over Water Ready" |
| DO_FillerNextRecipe | Output | Byte | "MIX -" |
| DO_SyrupRoomPump_Run | Output | Bool | "Syrup Room - Syrup Pump Request" |
| DO_AVM363 | Output | Bool | "MIX - Blender to filler 1" |
| DO_AVN390 | Output | Bool | "nan" |
| DO_AVP391 | Output | Bool | "MIX -" |
| DO_AVM353 | Output | Bool | "MIX - Blender to filler 2 Drain" |
| DO_AVM328 | Output | Bool | "MIX - Blendfill Still Water By-Pass Mixproof 2" |
| DO_AVM312_Deair_Reflux | Output | Bool | "MIX - N10_O41_" |
| DO_EV68_FillerRinseWater | Output | Bool | "MIX - N10_O102_" |
| DO_EV71_FillerPrPipeDrai | Output | Bool | "MIX - N10_O104_" |
| DO_EV71_FiRinseSprayBall | Output | Bool | "MIX - N10_O105_" |
| DO_EV72_FlrRinseTankDrai | Output | Bool | "MIX - N10_O106_" |
| DO_EV66_FillerRinseWater | Output | Bool | "MIX - N10_O97_" |
| DO_AVN378 | Output | Bool | "nan" |
| DO_AVN377 | Output | Bool | "nan" |
| DO_AVM327 | Output | Bool | "MIX - Blendfill Still Water By-Pass Mixproof 1" |
| DO_AVM329 | Output | Bool | "MIX - Blendfill Still Water By-Pass Mixproof 3" |
| DO_AVM330 | Output | Bool | "MIX - Blendfill Still Water By-Pass Drain Inlet Deaireator Tank" |
| MaselliHold | Output | Bool | "Masseli Hold activated" |
| MaselliSpare | Output | Bool | "Maselli Spare" |
| DO_Flr1_Fault | Output | Bool | "To Filler 1 Fault" |
| DO_Flr2_Fault | Output | Bool | "To Filler 2 Fault" |
| DO_SyRm_ProdMode | Output | Bool | "To Syrup Room Prod Mode" |
| DO_MIXER _Rinse_mode | Output | Bool | "MIXER en RinseMode" |
| DO_CIP_Fault | Output | Bool | "To CIP Fault" |
| DO_CIP_RdyChmcl | Output | Bool | "To CIP Ready to receive Chimical (dummy bottles in)" |
| DO_FlrProdMode | Output | Bool | "T o Filler Production Mode" |
| DO_ Flr_CIPRinseSending | Output | Bool | "To Filler CIP/Rinse Sending solution" |
| DO_Flr_RinseMode | Output | Bool | "To Filler Rinse Mode" |
| P_AO_RVN305 | Output | Word | "nan" |
| P_AO_RVN302 | Output | Word | "RVN302 - Deaireation Tank Level Valve" |
| P_AO_ToFillerEqPress | Output | Word | "FILLER - Product Saturation Pressure [0.0 … 100.0 Bar/10]" |
| P_AO_ProductRunOutAmount | Output | Word | "FILLER - Product Run Out Amount [200.0 … 800.0 L]" |
| P_AO_CIPWaterCond | Output | Word | "Recorder - Local Cip Return Conductivity [0.0 … 2000.0 mS]" |
| P_AO_CIPCausticCond | Output | Word | "Recorder - Local Cip Delivery Conductivity [0.0 … 200.0 mS]" |
| P_AO_CIPReturnTemperature | Output | Word | "Recorder - Local Cip Return Temperaure [0.0 … 100.0 °C]" |
| P_AO_RMM304 | Output | Word | "RMM304 - Gas 2 Flow Control" |
| P_gMaselli_RecipeSetNum | Output | Byte | "MIX - Profibus Variables" |
| P_gMaselli_RecipeSetNumStr | Output | Byte | "MIX - Profibus Variables" |
| P_gPPN301_VFC_ControlWord | Output | Word | "MIX - Product Pump - Profibus Variables" |
| P_gPPN301_VFC_Refvalue | Output | Word | "MIX - Product Pump - Profibus Variables" |
| P_gPPP302_VFC_ControlWord | Output | Word | "MIX - Product Pump - Profibus Variables" |
| P_gPPP302_VFC_Refvalue | Output | Word | "MIX - Product Pump - Profibus Variables" |
| P_gPPM307_VFC_ControlWord | Output | Word | "nan" |
| P_gPPM307_VFC_Refvalue | Output | Word | "nan" |
| P_gPPM305_VFC_ControlWord | Output | Word | "MIX - Product Pump 2 - Profibus Variables" |
| P_gPPM305_VFC_Refvalue | Output | Word | "MIX - Product Pump 2 - Profibus Variables" |
| DO_AVN350 | Output | Bool | "nan" |
| DO_AVM339 | Output | Bool | "MIX - Still Water By-Pass Deaireator Tank" |
| DO_AVM340 | Output | Bool | "MIX - Still Water By-Pass Product Intercept" |
| DO_AVM342 | Output | Bool | "MIX - N2 Inlet" |
| DO_AVM346 | Output | Bool | "MIX - Filler CO2" |
| DO_AVM369 | Output | Bool | "MIX - Blender to filler 1 Drain" |
| DO_AVM380 | Output | Bool | "MIX - Product Recirculation Without Chiller" |
| DO_BoosterPump_SubCarb | Output | Bool | "Booster Pump Sub Carbo Customer" |
| DO_EV1_SubCarb | Output | Bool | "EV1 Sub Carbo Customer" |
| DO_EV100_WaterInlet | Output | Bool | "Spare" |
| DO_EV102_Syrup And CIP Inlet | Output | Bool | "Spare" |
| DO_EV103_WaterInterception | Output | Bool | "Spare" |
| DO_EV105_WaterBypass | Output | Bool | "Spare" |
| DO_EV2_SubCarb | Output | Bool | "EV2 Sub Carbo Customer" |
| DO_EV3_SubCarb | Output | Bool | "EV3 Sub Carbo Customer" |
| DO_EV4_SubCarb | Output | Bool | "EV4 Sub Carbo Customer" |
| DO_Flr1_CIPMode | Output | Bool | "To Filler CIP Mode" |
| DO_Flr1_OpenBottleblock | Output | Bool | "FILLER - Production Mode" |
| DO_Flr1_PROD_Available | Output | Bool | "FILLER - Product Available" |
| DO_Flr1_Productionmode | Output | Bool | "To Filler 1 Production Mode" |
| DO_Flr1_RinseMode | Output | Bool | "FILLER - Rinse Mode" |
| DO_Flr1_Spare0 | Output | Bool | "Spare" |
| DO_Glycol_ColdRequest | Output | Bool | "Glycol Cold Request" |
| DO_Glycol_LineCIP | Output | Bool | "Glycol Line CIP" |
| DO_Glycol_LineEnabled | Output | Bool | "Glycol Line Enabled" |
| DO_RVM301_Discharge | Output | Bool | "DO_RVM301_Discharge" |
| DO_SyrupRoom_Aux1 | Output | Bool | "To Syrup Room- Alarm" |
| DO_SyrupRoom_Aux2 | Output | Bool | "nan" |
| DO_WaterBypass1 | Output | Bool | "Spare" |
| DO_Flr1_CIP_DrainRequest | Output | Bool | "FILLER - Cip Drain Request" |
| DO_Flr1_CIP_CleaningEnd | Output | Bool | "FILLER - Cip Cleaning Ended" |

View File

@ -1,170 +0,0 @@
### IM155 IO
***
| Master TAG | IO | Sensor | Description | Descripcion |
| :--------: | :----: | :------: | ------------------------------------------------------------------ | --------------------------------- |
| | I0.0 | | AUXILIARY CIRC. ON AUSILIARI INSERITI | |
| | I0.1 | 300S2 | SIREN RESET RESET SIRENA | |
| | I0.2 | 300S3 | RESET RESET | |
| | I0.3 | 300S4 | MACHINE STOP ARRESTO MACCHINA | |
| | I0.4 | 300S5 | MARCIA MACCHINA MACHINE START | |
| | I0.5 | | PRESENZA TENSIONE VOLTAGE PRESENCE | |
| | I0.6 | | SONDA LIVELLO MINIMO DEAREATORE 1 DEARETOR 1 MINIMUM LEVEL PROBE | |
| | I0.7 | | SONDA LIVELLO MINIMO SCIROPPC SYRUP MINIMUM LEVEL PROBE | |
| | I1.0 | 301B1 | SONDA LIVELLO MINIMO SERB.STOCCAGGIC STORE TANK MIN LEVEL PROBE | |
| | I1.5 | | VALVOLA CHIUSA VM1 CLOSED VALVE VM1 | |
| | I1.6 | | CLOSEDVALVEVM2 VALVOLA CHIUSA VM2 | |
| | I1.7 | | VALVOLA CHIUSA VM3 CLOSED VALVE VM3 | |
| | I2.0 | 40Q2 | WATER PUMP OVERLOAD TERMICO POMPA ACQUA | |
| | I2.1 | 40Q2 | AVARIA POMPA ACQUA WATER PUMP FAULT | |
| | I2.2 | 42Q2 | SYRUP PUMP OVERLOAD TERMICO POMPA SCIROPPC | |
| | I2.3 | 42Q2 | AVARIA POMPA SCIROPPO SYRUP PUMP FAULT | |
| | I2.4 | 45Q2 | OVERPRESS.PUMP OVERLOAD TERMICO POMPA SOVRAPRES. | |
| | I2.5 | 45Q2 | OVERPRESS.PUMP FAULT AVARIA POMPA SOVRAPRES. | |
| | I3.5 | 303A0/1 | ALLARME UPS UPS ALARM | |
| | I3.6 | 303A0/1_ | ALIMENTAZIONE DA BATTERIE BATTERY POWER SUPPLY | |
| | I3.7 | 303A0/1 | BATTERIA TAMPONE PRONTA BUFFER BATTERY READY | |
| | I4.3 | | ALARM ENABLING ABILITAZIONE ALLARME | |
| | I4.4 | | ABILITAZIONEALLARME ALARMENABLING | |
| | I5.0 | 305U1 | POMPA SALA SCIROPPI INMARCIA SYRUPS ROOM PUMP RUN | |
| | I7.1 | 307S2 | AIR PRESSURE GAUGE PRESSOSTATO ARIA | |
| | I7.2 | 307S3 | SENSORE VALVOLA SCARICO SCIROPPC SYRUP DISCHARGE VALVE SENSOR | |
| | I7.3 | 307F4 | FLOW GAUGE FLUSSOSTATO | |
| | | | | |
| | Q0.0 | | RIPRISTINO ALIMENTAZIONE HMI HMI POWER SUPPLY RESTORE | |
| | Q1.0 | | RICHIESTA SCIROPPO SYRUP REQUEST | |
| | Q1.1 | | WATER REQUEST RICHIESTA ACQUA | |
| | Q7.0 | 327H1 | ALLARME ACUSTICO ACOUSTIC ALARM | |
| | Q7.1 | 300S5 | MACHINE START MARCIA MACCHINA | |
| | Q7.2 | 300S3 | MACHINE ALARM ALLARME MACCHINA | |
| | Q7.3 | 327HO | ROTAT. LAMP ROTALLARM | |
| | Q7.4 | 327K5 | COMANDO POMPA ACQUA WATER PUMP CONTROL | |
| | Q7.5 | 327K6 | SYRUP PUMP CONTROL COMANDO POMPA SCIROPPO | |
| | Q7.6 | 327K7 | COMANDO POMPA SOVRAPRESSIONE OVERPRESSURE PUMP CONTROL | |
| | | | | |
| | A16.0 | FESTO | SFIATO SATURATORE | CARBONATOR BLOW-OFF |
| | A16.1 | FESTO | DEAREAZIONE ACQUA | WATER DEAREATOR |
| | A16.2 | FESTO | RICIRCOLO PRODOTTO | PRODUCT RECYCLE |
| | A16.3 | FESTO | SCARICO DEAREATORE | DEAREATOR BLOW-OFF |
| | A16.4 | FESTO | SCARICO SATURATORE | CARBONATOR DISCHARGE |
| | A16.5 | FESTO | SCARICO SCIROPPO | SYRUP BLOW-OFE |
| | A16.6 | FESTO | DIVOSFERA SATURATORE | CARBONATOR SPRAY BALL |
| | A16.7 | FESTO | TROPPOPIENO DEAREATORE | DEAREATOR OVERLOAD |
| | A17.0 | FESTO | TROPPO PIENO SATURATORE | CARBONATOR OERLOAD |
| | A17.1 | FESTO | SFIATO ARIA POMPA PRODOTTO | PRODUCT PUMP AIR BLOW-OFF |
| | A17.2 | FESTO | SCARICO SERPENTINA | TUBULAR EL. BLOW-OFF |
| | A17.3 | FESTO | RICICLO SCIROPPO START-UP | SYRUP RECIRCULATING START-UP |
| | A17.5 | FESTO | INTERCETTAZIONE INIETT.CO2 | INTERCEPTION CO2 INJECTOR I |
| | A17.6 | FESTO | DIVOSFERADEAREATORE | DEAREATOR SPRAY BALL |
| | A17.7 | FESTO | DEAREAZ. ACOUA IN RISCACOUO | RINSING WATER R DEAREATOR |
| | A18.0 | FESTO | ASPIRAZIONE VENTURI | VENTURI SUCTION |
| | A18.1 | FESTO | LAVAGGIOVENTURI | VENTURI WASHING |
| | A18.2 | FESTO | INGRESSO SANIFICANTE 1 | SANITIZING INFEED 1 |
| | A18.3 | FESTO | INGRESSO SANIFICANTE 2 | SANITIZING INFEED 2 |
| | A18.4 | FESTO | INGRESSO SANIFICANTE 3 | SANITIZING INFEED 3 |
| | A18.5 | FESTO | RICIRCOLO SANIFICANTE | SANITIZING SOLUTION RECIRCULATION |
| | A18.6 | FESTO | SCARICO SANIFICANTE 1 | SANITIZING BLOW-OFF 1 |
| | A18.7 | FESTO | SCARICO SCAMBIATORE | EXCHANGER DISCHARGE |
| | A19.1 | FESTO | DIVOSFERA SCIROPPO | SYRUP SPRAY BALL |
| | A19.2 | FESTO | SCARICO TUBO SCIROPPO | SYRUP PIPE BLOW-OFE |
| | A19.3 | FESTO | SCARICO SATURATORE | CARBONATOR DISCHARGE |
| | A20.0 | FESTO | GALLEGGIANTE DEAREATORE 1 | DEAREATOR 1 FLOATER |
| | A20.1 | FESTO | INVASAMENTODEAREATORE1 | DEAREATOR 1 MAX. FILL |
| | A20.2 | FESTO | GALLEGGIANTE SCIROPPO | SYRUP FLOATER |
| | A20.3 | FESTO | INVASAMENTO SCIROPPO | SYRUP MAX. FILL |
| | | | | |
| | PEW100 | 258B1 | LIVELLO SERBATOIO DI STOCCAGGIO STORAGE TANK LEVEL | |
| | PEW102 | 254B1 | SENSORE PRESSIONE SERB.DI STOCCAGGIO STORAGE TANK PRESSURE SENSOR | |
| | PEW104 | 270B1 | CONTR.PORTATA CO2 PER DEAREAZIONE AIR VACUUM CO2 FLOW CONTROL | |
| | PEW106 | 254B4 | CONTROLLO PRESSIONE SERBATOIO CO2 CO2 TANK PRESSURE CONTROL | |
| | PEW108 | 256U1 | PRODUCT TEMPERATURE SENSOR SENSORE TEMPERATURA PRODOTTO | |
| | PEW112 | 255U1 | TEMP. H2O DEAREATORE H2O DEAREATOR TEMP. | |
| | PEW114 | 259U1 | NORGREN PV VLAVE ANALOG OUTPUT USCITA ANALOGICA VALVOLA NORGREN PV | |
| | | | | |
| | PAW100 | 251U4 | VALVOLA MOTORIZZATA ACQUA WATER MOTOR VALVE | |
| | PAW102 | 252U4 | VALVOLA MOTORIZZATA SCIROPPO SYRUP MOTOR VALVE | |
| | PAW104 | 253U4 | VALVOLA MOTORIZZATA CO2 CO2 MOTOR VALVE | |
| | PAW108 | 270B1 | AIR VACUUM CO2 FLOW CONTROL CONTR.PORTATA CO2 PER DEAREAZIONE | |
| | PAW110 | 255B7 | PRODUCT TEMPERATURE REGULATION REGOLAZIONE TEMPERATURA PRODOTTO | |
| | PAW112 | 254B7 | SANIT. TEMP. CONTROL CONTROLLO TEMPERATURA SANIFICANTE | |
| | PAW114 | 259U1 | USCITA ANALOGICA VALVOLA NORGREN SP NORGREN SP VALVE ANALOG OUTPUT | |
| | PAW122 | 254B4 | CONTROLLO PRESSIONE SERBATOIO CO2 CO2 TANK PRESSURE CONTROL | |
## Profibus IO
***
* Nodo 1 : PLC
* Nodo 8: Inverter 45U1 - Overppressure pump P3
* PEW 1640-1659
* PAW 1640-1659
* Nodo 10: IM155 - 280A0
* Defined on the IO table
* Nodo 12: Festo 283E1
* Defined on the IO table
* Nodo 16: 250P1 - SMARTEC S
* Nodo 17: 250P4 - SMARTEC S
* Water Volumetric 251U1 - (Nodo 20)
* Volume Flow : E3080-3084
* Totalizer Value: E3100-3104 - PAW: 3100
* Syrup_Mass_252U1 - (Nodo 21) - FTP302 - Flow Transmitter
* Mass Flow: 2030-2034
* Density: 2045-2049
* Concentration: 2050-2054
* Temperature: 2055-2059
* Totalizer Value: PEW2070-2074 - PAW: 2070
* CO2_Mass_253U1 - (Nodo 22)
* Mass Flow: 3200-3204
* Density: 3215-3219
* Temperature: 3225-3229
* Totalizer: 3240-3244 - PAW: 3240
* Anton Paar 120U1 : ( Node 40 )
* IN128 mPDS5>PLC_4_1 : PEW15000-15031
* IN128 mPDS5>PLC_4_2 : PEW15000-15031
* IN128 mPDS5>PLC_4_3 : PEW15000-15031
* IN128 mPDS5>PLC_4_4 : PEW15000-15031
* OUT128 PLC>mPDS5_4_1 : PAW15000-15031
* OUT128 PLC>mPDS5_4_2 : PAW15032-15063
* OUT128 PLC>mPDS5_4_3 : PAW15064-15095
* OUT128 PLC>mPDS5_4_4 : PAW15096-15127
Tag for Anto Paar:
| P_PDS_CO2 | Real | %ED15060 |
| ------------------ | ---- | -------- |
| P_PDS_Product_Brix | Real | %ED15084 |
| P_PDS_Temperature | Real | %ED15104 |
| P_PDS_Density | Real | %ED15112 |
#### Master adaptation
***
| Master TAG | | | |
| -------------------------- | ---- | ------- | ------------------------ |
| P_FTP302_Flow | Real | %ED2030 | MIX - Profibus Variables |
| P_FTP302_Flow_State | Byte | %EB2034 | MIX - Profibus Variables |
| P_FTP302_Density | Real | %ED2045 | MIX - Profibus Variables |
| P_FTP302_Density_State | Byte | %EB2049 | MIX - Profibus Variables |
| P_FTP302_Brix | Real | %ED2050 | MIX - Profibus Variables |
| P_FTP302_Brix_State | Byte | %EB2054 | MIX - Profibus Variables |
| P_FTP302_Temp | Real | %ED2055 | MIX - Profibus Variables |
| P_FTP302_Temp_State | Byte | %EB2059 | MIX - Profibus Variables |
| P_FTP302_Totalizer | Real | %ED2070 | MIX - Profibus Variables |
| P_FTP302_Totaliz_State | Byte | %EB2074 | MIX - Profibus Variables |
| P_FTN301_Flow | Real | %ED3080 | MIX - Profibus Variables |
| P_FTN301_Flow_State | Byte | %EB3084 | MIX - Profibus Variables |
| P_FTN301_Totalizer | Real | %ED3100 | MIX - Profibus Variables |
| P_FTN301_Totaliz_State | Byte | %EB3104 | MIX - Profibus Variables |
| P_FTM303_Flow | Real | %ED3200 | MIX - Profibus Variables |
| P_FTM303_Flow_State | Byte | %EB3204 | MIX - Profibus Variables |
| P_FTM303_Density | Real | %ED3215 | MIX - Profibus Variables |
| P_FTM303_Density_State | Byte | %EB3219 | MIX - Profibus Variables |
| P_FTM303_Temperature | Real | %ED3225 | MIX - Profibus Variables |
| P_FTM303_Temperature_State | Byte | %EB3229 | MIX - Profibus Variables |
| P_FTM303_Totalizer | Real | %ED3240 | MIX - Profibus Variables |
| P_FTM303_Totalizer_State | Byte | %EB3244 | MIX - Profibus Variables |

View File

@ -1,6 +1,5 @@
# Project Hardware & IO Summary (Tree View v26) # Hardware & IO Summary for PLC: PLC
Identified 1 PLC(s).
## PLC: PLC ## PLC: PLC
- **Type Name:** `CPU 1516F-3 PN/DP` - **Type Name:** `CPU 1516F-3 PN/DP`
@ -32,7 +31,7 @@ Identified 1 PLC(s).
- Address (on net): `8` - Address (on net): `8`
- Parent Structure: `Rack_0` - Parent Structure: `Rack_0`
- **IO Addresses (Aggregated from Structure):** - **IO Addresses (Aggregated from Structure):**
- **From Module:** PPO Type 8 Module consistent PCD_1 (Pos: N/A) - **PPO Type 8 Module consistent PCD_1**
- `EW 1640..1659` (Len=160 bits) - `EW 1640..1659` (Len=160 bits)
- `AW 1640..1659` (Len=160 bits) - `AW 1640..1659` (Len=160 bits)
@ -42,101 +41,101 @@ Identified 1 PLC(s).
- Order No: `6ES7 155-6BU01-0CN0` - Order No: `6ES7 155-6BU01-0CN0`
- Parent Structure: `Telaio di montaggio_0` - Parent Structure: `Telaio di montaggio_0`
- **IO Addresses (Aggregated from Structure):** - **IO Addresses (Aggregated from Structure):**
- **From Module:** 300A0 (Pos: N/A) - **300A0**, Type: `DI 8x24VDC HF`, OrderNo: `6ES7 131-6BF00-0CA0`
- `EW 0..0` (Len=8 bits) - `EW 0..0` (Len=8 bits)
- **From Module:** 301A0 (Pos: N/A) - **301A0**, Type: `DI 8x24VDC HF`, OrderNo: `6ES7 131-6BF00-0CA0`
- `EW 1..1` (Len=8 bits) - `EW 1..1` (Len=8 bits)
- **From Module:** 302A0 (Pos: N/A) - **302A0**, Type: `DI 8x24VDC HF`, OrderNo: `6ES7 131-6BF00-0CA0`
- `EW 2..2` (Len=8 bits) - `EW 2..2` (Len=8 bits)
- **From Module:** 303A0 (Pos: N/A) - **303A0**, Type: `DI 8x24VDC HF`, OrderNo: `6ES7 131-6BF00-0CA0`
- `EW 3..3` (Len=8 bits) - `EW 3..3` (Len=8 bits)
- **From Module:** 304A0 (Pos: N/A) - **304A0**, Type: `DI 8x24VDC HF`, OrderNo: `6ES7 131-6BF00-0CA0`
- `EW 4..4` (Len=8 bits) - `EW 4..4` (Len=8 bits)
- **From Module:** 305A0 (Pos: N/A) - **305A0**, Type: `DI 8x24VDC HF`, OrderNo: `6ES7 131-6BF00-0CA0`
- `EW 5..5` (Len=8 bits) - `EW 5..5` (Len=8 bits)
- **From Module:** 306A0 (Pos: N/A) - **306A0**, Type: `DI 8x24VDC HF`, OrderNo: `6ES7 131-6BF00-0CA0`
- `EW 6..6` (Len=8 bits) - `EW 6..6` (Len=8 bits)
- **From Module:** 307A0 (Pos: N/A) - **307A0**, Type: `DI 8x24VDC HF`, OrderNo: `6ES7 131-6BF00-0CA0`
- `EW 7..7` (Len=8 bits) - `EW 7..7` (Len=8 bits)
- **From Module:** 320A0 (Pos: N/A) - **320A0**, Type: `DQ 8x24VDC/0.5A ST`, OrderNo: `6ES7 132-6BF01-0BA0`
- `AW 0..0` (Len=8 bits) - `AW 0..0` (Len=8 bits)
- **From Module:** 321A0 (Pos: N/A) - **321A0**, Type: `DQ 8x24VDC/0.5A ST`, OrderNo: `6ES7 132-6BF01-0BA0`
- `AW 1..1` (Len=8 bits) - `AW 1..1` (Len=8 bits)
- **From Module:** 322A0 (Pos: N/A) - **322A0**, Type: `DQ 8x24VDC/0.5A ST`, OrderNo: `6ES7 132-6BF01-0BA0`
- `AW 2..2` (Len=8 bits) - `AW 2..2` (Len=8 bits)
- **From Module:** 323A0 (Pos: N/A) - **323A0**, Type: `DQ 8x24VDC/0.5A ST`, OrderNo: `6ES7 132-6BF01-0BA0`
- `AW 3..3` (Len=8 bits) - `AW 3..3` (Len=8 bits)
- **From Module:** 324A0 (Pos: N/A) - **324A0**, Type: `DQ 8x24VDC/0.5A ST`, OrderNo: `6ES7 132-6BF01-0BA0`
- `AW 4..4` (Len=8 bits) - `AW 4..4` (Len=8 bits)
- **From Module:** 325A0 (Pos: N/A) - **325A0**, Type: `DQ 8x24VDC/0.5A ST`, OrderNo: `6ES7 132-6BF01-0BA0`
- `AW 5..5` (Len=8 bits) - `AW 5..5` (Len=8 bits)
- **From Module:** 326A0 (Pos: N/A) - **326A0**, Type: `DQ 8x24VDC/0.5A ST`, OrderNo: `6ES7 132-6BF01-0BA0`
- `AW 6..6` (Len=8 bits) - `AW 6..6` (Len=8 bits)
- **From Module:** 327A0 (Pos: N/A) - **327A0**, Type: `DQ 8x24VDC/0.5A ST`, OrderNo: `6ES7 132-6BF01-0BA0`
- `AW 7..7` (Len=8 bits) - `AW 7..7` (Len=8 bits)
- **From Module:** 340A1 (Pos: N/A) - **340A1**, Type: `AI 2xI 2-,4-wire ST`, OrderNo: `6ES7 134-6GB00-0BA1`
- `EW 100..103` (Len=32 bits) - `EW 100..103` (Len=32 bits)
- **From Module:** 341A1 (Pos: N/A) - **341A1**, Type: `AI 2xI 2-,4-wire ST`, OrderNo: `6ES7 134-6GB00-0BA1`
- `EW 104..107` (Len=32 bits) - `EW 104..107` (Len=32 bits)
- **From Module:** 342A1 (Pos: N/A) - **342A1**, Type: `AI 2xI 2-,4-wire ST`, OrderNo: `6ES7 134-6GB00-0BA1`
- `EW 108..111` (Len=32 bits) - `EW 108..111` (Len=32 bits)
- **From Module:** 343A1 (Pos: N/A) - **343A1**, Type: `AI 2xI 2-,4-wire ST`, OrderNo: `6ES7 134-6GB00-0BA1`
- `EW 112..115` (Len=32 bits) - `EW 112..115` (Len=32 bits)
- **From Module:** 344A1 (Pos: N/A) - **344A1**, Type: `AI 2xI 2-,4-wire ST`, OrderNo: `6ES7 134-6GB00-0BA1`
- `EW 116..119` (Len=32 bits) - `EW 116..119` (Len=32 bits)
- **From Module:** 350A1 (Pos: N/A) - **350A1**, Type: `AQ 2xI ST`, OrderNo: `6ES7 135-6GB00-0BA1`
- `AW 100..103` (Len=32 bits) - `AW 100..103` (Len=32 bits)
- **From Module:** 351A1 (Pos: N/A) - **351A1**, Type: `AQ 2xI ST`, OrderNo: `6ES7 135-6GB00-0BA1`
- `AW 104..107` (Len=32 bits) - `AW 104..107` (Len=32 bits)
- **From Module:** 352A1 (Pos: N/A) - **352A1**, Type: `AQ 2xI ST`, OrderNo: `6ES7 135-6GB00-0BA1`
- `AW 108..111` (Len=32 bits) - `AW 108..111` (Len=32 bits)
- **From Module:** 353A1 (Pos: N/A) - **353A1**, Type: `AQ 2xI ST`, OrderNo: `6ES7 135-6GB00-0BA1`
- `AW 112..115` (Len=32 bits) - `AW 112..115` (Len=32 bits)
- **From Module:** 354A1 (Pos: N/A) - **354A1**, Type: `AQ 2xI ST`, OrderNo: `6ES7 135-6GB00-0BA1`
- `AW 116..119` (Len=32 bits) - `AW 116..119` (Len=32 bits)
- **From Module:** 355A1 (Pos: N/A) - **355A1**, Type: `AQ 2xI ST`, OrderNo: `6ES7 135-6GB00-0BA1`
- `AW 120..123` (Len=32 bits) - `AW 120..123` (Len=32 bits)
- #### Festo_283E1 (via PB1 @ `12`) - #### Festo_283E1 (via PB1 @ `12`)
- Address (on net): `12` - Address (on net): `12`
- Parent Structure: `Telaio di montaggio_0` - Parent Structure: `Telaio di montaggio_0`
- **IO Addresses (Aggregated from Structure):** - **IO Addresses (Aggregated from Structure):**
- **From Module:** CPX-FB13: DP-Slave [Status]_1 (Pos: N/A) - **CPX-FB13: DP-Slave [Status]_1**
- `EW 501..501` (Len=8 bits) - `EW 501..501` (Len=8 bits)
- **From Module:** MPA1S: VMPA1-FB-EMS-8 [8DO]_1 (Pos: N/A) - **MPA1S: VMPA1-FB-EMS-8 [8DO]_1**
- `AW 16..16` (Len=8 bits) - `AW 16..16` (Len=8 bits)
- **From Module:** MPA1S: VMPA1-FB-EMS-8 [8DO]_2 (Pos: N/A) - **MPA1S: VMPA1-FB-EMS-8 [8DO]_2**
- `AW 17..17` (Len=8 bits) - `AW 17..17` (Len=8 bits)
- **From Module:** MPA1S: VMPA1-FB-EMS-8 [8DO]_3 (Pos: N/A) - **MPA1S: VMPA1-FB-EMS-8 [8DO]_3**
- `AW 18..18` (Len=8 bits) - `AW 18..18` (Len=8 bits)
- **From Module:** MPA1S: VMPA1-FB-EMS-8 [8DO]_4 (Pos: N/A) - **MPA1S: VMPA1-FB-EMS-8 [8DO]_4**
- `AW 19..19` (Len=8 bits) - `AW 19..19` (Len=8 bits)
- **From Module:** MPA1S: VMPA1-FB-EMS-8 [8DO]_5 (Pos: N/A) - **MPA1S: VMPA1-FB-EMS-8 [8DO]_5**
- `AW 20..20` (Len=8 bits) - `AW 20..20` (Len=8 bits)
- #### Water_Volumetric_251U1 (via PB1 @ `20`) - #### Water_Volumetric_251U1 (via PB1 @ `20`)
- Address (on net): `20` - Address (on net): `20`
- Parent Structure: `Telaio di montaggio_0` - Parent Structure: `Telaio di montaggio_0`
- **IO Addresses (Aggregated from Structure):** - **IO Addresses (Aggregated from Structure):**
- **From Module:** Totalizer Value / Control (Pos: N/A) - **Volume Flow**
- `EW 3080..3084` (Len=40 bits)
- **Totalizer Value / Control**
- `EW 3100..3104` (Len=40 bits) - `EW 3100..3104` (Len=40 bits)
- `AW 3100..3100` (Len=8 bits) - `AW 3100..3100` (Len=8 bits)
- **From Module:** Volume Flow (Pos: N/A)
- `EW 3080..3084` (Len=40 bits)
- #### Syrup_Mass_252U1 (via PB1 @ `21`) - #### Syrup_Mass_252U1 (via PB1 @ `21`)
- Address (on net): `21` - Address (on net): `21`
- Parent Structure: `Telaio di montaggio_0` - Parent Structure: `Telaio di montaggio_0`
- **IO Addresses (Aggregated from Structure):** - **IO Addresses (Aggregated from Structure):**
- **From Module:** Concentration (Pos: N/A) - **Mass Flow**
- `EW 2050..2054` (Len=40 bits)
- **From Module:** Density (Pos: N/A)
- `EW 2045..2049` (Len=40 bits)
- **From Module:** Mass Flow (Pos: N/A)
- `EW 2030..2034` (Len=40 bits) - `EW 2030..2034` (Len=40 bits)
- **From Module:** Temperature (Pos: N/A) - **Density**
- `EW 2045..2049` (Len=40 bits)
- **Concentration**
- `EW 2050..2054` (Len=40 bits)
- **Temperature**
- `EW 2055..2059` (Len=40 bits) - `EW 2055..2059` (Len=40 bits)
- **From Module:** Totalizer Value / Control (Pos: N/A) - **Totalizer Value / Control**
- `EW 2070..2074` (Len=40 bits) - `EW 2070..2074` (Len=40 bits)
- `AW 2070..2070` (Len=8 bits) - `AW 2070..2070` (Len=8 bits)
@ -144,13 +143,13 @@ Identified 1 PLC(s).
- Address (on net): `22` - Address (on net): `22`
- Parent Structure: `Telaio di montaggio_0` - Parent Structure: `Telaio di montaggio_0`
- **IO Addresses (Aggregated from Structure):** - **IO Addresses (Aggregated from Structure):**
- **From Module:** Density (Pos: N/A) - **Mass Flow**
- `EW 3215..3219` (Len=40 bits)
- **From Module:** Mass Flow (Pos: N/A)
- `EW 3200..3204` (Len=40 bits) - `EW 3200..3204` (Len=40 bits)
- **From Module:** Temperature (Pos: N/A) - **Density**
- `EW 3215..3219` (Len=40 bits)
- **Temperature**
- `EW 3225..3229` (Len=40 bits) - `EW 3225..3229` (Len=40 bits)
- **From Module:** Totalizer Value / Control (Pos: N/A) - **Totalizer Value / Control**
- `EW 3240..3244` (Len=40 bits) - `EW 3240..3244` (Len=40 bits)
- `AW 3240..3240` (Len=8 bits) - `AW 3240..3240` (Len=8 bits)
@ -158,19 +157,82 @@ Identified 1 PLC(s).
- Address (on net): `40` - Address (on net): `40`
- Parent Structure: `Rack_0` - Parent Structure: `Rack_0`
- **IO Addresses (Aggregated from Structure):** - **IO Addresses (Aggregated from Structure):**
- **From Module:** IN128 mPDS5>PLC_4_1 (Pos: N/A) - **IN128 mPDS5>PLC_4_1**
- `EW 15000..15031` (Len=256 bits) - `EW 15000..15031` (Len=256 bits)
- **From Module:** IN128 mPDS5>PLC_4_2 (Pos: N/A) - **IN128 mPDS5>PLC_4_2**
- `EW 15032..15063` (Len=256 bits) - `EW 15032..15063` (Len=256 bits)
- **From Module:** IN128 mPDS5>PLC_4_3 (Pos: N/A) - **IN128 mPDS5>PLC_4_3**
- `EW 15064..15095` (Len=256 bits) - `EW 15064..15095` (Len=256 bits)
- **From Module:** IN128 mPDS5>PLC_4_4 (Pos: N/A) - **IN128 mPDS5>PLC_4_4**
- `EW 15096..15127` (Len=256 bits) - `EW 15096..15127` (Len=256 bits)
- **From Module:** OUT128 PLC>mPDS5_4_1 (Pos: N/A) - **OUT128 PLC>mPDS5_4_1**
- `AW 15000..15031` (Len=256 bits) - `AW 15000..15031` (Len=256 bits)
- **From Module:** OUT128 PLC>mPDS5_4_2 (Pos: N/A) - **OUT128 PLC>mPDS5_4_2**
- `AW 15032..15063` (Len=256 bits) - `AW 15032..15063` (Len=256 bits)
- **From Module:** OUT128 PLC>mPDS5_4_3 (Pos: N/A) - **OUT128 PLC>mPDS5_4_3**
- `AW 15064..15095` (Len=256 bits) - `AW 15064..15095` (Len=256 bits)
- **From Module:** OUT128 PLC>mPDS5_4_4 (Pos: N/A) - **OUT128 PLC>mPDS5_4_4**
- `AW 15096..15127` (Len=256 bits) - `AW 15096..15127` (Len=256 bits)
## IO Summary Table
| Network | Type | Address | Device Name | Sub-Device | OrderNo | Type | IO Type | IO Address | Number of Bits |
|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|
| PROFIBUS_1 | Profibus | 8 | 045U1 | PPO Type 8 Module consistent PCD_1 | N/A | N/A | Input | `EW 1640..1659` | 160 |
| PROFIBUS_1 | Profibus | 8 | 045U1 | PPO Type 8 Module consistent PCD_1 | N/A | N/A | Output | `AW 1640..1659` | 160 |
| PROFIBUS_1 | Profibus | 10 | IM151_280A0 | 300A0 | 6ES7 131-6BF00-0CA0 | DI 8x24VDC HF | Input | `EW 0..0` | 8 |
| PROFIBUS_1 | Profibus | 10 | IM151_280A0 | 301A0 | 6ES7 131-6BF00-0CA0 | DI 8x24VDC HF | Input | `EW 1..1` | 8 |
| PROFIBUS_1 | Profibus | 10 | IM151_280A0 | 302A0 | 6ES7 131-6BF00-0CA0 | DI 8x24VDC HF | Input | `EW 2..2` | 8 |
| PROFIBUS_1 | Profibus | 10 | IM151_280A0 | 303A0 | 6ES7 131-6BF00-0CA0 | DI 8x24VDC HF | Input | `EW 3..3` | 8 |
| PROFIBUS_1 | Profibus | 10 | IM151_280A0 | 304A0 | 6ES7 131-6BF00-0CA0 | DI 8x24VDC HF | Input | `EW 4..4` | 8 |
| PROFIBUS_1 | Profibus | 10 | IM151_280A0 | 305A0 | 6ES7 131-6BF00-0CA0 | DI 8x24VDC HF | Input | `EW 5..5` | 8 |
| PROFIBUS_1 | Profibus | 10 | IM151_280A0 | 306A0 | 6ES7 131-6BF00-0CA0 | DI 8x24VDC HF | Input | `EW 6..6` | 8 |
| PROFIBUS_1 | Profibus | 10 | IM151_280A0 | 307A0 | 6ES7 131-6BF00-0CA0 | DI 8x24VDC HF | Input | `EW 7..7` | 8 |
| PROFIBUS_1 | Profibus | 10 | IM151_280A0 | 320A0 | 6ES7 132-6BF01-0BA0 | DQ 8x24VDC/0.5A ST | Output | `AW 0..0` | 8 |
| PROFIBUS_1 | Profibus | 10 | IM151_280A0 | 321A0 | 6ES7 132-6BF01-0BA0 | DQ 8x24VDC/0.5A ST | Output | `AW 1..1` | 8 |
| PROFIBUS_1 | Profibus | 10 | IM151_280A0 | 322A0 | 6ES7 132-6BF01-0BA0 | DQ 8x24VDC/0.5A ST | Output | `AW 2..2` | 8 |
| PROFIBUS_1 | Profibus | 10 | IM151_280A0 | 323A0 | 6ES7 132-6BF01-0BA0 | DQ 8x24VDC/0.5A ST | Output | `AW 3..3` | 8 |
| PROFIBUS_1 | Profibus | 10 | IM151_280A0 | 324A0 | 6ES7 132-6BF01-0BA0 | DQ 8x24VDC/0.5A ST | Output | `AW 4..4` | 8 |
| PROFIBUS_1 | Profibus | 10 | IM151_280A0 | 325A0 | 6ES7 132-6BF01-0BA0 | DQ 8x24VDC/0.5A ST | Output | `AW 5..5` | 8 |
| PROFIBUS_1 | Profibus | 10 | IM151_280A0 | 326A0 | 6ES7 132-6BF01-0BA0 | DQ 8x24VDC/0.5A ST | Output | `AW 6..6` | 8 |
| PROFIBUS_1 | Profibus | 10 | IM151_280A0 | 327A0 | 6ES7 132-6BF01-0BA0 | DQ 8x24VDC/0.5A ST | Output | `AW 7..7` | 8 |
| PROFIBUS_1 | Profibus | 10 | IM151_280A0 | 340A1 | 6ES7 134-6GB00-0BA1 | AI 2xI 2-,4-wire ST | Input | `EW 100..103` | 32 |
| PROFIBUS_1 | Profibus | 10 | IM151_280A0 | 341A1 | 6ES7 134-6GB00-0BA1 | AI 2xI 2-,4-wire ST | Input | `EW 104..107` | 32 |
| PROFIBUS_1 | Profibus | 10 | IM151_280A0 | 342A1 | 6ES7 134-6GB00-0BA1 | AI 2xI 2-,4-wire ST | Input | `EW 108..111` | 32 |
| PROFIBUS_1 | Profibus | 10 | IM151_280A0 | 343A1 | 6ES7 134-6GB00-0BA1 | AI 2xI 2-,4-wire ST | Input | `EW 112..115` | 32 |
| PROFIBUS_1 | Profibus | 10 | IM151_280A0 | 344A1 | 6ES7 134-6GB00-0BA1 | AI 2xI 2-,4-wire ST | Input | `EW 116..119` | 32 |
| PROFIBUS_1 | Profibus | 10 | IM151_280A0 | 350A1 | 6ES7 135-6GB00-0BA1 | AQ 2xI ST | Output | `AW 100..103` | 32 |
| PROFIBUS_1 | Profibus | 10 | IM151_280A0 | 351A1 | 6ES7 135-6GB00-0BA1 | AQ 2xI ST | Output | `AW 104..107` | 32 |
| PROFIBUS_1 | Profibus | 10 | IM151_280A0 | 352A1 | 6ES7 135-6GB00-0BA1 | AQ 2xI ST | Output | `AW 108..111` | 32 |
| PROFIBUS_1 | Profibus | 10 | IM151_280A0 | 353A1 | 6ES7 135-6GB00-0BA1 | AQ 2xI ST | Output | `AW 112..115` | 32 |
| PROFIBUS_1 | Profibus | 10 | IM151_280A0 | 354A1 | 6ES7 135-6GB00-0BA1 | AQ 2xI ST | Output | `AW 116..119` | 32 |
| PROFIBUS_1 | Profibus | 10 | IM151_280A0 | 355A1 | 6ES7 135-6GB00-0BA1 | AQ 2xI ST | Output | `AW 120..123` | 32 |
| PROFIBUS_1 | Profibus | 12 | Festo_283E1 | CPX-FB13: DP-Slave [Status]_1 | N/A | N/A | Input | `EW 501..501` | 8 |
| PROFIBUS_1 | Profibus | 12 | Festo_283E1 | MPA1S: VMPA1-FB-EMS-8 [8DO]_1 | N/A | N/A | Output | `AW 16..16` | 8 |
| PROFIBUS_1 | Profibus | 12 | Festo_283E1 | MPA1S: VMPA1-FB-EMS-8 [8DO]_2 | N/A | N/A | Output | `AW 17..17` | 8 |
| PROFIBUS_1 | Profibus | 12 | Festo_283E1 | MPA1S: VMPA1-FB-EMS-8 [8DO]_3 | N/A | N/A | Output | `AW 18..18` | 8 |
| PROFIBUS_1 | Profibus | 12 | Festo_283E1 | MPA1S: VMPA1-FB-EMS-8 [8DO]_4 | N/A | N/A | Output | `AW 19..19` | 8 |
| PROFIBUS_1 | Profibus | 12 | Festo_283E1 | MPA1S: VMPA1-FB-EMS-8 [8DO]_5 | N/A | N/A | Output | `AW 20..20` | 8 |
| PROFIBUS_1 | Profibus | 20 | Water_Volumetric_251U1 | Volume Flow | N/A | N/A | Input | `EW 3080..3084` | 40 |
| PROFIBUS_1 | Profibus | 20 | Water_Volumetric_251U1 | Totalizer Value / Control | N/A | N/A | Input | `EW 3100..3104` | 40 |
| PROFIBUS_1 | Profibus | 20 | Water_Volumetric_251U1 | Totalizer Value / Control | N/A | N/A | Output | `AW 3100..3100` | 8 |
| PROFIBUS_1 | Profibus | 21 | Syrup_Mass_252U1 | Mass Flow | N/A | N/A | Input | `EW 2030..2034` | 40 |
| PROFIBUS_1 | Profibus | 21 | Syrup_Mass_252U1 | Density | N/A | N/A | Input | `EW 2045..2049` | 40 |
| PROFIBUS_1 | Profibus | 21 | Syrup_Mass_252U1 | Concentration | N/A | N/A | Input | `EW 2050..2054` | 40 |
| PROFIBUS_1 | Profibus | 21 | Syrup_Mass_252U1 | Temperature | N/A | N/A | Input | `EW 2055..2059` | 40 |
| PROFIBUS_1 | Profibus | 21 | Syrup_Mass_252U1 | Totalizer Value / Control | N/A | N/A | Input | `EW 2070..2074` | 40 |
| PROFIBUS_1 | Profibus | 21 | Syrup_Mass_252U1 | Totalizer Value / Control | N/A | N/A | Output | `AW 2070..2070` | 8 |
| PROFIBUS_1 | Profibus | 22 | CO2_Mass_253U1 | Mass Flow | N/A | N/A | Input | `EW 3200..3204` | 40 |
| PROFIBUS_1 | Profibus | 22 | CO2_Mass_253U1 | Density | N/A | N/A | Input | `EW 3215..3219` | 40 |
| PROFIBUS_1 | Profibus | 22 | CO2_Mass_253U1 | Temperature | N/A | N/A | Input | `EW 3225..3229` | 40 |
| PROFIBUS_1 | Profibus | 22 | CO2_Mass_253U1 | Totalizer Value / Control | N/A | N/A | Input | `EW 3240..3244` | 40 |
| PROFIBUS_1 | Profibus | 22 | CO2_Mass_253U1 | Totalizer Value / Control | N/A | N/A | Output | `AW 3240..3240` | 8 |
| PROFIBUS_1 | Profibus | 40 | Anton Paar_120U1 | IN128 mPDS5>PLC_4_1 | N/A | N/A | Input | `EW 15000..15031` | 256 |
| PROFIBUS_1 | Profibus | 40 | Anton Paar_120U1 | IN128 mPDS5>PLC_4_2 | N/A | N/A | Input | `EW 15032..15063` | 256 |
| PROFIBUS_1 | Profibus | 40 | Anton Paar_120U1 | IN128 mPDS5>PLC_4_3 | N/A | N/A | Input | `EW 15064..15095` | 256 |
| PROFIBUS_1 | Profibus | 40 | Anton Paar_120U1 | IN128 mPDS5>PLC_4_4 | N/A | N/A | Input | `EW 15096..15127` | 256 |
| PROFIBUS_1 | Profibus | 40 | Anton Paar_120U1 | OUT128 PLC>mPDS5_4_1 | N/A | N/A | Output | `AW 15000..15031` | 256 |
| PROFIBUS_1 | Profibus | 40 | Anton Paar_120U1 | OUT128 PLC>mPDS5_4_2 | N/A | N/A | Output | `AW 15032..15063` | 256 |
| PROFIBUS_1 | Profibus | 40 | Anton Paar_120U1 | OUT128 PLC>mPDS5_4_3 | N/A | N/A | Output | `AW 15064..15095` | 256 |
| PROFIBUS_1 | Profibus | 40 | Anton Paar_120U1 | OUT128 PLC>mPDS5_4_4 | N/A | N/A | Output | `AW 15096..15127` | 256 |

View File

@ -0,0 +1,145 @@
# IO Adaptation Table
This document maps the physical IO addresses of the PLC system to their corresponding Master Tags, incorporating information from both the PLC hardware configuration and Master Tag definitions.
## Digital Inputs
| IO Address | IO Reference | Sensor | Master Tag | PLC Description | MASTER Description | Revised Description | Confidence | Alternative 1 | Alternative 2 | Alternative 3 |
| ---------- | ------------ | -------- | -------------------------- | ----------------------------------------------------------------- | ------------------------------------------ | ------------------------------------------------------ | ---------- | ----------------------------------------------------------- | ----------------------------------------------------------- | ------------------------------------------------------------- |
| EW 0..0 | I0.0 | | DI_AuxVoltage_On | AUXILIARY CIRC. ON AUSILIARI INSERITI | "Electrical Panel Restored" | Auxiliary circuit power on / Electrical panel restored | Medium | DI_CIP_CIP_Enable: "From CIP Enable" | DI_UPSsupply: "UPS supply OK" | DI_SyrRoom_WatPumpReady: "From Syrup Room - Water Pump Ready" |
| EW 0..0 | I0.1 | 300S2 | DI_PB_HornReset | SIREN RESET RESET SIRENA | "PB Horn Reset" | Horn/siren reset button | High | | | |
| EW 0..0 | I0.2 | 300S3 | DI_AlarmReset | RESET RESET | "PB Machine Reset" | Machine alarm reset button | High | | | |
| EW 0..0 | I0.3 | 300S4 | DI_PB_Machine_Stop | MACHINE STOP ARRESTO MACCHINA | "PB Machine Stop" | Machine stop button | High | | | |
| EW 0..0 | I0.4 | 300S5 | DI_PB_Machine_Start | MARCIA MACCHINA MACHINE START | "PB Machine Start" | Machine start button | High | | | |
| EW 0..0 | I0.5 | | | ==PRESENZA TENSIONE VOLTAGE PRESENCE== | | | | DI_AuxVoltage_On: "Electrical Panel Restored" | DI_Emergency_Pilz_On: "Pilz Emergency" | DI_UPSsupply: "UPS supply OK" |
| EW 0..0 | I0.6 | | DI_LSN301L | SONDA LIVELLO MINIMO DEAREATORE 1 | "LSN301_L - Deaireator Tank Minimun Level" | Deaerator tank 1 minimum level probe | High | | | |
| EW 0..0 | I0.7 | | DI_Min_Syrup_Level | SONDA LIVELLO MINIMO SCIRO - PPC SYRUP MINIMUM LEVEL PROBE | " - Syrup Tank Minimun Level" | Syrup tank minimum level probe | High | | | |
| EW 1..1 | I1.0 | 301B1 | DI_LSM302L | SONDA LIVELLO MINIMO SERB.STOCCAGGIO - STORE TANK MIN LEVEL PROBE | "LSM302_L - Product Tank Minimun Level" | Product storage tank minimum level probe | High | | | |
| EW 1..1 | I1.5 | | DI_RMM301_Closed | VALVOLA CHIUSA VM1 - CLOSED VALVE VM1 | "RMM301 - Feedback OFF (VM1WATER)" | Water valve VM1 closed feedback | High | | | |
| EW 1..1 | I1.6 | | DI_RMP302_Closed | CLOSED VALVE VM2 - VALVOLA CHIUSA VM2 | "RMP302 - Feedback OFF (VM2 SYRUP)" | Syrup valve VM2 closed feedback | High | | | |
| EW 1..1 | I1.7 | | DI_RMM303_Closed | VALVOLA CHIUSA VM3 - CLOSED VALVE VM3 | "RMM303 - Feedback OFF (VM3 CO2)" | CO2 valve VM3 closed feedback | High | | | |
| EW 2..2 | I2.0 | 40Q2 | DI_PPN301_Ovrld | WATER PUMP OVERLOAD - TERMICO POMPA ACQUA | "PPN301 - Deaireator Pump Overload" | Water pump (301) thermal overload | High | | | |
| EW 2..2 | I2.1 | 40Q2 | DI_PPN301_SoftStart_Ovrld | AVARIA POMPA ACQUA - WATER PUMP FAULT | "PPN301 - Water_Pump_SoftStart_Ovrld" | Water pump (301) soft start overload/fault | High | | | |
| EW 2..2 | I2.2 | 42Q2 | DI_PPP302_Ovrld | SYRUP PUMP OVERLOAD - TERMICO POMPA SCIROPPC | "PPP302 - Syrup Pump Overload" | Syrup pump (302) thermal overload | High | | | |
| EW 2..2 | I2.3 | 42Q2 | DI_PPP302_Contactor | AVARIA POMPA SCIROPPO - SYRUP PUMP FAULT | "PPP302 - Syrup Pump Feedback" | Syrup pump (302) contactor feedback | Medium | DI_PPN301_Contactor: "PPN301 - Deaireator Pump Feedback" | DI_PPM306_Contactor: "PPM306 - Recirculating Pump Feedback" | DI_PPN304_Contactor: "PPN304 - Vaccum Pump Feedback" |
| EW 2..2 | I2.4 | 45Q2 | DI_PPM303_Ovrld | OVERPRESS.PUMP OVERLOAD - TERMICO POMPA SOVRAPRES. | "PPM303 - Product Pump Overload" | Product pump (303) thermal overload | High | | | |
| EW 2..2 | I2.5 | 45Q2 | DI_PPN301_Contactor | OVERPRESS.PUMP FAULT - AVARIA POMPA SOVRAPRES. | "PPN301 - Deaireator Pump Feedback" | Product pump feedback signal | Medium | DI_PPM303_Ovrld: "PPM303 - Product Pump Overload" | DI_PPM306_Contactor: "PPM306 - Recirculating Pump Feedback" | DI_PPP302_Contactor: "PPP302 - Syrup Pump Feedback" |
| EW 3..3 | I3.5 | 303A0/1 | DI_UPSAlarm | ALLARME UPS - UPS ALARM | "UPS Alarm" | UPS alarm signal | High | | | |
| EW 3..3 | I3.6 | 303A0/1_ | DI_UPSsupply | ALIMENTAZIONE DA BATTERIE - BATTERY POWER SUPPLY | "UPS supply OK" | UPS battery power supply active | High | | | |
| EW 3..3 | I3.7 | 303A0/1 | DI_UPSBatteryReady | BATTERIA TAMPONE PRONTA - BUFFER BATTERY READY | "UPS Battery ready" | UPS backup battery ready | High | | | |
| EW 5..5 | I5.0 | 305U1 | DI_SyrRoom_SyrPump_Running | POMPA SALA SCIROPPI INMARCIA - SYRUPS ROOM PUMP RUN | "From Syrup Room - Syrup Pump Running" | Syrup room pump running | High | | | |
| EW 7..7 | I7.1 | 307S2 | DI_Air_InletPress_OK | AIR PRESSURE GAUGE - PRESSOSTATO ARIA | "Air Pressure Switch" | Air pressure switch OK | High | | | |
| EW 7..7 | I7.2 | 307S3 | DI_HVP301_Sensor | SENSORE VALVOLA SCARICO SCIROPPO - SYRUP DISCHARGE VALVE SENSOR | "GCP301 - Manual Syrup Valve Closed (NO)" | Syrup discharge valve sensor | Medium | DI_HVM302_Sensor: "GCM302 - Manual Water Valve Closed (NO)" | DI_RMP302_Closed: "RMP302 - Feedback OFF (VM2 SYRUP)" | DI_WaterPipeCIP_Sensor: "MIX - N10_I32_" |
| EW 7..7 | I7.3 | 307F4 | DI_FSS301 | FLOW GAUGE FLUSSOSTATO | "FSS301 - Local Cip Return Flow Switch" | CIP return flow switch | High | | | |
## Digital Outputs
|IO Address|IO Reference|Sensor|Master Tag|PLC Description|MASTER Description|Revised Description|Confidence|Alternative 1|Alternative 2|Alternative 3|
|---|---|---|---|---|---|---|---|---|---|---|
|AW 0..0|Q0.0||DO_HMIPowerSupply|RIPRISTINO ALIMENTAZIONE HMI - HMI POWER SUPPLY RESTORE|"Cut Power to PC"|HMI/PC power supply control|High||||
|AW 1..1|Q1.0||DO_SyRm_SyrupReques|RICHIESTA SCIROPPO - SYRUP REQUEST|"To syrup Room Syrup Request"|Syrup request to syrup room|High||||
|AW 1..1|Q1.1||DO_SyRm_WaterRequest|WATER REQUEST - RICHIESTA ACQUA|"To syrup Room Water Request"|Water request to syrup room|High||||
|AW 7..7|Q7.0|327H1|DO_Horn|ALLARME ACUSTICO - ACOUSTIC ALARM|"DO_Horn"|Acoustic alarm/horn|High||||
|AW 7..7|Q7.1|300S5|DO_PB_Green_Lamp|MACHINE START - MARCIA MACCHINA|"PB Machine Start Lamp"|Green lamp for machine start button|High||||
|AW 7..7|Q7.2|300S3|DO_Red_Lamp|MACHINE ALARM - ALLARME MACCHINA|"DO_Red_Lamp"|Red alarm lamp|High||||
|AW 7..7|Q7.3|327HO|DO_Yellow_Lamp|ROTAT. LAMP - ROT ALLARM|"DO_Yellow_Lamp"|Yellow rotating alarm lamp|High||||
|AW 7..7|Q7.4|327K5|DO_PPN301_Run|COMANDO POMPA ACQUA - WATER PUMP CONTROL|"DO_PPN301_Run"|Water pump (301) run command|High||||
|AW 7..7|Q7.5|327K6|DO_PPP302_Run|SYRUP PUMP CONTROL - COMANDO POMPA SCIROPPO|"DO_PPP302_Run"|Syrup pump (302) run command|High||||
|AW 7..7|Q7.6|327K7|DO_PPM303_Run|COMANDO POMPA SOVRAPRESSIONE - OVERPRESSURE PUMP CONTROL|"DO_PPM303_Run"|Product pump (303) run command|High||||
## FESTO Valve Outputs
| IO Address | IO Reference | Sensor | Master Tag | PLC Description | MASTER Description | Revised Description | Confidence | Alternative 1 | Alternative 2 | Alternative 3 |
| ---------- | ------------ | ------ | ---------------------- | ----------------------- | -------------------------------------------- | ------------------------------------- | ---------- | ---------------------------------------------------------------------------- | -------------------------------------------------------- | ---------------------------------------------------------------------------- |
| AW 16..16 | A16.0 | FESTO | DO_AVM341 | SFIATO SATURATORE | "MIX - CO2 Inlet" | Carbonator vent valve / CO2 inlet | Medium | DO_AVM396: "MIX - Steril Air Inlet" | DO_AVN347: "MIX - Deaireator Tank Start CO2 Injection 1" | DO_AVM330: "MIX - Blendfill Still Water By-Pass Drain Inlet Deaireator Tank" |
| AW 16..16 | A16.1 | FESTO | DO_AVN348 | DEAREAZIONE ACQUA | "MIX - Deaireator Inlet" | Water deaerator valve | Medium | DO_AVN349: "MIX - Deaireator Bypass 1" | DO_AVM339: "MIX - Still Water By-Pass Deaireator Tank" | DO_AVM327: "MIX - Blendfill Still Water By-Pass Mixproof 1" |
| AW 16..16 | A16.2 | FESTO | DO_AVM382 | RICIRCOLO PRODOTTO | "Mix - Product Recirculation though chiller" | Product recirculation valve | Medium | DO_AVM380: "MIX - Product Recirculation Without Chiller" | DO_AVS336: "MIX - CIP Recirculation" | DO_PPM306_Run: "DO_PPM306_Run" |
| AW 16..16 | A16.3 | FESTO | DO_AVN373 | SCARICO DEAREATORE | "MIX - Deaireator 2 Drain" | Deaerator drain valve | Medium | DO_AVN374: "MIX - Deaireators Connection Drain" | DO_AVS337: "MIX - CIP Drain" | DO_CIP_Drain: "From CIP Drain" |
| AW 16..16 | A16.4 | FESTO | DO_RVM301_Discharge | SCARICO SATURATORE | "DO_RVM301_Discharge" | Carbonator discharge valve | High | | | |
| AW 16..16 | A16.5 | FESTO | DO_EV67_SyrupLineDrain | SCARICO SCIROPPO | "MIX - N10_O101_" | Syrup line drain valve | Medium | DO_AVM369: "MIX - Blender to filler 1 Drain" | DO_AVM353: "MIX - Blender to filler 2 Drain" | DO_AVP363: "MIX - Syrup Line In H2O" |
| AW 16..16 | A16.6 | FESTO | DO_AVN329 | DIVOSFERA SATURATORE | "MIX - Deaireator 2 Tank Spray Ball" | Carbonator spray ball | Medium | DO_AVN347: "MIX - Deaireator Tank Start CO2 Injection 1" | DO_EV71_FiRinseSprayBall: "MIX - N10_O105_" | DO_AVP391: "MIX -" |
| AW 16..16 | A16.7 | FESTO | DO_AVN374 | TROPPOPIENO DEAREATORE | "MIX - Deaireators Connection Drain" | Deaerator overflow valve | Medium | DO_RVN301_Level: "MIX - Deaireator Level Control" | DO_EV03_SyrupLvlCtrl: "MIX - N10_O06_" | DO_AVN373: "MIX - Deaireator 2 Drain" |
| AW 17..17 | A17.0 | FESTO | DO_RVN301_Level | TROPPO PIENO SATURATORE | "MIX - Deaireator Level Control" | Carbonator overflow / level control | Medium | DO_AVM330: "MIX - Blendfill Still Water By-Pass Drain Inlet Deaireator Tank" | DO_AVN374: "MIX - Deaireators Connection Drain" | DO_AVN373: "MIX - Deaireator 2 Drain" |
| AW 17..17 | A17.6 | FESTO | DO_AVN329 | DIVOSFERADEAREATORE | "MIX - Deaireator 2 Tank Spray Ball" | Deaerator spray ball | Medium | DO_AVN347: "MIX - Deaireator Tank Start CO2 Injection 1" | DO_EV71_FiRinseSprayBall: "MIX - N10_O105_" | DO_AVP391: "MIX -" |
| AW 18..18 | A18.0 | FESTO | DO_AVS331 | ASPIRAZIONE VENTURI | "MIX - CIP Venturi" | CIP venturi suction valve | High | | | |
| AW 18..18 | A18.1 | FESTO | DO_AVS332 | LAVAGGIOVENTURI | "MIX - CIP Wash Venturi" | CIP venturi washing valve | High | | | |
| AW 18..18 | A18.2 | FESTO | DO_AVS333 | INGRESSO SANIFICANTE 1 | "MIX - CIP Caustic" | CIP caustic solution inlet valve | High | | | |
| AW 18..18 | A18.3 | FESTO | DO_AVS334 | INGRESSO SANIFICANTE 2 | "MIX - CIP Acid" | CIP acid solution inlet valve | High | | | |
| AW 18..18 | A18.4 | FESTO | DO_AVS335 | INGRESSO SANIFICANTE 3 | "MIX - CIP Peracetic Acid" | CIP peracetic acid inlet valve | High | | | |
| AW 18..18 | A18.5 | FESTO | DO_AVS336 | RICIRCOLO SANIFICANTE | "MIX - CIP Recirculation" | CIP sanitizing solution recirculation | High | | | |
| AW 18..18 | A18.6 | FESTO | DO_AVS337 | SCARICO SANIFICANTE 1 | "MIX - CIP Drain" | CIP sanitizing solution drain | High | | | |
| AW 18..18 | A18.7 | FESTO | DO_AVS338 | SCARICO SCAMBIATORE | "MIX - CIP Heater" | CIP heat exchanger drain valve | Medium | DO_AVS331: "MIX - CIP Venturi" | DO_AVS332: "MIX - CIP Wash Venturi" | DO_AO_RVS318: "RVS318 - Local Cip Heating Valve" |
## Analog Inputs
|IO Address|IO Reference|Sensor|Master Tag|PLC Description|MASTER Description|Revised Description|Confidence|Alternative 1|Alternative 2|Alternative 3|
|---|---|---|---|---|---|---|---|---|---|---|
|EW 100..103|PEW100|258B1|P_AI_LTM302|LIVELLO SERBATOIO DI STOCCAGGIO - STORAGE TANK LEVEL|"LTM302 - Product Tank Level"|Product storage tank level|High||||
|EW 104..107|PEW102|254B1|P_AI_PTM304|SENSORE PRESSIONE SERB.DI STOCCAGGIO - STORAGE TANK PRESSURE SENSOR|"PTM304 - Product Tank Pressure"|Product storage tank pressure|High||||
|EW 108..111|PEW104|270B1|P_AI_RVN304|CONTR.PORTATA CO2 PER DEAREAZIONE - AIR VACUUM CO2 FLOW CONTROL|"RVN304 - Deaireation Valve"|CO2 flow control for deaeration|High||||
|EW 112..115|PEW106|254B4|P_AI_PCM306|CONTROLLO PRESSIONE SERBATOIO CO2 - CO2 TANK PRESSURE CONTROL|"PCM306 - Gas Pressure Injection"|CO2 gas pressure control|High||||
|EW 116..119|PEW108|256U1|P_AI_TTM306|PRODUCT TEMPERATURE SENSOR - SENSORE TEMPERATURA PRODOTTO|"TTM306 - Chiller Temperature"|Product/chiller temperature sensor|High||||
|EW 116..119|PEW112|255U1|P_AI_TTN321|TEMP. H2O DEAREATORE - H2O DEAREATOR TEMP.|"TTN321 - Deaireator Temperature"|Deaerator water temperature|High||||
|EW 116..119|PEW114|259U1|P_AI_RVM301|NORGREN PV VLAVE ANALOG - OUTPUT USCITA ANALOGICA VALVOLA NORGREN PV|"RVM301 - Product Tank Pressure Valve"|Norgren PV valve analog input|High||||
## Analog Outputs
|IO Address|IO Reference|Sensor|Master Tag|PLC Description|MASTER Description|Revised Description|Confidence|Alternative 1|Alternative 2|Alternative 3|
|---|---|---|---|---|---|---|---|---|---|---|
|AW 100..103|PAW100|251U4|P_AO_RMM301|VALVOLA MOTORIZZATA ACQUA - WATER MOTOR VALVE|"RMM301 - Water Flow Control"|Water motorized valve flow control|High||||
|AW 104..107|PAW102|252U4|P_AO_RMP302|VALVOLA MOTORIZZATA SCIROPPO - SYRUP MOTOR VALVE|"RMP302 - Syrup Flow Control"|Syrup motorized valve flow control|High||||
|AW 108..111|PAW104|253U4|P_AO_RMM303|VALVOLA MOTORIZZATA CO2 - CO2 MOTOR VALVE|"RMM303 - Gas Flow Control"|CO2 motorized valve flow control|High||||
|AW 112..115|PAW108|270B1|P_AO_RVN304|AIR VACUUM CO2 FLOW CONTROL - CONTR.PORTATA CO2 PER DEAREAZIONE|"RVN304 - Deaireation Valve"|Deaeration valve control|High||||
|AW 116..119|PAW110|255B7|P_AO_RVM319|PRODUCT TEMPERATURE REGULATION - REGOLAZIONE TEMPERATURA PRODOTTO|"RVM319 - Chiller Temperature control"|Product/chiller temperature control|High||||
|AW 120..123|PAW114|259U1|P_AO_RVM301|USCITA ANALOGICA VALVOLA NORGREN - SP NORGREN SP VALVE ANALOG OUTPUT|"RVM301 - Product Tank Pressure Valve"|Norgren pressure valve control|High||||
|AW 120..123|PAW122|254B4|P_AO_PCM306|CONTROLLO PRESSIONE SERBATOIO CO2 - CO2 TANK PRESSURE CONTROL|"PCM306 - Gas Injection Pressure Control"|CO2 gas injection pressure control|High||||
## Profibus Communications
|IO Address|Device|Master Tag|Description|Confidence|Alternative 1|Alternative 2|Alternative 3|
|---|---|---|---|---|---|---|---|
|EW 2030..2034|Syrup_Mass_252U1|P_FTP302_Flow|Syrup mass flow|High||||
|EW 2045..2049|Syrup_Mass_252U1|P_FTP302_Density|Syrup density|High||||
|EW 2050..2054|Syrup_Mass_252U1|P_FTP302_Brix|Syrup concentration (Brix)|High||||
|EW 2055..2059|Syrup_Mass_252U1|P_FTP302_Temp|Syrup temperature|High||||
|EW 2070..2074|Syrup_Mass_252U1|P_FTP302_Totalizer|Syrup totalizer value|High||||
|AW 2070..2070|Syrup_Mass_252U1|P_FTP302_Tot_Ctrl|Syrup totalizer control|High||||
|EW 3080..3084|Water_Volumetric_251U1|P_FTN301_Flow|Water volumetric flow|High||||
|EW 3100..3104|Water_Volumetric_251U1|P_FTN301_Totalizer|Water totalizer value|High||||
|AW 3100..3100|Water_Volumetric_251U1|P_FTN301_Tot_Ctrl|Water totalizer control|High||||
|EW 3200..3204|CO2_Mass_253U1|P_FTM303_Flow|CO2 mass flow|High||||
|EW 3215..3219|CO2_Mass_253U1|P_FTM303_Density|CO2 density|High||||
|EW 3225..3229|CO2_Mass_253U1|P_FTM303_Temperature|CO2 temperature|High||||
|EW 3240..3244|CO2_Mass_253U1|P_FTM303_Totalizer|CO2 totalizer value|High||||
|AW 3240..3240|CO2_Mass_253U1|P_FTM303_Tot_Ctrl|CO2 totalizer control|High||||
|EW 15000..15127|Anton Paar_120U1|P_PDS__, P_gPAmPDS__|Product analyzer data (CO2, Brix, Density, Temperature)|Medium|P_gMaselli_ProductBrix: "MIX - Profibus Variables"|P_gMaselli_ProductTemp: "MIX - Profibus Variables"|P_gMaselli_ProductCO2: "MIX - Profibus Variables"|
## VFC (Variable Frequency Drives) Communications
|Device|Master Tag Input|Master Tag Output|Description|Confidence|Alternative Input 1|Alternative Input 2|Alternative Output|
|---|---|---|---|---|---|---|---|
|301 - Water Pump|P_gPPN301_VFC_StatusWord|P_gPPN301_VFC_ControlWord|Deaerator water pump VFC control|High||||
|301 - Water Pump|-|P_gPPN301_VFC_Refvalue|Deaerator water pump VFC reference|High||||
|302 - Syrup Pump|P_gPPP302_VFC_StatusWord|P_gPPP302_VFC_ControlWord|Syrup pump VFC control|High||||
|302 - Syrup Pump|-|P_gPPP302_VFC_Refvalue|Syrup pump VFC reference|High||||
|303 - Product Pump|P_gPPM303_VFC_StatusWord|P_gPPM303_VFC_ControlWord|Product pump VFC control|High||||
|303 - Product Pump|-|P_gPPM303_VFC_Refvalue|Product pump VFC reference|High||||
|305 - Product Pump 2|P_gPPM305_VFC_StatusWord|P_gPPM305_VFC_ControlWord|Product pump 2 VFC control|High||||
|305 - Product Pump 2|-|P_gPPM305_VFC_Refvalue|Product pump 2 VFC reference|High||||
## Notes
This adaptation table maps the physical IO addresses of the PLC system to their corresponding Master Tags based on device descriptions and equivalences. The confidence level indicates the certainty of the matching:
- **High**: Clear match in description or numbering following the provided equivalences
- **Medium**: Probable match with some differences in description
- **Low**: Possible match with significant differences
For entries with Medium or Low confidence, three alternative possibilities are provided with their descriptions to help in making the final determination.
Key equipment equivalences used:
- P1 = WATER PUMP = SOFTSTART = 301
- P2 = SYRUP PUMP = 302
- P3 = OVERPRESSURE PRODUCT PUMP = 303
- P6 = RECYCLE PUMP = 306

View File

@ -0,0 +1,555 @@
```
DATA_BLOCK "HMI_Blender_Parameters"
TITLE =
{ S7_language := '28(1) Albanese 15.06.2005 17:07:04' }
FAMILY : Resource
VERSION : 0.0
STRUCT
STAT0 : STRUCT
STAT1 : STRUCT
STAT2 : INT := 6;
STAT3 : REAL := 2.000000e-01;
STAT4 : REAL := 8.000000e-01;
STAT5 : BOOL := TRUE;
STAT6 : BOOL ;
STAT7 : BOOL ;
STAT8 : BOOL ;
STAT9 : BOOL ;
STAT10 : BOOL ;
STAT11 : BOOL := TRUE;
STAT12 : BOOL ;
STAT13 : BOOL := TRUE;
STAT14 : BOOL ;
STAT15 : BOOL ;
STAT16 : BOOL ;
STAT17 : BOOL ;
STAT18 : BOOL := TRUE;
STAT19 : BOOL ;
STAT20 : BOOL ;
STAT21 : INT := 6;
STAT22 : BOOL ;
STAT23 : BOOL ;
STAT24 : BOOL ;
STAT25 : BOOL ;
STAT26 : BOOL ;
STAT27 : BOOL := TRUE;
STAT28 : BOOL := TRUE;
STAT29 : INT := 1;
STAT30 : BOOL := TRUE;
STAT31 : INT := 4;
STAT32 : INT ;
STAT33 : BOOL ;
STAT34 : BOOL ;
STAT35 : BOOL ;
STAT36 : BOOL ;
STAT37 : BOOL ;
STAT38 : BOOL := TRUE;
STAT39 : BOOL ;
STAT40 : BOOL ;
STAT41 : BOOL := TRUE;
STAT42 : BOOL ;
STAT43 : BOOL := TRUE;
STAT44 : BOOL ;
STAT45 : BOOL := TRUE;
STAT46 : BOOL ;
STAT47 : BOOL ;
STAT48 : BOOL := TRUE;
STAT49 : INT ;
STAT50 : INT := 2;
STAT51 : BOOL := TRUE;
STAT52 : BOOL ;
STAT53 : BOOL ;
STAT54 : BOOL ;
STAT55 : BOOL ;
STAT56 : BOOL ;
STAT57 : BOOL ;
STAT58 : BOOL := TRUE;
STAT59 : BOOL ;
STAT60 : BOOL ;
STAT61 : BOOL ;
STAT62 : BOOL ;
STAT63 : BOOL ;
STAT64 : BOOL := TRUE;
STAT65 : BOOL ;
STAT66 : BOOL ;
STAT67 : INT := 1;
STAT68 : INT ;
STAT69 : INT := 1;
STAT70 : INT ;
STAT71 : INT ;
STAT72 : INT := 6;
END_STRUCT ;
END_STRUCT ;
STAT73 : ARRAY [1 .. 9 ] OF INT ;
STAT74 : REAL := 5.000000e-02;
STAT75 : REAL := 6.500000e+01;
STAT76 : STRUCT
STAT77 : STRING [32 ] := ' ';
STAT78 : BOOL ;
STAT79 : BOOL ;
STAT80 : BOOL ;
STAT81 : BOOL ;
STAT82 : BOOL ;
STAT83 : BOOL ;
STAT84 : BOOL ;
STAT85 : BOOL ;
STAT86 : BYTE ;
STAT87 : BYTE ;
STAT88 : BYTE ;
STAT89 : INT := 1;
STAT90 : INT ;
STAT91 : REAL := 5.000000e+01;
STAT92 : REAL := 1.255800e+00;
STAT93 : REAL := 1.000000e+00;
STAT94 : REAL := 1.045000e+01;
STAT95 : REAL := 9.000000e+02;
STAT96 : REAL := 2.000000e+01;
STAT97 : REAL ;
STAT98 : REAL ;
STAT99 : REAL := 1.000000e+00;
STAT100 : REAL := 1.000000e+00;
STAT101 : REAL := 1.000000e+01;
STAT102 : REAL := 1.000000e+01;
STAT103 : REAL ;
STAT104 : REAL ;
STAT105 : REAL ;
STAT106 : REAL ;
STAT107 : REAL ;
STAT108 : REAL ;
STAT109 : REAL ;
STAT110 : REAL ;
STAT111 : REAL ;
STAT112 : REAL ;
STAT113 : REAL ;
STAT114 : REAL ;
STAT115 : REAL ;
STAT116 : REAL ;
STAT117 : REAL := 9.700000e-01;
STAT118 : REAL ;
STAT119 : REAL := 1.000000e+00;
STAT120 : REAL ;
STAT121 : REAL ;
STAT122 : INT ;
STAT123 : REAL ;
STAT124 : REAL ;
STAT125 : REAL ;
STAT126 : REAL ;
END_STRUCT ;
STAT127 : ARRAY [1 .. 5 ] OF INT ;
STAT128 : STRING [32 ] := ' ';
STAT129 : INT ;
STAT130 : ARRAY [1 .. 18 ] OF INT ;
STAT131 : STRUCT
STAT132 : REAL ;
STAT133 : REAL ;
STAT134 : REAL := 1.580000e-03;
STAT135 : REAL := 9.000000e-03;
STAT136 : REAL := 1.700000e-02;
STAT137 : REAL := 5.700000e+00;
STAT138 : REAL := 2.000000e+00;
STAT139 : REAL := 2.000000e+00;
STAT140 : REAL := 1.000000e+01;
STAT141 : REAL := 1.000000e+01;
STAT142 : REAL := 1.000000e+01;
STAT143 : REAL := 6.000000e+01;
STAT144 : REAL := 5.000000e+01;
STAT145 : REAL := 2.500000e+01;
STAT146 : REAL := 6.500000e+01;
STAT147 : REAL := 1.200000e+01;
STAT148 : REAL := 1.000000e+01;
STAT149 : REAL ;
STAT150 : REAL := 3.000000e+01;
STAT151 : REAL := 1.000000e+00;
STAT152 : REAL := 5.000000e+00;
STAT153 : REAL := 5.000000e+00;
STAT154 : REAL := 1.000000e+02;
STAT155 : REAL := 2.000000e+02;
STAT156 : REAL := 2.000000e+01;
STAT157 : REAL := 2.000000e+01;
STAT158 : REAL := 2.000000e+01;
STAT159 : INT := 1;
STAT160 : REAL := 2.000000e+01;
STAT161 : REAL := 7.000000e-01;
STAT162 : REAL := 4.250000e+02;
STAT163 : REAL := 2.550000e+03;
STAT164 : REAL := 9.000000e+00;
STAT165 : REAL ;
STAT166 : REAL := 1.600000e+03;
STAT167 : REAL := 2.000000e+01;
STAT168 : REAL := 1.400000e+01;
STAT169 : REAL := 1.610000e+03;
STAT170 : REAL := 2.877000e+03;
STAT171 : INT := 80;
STAT172 : REAL := 8.000000e+01;
STAT173 : REAL := 9.000000e+01;
STAT174 : REAL := 4.000000e+00;
STAT175 : REAL := 1.020000e+03;
STAT176 : REAL := 1.000000e+02;
STAT177 : REAL := 2.300000e+03;
STAT178 : REAL := 7.500000e-01;
STAT179 : REAL := 5.000000e-01;
STAT180 : REAL := 3.000000e-02;
STAT181 : REAL := 1.400000e-03;
STAT182 : REAL ;
STAT183 : WORD := W#16#6;
STAT184 : WORD := W#16#50;
STAT185 : WORD := W#16#1;
STAT186 : REAL := 3.000000e+01;
STAT187 : REAL := 4.000000e+01;
STAT188 : REAL := 9.000000e+01;
STAT189 : REAL := 2.500000e+02;
STAT190 : REAL := 5.500000e-01;
STAT191 : REAL := 4.000000e-01;
STAT192 : REAL := 9.000000e-01;
STAT193 : REAL := 1.500000e+01;
STAT194 : REAL := 4.500000e+01;
STAT195 : REAL := 5.000000e+01;
STAT196 : REAL := 4.000000e+00;
STAT197 : REAL := 2.000000e+01;
STAT198 : REAL := 5.000000e+00;
STAT199 : REAL := 5.000000e+00;
STAT200 : REAL := 5.000000e+00;
STAT201 : REAL := 5.000000e+00;
STAT202 : REAL := 1.000000e+01;
STAT203 : REAL ;
STAT204 : REAL := 1.150000e+02;
STAT205 : REAL := 1.650000e+02;
STAT206 : REAL := 2.600000e+02;
STAT207 : REAL := 1.650000e+02;
STAT208 : REAL := 6.700000e+01;
STAT209 : INT := 50;
STAT210 : REAL := 9.000000e+01;
STAT211 : REAL := 8.700000e+01;
STAT212 : REAL := 5.070000e+02;
STAT213 : REAL := 2.110000e+02;
STAT214 : REAL := 8.600000e+01;
STAT215 : REAL := 8.500000e+01;
STAT216 : REAL := 1.150000e+02;
STAT217 : REAL := 3.200000e+01;
STAT218 : REAL := 5.000000e+00;
STAT219 : REAL := 5.000000e+00;
STAT220 : REAL ;
STAT221 : REAL ;
STAT222 : REAL ;
STAT223 : REAL ;
STAT224 : REAL := 1.800000e+01;
STAT225 : REAL := 2.000000e+00;
STAT226 : REAL := 2.000000e+00;
STAT227 : REAL := 5.000000e+01;
STAT228 : REAL := 5.000000e+01;
STAT229 : DINT := L#1500;
STAT230 : DINT := L#1500;
STAT231 : DINT := L#1000;
STAT232 : DINT := L#1000;
STAT233 : INT := 30;
STAT234 : INT := 30;
STAT235 : INT := 10;
STAT236 : INT := 10;
STAT237 : INT := 10;
STAT238 : REAL := 3.500000e+02;
STAT239 : INT := 30;
STAT240 : INT := 30;
STAT241 : INT := 30;
STAT242 : INT := 30;
STAT243 : INT := 30;
STAT244 : INT := 30;
STAT245 : INT := 30;
STAT246 : INT := 30;
STAT247 : REAL := 3.000000e+01;
STAT248 : REAL := 3.000000e+01;
STAT249 : REAL ;
STAT250 : REAL ;
STAT251 : REAL ;
STAT252 : REAL := 5.000000e+01;
END_STRUCT ;
STAT253 : BOOL ;
STAT254 : REAL ;
END_STRUCT ;
BEGIN
STAT0.STAT1.STAT2 := 6;
STAT0.STAT1.STAT3 := 4.500000e-01;
STAT0.STAT1.STAT4 := 8.000000e-01;
STAT0.STAT1.STAT5 := TRUE;
STAT0.STAT1.STAT6 := FALSE;
STAT0.STAT1.STAT7 := FALSE;
STAT0.STAT1.STAT8 := FALSE;
STAT0.STAT1.STAT9 := TRUE;
STAT0.STAT1.STAT10 := FALSE;
STAT0.STAT1.STAT11 := TRUE;
STAT0.STAT1.STAT12 := FALSE;
STAT0.STAT1.STAT13 := TRUE;
STAT0.STAT1.STAT14 := FALSE;
STAT0.STAT1.STAT15 := FALSE;
STAT0.STAT1.STAT16 := FALSE;
STAT0.STAT1.STAT17 := FALSE;
STAT0.STAT1.STAT18 := TRUE;
STAT0.STAT1.STAT19 := FALSE;
STAT0.STAT1.STAT20 := FALSE;
STAT0.STAT1.STAT21 := 6;
STAT0.STAT1.STAT22 := FALSE;
STAT0.STAT1.STAT23 := FALSE;
STAT0.STAT1.STAT24 := FALSE;
STAT0.STAT1.STAT25 := TRUE;
STAT0.STAT1.STAT26 := FALSE;
STAT0.STAT1.STAT27 := TRUE;
STAT0.STAT1.STAT28 := TRUE;
STAT0.STAT1.STAT29 := 1;
STAT0.STAT1.STAT30 := TRUE;
STAT0.STAT1.STAT31 := 4;
STAT0.STAT1.STAT32 := 0;
STAT0.STAT1.STAT33 := FALSE;
STAT0.STAT1.STAT34 := FALSE;
STAT0.STAT1.STAT35 := FALSE;
STAT0.STAT1.STAT36 := FALSE;
STAT0.STAT1.STAT37 := FALSE;
STAT0.STAT1.STAT38 := TRUE;
STAT0.STAT1.STAT39 := FALSE;
STAT0.STAT1.STAT40 := FALSE;
STAT0.STAT1.STAT41 := TRUE;
STAT0.STAT1.STAT42 := FALSE;
STAT0.STAT1.STAT43 := TRUE;
STAT0.STAT1.STAT44 := FALSE;
STAT0.STAT1.STAT45 := TRUE;
STAT0.STAT1.STAT46 := FALSE;
STAT0.STAT1.STAT47 := FALSE;
STAT0.STAT1.STAT48 := TRUE;
STAT0.STAT1.STAT49 := 0;
STAT0.STAT1.STAT50 := 2;
STAT0.STAT1.STAT51 := TRUE;
STAT0.STAT1.STAT52 := FALSE;
STAT0.STAT1.STAT53 := FALSE;
STAT0.STAT1.STAT54 := FALSE;
STAT0.STAT1.STAT55 := FALSE;
STAT0.STAT1.STAT56 := FALSE;
STAT0.STAT1.STAT57 := FALSE;
STAT0.STAT1.STAT58 := TRUE;
STAT0.STAT1.STAT59 := TRUE;
STAT0.STAT1.STAT60 := FALSE;
STAT0.STAT1.STAT61 := FALSE;
STAT0.STAT1.STAT62 := FALSE;
STAT0.STAT1.STAT63 := FALSE;
STAT0.STAT1.STAT64 := TRUE;
STAT0.STAT1.STAT65 := FALSE;
STAT0.STAT1.STAT66 := FALSE;
STAT0.STAT1.STAT67 := 1;
STAT0.STAT1.STAT68 := 0;
STAT0.STAT1.STAT69 := 1;
STAT0.STAT1.STAT70 := 0;
STAT0.STAT1.STAT71 := 0;
STAT0.STAT1.STAT72 := 6;
STAT73[1] := 0;
STAT73[2] := 0;
STAT73[3] := 0;
STAT73[4] := 0;
STAT73[5] := 0;
STAT73[6] := 0;
STAT73[7] := 0;
STAT73[8] := 0;
STAT73[9] := 0;
STAT74 := 5.000000e-02;
STAT75 := 9.000000e+01;
STAT76.STAT77 := '';
STAT76.STAT78 := TRUE;
STAT76.STAT79 := FALSE;
STAT76.STAT80 := FALSE;
STAT76.STAT81 := FALSE;
STAT76.STAT82 := FALSE;
STAT76.STAT83 := TRUE;
STAT76.STAT84 := FALSE;
STAT76.STAT85 := FALSE;
STAT76.STAT86 := B#16#0;
STAT76.STAT87 := B#16#14;
STAT76.STAT88 := B#16#0;
STAT76.STAT89 := 2;
STAT76.STAT90 := 1;
STAT76.STAT91 := 3.935000e+01;
STAT76.STAT92 := 1.166600e+00;
STAT76.STAT93 := 1.000000e+00;
STAT76.STAT94 := 8.600000e+00;
STAT76.STAT95 := 2.500000e-01;
STAT76.STAT96 := 3.934034e+00;
STAT76.STAT97 := 4.000000e-01;
STAT76.STAT98 := 2.500000e+00;
STAT76.STAT99 := 9.000000e-01;
STAT76.STAT100 := 3.500000e+00;
STAT76.STAT101 := 1.600000e+01;
STAT76.STAT102 := 3.500000e+01;
STAT76.STAT103 := 0.000000e+00;
STAT76.STAT104 := 0.000000e+00;
STAT76.STAT105 := 0.000000e+00;
STAT76.STAT106 := 8.800000e+00;
STAT76.STAT107 := 8.400000e+00;
STAT76.STAT108 := 2.800000e+00;
STAT76.STAT109 := 2.200000e+00;
STAT76.STAT110 := 0.000000e+00;
STAT76.STAT111 := 0.000000e+00;
STAT76.STAT112 := 0.000000e+00;
STAT76.STAT113 := 0.000000e+00;
STAT76.STAT114 := 0.000000e+00;
STAT76.STAT115 := 0.000000e+00;
STAT76.STAT116 := 0.000000e+00;
STAT76.STAT117 := 8.500000e-01;
STAT76.STAT118 := 0.000000e+00;
STAT76.STAT119 := 0.000000e+00;
STAT76.STAT120 := 0.000000e+00;
STAT76.STAT121 := 0.000000e+00;
STAT76.STAT122 := 0;
STAT76.STAT123 := 0.000000e+00;
STAT76.STAT124 := 0.000000e+00;
STAT76.STAT125 := 0.000000e+00;
STAT76.STAT126 := 0.000000e+00;
STAT127[1] := 0;
STAT127[2] := 0;
STAT127[3] := 0;
STAT127[4] := 0;
STAT127[5] := 0;
STAT128 := '';
STAT129 := 0;
STAT130[1] := 0;
STAT130[2] := 0;
STAT130[3] := 0;
STAT130[4] := 0;
STAT130[5] := 0;
STAT130[6] := 0;
STAT130[7] := 0;
STAT130[8] := 0;
STAT130[9] := 0;
STAT130[10] := 0;
STAT130[11] := 0;
STAT130[12] := 0;
STAT130[13] := 0;
STAT130[14] := 0;
STAT130[15] := 0;
STAT130[16] := 0;
STAT130[17] := 0;
STAT130[18] := 0;
STAT131.STAT132 := 0.000000e+00;
STAT131.STAT133 := 0.000000e+00;
STAT131.STAT134 := 1.000000e-03;
STAT131.STAT135 := 7.800000e-03;
STAT131.STAT136 := 1.390000e-02;
STAT131.STAT137 := 5.700000e+00;
STAT131.STAT138 := 2.000000e+00;
STAT131.STAT139 := 2.200000e+00;
STAT131.STAT140 := 2.100000e+01;
STAT131.STAT141 := 2.000000e+01;
STAT131.STAT142 := 5.000000e+00;
STAT131.STAT143 := 6.000000e+01;
STAT131.STAT144 := 5.000000e+01;
STAT131.STAT145 := 2.500000e+01;
STAT131.STAT146 := 4.000000e+01;
STAT131.STAT147 := 2.400000e+01;
STAT131.STAT148 := 1.400000e+01;
STAT131.STAT149 := 3.000000e-01;
STAT131.STAT150 := 3.000000e+01;
STAT131.STAT151 := 1.000000e+00;
STAT131.STAT152 := 4.000000e+00;
STAT131.STAT153 := 2.000000e+00;
STAT131.STAT154 := 1.000000e+02;
STAT131.STAT155 := 5.000000e+02;
STAT131.STAT156 := 5.000000e+01;
STAT131.STAT157 := 8.000000e+00;
STAT131.STAT158 := 1.900000e+01;
STAT131.STAT159 := 1;
STAT131.STAT160 := 2.000000e+02;
STAT131.STAT161 := 5.000000e-01;
STAT131.STAT162 := 4.500000e+02;
STAT131.STAT163 := 2.500000e+03;
STAT131.STAT164 := 1.220000e+01;
STAT131.STAT165 := 1.000000e+00;
STAT131.STAT166 := 3.950000e+02;
STAT131.STAT167 := -2.500000e+01;
STAT131.STAT168 := 3.618000e+01;
STAT131.STAT169 := 1.400000e+03;
STAT131.STAT170 := 2.520000e+03;
STAT131.STAT171 := 91;
STAT131.STAT172 := 1.000000e+02;
STAT131.STAT173 := 1.600000e+02;
STAT131.STAT174 := 3.200000e+00;
STAT131.STAT175 := 1.050000e+03;
STAT131.STAT176 := 4.600000e+01;
STAT131.STAT177 := 1.625000e+03;
STAT131.STAT178 := 1.000000e+00;
STAT131.STAT179 := 1.300000e+00;
STAT131.STAT180 := 4.090000e-02;
STAT131.STAT181 := 1.400000e-03;
STAT131.STAT182 := 4.500000e+02;
STAT131.STAT183 := W#16#0;
STAT131.STAT184 := W#16#78;
STAT131.STAT185 := W#16#1;
STAT131.STAT186 := 3.000000e+01;
STAT131.STAT187 := 4.000000e+01;
STAT131.STAT188 := 3.000000e+01;
STAT131.STAT189 := 5.000000e+00;
STAT131.STAT190 := 4.900000e-01;
STAT131.STAT191 := 3.000000e-01;
STAT131.STAT192 := 9.000000e-01;
STAT131.STAT193 := 1.500000e+01;
STAT131.STAT194 := 3.500000e+01;
STAT131.STAT195 := 5.000000e+01;
STAT131.STAT196 := 4.000000e+00;
STAT131.STAT197 := 2.000000e+01;
STAT131.STAT198 := 5.000000e+00;
STAT131.STAT199 := 5.000000e+00;
STAT131.STAT200 := 5.000000e+00;
STAT131.STAT201 := 5.000000e+00;
STAT131.STAT202 := 6.000000e+01;
STAT131.STAT203 := 0.000000e+00;
STAT131.STAT204 := 1.500000e+02;
STAT131.STAT205 := 1.650000e+02;
STAT131.STAT206 := 2.600000e+02;
STAT131.STAT207 := 1.650000e+02;
STAT131.STAT208 := 6.700000e+01;
STAT131.STAT209 := 300;
STAT131.STAT210 := 9.000000e+01;
STAT131.STAT211 := 8.700000e+01;
STAT131.STAT212 := 5.070000e+02;
STAT131.STAT213 := 2.110000e+02;
STAT131.STAT214 := 8.600000e+01;
STAT131.STAT215 := 8.500000e+01;
STAT131.STAT216 := 1.150000e+02;
STAT131.STAT217 := 3.200000e+01;
STAT131.STAT218 := 5.000000e+00;
STAT131.STAT219 := 5.000000e+00;
STAT131.STAT220 := 0.000000e+00;
STAT131.STAT221 := 0.000000e+00;
STAT131.STAT222 := 0.000000e+00;
STAT131.STAT223 := 0.000000e+00;
STAT131.STAT224 := 2.000000e+01;
STAT131.STAT225 := 5.000000e+00;
STAT131.STAT226 := 1.000000e+01;
STAT131.STAT227 := 5.000000e+01;
STAT131.STAT228 := 5.000000e+01;
STAT131.STAT229 := L#1500;
STAT131.STAT230 := L#1500;
STAT131.STAT231 := L#1000;
STAT131.STAT232 := L#1000;
STAT131.STAT233 := 30;
STAT131.STAT234 := 30;
STAT131.STAT235 := 10;
STAT131.STAT236 := 10;
STAT131.STAT237 := 10;
STAT131.STAT238 := 3.500000e+02;
STAT131.STAT239 := 30;
STAT131.STAT240 := 30;
STAT131.STAT241 := 30;
STAT131.STAT242 := 30;
STAT131.STAT243 := 30;
STAT131.STAT244 := 30;
STAT131.STAT245 := 30;
STAT131.STAT246 := 30;
STAT131.STAT247 := 3.000000e+01;
STAT131.STAT248 := 3.000000e+01;
STAT131.STAT249 := 0.000000e+00;
STAT131.STAT250 := 0.000000e+00;
STAT131.STAT251 := 0.000000e+00;
STAT131.STAT252 := 5.000000e+01;
STAT253 := FALSE;
STAT254 := 0.000000e+00;
END_DATA_BLOCK
```

View File

@ -0,0 +1,513 @@
```pascal
DATA_BLOCK "HMI_Blender_Parameters"
TITLE =
{ S7_language := '28(1) Albanese 15.06.2005 17:07:04' }
FAMILY : Resource
VERSION : 0.0
STRUCT
Processor_Options : STRUCT
Blender_OPT : STRUCT
_ModelNum : INT := 8;
_CO2_Offset : REAL := 2.000000e-01;
_MaxSyrDeltaBrix : REAL := 8.000000e-01;
_BrixMeter : BOOL := TRUE;
_CO2FltrSteamStrlztn : BOOL ; //0)Not Present 1)Present
_TrackH2OEnable : BOOL ;
_PAmPDSType : BOOL ; //0)Cobrix 2000 1)Carbo 2000
_HistoricalTrends : BOOL ; //0)Not Present 1)Present
_PowerMeter : BOOL ; //0)Not Present 1)Present
_Report : BOOL ; //0)Not Present 1)Present
_Balaiage : BOOL ;
_Valves_FullFeedback : BOOL ; //Valves control Full feedback
_Valves_SingleFeedback : BOOL ; //Valves control Single feedback
_PumpsSafetySwitches : BOOL ; //Pumps with Safety Switches
_SurgeProtectionAct : BOOL ;
_DBC_Type : BOOL ; //0) Deox,Carbo,Blend 1)Deox,Blend,Carbo
_CO2InletMeter : BOOL ; //0)Not Present 1)Present
_ProductO2Meter : BOOL ; //0)Not Present 1)Present
_CopressedAirInletMeter : BOOL ; //0)Not Present 1)Present
_MeterType : INT := 5; //1)Maselli 2)AntoonPaar 3)4-20mA 4)UC05 UR22 5)mPDSPA 6)MR02
_MeterReceiveOnly : BOOL ;
_SyrBrixMeter : BOOL ;
_Flooding_Start_Up : BOOL ; //0)Not Selected 1)Selected
_FastChangeOverEnabled : BOOL ;
_WaterInletMeter : BOOL ; //0)Not Present 1)Present
_BlendFillSystem : BOOL := TRUE;
_TrackFillerSpeed : BOOL := TRUE;
_RMBPresent : BOOL := TRUE; //0)Not Present 1)Present
_SignalExchange : INT := 1; //FILLER - 0= Hardwire; 1= Ethernet
_CoolerPresent : BOOL := TRUE;
_N2Presence : BOOL := TRUE; //0)Not Present 1)Present
_SterileAirPresence : BOOL ; //0)Not Present 1)Present
_ProdPressureType : BOOL ; //0)1 Gas 1)2 Gas
_CoolerControl : INT := 4; //0)External 1)Water 2)Product 3)Water+Product-2 Ctrl 4)Water+Product-1 Ctrl
_CoolerType : INT ; //0)Glycol 1)Ammonia
_LocalCIP : BOOL ;
_ICS_CustomerHotWater : BOOL ; //0)No Hot Water from Customer 1)Hot Water from Customer Available
_ICS_CustomerChemRecov : BOOL ; //0)No Customer's Chemicals Recovery 1)Customer's Chemicals Recovery Available
_CIPSignalExchange : BOOL ; //CIP - 0= Hardwire; 1= Ethernet
_ICS_CustomerChemicals : BOOL ; //0)Chemicals from ICS 1)Chemicals from Customer
_CarboPresent : BOOL := TRUE;
_InverterSyrupPumpPPP302 : BOOL ; //0)Not Present 1)Present
_InverterWaterPumpPPN301 : BOOL ; //0)Not Present 1)Present
_DoubleDeair : BOOL ;
_DeairPreMixed : BOOL ; //Deox Premixed Inlet
_Deaireation : BOOL := TRUE; //0)SAG 1)SAE/SAF
_Spare253 : BOOL ;
_InletManualAuto : BOOL ; //0)Divert Panel 1)Matrix Valves
_InverterProdPumpPPM303 : BOOL ;
_SidelCip : BOOL := TRUE;
_EthernetCom_CpuPN_CP : BOOL := TRUE; //0)Comunication with CP 1)Comunication with CPU PN
_2ndOutlet : INT ; //0)No 2nd Outlet 1)2nd Outlet No Standalone 2)2nd Outlet Standalone
_Promass : INT := 2;
_WaterPromass : BOOL ; //0)Promag 1)Promass
_ProductConductimeter : BOOL ;
_ICS_CustomerH2ORecov : BOOL ; //0)No Customer's H2O Recovery 1)Customer's H2O Recovery Available
_CustomerCustomization : BOOL ; //0)No Customer Customization 1)Customer Customization
_CO2_GAS2_Injection : BOOL ; //0)Only CO2 Injection 1)GAS2 Injection
_InverterVacuuPumpPPN304 : BOOL ; //0)Not Present 1)Present
_InverterBoostPumpPPM307 : BOOL ; //0)Not Present 1)Present
_RunOut_Water : BOOL := TRUE; //0)Syrup Runout without Water 1)Syrup runout with Water pushing
_FlowMeterType : BOOL ; //0)Endrees Hauser -- 1)Micromotion
_SidelFiller : BOOL ; //0)Filler Simonazzi -- 1)Filler Sidel Filling
_Simulation : BOOL ;
_ProductCoolingCTRL : BOOL ; //0)none 1) TTM307
_ChillerCTRL : BOOL ; //Chiller Pressure Cross Control
_CO2_SterileFilter : BOOL := TRUE; //CO2 Inlet with Steril Filter
_InverterRecirPumpPPM306 : BOOL ; //0)Not Present 1)Present
_ProdPressReleaseRVM304 : BOOL ; //0)Not Present 1)Present
_VacuumPump : INT := 1; //0)None 1)Sterling 2)Nash Elmo
_GAS2InjectionType : INT ; //0)None 1)N2 2)Steril Air
_InjectionPress_Ctrl : INT := 1; //0)Manual 1)Norgren v1 2)Norgren v2
_StillWaterByPass : INT ; //0)Not Present 1)Mixer Controlled 2)Externally Controlled
_CIPHeatType : INT ; //0)Steam 1)Electric
_EHS_NrRes : INT := 6; //Number of Heat Resistances
END_STRUCT ;
END_STRUCT ;
Spare1 : ARRAY [1 .. 9 ] OF INT ;
_RVM301_DeadBand : REAL := 5.000000e-02;
_RVM301_Kp : REAL := 1.000000e+02;
Actual_Recipe_Parameters : "Recipe_Prod";
Spare2 : ARRAY [1 .. 5 ] OF INT ;
Next_Recipe_Name : STRING [32 ] := ' ';
Next_Recipe_Number : INT ;
Spare3 : ARRAY [1 .. 18 ] OF INT ;
ProcessSetup : STRUCT
Spare000 : REAL ;
Spare040 : REAL ;
_KWaterLoss : REAL := 1.000000e-03; //Friction Loss Constant in Serpentine
_KSyrupLoss : REAL ; //Friction Loss Constant in Syrup Pipe
_KProdLoss : REAL := 1.700000e-02; //Pressure Loss Factor
_KPPM303 : REAL := 6.180000e+00; //Frequency Overpressure Pump P3 Constant [Hz/mm]
_BaialageRVM301OVMin : REAL := 2.000000e+00; //Baialage Minimum Flow (Nm3/h)
_SyrupLinePressure : REAL := 2.500000e+00; //Syrup Line pressure at RVP303 valve
_CIPRMM301OV : REAL := 2.200000e+01; //Water Valve Opening During CIP
_CIPRMP302OV : REAL := 3.200000e+01; //Syrup Valve Opening During CIP
_CIPTM301MinLevel : REAL := 1.500000e+01; //Product Tank Minimum Level In CIP
_CIPTM301MaxLevel : REAL := 3.500000e+01; //Product Tank Maximum Level In CIP
_CIPPPM303Freq : REAL := 5.000000e+01; //CIP frequency Value [Hz]
_CIPTP301MinLevel : REAL := 1.500000e+01; //Syrup Tank Minimum Level In CIP
_CIPTP301MaxLevel : REAL := 2.500000e+01; //Syrup Tank Maximum Level In CIP
_RinseRMM301OV : REAL := 3.000000e+01; //Water Valve Opening During Rinse
_RinseRMP302OV : REAL := 1.000000e+01; //Syrup Valve Opening During Rinse
_RinseTM301Press : REAL := 1.000000e+00; //Product Tank Pressure In Rinse
_RinsePPM303Freq : REAL := 5.000000e+01; //Rinse frequency Value [Hz]
_DrainTM301Press : REAL := 1.000000e+00; //Buffer Tank Draining Pressure
_KRecBlendError : REAL := 5.000000e+00; //Blend Error Recovery CONSTANT
_KRecCarboCO2Error : REAL := 5.000000e+00; //Carbonation Error Recovery Constant
_MaxBlendError : REAL := 1.000000e+02; //Blend Error Maximum Value
_MaxCarboCO2Error : REAL := 2.000000e+02; //Carbonation Error Maximum Value
_StartUpBrixExtraWater : REAL := 2.500000e+01;
_StartUpCO2ExtraWater : REAL := 2.000000e+01;
_StartUpPPM303Freq : REAL := 2.000000e+01; //Start Up frequency Value [Hz]
_SyrupRoomTank : INT := 1;
_SyrupRunOutLiters : REAL ;
_InjCO2Press_Offset : REAL := 7.000000e-01;
_InjCO2Press_MinFlow : REAL := 5.250000e+02;
_InjCO2Press_MaxFlow : REAL := 3.150000e+03;
_CarboCO2Pressure : REAL := 1.200000e+01; //CO2 Pressure Infeed Line
_N2MinPressure : REAL := 4.000000e+00; //N2 Minimum Pressure Infeed Line
_DiffSensor_Height : REAL := 6.300000e+02; //Sensor Height from Soil [mm]
_DiffSensor_DeltaHeight : REAL := 2.500000e+01; //Sensor Plates Height Difference [mm]
_DiffSensor_Offset : REAL ; //Sensor Offset Read with zero pressure (all valves open) in [mm]
_FillingValveHeight : REAL := 1.640000e+03; //Filling Valve Height from soil [mm]
_FillerDiameter : REAL := 5.760000e+03; //Filler Carousel Diameter [mm]
_FillingValveNum : INT := 192; //Filling Valves Number
_FillerProdPipeDN : REAL := 8.000000e+01;
_FillerProdPipeMass : REAL := 9.000000e+01;
_FillingTime : REAL := 4.000000e+00;
_TM301Height_0 : REAL := 9.460000e+02; //Level at 0% Tank Level Height in mm
_TM301LevelPerc_2 : REAL := 1.000000e+02; //Second level percentage
_TM301Height_2 : REAL := 2.895000e+03; //Second level Height in mm
_RVN304Factor : REAL := 7.500000e-01; //DeareationFlow/WaterFlow
_DrainTM301Flushing : REAL := 5.000000e-01;
_FirstProdExtraBrix : REAL := 3.000000e-02;
_FirstProdDietExtraSyr : REAL := 1.400000e-03;
_Spare532 : REAL ;
_TM301DrainSt0Time : WORD := W#16#6; //sec
_TM301DrainSt1Time : WORD := W#16#50; //sec
_ProdPipeRunOutSt0Time : WORD := W#16#1; //sec
_RMM301ProdPipeRunOu : REAL := 3.000000e+01;
_RMP302ProdPipeRunOu : REAL := 4.000000e+01;
_ProdPipeRunOutAmount : REAL := 9.000000e+01;
_TM301RunOutChiller : REAL := 2.500000e+02;
_MinSpeedNominalProd : REAL := 5.000000e-01; //Min Speed for Nominal Production
_MinSpeedSlowProd : REAL := 4.000000e-01; //Min Speed for Very Low Production
_FastChgOvrTM301DrnPrss : REAL := 9.000000e-01; //Fast Change Over Product Tank Draining Pressure in Blendfill
_CIPTN301MinLevel : REAL := 1.500000e+01; //Deaireator Tank Minimum Level In CIP
_CIPTN301MaxLevel : REAL := 3.000000e+01; //Deaireator Tank Maximum Level In CIP
_ProdPPN304Freq : REAL := 5.000000e+01;
_GAS2InjectionPress : REAL := 4.000000e+00;
_BaialageRVM301OVMax : REAL := 2.000000e+01; //Baialage Production Flow Multiplier
_RinsePPN301Freq : REAL := 5.000000e+00;
_CIPPPN301Freq : REAL := 5.000000e+00;
_RinsePPP302Freq : REAL := 5.000000e+00;
_CIPPPP302Freq : REAL := 5.000000e+00;
_PercSyrupBrixSyrStarUp : REAL := 1.000000e+01;
_RefTempCoolingCTRL : REAL ;
_H2OSerpPrimingVolume : REAL := 2.100000e+02; //Water Serpentine Volume + Water Chiller Volume
_AVN301_Nozzle_Kv : REAL := 1.500000e+02; //AVN301 Nozzle Kv
_AVN302_Nozzle_Kv : REAL := 1.500000e+02; //AVN302 Nozzle Kv
_AVN303_Nozzle_Kv : REAL := 1.500000e+02; //AVN303 Nozzle Kv
_DeoxSpryball_Kv : REAL := 6.700000e+01; //Deox Spryball Kv
_PremixedLineDrainTime : INT := 50; //Premixed Product Line Drain Time
_PPN301_H_MaxFlow : REAL := 9.000000e+01; //PPN301 Pump Head with Max Flow [m]
_PPN301_H_MinFlow : REAL := 9.000000e+01; //PPN301 Pump Head with Min Flow [m]
_PPN301_MaxFlow : REAL := 5.990000e+02; //PPN301 Max Flow [l/min]
_PPN301_MinFlow : REAL := 2.670000e+02; //PPN301 Min Flow [l/min]
_PPP302_H_MaxFlow : REAL := 8.400000e+01; //PPP302 Pump Head with Max Flow [m]
_PPP302_H_MinFlow : REAL := 8.400000e+01; //PPP302 Pump Head with Min Flow [m]
_PPP302_MaxFlow : REAL := 1.400000e+02; //PPP302 Max Flow [l/min]
_PPP302_MinFlow : REAL := 4.400000e+01; //PPP302 Min Flow [l/min]
_RinsePPM306Freq : REAL := 5.000000e+00;
_CIPPPM306Freq : REAL := 5.000000e+00;
_PPM307_H_MaxFlow : REAL ; //PPM307 Pump Head with Max Flow [m]
_PPM307_H_MinFlow : REAL ; //PPM307 Pump Head with Min Flow [m]
_PPM307_MaxFlow : REAL ; //PPM307 Max Flow [l/min]
_PPM307_MinFlow : REAL ; //PPM307 Min Flow [l/min]
_Temp0_VacuumCtrl : REAL := 1.800000e+01; //PPN304 Target Temperature - OPTION PPN304 Sterling Type
_Temp1_VacuumCtrl : REAL := 2.000000e+00; //PPN304 High Treshold Temperature Delta - OPTION PPN304 Sterling Type
_Temp2_VacuumCtrl : REAL := 2.000000e+00; //PPN304 Low Treshold Temperature Delta - OPTION PPN304 Sterling Type
_Temp3_VacuumCtrl : REAL := 2.500000e+01; //PPN304 Warning Temperature - OPTION PPN304 Sterling Type
_Temp4_VacuumCtrl : REAL := 5.000000e+01; //PPN304 Alarm Temperature - OPTION PPN304 Sterling Type
_T1_VacuumCtrl : DINT := L#1500; //PPN304 Time 1 [msec] - OPTION PPN304 Sterling Type
_T2_VacuumCtrl : DINT := L#1500; //PPN304 Time 2 [msec] - OPTION PPN304 Sterling Type
_T3_VacuumCtrl : DINT := L#1000; //PPN304 Time 3 [msec] - OPTION PPN304 Sterling Type
_T4_VacuumCtrl : DINT := L#1000; //PPN304 Time 4 [msec] - OPTION PPN304 Sterling Type
_ICS_VolDosWorkTimePAA : INT := 30; //ICS - DS - Dosing Working Time [sec]
_ICS_VolPauseTimePAA : INT := 30; //ICS - DS - Dosing Pause Time [sec]
_ICS_PAAPulseWeight : INT := 10; //ICS - DS - PAA Pulse Weight [(L/Pulse)/100]
_ICS_CausticPulseWeight : INT := 10; //ICS - DS - Caustic Pulse Weight [(L/Pulse)/100]
_ICS_AcidPulseWeight : INT := 10; //ICS - DS - Acid Pulse Weight [(L/Pulse)/100]
_ICS_VolumeRestOfLine : REAL := 3.500000e+02; //ICS - DS - Volume of the Rest of the Line (Filler + Piping) [L]
_ICS_VolDosWorkTimeCaus : INT := 30; //ICS - DS - Dosing Working Time [sec]
_ICS_VolDosPauseTimeCaus : INT := 30; //ICS - DS - Dosing Pause Time [sec]
_ICS_VolDosWorkTimeAcid : INT := 30; //ICS - DS - Dosing Working Time [sec]
_ICS_VolDosPauseTimeAcid : INT := 30; //ICS - DS - Dosing Pause Time [sec]
_ICS_ConcDosWorkTimeCaus : INT := 30; //ICS - DS - Dosing Working Time [sec]
_ICS_ConcDosPausTimeCaus : INT := 30; //ICS - DS - Dosing Pause Time [sec]
_ICS_ConcDosWorkTimeAcid : INT := 30; //ICS - DS - Dosing Working Time [sec]
_ICS_ConcDosPausTimeAcid : INT := 30; //ICS - DS - Dosing Pause Time [sec]
_RinsePPM307Freq : REAL := 3.000000e+01;
_CIPPPM307Freq : REAL := 3.000000e+01;
_CIP2StepTN301Lvl : REAL := 2.000000e+01; //Local CIP - 2 Step loading TN301 Level
_CIP2StepTM301Lvl : REAL := 2.500000e+01; //Local CIP - 2 Step loading TM301 Level
_CIP2StepTP301Lvl : REAL := 2.000000e+01; //Local CIP - 2 Step loading TP301 Level
_PumpNominalFreq : REAL := 5.000000e+01; //50.0 Hz or 60.0 Hz
_SwitchOff_DensityOK : BOOL ;
_RMBPPM303Factor : REAL := 1.000000e+01;
END_STRUCT ;
END_STRUCT ;
BEGIN
Processor_Options.Blender_OPT._ModelNum := 8;
Processor_Options.Blender_OPT._CO2_Offset := 2.000000e-01;
Processor_Options.Blender_OPT._MaxSyrDeltaBrix := 8.000000e-01;
Processor_Options.Blender_OPT._BrixMeter := TRUE;
Processor_Options.Blender_OPT._CO2FltrSteamStrlztn := FALSE;
Processor_Options.Blender_OPT._TrackH2OEnable := FALSE;
Processor_Options.Blender_OPT._PAmPDSType := FALSE;
Processor_Options.Blender_OPT._HistoricalTrends := FALSE;
Processor_Options.Blender_OPT._PowerMeter := FALSE;
Processor_Options.Blender_OPT._Report := FALSE;
Processor_Options.Blender_OPT._Balaiage := FALSE;
Processor_Options.Blender_OPT._Valves_FullFeedback := FALSE;
Processor_Options.Blender_OPT._Valves_SingleFeedback := FALSE;
Processor_Options.Blender_OPT._PumpsSafetySwitches := FALSE;
Processor_Options.Blender_OPT._SurgeProtectionAct := FALSE;
Processor_Options.Blender_OPT._DBC_Type := FALSE;
Processor_Options.Blender_OPT._CO2InletMeter := FALSE;
Processor_Options.Blender_OPT._ProductO2Meter := FALSE;
Processor_Options.Blender_OPT._CopressedAirInletMeter := FALSE;
Processor_Options.Blender_OPT._MeterType := 5;
Processor_Options.Blender_OPT._MeterReceiveOnly := FALSE;
Processor_Options.Blender_OPT._SyrBrixMeter := FALSE;
Processor_Options.Blender_OPT._Flooding_Start_Up := FALSE;
Processor_Options.Blender_OPT._FastChangeOverEnabled := FALSE;
Processor_Options.Blender_OPT._WaterInletMeter := FALSE;
Processor_Options.Blender_OPT._BlendFillSystem := TRUE;
Processor_Options.Blender_OPT._TrackFillerSpeed := TRUE;
Processor_Options.Blender_OPT._RMBPresent := TRUE;
Processor_Options.Blender_OPT._SignalExchange := 1;
Processor_Options.Blender_OPT._CoolerPresent := TRUE;
Processor_Options.Blender_OPT._N2Presence := TRUE;
Processor_Options.Blender_OPT._SterileAirPresence := FALSE;
Processor_Options.Blender_OPT._ProdPressureType := FALSE;
Processor_Options.Blender_OPT._CoolerControl := 4;
Processor_Options.Blender_OPT._CoolerType := 0;
Processor_Options.Blender_OPT._LocalCIP := FALSE;
Processor_Options.Blender_OPT._ICS_CustomerHotWater := FALSE;
Processor_Options.Blender_OPT._ICS_CustomerChemRecov := FALSE;
Processor_Options.Blender_OPT._CIPSignalExchange := FALSE;
Processor_Options.Blender_OPT._ICS_CustomerChemicals := FALSE;
Processor_Options.Blender_OPT._CarboPresent := TRUE;
Processor_Options.Blender_OPT._InverterSyrupPumpPPP302 := FALSE;
Processor_Options.Blender_OPT._InverterWaterPumpPPN301 := FALSE;
Processor_Options.Blender_OPT._DoubleDeair := FALSE;
Processor_Options.Blender_OPT._DeairPreMixed := FALSE;
Processor_Options.Blender_OPT._Deaireation := TRUE;
Processor_Options.Blender_OPT._Spare253 := FALSE;
Processor_Options.Blender_OPT._InletManualAuto := FALSE;
Processor_Options.Blender_OPT._InverterProdPumpPPM303 := FALSE;
Processor_Options.Blender_OPT._SidelCip := TRUE;
Processor_Options.Blender_OPT._EthernetCom_CpuPN_CP := TRUE;
Processor_Options.Blender_OPT._2ndOutlet := 0;
Processor_Options.Blender_OPT._Promass := 2;
Processor_Options.Blender_OPT._WaterPromass := FALSE;
Processor_Options.Blender_OPT._ProductConductimeter := FALSE;
Processor_Options.Blender_OPT._ICS_CustomerH2ORecov := FALSE;
Processor_Options.Blender_OPT._CustomerCustomization := FALSE;
Processor_Options.Blender_OPT._CO2_GAS2_Injection := FALSE;
Processor_Options.Blender_OPT._InverterVacuuPumpPPN304 := FALSE;
Processor_Options.Blender_OPT._InverterBoostPumpPPM307 := FALSE;
Processor_Options.Blender_OPT._RunOut_Water := TRUE;
Processor_Options.Blender_OPT._FlowMeterType := FALSE;
Processor_Options.Blender_OPT._SidelFiller := FALSE;
Processor_Options.Blender_OPT._Simulation := FALSE;
Processor_Options.Blender_OPT._ProductCoolingCTRL := FALSE;
Processor_Options.Blender_OPT._ChillerCTRL := FALSE;
Processor_Options.Blender_OPT._CO2_SterileFilter := TRUE;
Processor_Options.Blender_OPT._InverterRecirPumpPPM306 := FALSE;
Processor_Options.Blender_OPT._ProdPressReleaseRVM304 := FALSE;
Processor_Options.Blender_OPT._VacuumPump := 1;
Processor_Options.Blender_OPT._GAS2InjectionType := 0;
Processor_Options.Blender_OPT._InjectionPress_Ctrl := 1;
Processor_Options.Blender_OPT._StillWaterByPass := 0;
Processor_Options.Blender_OPT._CIPHeatType := 0;
Processor_Options.Blender_OPT._EHS_NrRes := 6;
Spare1[1] := 0;
Spare1[2] := 0;
Spare1[3] := 0;
Spare1[4] := 0;
Spare1[5] := 0;
Spare1[6] := 0;
Spare1[7] := 0;
Spare1[8] := 0;
Spare1[9] := 0;
_RVM301_DeadBand := 5.000000e-02;
_RVM301_Kp := 1.000000e+02;
Actual_Recipe_Parameters._Name := ' ';
Actual_Recipe_Parameters._EnProdTemp := FALSE;
Actual_Recipe_Parameters._SyrFlushing := FALSE;
Actual_Recipe_Parameters._GAS2_Injection := FALSE;
Actual_Recipe_Parameters._Eq_Pression_Selected := FALSE;
Actual_Recipe_Parameters._DeoxStripEn := FALSE;
Actual_Recipe_Parameters._DeoxVacuumEn := FALSE;
Actual_Recipe_Parameters._DeoxPreMixed := FALSE;
Actual_Recipe_Parameters._EnBlowOffProdPipeCO2Fil := FALSE;
Actual_Recipe_Parameters._WaterSelection := B#16#0;
Actual_Recipe_Parameters._FillerNextRecipeNum := B#16#0;
Actual_Recipe_Parameters._BottleShape := B#16#0;
Actual_Recipe_Parameters._Type := 1;
Actual_Recipe_Parameters._ProdMeterRecipeNum := 0;
Actual_Recipe_Parameters._SyrupBrix := 5.000000e+01;
Actual_Recipe_Parameters._SyrupDensity := 1.255800e+00;
Actual_Recipe_Parameters._SyrupFactor := 1.000000e+00;
Actual_Recipe_Parameters._ProductBrix := 1.045000e+01;
Actual_Recipe_Parameters._ProductionRate := 9.000000e+02;
Actual_Recipe_Parameters._Ratio := 2.000000e+01;
Actual_Recipe_Parameters._ProdBrixOffset := 0.000000e+00;
Actual_Recipe_Parameters._CO2Vols := 0.000000e+00;
Actual_Recipe_Parameters._CO2Fact := 1.000000e+00;
Actual_Recipe_Parameters._ProdTankPress := 1.000000e+00;
Actual_Recipe_Parameters._SP_ProdTemp := 1.000000e+01;
Actual_Recipe_Parameters._PrdTankMinLevel := 1.000000e+01;
Actual_Recipe_Parameters._WaterValveSave := 0.000000e+00;
Actual_Recipe_Parameters._SyrupValveSave := 0.000000e+00;
Actual_Recipe_Parameters._CarboCO2ValveSave := 0.000000e+00;
Actual_Recipe_Parameters._ProdMeterHighBrix := 0.000000e+00;
Actual_Recipe_Parameters._ProdMeterLowBrix := 0.000000e+00;
Actual_Recipe_Parameters._ProdMeterHighCO2 := 0.000000e+00;
Actual_Recipe_Parameters._ProdMeterLowCO2 := 0.000000e+00;
Actual_Recipe_Parameters._ProdMeter_ZeroCO2 := 0.000000e+00;
Actual_Recipe_Parameters._ProdMeter_ZeroBrix := 0.000000e+00;
Actual_Recipe_Parameters._ProdHighCond := 0.000000e+00;
Actual_Recipe_Parameters._ProdLowCond := 0.000000e+00;
Actual_Recipe_Parameters._BottleSize := 0.000000e+00;
Actual_Recipe_Parameters._FillingValveHead_SP := 0.000000e+00;
Actual_Recipe_Parameters._SyrMeter_ZeroBrix := 0.000000e+00;
Actual_Recipe_Parameters._FirstProdExtraCO2Fact := 9.700000e-01;
Actual_Recipe_Parameters._Gas2Vols := 0.000000e+00;
Actual_Recipe_Parameters._Gas2Fact := 1.000000e+00;
Actual_Recipe_Parameters._SyrupPumpPressure := 0.000000e+00;
Actual_Recipe_Parameters._WaterPumpPressure := 0.000000e+00;
Actual_Recipe_Parameters._CO2_Air_N2_PressSelect := 0;
Actual_Recipe_Parameters._KFactRVM304BlowOff := 0.000000e+00;
Actual_Recipe_Parameters._ProdRecircPumpFreq := 0.000000e+00;
Actual_Recipe_Parameters._ProdBoosterPumpPress := 0.000000e+00;
Actual_Recipe_Parameters._ProdSendPumpFreq := 0.000000e+00;
Spare2[1] := 0;
Spare2[2] := 0;
Spare2[3] := 0;
Spare2[4] := 0;
Spare2[5] := 0;
Next_Recipe_Name := ' ';
Next_Recipe_Number := 0;
Spare3[1] := 0;
Spare3[2] := 0;
Spare3[3] := 0;
Spare3[4] := 0;
Spare3[5] := 0;
Spare3[6] := 0;
Spare3[7] := 0;
Spare3[8] := 0;
Spare3[9] := 0;
Spare3[10] := 0;
Spare3[11] := 0;
Spare3[12] := 0;
Spare3[13] := 0;
Spare3[14] := 0;
Spare3[15] := 0;
Spare3[16] := 0;
Spare3[17] := 0;
Spare3[18] := 0;
ProcessSetup.Spare000 := 0.000000e+00;
ProcessSetup.Spare040 := 0.000000e+00;
ProcessSetup._KWaterLoss := 1.000000e-03;
ProcessSetup._KSyrupLoss := 0.000000e+00;
ProcessSetup._KProdLoss := 1.700000e-02;
ProcessSetup._KPPM303 := 6.180000e+00;
ProcessSetup._BaialageRVM301OVMin := 2.000000e+00;
ProcessSetup._SyrupLinePressure := 2.500000e+00;
ProcessSetup._CIPRMM301OV := 2.200000e+01;
ProcessSetup._CIPRMP302OV := 3.200000e+01;
ProcessSetup._CIPTM301MinLevel := 1.500000e+01;
ProcessSetup._CIPTM301MaxLevel := 3.500000e+01;
ProcessSetup._CIPPPM303Freq := 5.000000e+01;
ProcessSetup._CIPTP301MinLevel := 1.500000e+01;
ProcessSetup._CIPTP301MaxLevel := 2.500000e+01;
ProcessSetup._RinseRMM301OV := 3.000000e+01;
ProcessSetup._RinseRMP302OV := 1.000000e+01;
ProcessSetup._RinseTM301Press := 1.000000e+00;
ProcessSetup._RinsePPM303Freq := 5.000000e+01;
ProcessSetup._DrainTM301Press := 1.000000e+00;
ProcessSetup._KRecBlendError := 5.000000e+00;
ProcessSetup._KRecCarboCO2Error := 5.000000e+00;
ProcessSetup._MaxBlendError := 1.000000e+02;
ProcessSetup._MaxCarboCO2Error := 2.000000e+02;
ProcessSetup._StartUpBrixExtraWater := 2.500000e+01;
ProcessSetup._StartUpCO2ExtraWater := 2.000000e+01;
ProcessSetup._StartUpPPM303Freq := 2.000000e+01;
ProcessSetup._SyrupRoomTank := 1;
ProcessSetup._SyrupRunOutLiters := 0.000000e+00;
ProcessSetup._InjCO2Press_Offset := 7.000000e-01;
ProcessSetup._InjCO2Press_MinFlow := 5.250000e+02;
ProcessSetup._InjCO2Press_MaxFlow := 3.150000e+03;
ProcessSetup._CarboCO2Pressure := 1.200000e+01;
ProcessSetup._N2MinPressure := 4.000000e+00;
ProcessSetup._DiffSensor_Height := 6.300000e+02;
ProcessSetup._DiffSensor_DeltaHeight := 2.500000e+01;
ProcessSetup._DiffSensor_Offset := 0.000000e+00;
ProcessSetup._FillingValveHeight := 1.640000e+03;
ProcessSetup._FillerDiameter := 5.760000e+03;
ProcessSetup._FillingValveNum := 192;
ProcessSetup._FillerProdPipeDN := 8.000000e+01;
ProcessSetup._FillerProdPipeMass := 9.000000e+01;
ProcessSetup._FillingTime := 4.000000e+00;
ProcessSetup._TM301Height_0 := 9.460000e+02;
ProcessSetup._TM301LevelPerc_2 := 1.000000e+02;
ProcessSetup._TM301Height_2 := 2.895000e+03;
ProcessSetup._RVN304Factor := 7.500000e-01;
ProcessSetup._DrainTM301Flushing := 5.000000e-01;
ProcessSetup._FirstProdExtraBrix := 3.000000e-02;
ProcessSetup._FirstProdDietExtraSyr := 1.400000e-03;
ProcessSetup._Spare532 := 0.000000e+00;
ProcessSetup._TM301DrainSt0Time := W#16#6;
ProcessSetup._TM301DrainSt1Time := W#16#50;
ProcessSetup._ProdPipeRunOutSt0Time := W#16#1;
ProcessSetup._RMM301ProdPipeRunOu := 3.000000e+01;
ProcessSetup._RMP302ProdPipeRunOu := 4.000000e+01;
ProcessSetup._ProdPipeRunOutAmount := 9.000000e+01;
ProcessSetup._TM301RunOutChiller := 2.500000e+02;
ProcessSetup._MinSpeedNominalProd := 5.000000e-01;
ProcessSetup._MinSpeedSlowProd := 4.000000e-01;
ProcessSetup._FastChgOvrTM301DrnPrss := 9.000000e-01;
ProcessSetup._CIPTN301MinLevel := 1.500000e+01;
ProcessSetup._CIPTN301MaxLevel := 3.000000e+01;
ProcessSetup._ProdPPN304Freq := 5.000000e+01;
ProcessSetup._GAS2InjectionPress := 4.000000e+00;
ProcessSetup._BaialageRVM301OVMax := 2.000000e+01;
ProcessSetup._RinsePPN301Freq := 5.000000e+00;
ProcessSetup._CIPPPN301Freq := 5.000000e+00;
ProcessSetup._RinsePPP302Freq := 5.000000e+00;
ProcessSetup._CIPPPP302Freq := 5.000000e+00;
ProcessSetup._PercSyrupBrixSyrStarUp := 1.000000e+01;
ProcessSetup._RefTempCoolingCTRL := 0.000000e+00;
ProcessSetup._H2OSerpPrimingVolume := 2.100000e+02;
ProcessSetup._AVN301_Nozzle_Kv := 1.500000e+02;
ProcessSetup._AVN302_Nozzle_Kv := 1.500000e+02;
ProcessSetup._AVN303_Nozzle_Kv := 1.500000e+02;
ProcessSetup._DeoxSpryball_Kv := 6.700000e+01;
ProcessSetup._PremixedLineDrainTime := 50;
ProcessSetup._PPN301_H_MaxFlow := 9.000000e+01;
ProcessSetup._PPN301_H_MinFlow := 9.000000e+01;
ProcessSetup._PPN301_MaxFlow := 5.990000e+02;
ProcessSetup._PPN301_MinFlow := 2.670000e+02;
ProcessSetup._PPP302_H_MaxFlow := 8.400000e+01;
ProcessSetup._PPP302_H_MinFlow := 8.400000e+01;
ProcessSetup._PPP302_MaxFlow := 1.400000e+02;
ProcessSetup._PPP302_MinFlow := 4.400000e+01;
ProcessSetup._RinsePPM306Freq := 5.000000e+00;
ProcessSetup._CIPPPM306Freq := 5.000000e+00;
ProcessSetup._PPM307_H_MaxFlow := 0.000000e+00;
ProcessSetup._PPM307_H_MinFlow := 0.000000e+00;
ProcessSetup._PPM307_MaxFlow := 0.000000e+00;
ProcessSetup._PPM307_MinFlow := 0.000000e+00;
ProcessSetup._Temp0_VacuumCtrl := 1.800000e+01;
ProcessSetup._Temp1_VacuumCtrl := 2.000000e+00;
ProcessSetup._Temp2_VacuumCtrl := 2.000000e+00;
ProcessSetup._Temp3_VacuumCtrl := 2.500000e+01;
ProcessSetup._Temp4_VacuumCtrl := 5.000000e+01;
ProcessSetup._T1_VacuumCtrl := L#1500;
ProcessSetup._T2_VacuumCtrl := L#1500;
ProcessSetup._T3_VacuumCtrl := L#1000;
ProcessSetup._T4_VacuumCtrl := L#1000;
ProcessSetup._ICS_VolDosWorkTimePAA := 30;
ProcessSetup._ICS_VolPauseTimePAA := 30;
ProcessSetup._ICS_PAAPulseWeight := 10;
ProcessSetup._ICS_CausticPulseWeight := 10;
ProcessSetup._ICS_AcidPulseWeight := 10;
ProcessSetup._ICS_VolumeRestOfLine := 3.500000e+02;
ProcessSetup._ICS_VolDosWorkTimeCaus := 30;
ProcessSetup._ICS_VolDosPauseTimeCaus := 30;
ProcessSetup._ICS_VolDosWorkTimeAcid := 30;
ProcessSetup._ICS_VolDosPauseTimeAcid := 30;
ProcessSetup._ICS_ConcDosWorkTimeCaus := 30;
ProcessSetup._ICS_ConcDosPausTimeCaus := 30;
ProcessSetup._ICS_ConcDosWorkTimeAcid := 30;
ProcessSetup._ICS_ConcDosPausTimeAcid := 30;
ProcessSetup._RinsePPM307Freq := 3.000000e+01;
ProcessSetup._CIPPPM307Freq := 3.000000e+01;
ProcessSetup._CIP2StepTN301Lvl := 2.000000e+01;
ProcessSetup._CIP2StepTM301Lvl := 2.500000e+01;
ProcessSetup._CIP2StepTP301Lvl := 2.000000e+01;
ProcessSetup._PumpNominalFreq := 5.000000e+01;
ProcessSetup._SwitchOff_DensityOK := FALSE;
ProcessSetup._RMBPPM303Factor := 1.000000e+01;
END_DATA_BLOCK
```

View File

@ -0,0 +1,87 @@
***
![[Pasted image 20250511144146.png]]
![[Pasted image 20250511151234.png|1100]]
```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
```
### The equipment we tested was:
***
* Syrup / Brix:
* Maselli UR29 - Reflectometer
* ADAM 4021 converters for connecting the PLC
* [ur24_gb_hr.pdf](file:///C:%5CTrabajo%5CManuales%5CMaselli%5Cur24_gb_hr.pdf)
* Maselli UR62 - Reflectometer
* ADAM 4021 converters for connecting the PLC
* [ur62_gb_hr.pdf](file:///C:%5CTrabajo%5CManuales%5CMaselli%5Cur62_gb_hr.pdf)
* Water :
* Clritalia: Conductivity - 401U3-B3C0Y0
* K=1 cm  (campo di misura 0-50000 uS)
* [401U -gb](https://www.clritalia.com/index.php?option=com_content&view=article&id=288:401u&catid=112&Itemid=265&lang=en)
* Stratos Eco 2405 Knick converter for transmitting to the PLC
# Comparative Table: UR62 vs UR24 Refractometers by Maselli
|Feature|UR62|UR24|
|---|---|---|
|**Classification**|Basic (THE BASIC)|Advanced (THE ULTIMATE)|
|**Measurement range**|1.3229 … 1.505 nD (0…85 Bx)|1.3163 … 1.5318 nD (0…95 Bx)|
|**Accuracy**|• +/- 0.0004 nD (+/-0.2 Bx) alone<br>• +/- 0.0002 nD (+/-0.1 Bx) with RC24|• +/- 0.00003 nD (+/-0.02 Bx) SA version<br>• +/- 0.00007 nD (+/-0.05 Bx) HA version<br>• +/- 0.0002 nD (+/-0.15 Bx) STD version|
|**Repeatability**|• +/- 0.2 alone<br>• +/- 0.03 with RC24|Not specified|
|**Product temperature**|-25…+90°C (-13…194°F)|• -5…+105°C (23…221°F)<br>• -5…+140°C (23…284°F) for LP version|
|**Max sterilization temperature**|Hot water at 95°C x 30 min<br>Steam (0.5 bar) at 110°C x 30 min|• 125°C x 30 min<br>• 145°C x 30 min for LP version|
|**Line pressure**|• Max. 10 bar at 20°C<br>• Max. 8 bar at 90°C|• Max. 10 bar at 20°C<br>• Max. 8 bar at 100°C<br>• Special version up to 40 bar at 20°C|
|**Power supply**|• AC 24V ±10%, 50-60Hz, 80mA<br>• DC 24V ±10%, 80mA|• AC 24V ±10%, 50-60Hz, 0.6A<br>• DC 24V ±10%, 0.6A<br>• AC 115/230V ±10%, 50-60Hz, 25VA (with transformer)|
|**Interfaces**|Analog, Analog/Digital, PROFIBUS DP, Ethernet/IP|Analog, Analog/Digital, PROFIBUS DP, Ethernet/IP, PROFINET, Modbus/TCP|
|**Protection**|IP67 to EN60529|IP67 to EN60529|
|**Main benefits**|• Optical Technology<br>• Basic accuracy<br>• 100% in-line installation<br>• No need of adjustments<br>• No maintenance|• Optical Technology<br>• High accuracy<br>• 100% in-line installation<br>• No need of adjustments<br>• No maintenance|

13
04-SIDEL/Projects.md Normal file
View File

@ -0,0 +1,13 @@
* 00 : Master:
* Toda la documentacion generica de los Mixer y de las LLenadoras
* 01 - SAE463 - E5.006894-EXMU01UM - New Anton Paar
* Agregado de un nuevo Anton Paar en S7
* 02 - SAE274 - TIA
* Test realizado por Walter de un proyecto Tia Portal que no funcionaba bien con el Anton Paar.
* En este proyecto se modificaron las PEW a 15000 para el Anton Paar
* 03 - 5.007382-EXMU01UF - RVU008 - EQPT24731 [Entregar](file:///C:%5CTrabajo%5CSIDEL%5C03%20-%205.007382-EXMU01UF%20-%20RVU008%20-%20EQPT24731%5CEntregar)
* Modificacion de la RVU008. Agregado de un inverter en profibus para un agitador.
* Test: controlado que el inverter funcione. [M5.007382 EXMU01UF.mp4](file:///C:%5CTrabajo%5CSIDEL%5C03%20-%205.007382-EXMU01UF%20-%20RVU008%20-%20EQPT24731%5CEntregar%5C_WST%5CVideo%5CM5.007382%20EXMU01UF.mp4)
* [04 - E5.007299 - Modifica O&U - RNF032](file:///C:%5CTrabajo%5CSIDEL%5C04%20-%20E5.007299%20-%20Modifica%20O&U%20-%20RNF032) [Entregar](file:///C:%5CTrabajo%5CSIDEL%5C04%20-%20E5.007299%20-%20Modifica%20O&U%20-%20RNF032%5CEntregar)
*

View File

@ -4,4 +4,7 @@
- [ ] Discorso da Checklist - [ ] Discorso da Checklist
- [ ] IPs per i misuratori - [ ] IPs per i misuratori
- [ ] 📅 2025-05-08 : Abbiamo discusso con Ale riguardo alla necessità di assegnare IP diversi ai misuratori poiché dispongono di un webserver. - [ ] 📅 2025-05-08 : Abbiamo discusso con Ale riguardo alla necessità di assegnare IP diversi ai misuratori poiché dispongono di un webserver.
- [ ] - [ ] ==SAE469 da rivedere per quello che ha detto Javier su i problemi tróvate su SAE052==
- [ ] Fare un informe rispetto a la mancanza password bios su i HMI
- [ ] SAE274 - Master - Tornati da cantiere

View File

@ -11,8 +11,8 @@
| SafetyEMS | SIEMENS_SAFE | SIEMENS_SAFE | | SafetyEMS | SIEMENS_SAFE | SIEMENS_SAFE |
| SIDEL | sa | 9991 | | SIDEL | sa | 9991 |
| SIDEL PLC | Sidel123 | Sidel123 | | SIDEL PLC | Sidel123 | Sidel123 |
| SIDEL PC | | 9-3urKW* | | SIDEL PC Admin | | 9-3urKW* |
| | | | | SIDEL PC Op | | operator |
| | | | | | | |
| | | | | | | |
| | | | | | | |
@ -168,3 +168,12 @@
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |