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 |