PnSistemi Gestione MicroControllori/Plc – Esempio di applicazione

Esempio di creazione di Un timer per arresto di un attuatore con impostazione del suo stato

1) creiamo quattro variabili con nomi e descrizione scelti da noi:

V0000032 l’ ora di sistema;
V0000042 Stato dell’ attuatore (agitatore)
V0000049 l’ora del prossimo evento (avvio dell’agitatore)
V0000050 la durata del funzionamento dell’attuatore in secondi


Creiamo un comando per valutare le condizioni di avvio dell’attuatore:


Il tes di avvio comprende in AND anche le variabili V0000001 (una temperatura e la sua soglia), V0000113 (il consenso di avvio), V0000042 (lo stato dell’ attuatore che non sia già avviato)
se il test di avvio è positivo, allora oltre a eseguire il comando (imposta ON su AT000017) si assegna un pacchetto AV000010 di variabili:

Dove si imposta lo stato dell’attuatore a ON, si azzera il suo contagiri V0000111, si imposta il timer per il suo spegnimento V0000044 sommando l’ora di sistema V0000032 e la durata dell’ accensione V0000043
I comandi vengono composti nel ciclo mostrato di seguito; assieme ai comandi può eseguito un set di letture di sensori e una assegnazione di variabili per eseguire i calcoli dopo la lettura dei sensori (ad esempio calcolare i KWH dopo la lettura di RPM e coppia di un albero motore), nonché forzare visualizzazione del pannello HMI che altrimenti avverrebbe solo a fine ciclo. E’ possibile forzare un log delle operazioni eseguite a livello di singolo comando, (un log completo scrive da mille a 5000 righe di log per ciclo, a seconda della complessità)

Tabella dei sensori e delle formule sensori per normalizzare le letture tipiche dei sensori 0-10V, 4-20ma ecc. in valori comprensibili.

Alla lettura di un sensore automaticamente si assegna la variabile definita; le letture dei sensori sono assegnate a dei set in modo da gestire le priorità di lettura e salvare le performance
Eventuali periferiche aggiuntive, come un altro plc, o un inverter vengono aggiunti in questa tabella

Il cambiamento della formula del sensore si fa nel runtime senza arresti.
Tabella degli attuatori

Qusta è la tabella che compone il colloquio col plc in modo che poi gestisca la comunicazione col Plc e di conseguenza gestisca l’attuatore. La tabella va completata con i set di istruzioni di ogni attuatore, che possono comprendere valori On/off, oppure settaggi pwm o stringhe per colloquio di tipo Modbus o altri.
Anche l’archiviazione dati può essete gestita come evento e quindi eseguita in modo condizionale al verificarsi di condizioni specificate nel set delle variabili.

Esempio diei File di log, ovvero il log completo delle istruzioni eseguite da pc

Thread principale – Esegue la comunicazione con le porte di I/O (seriale,ethernet), la assegnazione delle variabili, i comandi l’archiviazione dei dati di log,la visualizzazione del valori per l’HMI
Lettura del microcontrollore via seriale
colonna 1: Time Sec.
colonna 2: Operazioni per decimo di secondo
colonna 3: Durata operazione in millisecondoi
colonna 4: Thread / pagina di V
colonna 5: Operazione eseguita

C1 C2 C3 C4 C5
8.045 34 0.089 1/3 Valuto Sensori: LE000004 8.045 35 0.182 1/3 Istruzione ARDREAD: GIRWPORT
8.045 36 0.116 1/3 INDCOMAI Ricerco Parametro Istruzioni per Sensori e Attuatori
8.045 37 0.086 1/3 ARDREADI Set Istruzioni: GIRWPORT(‘I00500R58001′,’ 40′,’INDCOMAI’,)
8.045 38 0.146 1/3 funz.GIRWPORT(P1: I00500R58001; P2: 40; P3: INDCOMAI: ; P4: nil) invia: 00040I00500R58001#’
8.069 1 24.059 1/3 funz.GIRWPORT torna: 0.00:100:0000000000000000000000000000000#
8.070 2 0.173 1/3 Spacchetto: V0000001: 0.00
8.070 3 0.312 1/3 Valuto espressione: KG x*-1/4.92
8.070 4 0.120 1/3 LE000004 Letto sensore: SE000000 ( 0.00) Assegnato alla Variabile: V0000001 ( =) Calcolato con formula: KG x*-1/4.92
8.070 1 0.095 1/3 Spacchetto: V0000002: 100
8.070 2 0.277 1/3 Valuto espressione: RMP1D x
8.070 3 0.108 1/3 LE000004 Letto sensore: SE000002 ( 100) Assegnato alla Variabile: V0000002 ( =) Calcolato con formula: RMP1D x 8.071 4 0.085 1/3 AV000003 Assegnazione Variabili
8.071 5 0.278 1/3 AV000003 0010 Assegno Variabile V0000001 KG/M ( 0,0) = V0000001 KG/M ( 0,0) Risultato = 0,0
8.071 6 0.117 1/3 AV000003 0015 Assegno Variabile V0000002 RPM ( 100) = V0000002 RPM ( 100) Risultato = 100
Esecuzione di un comando condizionato
7.967 42 0.000 1/3 Processo: SP000030 0350 CRGRPMAM
7.967 43 0.154 1/3 CRGRPMAM Comandi dei Sottoprocessi
7.967 44 0.174 1/3 CRGRPMAM 0100 Lettura Tabella: G3SF 0100 Aumento Manuale
7.967 45 0.272 1/3 CRGRPMAM 0100 Valuto Variabili Comando: VRGBAUM Aumenta Giri ( 1) = 1 e’ vero
7.968 46 0.227 1/3 Valuto Riga Comando: .t. : Vero, eseguo comando CRGRPMAM 0100
7.968 47 0.089 1/3 Inizio Lettura Sensori 1 Variabili
7.968 48 0.082 1/3 CRGRPMAM 0100 Assegnaz. Variab. ARGAUMM da eseguire
7.968 49 0.171 1/3 CRGRPMAM0100 Assegnazione Variabile ARGAUMM Su Comando
7.968 50 0.279 1/3 ARGAUMM 0050 Assegno Variabile VRGRPMRI Giri richiesti ( 1500) M VRGMIN Giri A Inizio/Fine Prova ( 1.500) Risultato = 1500
7.968 51 0.217 1/3 ARGAUMM 0100 Assegno Variabile VRGRPMRI Giri richiesti ( 2250) + VRGSTEPM Passo Aumento/Diminuzione ( 750) Risultato = 2250
7.969 52 0.213 1/3 ARGAUMM 0200 Assegno Variabile VRGRPMRI Giri richiesti ( 2250) m VRGMAX Massimo Numero Giri da Ra ( 9.000) Risultato = 2250
7.969 53 0.234 1/3 ARGAUMM 0300 Assegno Variabile VRGBAUM Aumenta Giri ( 0) = 0 0 ( 0) Risultato = 0
Thread secondario: esegue la visualizzazione del pannello Hmi sezione input, la verifica della tastiera
2.601 4 0.000 2/1 Processo: SP000030 0390 CRGRPSTP

2.602 5 0.285 2/1 Timer: 2.61>= 2.59
2.602 6 0.176 2/1 Assegno var.: SVI00001 Valore: 15.820
2.602 7 0.143 2/1 Interv.Hmi: 0.063 Hz: 15.8 Prossima tra : 0.050 ritardo: 0.020
2.602 8 0.169 2/1 Inizializza Hmi
2.602 9 0.225 2/1 Inizializza Hmi Fine
2.603 10 0.232 2/1 Vis. Etich.: Arresto pos.: 10.00 90.00 dim.: 212.50 50.00 ninter: 19.00
2.603 11 0.272 2/1 Vis. Etich.: Aumenta Giri pos.: 226.00 90.00 dim.: 212.50 50.00 ninter: 19.00
2.603 12 0.492 2/1 Vis. Etich.: Giri richiesti pos.: 441.00 90.00 dim.: 212.50 50.00 ninter: 19.00
2.604 13 0.267 2/1 Vis. Etich.: Diminuisci giri pos.: 657.00 90.00 dim.: 212.50 50.00 ninter: 19.00
2.604 14 0.207 2/1 Vis. Etich.: Avvio Ciclo pos.: 10.00 38.00 dim.: 212.50 50.00 ninter: 19.00
2.604 15 0.224 2/1 Vis. Etich.: Arresto Ciclo pos.: 226.00 38.00 dim.: 212.50 50.00 ninter: 19.00
2.604 16 0.275 2/1 Vis. Etich.: Stato Ciclo pos.: 441.00 38.00 dim.: 212.50 50.00 ninter: 19.00
2.605 17 0.191 2/1 Vis. Etich.: Registra Dati pos.: 657.00 38.00 dim.: 212.50 50.00 ninter: 19.00
2.605 18 0.293 2/1 Fine Hmi Durata: 0.063
2.605 19 0.339 2/1 Timer: 2.61>= 2.19
2.605 20 0.146 2/1 Test tasto processo, rit: 0.420 prox: 2.190 att: 0.000
2.606 21 0.475 2/1 Val.tasto: 0
2.606 22 0.136 2/1 Var. non impostata, Procedo: SP000030 0395