From f747a6f2740d37e889d93ccf30bc25b5d9957eba Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli" Date: Thu, 13 Jul 2017 16:28:12 +0200 Subject: [PATCH] update readme (anche in pdf...) da VSCode --- README.md | 509 +++++++++++++++++++++++++++++------------------------ README.pdf | Bin 0 -> 76386 bytes 2 files changed, 283 insertions(+), 226 deletions(-) create mode 100644 README.pdf diff --git a/README.md b/README.md index 8737db1..18b3886 100644 --- a/README.md +++ b/README.md @@ -1,20 +1,48 @@ -# MTConnect -Progetti area MTConnect per CMS/SCM +# MTConnect - CMS/SCM Consiste di vari Adapter (CUSTOM) ed un Agent (generico ed unico) che si configura come l'interfaccia esterna ai sistemi del cliente o di CMS/SCM (Cloudplugs) -## MTC Agent + + +- [MTConnect - CMS/SCM](#mtconnect---cmsscm) +- [MTC Agent](#mtc-agent) +- [MTC Adapters PLC](#mtc-adapters-plc) + - [MTC-FANUC](#mtc-fanuc) + - [MTC-KVARA](#mtc-kvara) + - [MTC-OSAI](#mtc-osai) + - [MTC-SIEMENS](#mtc-siemens) +- [MTC Adapters DB](#mtc-adapters-db) + - [MTC-ADB](#mtc-adb) +- [Configurazione Agent](#configurazione-agent) + - [Agent_ItemList.xml](#agent_itemlistxml) +- [Configurazione ADAPTERS](#configurazione-adapters) + - [Adapter_ItemList.xml](#adapter_itemlistxml) + - [EsaKvara.ini](#esakvaraini) + - [AlarmList.map](#alarmlistmap) + - [AnalogData.map](#analogdatamap) + - [CounterList.map](#counterlistmap) + - [StatusList.map](#statuslistmap) + - [IOT_Byte.map (ESAGV)](#iot_bytemap-esagv) + - [IOT_WordList.map (ESAGV)](#iot_wordlistmap-esagv) + - [IOT_DWordList.map (ESAGV)](#iot_dwordlistmap-esagv) + - [IOT_StringList.map (ESAGV)](#iot_stringlistmap-esagv) +- [FAQ e note](#faq-e-note) + + + +# MTC Agent + L'agent è comune a tutti i progetti ed è pressochè un prodotto standard dalle specifiche e dagli esempio predisposti dal consorzio MTC. I file di configurazione sono contenuti nella cartella **..\AGENT\DATA\CONF** In particolare l'agent ha bisogno di venire configurato tramite il file **Agent_ItemList.xml** -## MTC Adapters PLC +# MTC Adapters PLC L'adapter PLC è un programma unico che può comunicare con diversi PLC a seconda delle dll installate sulal macchina e del file di configurazione XML che verrà immesso nell'area **DATA\CONF** -E' importante verificare il file di configurazione applicativo **MTC_Adapter.exe.config** poiché da alcuni parametri sarà impostabile il funzionamento produzione (adapter che resta in tray, all'utente non è permesso di ingrandirlo o chiuderlo, caricamento ed avvio automatico al lancio...) da quello di debug/testing con cui si possono verificare sia le varie configurazioni che eventuali problemi (avvio in modalità finestra, possibilità ingrandire/rimpicciolire, visualizzaizone finestra di dump messaggi inviati ad AGET, ...) +E' importante verificare il file di configurazione applicativo **MTC_Adapter.exe.config*- poiché da alcuni parametri sarà impostabile il funzionamento produzione (adapter che resta in tray, all'utente non è permesso di ingrandirlo o chiuderlo, caricamento ed avvio automatico al lancio...) da quello di debug/testing con cui si possono verificare sia le varie configurazioni che eventuali problemi (avvio in modalità finestra, possibilità ingrandire/rimpicciolire, visualizzaizone finestra di dump messaggi inviati ad AGET, ...) Ecco di seguito le chiavi principali da utilizzare **in produzione** @@ -34,45 +62,55 @@ Mentre queste sono quelle in versione **debug/diagnostica** -### MTC-FANUC -* Primo adapter realizzato -* Utilizza le FOCAS 32 bit di fanuc (devono essere installate sul PC) +## MTC-FANUC -### MTC-KVARA -* Adapter utilizzato da SCM -* Utilizza chiamate dirette tramite dll KVARA al PC/CN -* Riscritto per impiegare 4 macroaree dati (mappate) per interscambio flessibili di dati (byte/bit, Word, DWord, String) +- Primo adapter realizzato +- Utilizza le FOCAS 32 bit di fanuc (devono essere installate sul PC) + +## MTC-KVARA + +- Adapter utilizzato da SCM +- Utilizza chiamate dirette tramite dll KVARA al PC/CN +- Riscritto per impiegare 4 macroaree dati (mappate) per interscambio flessibili di dati (byte/bit, Word, DWord, String) -### MTC-OSAI -* impiega interfaccia SOAP di OSAI +## MTC-OSAI -### MTC-SIEMENS -* gestione PLC Siemens -* va avviato da processo Synumeric (o da CMSControl) +- impiega interfaccia SOAP di OSAI + +## MTC-SIEMENS + +- gestione PLC Siemens +- va avviato da processo Synumeric (o da CMSControl) -## MTC Adapters DB +# MTC Adapters DB + Questi sono altri tipi di adapter realizzati per l'accesso a DB locali -### MTC-ADB -* gestione db MySql custom per SavEnergy +## MTC-ADB + +- gestione db MySql custom per SavEnergy # Configurazione Agent + Va configurato un unico file di configurazione ovvero **Agent_ItemList.xml** ## Agent_ItemList.xml -Vanno verificati i seguenti punti secondo la regola generale che quanto viene racchiuso tra i commentati `` sarà ignorato e NON presentato all'utente -* `Device` e `Description` iniziali: verificare e configurare correttamente -* assi: numero e tipo di ogni asse, in particolare distinguendo tra quelli di tipo `Linear` e quelli `Rotary` (consigliato copia e sostituzione indici da un asse già configurato) -* attenzione ai `Components`: non inserire più path di quanti gestiti dal CN (e configurati nell'adapter) -* sempre nei path commentare il vettore posizione punta utensile per i CN che non lo espongono (`Path_xx_PosAct[X,Y,Z,I,J,K]`) -* attenzione agli `Actuators`: non inserire più Unità Operatrici di quante gestite dal CN (e configurate nell'adapter) -* attenzione a `Sistems`: non inserire più oggetti (pompe, lubro, cooler) di quanti gestiti dal CN (e configurati nell'adapter) -* attenzione a `Sensoristica`: non inserire più variabili (tipicamente analogiche) (pompe, lubro, cooler) di quante gestite dal CN (e configurate nell'adapter) -* se si sono definiti oggetti ad esempio tramite variabili status, valori analogici, contatori nelle rispettive aree di memoria, è buona norma riorganizzarli come oggetti unici (che contengono tali variabili raggruppate) -# Configurazione ADAPTER +Vanno verificati i seguenti punti secondo la regola generale che quanto viene racchiuso tra i commentati `` sarà ignorato e NON presentato all'utente + +- `Device` e `Description` iniziali: verificare e configurare correttamente +- assi: numero e tipo di ogni asse, in particolare distinguendo tra quelli di tipo `Linear` e quelli `Rotary` (consigliato copia e sostituzione indici da un asse già configurato) +- attenzione ai `Components`: non inserire più path di quanti gestiti dal CN (e configurati nell'adapter) +- sempre nei path commentare il vettore posizione punta utensile per i CN che non lo espongono (`Path_xx_PosAct[X,Y,Z,I,J,K]`) +- attenzione agli `Actuators`: non inserire più Unità Operatrici di quante gestite dal CN (e configurate nell'adapter) +- attenzione a `Sistems`: non inserire più oggetti (pompe, lubro, cooler) di quanti gestiti dal CN (e configurati nell'adapter) +- attenzione a `Sensoristica`: non inserire più variabili (tipicamente analogiche) (pompe, lubro, cooler) di quante gestite dal CN (e configurate nell'adapter) +- se si sono definiti oggetti ad esempio tramite variabili status, valori analogici, contatori nelle rispettive aree di memoria, è buona norma riorganizzarli come oggetti unici (che contengono tali variabili raggruppate) + +# Configurazione ADAPTERS + I file da configurare in questo caso sono molteplici, e di seguito si indicano le note generali per la compilazione degli stessi ## Adapter_ItemList.xml @@ -80,19 +118,21 @@ I file da configurare in questo caso sono molteplici, e di seguito si indicano l Il file può essere impostato con l'adapter (qualsiasi), in modalità _debug/diagnostica_ (vedere sopra) 1. Selezionare `SETUP > TEMPLATE CONF GENERATOR` -2. Caricare la configurazione attuale con `LOAD CONFIGURATION` -3. Si possono indicare quanti oggetti di ogni tipo si avranno nello specifico Adapter per la specifica macchina /CN -4. Ri-selezionare il tipo di adapter dal menù a tendina (se fosse già selezionato quello corretto cambiarlo e riselezionarlo, POTREBBE venire "persa" la selezione) -5. Salvare tramite il comando `SAVE CONFIGURATION` -6. Effetturare un ulteriore controllo e configurazione per gli assi (vanno specificati come `LINEAR / ROTARY` nella chiave `Axis_xx_Type`) +1. Caricare la configurazione attuale con `LOAD CONFIGURATION` +1. Si possono indicare quanti oggetti di ogni tipo si avranno nello specifico Adapter per la specifica macchina /CN +1. Ri-selezionare il tipo di adapter dal menù a tendina (se fosse già selezionato quello corretto cambiarlo e riselezionarlo, POTREBBE venire "persa" la selezione) +1. Salvare tramite il comando `SAVE CONFIGURATION` +1. Effetturare un ulteriore controllo e configurazione per gli assi (vanno specificati come `LINEAR / ROTARY` nella chiave `Axis_xx_Type`) ## EsaKvara.ini + E' un file necessario solo per il controller ESA, ed è importante sia configurato per simulazione o produzione: SysLink=SIMULATO ; in versione test/simulazione/sviluppo ;SysLink=NETWORK ; in versione reale/produzione ## AlarmList.map + E' il file degli allarmi. Le righe commentate (ovvero che iniziano con _#_) saranno ignorate. Devono esserci tante righe quanti allarmi gestiti (tramite bit di stato ON/OFF) e ogni riga deve essere formattata secondo il seguente tracciato di esempio @@ -105,27 +145,31 @@ Devono esserci tante righe quanti allarmi gestiti (tramite bit di stato ON/OFF) 000007|PLC|FAULT|[COD 001006] - 406 PULSANTI DI EMERGENZA Ovvero -* numero UNIVOCO incrementale 1..num tot allarmi -* sorgente PLC/CN (qui è PLC di default) -* tipo di allarme tra i due valori (FAULT/WARNING) che indicano guasto maggiore e segnalazione -* stringa di testo LIBERA che riporta il codice del problema e la sua descrizione (possibilmente come riportato a video all'operatore) + +- numero UNIVOCO incrementale 1..num tot allarmi +- sorgente PLC/CN (qui è PLC di default) +- tipo di allarme tra i due valori (FAULT/WARNING) che indicano guasto maggiore e segnalazione +- stringa di testo LIBERA che riporta il codice del problema e la sua descrizione (possibilmente come riportato a video all'operatore) ## AnalogData.map + In questo file sono indicate le variabili analogiche che si vogliono rilevare. Il sistema è LIBERO (non ci sono vincoli di nomenclatura) e vengono restituiti dei SAMPLE con un nome nel formato `"AV_" + nome_variabile_indicata` Il formato atteso è - 001|Analog_01 |NUM - 002|Analog_02 |NUM - 003|Analog_03 |NUM + 001|Analog_01 |NUM + 002|Analog_02 |NUM + 003|Analog_03 |NUM Ovvero -* numero incrementale -* nome variabile (in output avrà previsso `"AV_"`) -* tipologia (NUM) + +- numero incrementale +- nome variabile (in output avrà previsso `"AV_"`) +- tipologia (NUM) ## CounterList.map -In questo file sono indicate tutte le variabili di tipo contatore (da far gestire come ritentive all'adapter) che si vogliono rilevare. Il sistema **NON E' TOTALMENTE LIBERO** (ci sono vincoli di nomenclatura) e vengono restituiti degli EVENTS con un nome identico all'originale + +In questo file sono indicate tutte le variabili di tipo contatore (da far gestire come ritentive all'adapter) che si vogliono rilevare. Il sistema **NON E' TOTALMENTE LIBERO*- (ci sono vincoli di nomenclatura) e vengono restituiti degli EVENTS con un nome identico all'originale in particolare, nel seguente esempio TUTTE le variabili sono gestite "ad hoc" tranne il generico Counter_xxx che invece è libero @@ -165,12 +209,14 @@ in particolare, nel seguente esempio TUTTE le variabili sono gestite "ad hoc" tr 034|Counter_003 |COUNT Ovvero -* numero incrementale -* nome variabile -* tipologia (HOURS/METER/COUNT, per i **Counter_xxx è SEMPRE COUNT**) + +- numero incrementale +- nome variabile +- tipologia (HOURS/METER/COUNT, per i **Counter_xxx è SEMPRE COUNT**) ## StatusList.map + In questo file sono indicate le variabili analogiche che si vogliono rilevare. Il sistema è LIBERO (non ci sono vincoli di nomenclatura) e vengono restituiti degli EVENTS con un nome nel formato `"ST_" + nome_variabile_indicata`, anche se ci sono "parole protette, tra cui stato protezioni (PROTECTION_STATUS), stato per Pompe, Cooler ed UnOp che verranno replicate nell'apposita variabile predisposta a standard per ogni item. Il formato atteso è @@ -184,218 +230,229 @@ Il formato atteso è 007|Gen_Item_01 |BIT Ovvero -* numero incrementale -* nome variabile (in output avrà previsso `"ST_"`) -* tipologia (BIT) + +- numero incrementale +- nome variabile (in output avrà previsso `"ST_"`) +- tipologia (BIT) ## IOT_Byte.map (ESAGV) + In questo file sono indicate le variabili gestite come BIT o BYTE nell'area IOT_Byte del CN Il formato atteso è - 0.0|IOT_EXEC |BOOL - 0.1|IOT_HOLD |BOOL - 0.2|IOT_EMG |BOOL - 0.3|IOT_ALRM |BOOL - 0.4|IOT_MACHON |BOOL - 0.5|IOT_READY |BOOL - 0.6|libero |BOOL - 0.7|libero |BOOL - 1.0|IOT_EXEC_A_01 |BOOL - 1.1|IOT_EXEC_A_02 |BOOL - 1.2|IOT_EXEC_A_03 |BOOL - 1.3|IOT_EXEC_A_04 |BOOL - 1.4|IOT_VAC_01 |BOOL - 1.5|IOT_VAC_02 |BOOL - 1.6|IOT_VAC_03 |BOOL - 1.7|IOT_VAC_04 |BOOL - 002|libero |BYTE - 003|IOT_MODECN |BYTE - 004|IOT_OVRF |BYTE - 005|IOT_OVRS |BYTE - 006|IOT_LUB_01_STA |BYTE - 007|IOT_LUB_01_CNT |BYTE - 008|IOT_I_MD_01 |BYTE - 009|IOT_I_MD_02 |BYTE - 010|IOT_I_MD_03 |BYTE - 011|IOT_I_MD_04 |BYTE - 012|IOT_I_MD_05 |BYTE - 013|IOT_I_MD_06 |BYTE - 014|IOT_I_MD_07 |BYTE - 015|IOT_I_MD_08 |BYTE + 0.0|IOT_EXEC |BOOL + 0.1|IOT_HOLD |BOOL + 0.2|IOT_EMG |BOOL + 0.3|IOT_ALRM |BOOL + 0.4|IOT_MACHO |BOOL + 0.5|IOT_READY |BOOL + 0.6|libero |BOOL + 0.7|libero |BOOL + 1.0|IOT_EXEC_A_01 |BOOL + 1.1|IOT_EXEC_A_02 |BOOL + 1.2|IOT_EXEC_A_03 |BOOL + 1.3|IOT_EXEC_A_04 |BOOL + 1.4|IOT_VAC_01 |BOOL + 1.5|IOT_VAC_02 |BOOL + 1.6|IOT_VAC_03 |BOOL + 1.7|IOT_VAC_04 |BOOL + 002|libero |BYTE + 003|IOT_MODECN |BYTE + 004|IOT_OVRF |BYTE + 005|IOT_OVRS |BYTE + 006|IOT_LUB_01_STA |BYTE + 007|IOT_LUB_01_CNT |BYTE + 008|IOT_I_MD_01 |BYTE + 009|IOT_I_MD_02 |BYTE + 010|IOT_I_MD_03 |BYTE + 011|IOT_I_MD_04 |BYTE + 012|IOT_I_MD_05 |BYTE + 013|IOT_I_MD_06 |BYTE + 014|IOT_I_MD_07 |BYTE + 015|IOT_I_MD_08 |BYTE Ovvero -* numero incrementale nel formato `BYTE[.BIT]` (ovvero num byte + opzionalmente num BIT) -* nome variabile (passata in output UGUALE) -* tipologia (BOOL/BYTE) -* attenzione alla semantica: alcuni set informativi sono "blindati", ad esempio `IOT_I_MD_02` indica un contatore di `Load` del mandrino 2, `IOT_LUB_01_STA` è lo status dell'unità lubro 01, `IOT_LUB_01_CNT` è il conteggio impieghi dell'unità lubro 01, ... + +- numero incrementale nel formato `BYTE[.BIT]` (ovvero num byte + opzionalmente num BIT) +- nome variabile (passata in output UGUALE) +- tipologia (BOOL/BYTE) +- attenzione alla semantica: alcuni set informativi sono "blindati", ad esempio `IOT_I_MD_02` indica un contatore di `Load` del mandrino 2, `IOT_LUB_01_STA` è lo status dell'unità lubro 01, `IOT_LUB_01_CNT` è il conteggio impieghi dell'unità lubro 01, ... ## IOT_WordList.map (ESAGV) + In questo file sono indicate le variabili gestite come Word (16bit) nell'area IOT_WordList del CN Il formato atteso è - 000|IOT_S_MD_01 |WORD - 001|IOT_S_MD_02 |WORD - 002|IOT_S_MD_03 |WORD - 003|IOT_S_MD_04 |WORD - 004|IOT_S_MD_05 |WORD - 005|IOT_S_MD_06 |WORD - 006|IOT_S_MD_07 |WORD - 007|IOT_S_MD_08 |WORD - 008|IOT_T_MD_01 |WORD - 009|IOT_T_MD_02 |WORD - 010|IOT_T_MD_03 |WORD - 011|IOT_T_MD_04 |WORD - 012|IOT_T_MD_05 |WORD - 013|IOT_T_MD_06 |WORD - 014|IOT_T_MD_07 |WORD - 015|IOT_T_MD_08 |WORD - 016|IOT_C_H_VAC_01 |WORD - 017|IOT_C_H_VAC_02 |WORD - #018|IOT_C_H_VAC_03 |WORD - #019|IOT_C_H_VAC_04 |WORD - 020|IOT_C_TC_01 |WORD - 021|IOT_C_TC_02 |WORD - 022|IOT_C_TC_03 |WORD - 023|IOT_C_TC_04 |WORD - 024|IOT_C_TC_05 |WORD - 025|IOT_C_TC_06 |WORD - 026|IOT_C_TC_07 |WORD - 027|IOT_C_TC_08 |WORD - 028|IOT_C_H_MD_01 |WORD - 029|IOT_C_H_MD_02 |WORD - 030|IOT_C_H_MD_03 |WORD - 031|IOT_C_H_MD_04 |WORD - 032|IOT_C_H_MD_05 |WORD - 033|IOT_C_H_MD_06 |WORD - 034|IOT_C_H_MD_07 |WORD - 035|IOT_C_H_MD_08 |WORD - 036|IOT_PGMR_A_01 |WORD - 037|IOT_PGMR_A_02 |WORD - 038|IOT_PGMR_A_03 |WORD - 039|IOT_PGMR_A_04 |WORD - 040|IOT_C_EXEC_A_01 |WORD - 041|IOT_C_EXEC_A_02 |WORD - 042|IOT_C_EXEC_A_03 |WORD - 043|IOT_C_EXEC_A_04 |WORD - 044|IOT_CN_MSG |WORD + 000|IOT_S_MD_01 |WORD + 001|IOT_S_MD_02 |WORD + 002|IOT_S_MD_03 |WORD + 003|IOT_S_MD_04 |WORD + 004|IOT_S_MD_05 |WORD + 005|IOT_S_MD_06 |WORD + 006|IOT_S_MD_07 |WORD + 007|IOT_S_MD_08 |WORD + 008|IOT_T_MD_01 |WORD + 009|IOT_T_MD_02 |WORD + 010|IOT_T_MD_03 |WORD + 011|IOT_T_MD_04 |WORD + 012|IOT_T_MD_05 |WORD + 013|IOT_T_MD_06 |WORD + 014|IOT_T_MD_07 |WORD + 015|IOT_T_MD_08 |WORD + 016|IOT_C_H_VAC_01 |WORD + 017|IOT_C_H_VAC_02 |WORD + #018|IOT_C_H_VAC_03 |WORD + #019|IOT_C_H_VAC_04 |WORD + 020|IOT_C_TC_01 |WORD + 021|IOT_C_TC_02 |WORD + 022|IOT_C_TC_03 |WORD + 023|IOT_C_TC_04 |WORD + 024|IOT_C_TC_05 |WORD + 025|IOT_C_TC_06 |WORD + 026|IOT_C_TC_07 |WORD + 027|IOT_C_TC_08 |WORD + 028|IOT_C_H_MD_01 |WORD + 029|IOT_C_H_MD_02 |WORD + 030|IOT_C_H_MD_03 |WORD + 031|IOT_C_H_MD_04 |WORD + 032|IOT_C_H_MD_05 |WORD + 033|IOT_C_H_MD_06 |WORD + 034|IOT_C_H_MD_07 |WORD + 035|IOT_C_H_MD_08 |WORD + 036|IOT_PGMR_A_01 |WORD + 037|IOT_PGMR_A_02 |WORD + 038|IOT_PGMR_A_03 |WORD + 039|IOT_PGMR_A_04 |WORD + 040|IOT_C_EXEC_A_01 |WORD + 041|IOT_C_EXEC_A_02 |WORD + 042|IOT_C_EXEC_A_03 |WORD + 043|IOT_C_EXEC_A_04 |WORD + 044|IOT_CN_MSG |WORD Ovvero -* numero incrementale nel formato `Word` (ovvero indice Word) -* nome variabile (passata in output UGUALE) -* tipologia (WORD) -* attenzione alla semantica: alcuni set informativi sono "blindati", ad esempio `IOT_S_MD_02` indica un la `Speed` del mandrino 2, `IOT_T_MD_01` è il numero del tool caricato sul mandrino 1, `IOT_PGMR_A_02` è il conteggio ripetizioni programma area 02, ... + +- numero incrementale nel formato `Word` (ovvero indice Word) +- nome variabile (passata in output UGUALE) +- tipologia (WORD) +- attenzione alla semantica: alcuni set informativi sono "blindati", ad esempio `IOT_S_MD_02` indica un la `Speed` del mandrino 2, `IOT_T_MD_01` è il numero del tool caricato sul mandrino 1, `IOT_PGMR_A_02` è il conteggio ripetizioni programma area 02, ... ## IOT_DWordList.map (ESAGV) + In questo file sono indicate le variabili gestite come DoubleWord (32bit) nell'area IOT_DWordList del CN Il formato atteso è - 000|IOT_C_KU_AX_01 |DWORD - 001|IOT_C_KU_AX_02 |DWORD - 002|IOT_C_KU_AX_03 |DWORD - 003|IOT_C_KU_AX_04 |DWORD - 004|IOT_C_KU_AX_05 |DWORD - 005|IOT_C_KU_AX_06 |DWORD - 006|IOT_C_KU_AX_07 |DWORD - 007|IOT_C_KU_AX_08 |DWORD - 008|IOT_C_KU_AX_09 |DWORD - 009|IOT_C_KU_AX_10 |DWORD - 010|IOT_C_KU_AX_11 |DWORD - 011|IOT_C_KU_AX_12 |DWORD - 012|IOT_C_KU_AX_13 |DWORD - 013|IOT_C_KU_AX_14 |DWORD - 014|IOT_C_KU_AX_15 |DWORD - 015|IOT_C_KINV_AX_01 |DWORD - 016|IOT_C_KINV_AX_02 |DWORD - 017|IOT_C_KINV_AX_03 |DWORD - 018|IOT_C_KINV_AX_04 |DWORD - 019|IOT_C_KINV_AX_05 |DWORD - 020|IOT_C_KINV_AX_06 |DWORD - 021|IOT_C_KINV_AX_07 |DWORD - 022|IOT_C_KINV_AX_08 |DWORD - 023|IOT_C_KINV_AX_09 |DWORD - 024|IOT_C_KINV_AX_10 |DWORD - 025|IOT_C_KINV_AX_11 |DWORD - 026|IOT_C_KINV_AX_12 |DWORD - 027|IOT_C_KINV_AX_13 |DWORD - 028|IOT_C_KINV_AX_14 |DWORD - 029|IOT_C_KINV_AX_15 |DWORD - 030|IOT_POS_AX_01 |DWORD - 031|IOT_POS_AX_02 |DWORD - 032|IOT_POS_AX_03 |DWORD - 033|IOT_POS_AX_04 |DWORD - 034|IOT_POS_AX_05 |DWORD - 035|IOT_POS_AX_06 |DWORD - 036|IOT_POS_AX_07 |DWORD - 037|IOT_POS_AX_08 |DWORD - 038|IOT_POS_AX_09 |DWORD - 039|IOT_POS_AX_10 |DWORD - 040|IOT_POS_AX_11 |DWORD - 041|IOT_POS_AX_12 |DWORD - 042|IOT_POS_AX_13 |DWORD - 043|IOT_POS_AX_14 |DWORD - 044|IOT_POS_AX_15 |DWORD - 045|IOT_C_KREV_MD_01 |DWORD - 046|IOT_C_KREV_MD_02 |DWORD - 047|IOT_C_KREV_MD_03 |DWORD - 048|IOT_C_KREV_MD_04 |DWORD - 049|IOT_C_KREV_MD_05 |DWORD - 050|IOT_C_KREV_MD_06 |DWORD - 051|IOT_C_KREV_MD_07 |DWORD - 052|IOT_C_KREV_MD_08 |DWORD - 053|IOT_PLC_MSG_00 |DWORD - 054|IOT_PLC_MSG_01 |DWORD - 055|IOT_PLC_MSG_02 |DWORD - 056|IOT_PLC_MSG_03 |DWORD - 057|IOT_PLC_MSG_04 |DWORD - 058|IOT_PLC_MSG_05 |DWORD - 059|IOT_PLC_MSG_06 |DWORD - 060|IOT_PLC_MSG_07 |DWORD - 061|IOT_PLC_MSG_08 |DWORD - 062|IOT_PLC_MSG_09 |DWORD - 063|IOT_PLC_MSG_10 |DWORD - 064|IOT_PLC_MSG_11 |DWORD - 065|IOT_PLC_MSG_12 |DWORD - 066|IOT_FEED |DWORD - 067|IOT_FEED_01 |DWORD - 068|IOT_FEED_02 |DWORD - 069|IOT_FEED_03 |DWORD + 000|IOT_C_KU_AX_01 |DWORD + 001|IOT_C_KU_AX_02 |DWORD + 002|IOT_C_KU_AX_03 |DWORD + 003|IOT_C_KU_AX_04 |DWORD + 004|IOT_C_KU_AX_05 |DWORD + 005|IOT_C_KU_AX_06 |DWORD + 006|IOT_C_KU_AX_07 |DWORD + 007|IOT_C_KU_AX_08 |DWORD + 008|IOT_C_KU_AX_09 |DWORD + 009|IOT_C_KU_AX_10 |DWORD + 010|IOT_C_KU_AX_11 |DWORD + 011|IOT_C_KU_AX_12 |DWORD + 012|IOT_C_KU_AX_13 |DWORD + 013|IOT_C_KU_AX_14 |DWORD + 014|IOT_C_KU_AX_15 |DWORD + 015|IOT_C_KINV_AX_01 |DWORD + 016|IOT_C_KINV_AX_02 |DWORD + 017|IOT_C_KINV_AX_03 |DWORD + 018|IOT_C_KINV_AX_04 |DWORD + 019|IOT_C_KINV_AX_05 |DWORD + 020|IOT_C_KINV_AX_06 |DWORD + 021|IOT_C_KINV_AX_07 |DWORD + 022|IOT_C_KINV_AX_08 |DWORD + 023|IOT_C_KINV_AX_09 |DWORD + 024|IOT_C_KINV_AX_10 |DWORD + 025|IOT_C_KINV_AX_11 |DWORD + 026|IOT_C_KINV_AX_12 |DWORD + 027|IOT_C_KINV_AX_13 |DWORD + 028|IOT_C_KINV_AX_14 |DWORD + 029|IOT_C_KINV_AX_15 |DWORD + 030|IOT_POS_AX_01 |DWORD + 031|IOT_POS_AX_02 |DWORD + 032|IOT_POS_AX_03 |DWORD + 033|IOT_POS_AX_04 |DWORD + 034|IOT_POS_AX_05 |DWORD + 035|IOT_POS_AX_06 |DWORD + 036|IOT_POS_AX_07 |DWORD + 037|IOT_POS_AX_08 |DWORD + 038|IOT_POS_AX_09 |DWORD + 039|IOT_POS_AX_10 |DWORD + 040|IOT_POS_AX_11 |DWORD + 041|IOT_POS_AX_12 |DWORD + 042|IOT_POS_AX_13 |DWORD + 043|IOT_POS_AX_14 |DWORD + 044|IOT_POS_AX_15 |DWORD + 045|IOT_C_KREV_MD_01 |DWORD + 046|IOT_C_KREV_MD_02 |DWORD + 047|IOT_C_KREV_MD_03 |DWORD + 048|IOT_C_KREV_MD_04 |DWORD + 049|IOT_C_KREV_MD_05 |DWORD + 050|IOT_C_KREV_MD_06 |DWORD + 051|IOT_C_KREV_MD_07 |DWORD + 052|IOT_C_KREV_MD_08 |DWORD + 053|IOT_PLC_MSG_00 |DWORD + 054|IOT_PLC_MSG_01 |DWORD + 055|IOT_PLC_MSG_02 |DWORD + 056|IOT_PLC_MSG_03 |DWORD + 057|IOT_PLC_MSG_04 |DWORD + 058|IOT_PLC_MSG_05 |DWORD + 059|IOT_PLC_MSG_06 |DWORD + 060|IOT_PLC_MSG_07 |DWORD + 061|IOT_PLC_MSG_08 |DWORD + 062|IOT_PLC_MSG_09 |DWORD + 063|IOT_PLC_MSG_10 |DWORD + 064|IOT_PLC_MSG_11 |DWORD + 065|IOT_PLC_MSG_12 |DWORD + 066|IOT_FEED |DWORD + 067|IOT_FEED_01 |DWORD + 068|IOT_FEED_02 |DWORD + 069|IOT_FEED_03 |DWORD Ovvero -* numero incrementale nel formato `DWord` (ovvero indice DWord) -* nome variabile (passata in output UGUALE) -* tipologia (DWORD) -* attenzione alla semantica: alcuni set informativi sono "blindati", ad esempio `IOT_C_KU_AX_04` indica un la `Distanza` totale percorsa dall'asse 4, `IOT_C_KINV_AX_01` è il numero (in K=migliaia) di inversioni dell'asse 1, `IOT_POS_AX_11` è la posizione dell'asse 11, ... + +- numero incrementale nel formato `DWord` (ovvero indice DWord) +- nome variabile (passata in output UGUALE) +- tipologia (DWORD) +- attenzione alla semantica: alcuni set informativi sono "blindati", ad esempio `IOT_C_KU_AX_04` indica un la `Distanza` totale percorsa dall'asse 4, `IOT_C_KINV_AX_01` è il numero (in K=migliaia) di inversioni dell'asse 1, `IOT_POS_AX_11` è la posizione dell'asse 11, ... ## IOT_StringList.map (ESAGV) + In questo file sono indicate le variabili stringa gestite. Il formato atteso è - 001|IOT_PGMID_A1 |STRING - 002|IOT_PGMID_A2 |STRING - 003|IOT_PGMID_A3 |STRING - 004|IOT_PGMID_A4 |STRING + 001|IOT_PGMID_A1 |STRING + 002|IOT_PGMID_A2 |STRING + 003|IOT_PGMID_A3 |STRING + 004|IOT_PGMID_A4 |STRING Ovvero -* numero incrementale -* nome variabile -* tipologia (String) -* attenzione alla semantica: i set informativi sono "blindati" per il solo caso `IOT_PGMID_A1` che è il NOME completo del programma sull'area di memoria A... + +- numero incrementale +- nome variabile +- tipologia (String) +- attenzione alla semantica: i set informativi sono "blindati" per il solo caso `IOT_PGMID_A1` che è il NOME completo del programma sull'area di memoria A... # FAQ e note + Alcune note finali su cosa verificare e alcune possibili cause di errori e problemi per misconfigurazioni -* Alarmlist.map: - * è importante che NON siano duplicati i codici iniziali di ogni riga (devono essere univoci,s e fossero duplicati verrebbe preso SOLO il secondo record, ignorato il primo, con la conseguenza che il numero di allarmi sarebbero pari solo all'indice massimo, inferiore al numero di righe indicato) - * è importante che ci siano un numero di allarmi pari ad un multiplo di 32 (eventualmente vuoti) per evitare problemi sulle dimensioni dei vettori di memoria nella copia tra dati ricevuto da PLC e area adapter. Mettere in ogni caso un banco di 32 bit di allarmi (vuoti) in aggiunta NON crea comunque problemi e potrebbe essere preso come misura precauzionale in caso non si popolasse il file con tutti i 1024 bit di allarme previsti -* AnalogData.map: - * è importante ricordare che TUTTE le variabili analogiche saranno lette come INTERI 32bit e poit rasformate in valori decimali tramite un fattore di conversione definito nel file .config `` (quindi in questo caso i valori saranno divisi per un fattore 1000 e quindi con 3 decimali) +- Alarmlist.map: + - è importante che NON siano duplicati i codici iniziali di ogni riga (devono essere univoci,s e fossero duplicati verrebbe preso SOLO il secondo record, ignorato il primo, con la conseguenza che il numero di allarmi sarebbero pari solo all'indice massimo, inferiore al numero di righe indicato) + - è importante che ci siano un numero di allarmi pari ad un multiplo di 32 (eventualmente vuoti) per evitare problemi sulle dimensioni dei vettori di memoria nella copia tra dati ricevuto da PLC e area adapter. Mettere in ogni caso un banco di 32 bit di allarmi (vuoti) in aggiunta NON crea comunque problemi e potrebbe essere preso come misura precauzionale in caso non si popolasse il file con tutti i 1024 bit di allarme previsti -* CounterList.map: - * è importante NON inserire contatori di tipo codificato con indici superiori agli oggetti definiti nell'Agent_ItemList.xml, ovvero ad esempio inserire `UnOp_02_NumCambiUT` se si fosse definita 1 sola unità operatrice (la variabile è il conteggio cambi utensili della 2° unità operatrice/mandrino) -* StatusList.map: - * è importante NON inserire controlli di stato di tipo codificato con indici superiori agli oggetti definiti nell'Agent_ItemList.xml, ovvero ad esempio inserire `UnOp_02_Status` se si fosse definita 1 sola unità operatrice (la variabile è lo stato della 2° unità operatrice/mandrino) +- AnalogData.map: + - è importante ricordare che TUTTE le variabili analogiche saranno lette come INTERI 32bit e poit rasformate in valori decimali tramite un fattore di conversione definito nel file .config `` (quindi in questo caso i valori saranno divisi per un fattore 1000 e quindi con 3 decimali) + +- CounterList.map: + - è importante NON inserire contatori di tipo codificato con indici superiori agli oggetti definiti nell'Agent_ItemList.xml, ovvero ad esempio inserire `UnOp_02_NumCambiUT` se si fosse definita 1 sola unità operatrice (la variabile è il conteggio cambi utensili della 2° unità operatrice/mandrino) +- StatusList.map: + - è importante NON inserire controlli di stato di tipo codificato con indici superiori agli oggetti definiti nell'Agent_ItemList.xml, ovvero ad esempio inserire `UnOp_02_Status` se si fosse definita 1 sola unità operatrice (la variabile è lo stato della 2° unità operatrice/mandrino) diff --git a/README.pdf b/README.pdf new file mode 100644 index 0000000000000000000000000000000000000000..691abc7ab7033f434283adcfc236f315f5afed60 GIT binary patch literal 76386 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