update file readme...
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
# Commenti con cancelletto, struttura un variabile per riga, tipo chiave|valore (occhio che il separatore è configurato da .cofig come "testCharSep"); spazi e tabulazioni dovrei trimmarli in acquisizione (qui inseriti per comodità di lettura)
|
||||
001|Analog_01 |NUM
|
||||
001|Analog_02 |NUM
|
||||
001|Analog_03 |NUM
|
||||
002|Analog_02 |NUM
|
||||
003|Analog_03 |NUM
|
||||
@@ -1,14 +1,39 @@
|
||||
# MTConnect
|
||||
Progetti area MTConnect per 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?)
|
||||
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
|
||||
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
|
||||
|
||||
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, ...)
|
||||
|
||||
Ecco di seguito le chiavi principali da utilizzare **in produzione**
|
||||
|
||||
<add key="autoLoadConf" value="true"/>
|
||||
<add key="autoStartOnLoad" value="true"/>
|
||||
<add key="openDumpOnStart" value="false"/>
|
||||
<add key="startMinimized" value="true"/>
|
||||
<add key="windowCanMax" value="false"/>
|
||||
<add key="trayClose" value="false"/>
|
||||
|
||||
Mentre queste sono quelle in versione **debug/diagnostica**
|
||||
|
||||
<add key="autoLoadConf" value="false"/>
|
||||
<add key="autoStartOnLoad" value="true"/>
|
||||
<add key="openDumpOnStart" value="true"/>
|
||||
<add key="startMinimized" value="false"/>
|
||||
<add key="windowCanMax" value="true"/>
|
||||
<add key="trayClose" value="true"/>
|
||||
|
||||
### MTC-FANUC
|
||||
* Primo adapter realizzato
|
||||
* Utilizza le FOCAS 32 bit di fanuc (devono essere installate sul PC)
|
||||
@@ -31,3 +56,149 @@ Questi sono altri tipi di adapter realizzati per l'accesso a DB locali
|
||||
|
||||
### 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 `<!--` e `-->` 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
|
||||
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
|
||||
|
||||
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`)
|
||||
|
||||
## 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
|
||||
|
||||
000001|PLC|FAULT|[COD 001000] - 334 ERRORE COMUNICAZIONE PROFIBUS
|
||||
000002|PLC|FAULT|[COD 001001] - 700 TABELLE IN MODIFICA
|
||||
000003|PLC|FAULT|[COD 001002] - 404 BILANCIAMENTO ASSE Z INSUFFICIENTE
|
||||
000004|PLC|FAULT|[COD 001003] - 403 SURRISCALDAMENTO ARMADIO ELETTRICO
|
||||
000005|PLC|FAULT|[COD 001004] - 173 CAMBIARE LA BATTERIA
|
||||
000006|PLC|FAULT|[COD 001005] - 407 UNO O PIU ASSI IN EXTRA CORSA
|
||||
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)
|
||||
|
||||
## 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
|
||||
|
||||
Ovvero
|
||||
* 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 particolare, nel seguente esempio TUTTE le variabili sono gestite "ad hoc" tranne il generico Counter_xxx che invece è libero
|
||||
|
||||
001|ACC_TIME |HOURS
|
||||
002|ACC_TIME_WORK |HOURS
|
||||
003|Path_01_PZ_TOT |COUNT
|
||||
004|Axis_01_DistDone |METER
|
||||
005|Axis_01_Invers |COUNT
|
||||
006|Axis_02_DistDone |METER
|
||||
007|Axis_02_Invers |COUNT
|
||||
008|Axis_03_DistDone |METER
|
||||
009|Axis_03_Invers |COUNT
|
||||
010|Axis_04_DistDone |COUNT
|
||||
011|Axis_04_Invers |COUNT
|
||||
012|Axis_05_DistDone |COUNT
|
||||
013|Axis_05_Invers |COUNT
|
||||
014|Axis_06_DistDone |METER
|
||||
015|Axis_06_Invers |COUNT
|
||||
016|UnOp_01_AccTime |COUNT
|
||||
017|VacPump_01_WrkTime |HOURS
|
||||
018|VacPump_02_WrkTime |HOURS
|
||||
019|VacAct_01_Count |COUNT
|
||||
020|VacAct_02_Count |COUNT
|
||||
021|Lubro_01_Num |COUNT
|
||||
022|SlittaTastatore_Count |COUNT
|
||||
023|SlittaMagazzino_01_Count |COUNT
|
||||
024|ProtMagazzino_01_Count |COUNT
|
||||
025|UnOp_01_NumCambiUT |COUNT
|
||||
026|Axis_01_AccTime |COUNT
|
||||
027|Axis_02_AccTime |COUNT
|
||||
028|Axis_03_AccTime |COUNT
|
||||
029|Axis_04_AccTime |COUNT
|
||||
030|Axis_05_AccTime |COUNT
|
||||
031|Axis_06_AccTime |COUNT
|
||||
032|Counter_001 |COUNT
|
||||
033|Counter_002 |COUNT
|
||||
034|Counter_003 |COUNT
|
||||
|
||||
Ovvero
|
||||
* 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 è
|
||||
|
||||
001|PROTECTION_STATUS |BIT
|
||||
002|VacPump_01_Status |BIT
|
||||
003|VacPump_02_Status |BIT
|
||||
004|Cooler_01_Status |BIT
|
||||
005|Cooler_02_Status |BIT
|
||||
006|UnOp_01_Status |BIT
|
||||
007|Gen_Item_01 |BIT
|
||||
|
||||
Ovvero
|
||||
* numero incrementale
|
||||
* nome variabile (in output avrà previsso `"ST_"`)
|
||||
* tipologia (BIT)
|
||||
|
||||
|
||||
# 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 `<add key="fattDecVA" value="1000"/>` (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)
|
||||
|
||||
Reference in New Issue
Block a user