Files
2017-09-16 12:04:28 +02:00

104 lines
5.4 KiB
Markdown

# Mapo-IOB
Repository progetti che ruotano intorno al concetto di IOB (Input Out Board) per MAPO / MoonPro
ATTENZIONE: singoli file readme e di definizioni sono riportati nelle varie subfolder/subdirectory del progetto ove necessario.
<!-- TOC -->
- [Mapo-IOB](#mapo-iob)
- [Standard Tecnici](#standard-tecnici)
- [Definizione ed acronimi](#definizione-ed-acronimi)
- [Descrizione](#descrizione)
- [Architettura generale](#architettura-generale)
- [Architettura IOB](#architettura-iob)
- [State Machine Ingressi](#state-machine-ingressi)
- [Moduli **IOB**](#moduli-iob)
- [**IOB-PI**](#iob-pi)
- [**IOB-WIN**](#iob-win)
- [HowTo](#howto)
- [Analisi file di log](#analisi-file-di-log)
<!-- /TOC -->
## Standard Tecnici
Il progetto impiega i seguenti standard tecnici:
- http call
- Python 2.7 (R-IOB)
- asp.net / C# (W-IOB)
## Definizione ed acronimi
Di seguito una legenda degli acronimi usati in seguito (per Compoenti, Sistemi, Attori, ...):
| Acronimo | Definizione |
| ----------- |:--------------------------------------------------|
| **MAPO** | Modulo Acquisizione Produzione Operativo |
| **MoOnPro** | Monitoraggio Online Produzione |
| **IOB** | Input Output Board |
| **IOB-PI** | Input Output Board basata su RaspberryPi |
| **IOB-WIN** | Input Output Board basata su Windows |
| **MP-MON** | SW HTML5 per monitoraggio semplificato (totem) |
| **MP-MON-PI** | Sistema monitoraggio stato MP-MON RaspberryPi |
| **BLINK** | Segnali bistabili (blinking) |
| **IN.SIG** | Segnali acquisiti in Ingresso |
| **S.BIT** | Segnali BIT in Ingresso (come singoli bit 0/1) |
## Descrizione
I sw di questo progetto sono pensati epr integrarsi con il sisstema MoOnPro di analisi dati della produzione,e d in particolare si occupano delel fasi di IO verso le macchine. I dispositivi della serie **MON** si occupano delal aprte OUTput (e sono a tutti gli effetti dei totem / visualizzatori dello stato del sistema), mentre i dispositivi **IOB** più genericamente si occupano di inviare e ricevere dati da e verso le macchine come layer di interfaccia tra queste e la rete / il sistema MoonPro.
Allegati/Materiale contenuta in area Google Drive:
- `...\GDrive@steamware\SteamWare\Clienti\Donati\...`
- `...\GDrive@steamware\SteamWare\Clienti\Jetco\...`
## Architettura generale
L'architettura prevede il seguente schema
- Un server centrale (windows based / asp.net) che ospita i seguenti moduli applicativi:
- **MP-IO**: riceve l'input da tutte le macchine tramite i vari **IOB-PI** / **IOB-WIN**
- **MP-ADM**: serve ad amministrare i dati anagrafici (ODL, articoli) e gestire le fasi approvative (es TC modificati)
- **MP-SITE**: rappresenta il sito principale per l'interrogazione dellos tato attuale, dell'analisi temporale dei rendimenti, dellos tato produzione, dei tempi, delel commesse...
- **MP-TAB**: applicazione specializzata per tablet dedicata al'input utente per dichairazione fermate, dichairazione attrezzaggi, conferma produzione, ...
- **MP-MON**: applicazione epr visualizzazione semplificata stato macchine (Totem style)
E quindi sono fondamentali gli elementi "periferici" che acquisiscono i dati (**IOB**) o che mostrano lo stato (**MON**).
## Architettura IOB
Gli acquisitori (**IOB**) si limitano a leggere (ciclicamente, tipicamente 10Hz) in modo continuativo lo stato di alcuni segnali (**BIT**) macchina (tramite HW per **IOB-PI** e tramite sw per **IOB-WIN**) e a inviarli (in caso di variazione) al sistema centrale: ci sono però alcune regole particolari rispettate dal sistema:
- il singolo acquisitore **IOB** invia in primis un segnale specifico in caso di avvio/reboot
- ogni **IOB** invia informazioni in casi di variazione dei segnali letti oppure (se il segnale fosse stabile) alla scadenza di un timer di timeout lungo tipicamente di durata 50sec --> questo garantisce che il sistema centrale abbia l'informazione di keep-alive dei vari acquisitori in modo garantito ALMENO 1 volta al minuto così da poter verificare lo stato di buona salute e funzionamento del sistema
- ogni **IOB** ha anche un timeout breve che serve alla verifica del cambio fronte e che prevede di inviare entro pochi secondi una conferma del segnale appena inviato (anche se appunto NON variato)
- i segnali vengono "impacchettati" in modalità binaria, per cui ad esempio se ci sono 8 **S.BIT** in ingresso avremo in uscita un valore compreso nell'intervallo **0 --> 255** (= **00000000 --> 11111111**) inviato in forma **esadecimale** con valori **00 --> FF**
- ci possono essere segnali stabili e segnali alternanti/lampeggianti (**BLINK**) --> per evitare di saturare inutilmente i canali di comunicazione si è implementato a livello del sw di acquisizione (per ora sul rPI) una gestione di tali segnali per cui un segnale di fronte di salita (0-->1) viene SUBITO segnalato mentre il fronte in discesa viene segnalato sol se questo è stabile per un numero minimo di cicli (valutato per singolo **S.BIT**), tipicamente per almeno 1-2 secondi
## State Machine Ingressi
Vedere doc in area specifica per come siano definite/costruite
## Moduli **IOB**
Di seguito una definizione generale, nelle rispettive folder informazioni più specifiche
### **IOB-PI**
...
### **IOB-WIN**
...
## HowTo
...
### Analisi file di log
...