DEVICE HMI2
1. Introduzione
HMI2 è un device appositamente studiato per assolvere alle funzioni di interfaccia tra l'operatore, un display fino a 32 digit, leds (fino a 32) ed una tastiera (fino a 32 tasti). Gestisce 3 visualizzazioni ricorsive contemporanee configurabili ciascuna con proprio numero di caratteri, punto decimale e posizione all'interno del display. Possiede, integrata, la funzionalità di data entry (introduzione di un dato tramite la tastiera) completamente configurabile rispetto al numero caratteri, alla posizione e alle cifre decimali con la possibilità di controllo dei limiti superiore ed inferiore del dato introdotto.
1.1 Dichiarazione del device
La modalità di dichiarazione del device nell'unità di configurazione è:
;---------------------------------------- ; Internal device declarations ;---------------------------------------- <nome_device> HMI2 TCamp
Dove:
<nome_device> | nome assegnato al device |
HMI2 | parola chiave che identifica il device |
TCamp | tempo di campionamento device (3÷250 ms) |
Attenzione: È necessario che tutte le voci di definizione siano presenti sulla stessa linea. |
---|
1.2 Funzionamento
Analizziamo più in dettaglio le caratteristiche del device HMI2.
1.2.1 Il display
Il display è costituito da una serie di digit (caratteri) variabili a seconda della piattaforma hardware del microQMove che si sta utilizzando. Ad esempio in un D221 o in un D983 i digit del display sono 7, mentre nel D231 i digit arrivano a 11.
Le figure sono riportate solamente a titolo di esempio in quanto il device HMI2 ha un funzionamento indipendente dallo strumento che si sta utilizzando.
1.2.2 Visualizzazioni ricorsive
Per visualizzazione ricorsiva si intende una visualizzazione che viene aggiornata in maniera continua, più precisamente ad ogni tempo di campionamento del device. Con l'HMI2 si possono abilitare fino a 3 di queste, indipendenti e posizionate a piacimento all'interno del display.
A seconda del numero di caratteri con cui è configurata la visualizzazione, un'area del display viene “presa in possesso” dalla visualizzazione stessa cosicché in quell'area non sarà più possibile scrivere dei caratteri perché verrebbero immediatamente sovrascritti.
In figura c'è un esempio di come sia possibile configurare le visualizzazioni a proprio piacimento. In questo caso ci sono 2 visualizzazioni ricorsive una di 2 caratteri e l'altra di 3 caratteri posizionate rispettivamente alla posizione 8 e alla posizione 0. La visualizzazione ricorsiva da 3 caratteri ha anche il numero di cifre decimali impostato a 1. Nei display non occupati dalle visualizzazioni ricorsive è possibile impostare dei caratteri (numeri o lettere) affinché vengano visualizzati; non è possibile impostare caratteri sui display nelle posizioni 0,1,2 e 8,9 poiché le visualizzazioni ricorsive ivi posizionate li sovrascriverebbero.
Per ogni visualizzazione ricorsiva i valori massimo e minimo che possono essere visualizzati dipendono come detto dal numero di cifre e dall'abilitazione segno. Se il dato da visualizzare è inferiore a tale valore minimo oppure superiore a tale valore massimo, il display visualizzerà i caratteri di out of range $$$$.
1.2.3 Inserimento dati (data entry)
La funzionalità di data entry permette all'utente di introdurre un valore numerico da tastiera potendo configurare il numero di caratteri introducibili, la posizione sul display, la posizione dell'eventuale punto decimale. È possibile, inoltre, uscire dal data entry con un tasto a piacimento, oppure con dei comandi appositi. Un particolare parametro a campo di bit permette di abilitare il controllo del valore del dato introdotto con i limiti superiore ed inferiore (impostabili tramite appositi parametri), di abilitare l'introduzione di dati con o senza segno, ed altre funzionalità riportate nelle tabelle di descrizione parametri e comandi. Questa ampia configurabilità permette attraverso poche istruzioni di linguaggio Qcl di assolvere alle più svariate esigenze di interfaccia uomo-macchina.
1.2.4 Funzionalità della tastiera in data entry
Analizzeremo ora in dettaglio le istruzioni per poter introdurre dati da tastiera specificando le funzioni dei tasti. Il device HMI2 mette a disposizione dell'utente due modalità di introduzione dati, la standard e la modalità incrementa/diminuisci.
1.2.4.1 Modalità standard
La tabella riassume le funzioni di ciascun tasto:
Tasto | Funzionalità |
---|---|
Tasto ENTER | Conferma del dato introdotto: esegue il controllo dei limiti del dato in introduzione (se abilitati con l'apposito bit del parametro deflags), copia il valore introdotto sul parametro devalue e produce l'uscita dalla funzione di introduzione dati. |
Tasto CLEAR | Cancellazione/ripristino del dato: esegue alternativamente l'azzeramento del dato in introduzione, ed il ripristino del suo valore iniziale. |
Tasto PIU' | Incremento cifra selezionata: esegue l'incremento della cifra selezionata. |
Tasto MENO | Selezione cifra: sposta la selezione della cifra su quella a destra rispetto a quella selezionata. |
1.2.4.2 Modalità aumenta/diminuisci
La tabella riassume le funzioni di ciascun tasto:
Tasto | Funzionalità |
---|---|
Tasto ENTER | Conferma del dato introdotto: esegue il controllo dei limiti del dato in introduzione (se abilitati con l'apposito bit del parametro deflags), copia il valore introdotto sul parametro devalue e produce l'uscita dalla funzione di introduzione dati. |
Tasto CLEAR | Cancellazione/ripristino del dato: esegue alternativamente l'azzeramento del dato in introduzione, ed il ripristino del suo valore iniziale. |
Tasto PIU' | Incremento valore in introduzione: esegue l'incremento del valore in introduzione. Tenendo premuto il tasto, l'incremento avviene in modo continuo e con velocità che aumenta in maniera esponenziale. |
Tasto MENO | Decremento valore in introduzione: esegue il decremento del valore in introduzione. Tenendo premuto il tasto, il decremento avviene in modo continuo e con velocità che aumenta in maniera esponenziale. |
Quando il bit zero del parametro deflags vale 0 la funzionalità DATAENTRY può essere utilizzata non per una vera e propria introduzione, ma per una semplice visualizzazione. Questa funzione può essere comoda quando il dato ha un valore statico e quindi non serve utilizzare le visualizzazioni ricorsive. Se si deve, ad esempio, visualizzare un messaggio di errore ed il codice dell'errore stesso per un certo tempo, ecco che, la funzione che visualizza tale messaggio può essere realizzata senza dover alterare la programmazione delle visualizzazioni ricorsive.
1.2.5 Valori delle variabili riferite a tasti o led
In questo paragrafo vengono riportate le assegnazioni dei bit delle variabili preposte rispetto ai tasti e ai leds sui vari hardware microQMove.
1.2.5.1 Tastiera, display e leds per serie D221
Riepilogando:
Tasto | Valore parametro key |
---|---|
Tasto ENTER | 1 |
Tasto CLEAR | 8 |
Tasto PIU' | 4 |
Tasto MENO | 32 |
Tasto F | 16 |
Tasto F + CLEAR | 24 |
Valore di offset in relazione al digit
Nome dei parametri dis0…31 in relazione al digit
1.2.5.2 Tastiera, display e leds per serie D231
Riepilogando:
Tasto | Valore parametro key |
---|---|
Tasto ENTER | 1 |
Tasto CLEAR | 8 |
Tasto PIU' | 4 |
Tasto MENO | 32 |
Tasto F | 16 |
Tasto F + CLEAR | 24 |
1.2.6 Valori delle variabili dis0÷31
In questo paragrafo vengono riportati i codici da utilizzare per la visualizzazione dei caratteri sia numerici che speciali. Questi codici devono essere utilizzati per i parametri dis0÷31.
Valore | Carattere | Valore | Carattere | Valore | Carattere | Valore | Carattere |
---|---|---|---|---|---|---|---|
0 | 0 | 14 | E | 28 | J | 42 | ~ |
1 | 1 | 15 | F | 29 | c | 43 | M |
2 | 2 | 16 | G | 30 | h | 44 | & |
3 | 3 | 17 | H | 31 | ! | 45 | [ |
4 | 4 | 18 | I | 32 | @ | 46 | ] |
5 | 5 | 19 | L | 33 | - | 47 | ; |
6 | 6 | 20 | n | 34 | u | 48 | , |
7 | 7 | 21 | o | 35 | 49 | : | |
8 | 8 | 22 | P | 36 | _ | 50 | . |
9 | 9 | 23 | Q | 37 | = | 51 | 8. |
10 | a | 24 | r | 38 | $ | ||
11 | b | 25 | t | 39 | * | ||
12 | c | 26 | U | 40 | ^ | ||
13 | d | 27 | Y | 41 | % |
Nota:il bit 7 (corrispondente al valore -128 decimale) dei parametri dis0÷31 può essere utilizzato con ogni carattere per visualizzare anche il punto decimale. Se definiamo la seguente costante nella unità di configurazione: CHAR_POINT &H80 ; bit to enable decimal point sarà possibile poi stampare stringhe con punto decimale in modo semplice. Ad esempio per stampare: Prnr dvHMI:dis6 = CHAR_P dvHMI:dis5 = CHAR_R ORB CHAR_POINT dvHMI:dis4 = CHAR_N dvHMI:dis3 = CHAR_R ORB CHAR_POINT |
---|
1.3 Tabella parametri
Nome | Dimensione | Valore di default | Tipo di accesso | Unità di misura | Range valido | Condizioni di scrittura | Descrizione | ||
---|---|---|---|---|---|---|---|---|---|
key | Long | - | R | - | - | - | Stato dei tasti È un parametro a campo di bit ognuno dei quali rappresenta lo stato dei tasti. Per l'associazione dei bit ai tasti fare riferimento alle appendici. |
||
leds | Long | 0 | RW | - | - | - | Stato dei led È un parametro a campo di bit ognuno dei quali rappresenta lo stato dei led. Modificandone il valore è possibile accendere o spegnere ciascun led; per l'associazione dei bit ai leds fare riferimento alle appendici. |
||
blinkleds | Long | 0 | RW | - | - | - | Stato dei led Rappresenta in ogni istante lo stato del blink nel led tastiera. Questa variabile può essere modificata anche da device quando vengono eseguite operazioni nella tastiera. La mappatura dei bit rispecchia quella del parametro leds. Perché un led lampeggi esso deve comunque essere attivato dall'apposito bit della variabile leds. |
||
numdis | Byte | - | R | - | - | - | Numero dei display disponibili Rappresenta il numero dei display disponibili. A seconda della piattaforma hardware(D221 piuttosto che D231 etc) sulla quale il device verrà utilizzato questo parametro assumerà valori diversi. Ad esempio su un D231 avrà valore 11. |
||
dis0÷31 | Byte | - | RW | - | - | - | Carattere visualizzato Rappresenta il contenuto attuale del carattere del display nella posizioni 0…31. dis0 è il display più a destra e dis31 è quello più a sinistra. |
||
blinkchar | Long | 0 | RW | - | - | - | Lampeggio carattere E' una variabile a bit per abilitare il blink su un carattere. Ogni bit è un carattere. Il bit meno significativo è associato al display più a destra. |
||
ScreenA | Long | 0 | RW | - | - | - | Valore per visualizzazione ricorsiva E' un valore da visualizzare ricorsivamente se abilitato. |
||
ScreenB | Long | 0 | RW | - | - | - | Valore per visualizzazione ricorsiva E' un valore da visualizzare ricorsivamente se abilitato. |
||
ScreenC | Long | 0 | RW | - | - | - | Valore per visualizzazione ricorsiva E' un valore da visualizzare ricorsivamente se abilitato. |
||
decptA | Byte | 0 | RW | - | 0÷5 | - | Punto decimale per visualizzazione ricorsiva E' la posizione del punto decimale nella visualizzazione ricorsiva A. |
||
decptB | Byte | 0 | RW | - | 0÷5 | - | Punto decimale per visualizzazione ricorsiva E' la posizione del punto decimale nella visualizzazione ricorsiva B. |
||
decptC | Byte | 0 | RW | - | 0÷5 | - | Punto decimale per visualizzazione ricorsiva E' la posizione del punto decimale nella visualizzazione ricorsiva C. |
||
ncharA | Byte | 0 | Read - Write | - | 1÷7 | - | Numero di caratteri per visualizzazione ricorsiva E' il numero di caratteri di cui è composta la visualizzazione ricorsiva A. |
||
ncharB | Byte | 0 | RW | - | 1÷7 | - | Numero di caratteri per visualizzazione ricorsiva E' il numero di caratteri di cui è composta la visualizzazione ricorsiva B. |
||
ncharC | Byte | 0 | RW | - | 1÷7 | - | Numero di caratteri per visualizzazione ricorsiva E' il numero di caratteri di cui è composta la visualizzazione ricorsiva C. |
||
offsA | Byte | 0 | RW | - | 0÷numdis-1 | - | Posizione per visualizzazione ricorsiva E' la posizione rispetto al display di destra della visualizzazione ricorsiva A. Range valido: 0 ÷ numdis-1. |
||
offsB | Byte | 0 | RW | - | 0÷numdis-1 | - | Posizione per visualizzazione ricorsiva E' la posizione rispetto al display di destra della visualizzazione ricorsiva B. Range valido: 0 ÷ numdis-1. |
||
offsC | Byte | 0 | RW | - | 0÷numdis-1 | - | Posizione per visualizzazione ricorsiva E' la posizione rispetto al display di destra della visualizzazione ricorsiva C. Range valido: 0 ÷ numdis-1. |
||
scflags | Word | 0 | RW | - | - | - | Configurazione per visualizzazioni ricorsive È un valore a campi di bit per configurare le visualizzazioni ricorsive screenA, screenB e screenC. |
||
Bit | Valore | Descrizione | |||||||
0 | 0 | Visualizzazione ricorsiva screenA disabilitata | |||||||
1 | Visualizzazione ricorsiva screenA abilitata | ||||||||
1 | 0 | Visualizzazione ricorsiva screenB disabilitata | |||||||
1 | Visualizzazione ricorsiva screenB abilitata | ||||||||
2 | 0 | Visualizzazione ricorsiva screenC disabilitata | |||||||
1 | Visualizzazione ricorsiva screenC abilitata | ||||||||
3 | 0 | Segno visualizzazione ricorsiva screenA disabilitato | |||||||
1 | Segno visualizzazione ricorsiva screenA disabilitato | ||||||||
4 | 0 | Segno visualizzazione ricorsiva screenB disabilitato | |||||||
1 | Segno visualizzazione ricorsiva screenB disabilitato | ||||||||
5 | 0 | Segno visualizzazione ricorsiva screenC disabilitato | |||||||
1 | Segno visualizzazione ricorsiva screenCS disabilitato | ||||||||
6 | 0 | Leading Zero Blank screenA disabilitato | |||||||
1 | Leading Zero Blank screenA abilitato | ||||||||
7 | 0 | Leading Zero Blank screenB disabilitato | |||||||
1 | Leading Zero Blank screenB abilitato | ||||||||
8 | 0 | Leading Zero Blank screenC disabilitato | |||||||
1 | Leading Zero Blank screenC abilitato | ||||||||
devalue | Long | 0 | RW | - | - | - | Valore dato in data entry Valore del dato in data entry. Viene aggiornato con il valore introdotto al momento dell'uscita dal data entry stesso. |
||
denchar | Byte | 0 | RW | - | 1÷7 | - | Numero caratteri introducibili in data entry Imposta il numero dei caratteri introducibili per data entry. |
||
deoffs | Byte | 0 | RW | - | 0÷numdis-1 | - | Posizione data entry sul display Imposta la posizione sul display, rispetto alla cifra più a destra, del data entry. |
||
dedecpt | Byte | 0 | RW | - | 0÷5 | - | Numero cifre decimali per data entry Indica il numero di cifre decimali per il data entry. |
||
deuplim | Long | 0 | RW | - | - | - | Valore massimo dato introdotto con data entry È il valore massimo che può assumere il dato introdotto con data entry senza che si attivi il flag di segnalazione di superamento del limite superiore. |
||
delowlim | Long | 0 | RW | - | - | - | Valore minimo dato introdotto con data entry È il valore minimo che può assumere il dato introdotto con data entry senza che si attivi il flag di segnalazione di superamento del limite inferiore. |
||
deflags | Word | 0 | RW | - | - | - | Configurazione per data entry È un valore a campi di bit per configurare il Data Entry. |
||
Bit | Valore | Descrizione | |||||||
0 | 0 | Solo visualizzazione | |||||||
1 | Introduzione dato | ||||||||
1 | 0 | Leading Zero Blank non attivo (valido solo per visualizzazione quindi con bit 0 = 0) | |||||||
1 | Leading Zero Blank attivo (valido solo per visualizzazione quindi con bit 0 = 0) | ||||||||
2 | 0 | Introduzione/visualizzazione segno abilitata | |||||||
1 | Introduzione/visualizzazione segno disabilitata | ||||||||
3 | 0 | Data Entry standard | |||||||
1 | Data entri con tasti +/- come aumenta diminuisci | ||||||||
4 | 0 | Controllo limiti non abilitato | |||||||
1 | Controllo limiti abilitato | ||||||||
deExKeymask | Long | - | RW | - | - | - | Configurazione tasti di uscita da data entry Maschera di abilitazione dei tasti di uscita dal data entry. È una maschera di bit che abilita uno o più tasti ad uscire dal data entry. La corrispondenza del bit con il tasto è la medesima del parametro key. Indipendentemente dal valore impostato in questo parametro il tasto ENTER fa uscire dal data entry. |
||
deExitKey | Long | - | R | - | - | - | Visualizzazione tasto di uscita da data entry È un valore a campo di bit che indica il tasto che ha fatto uscire dal data entry. La corrispondenza del bit con il tasto è la medesima del parametro key. Se il valore è 0 significa che si è usciti dal data entry con i comandi EXITDE ed EXITDEC. |
||
errcode | Byte | 0 | RW | - | 0÷100 | - | Codice di identificazione errore Quando il device HMI2 non riesce ad eseguire le operazioni derivanti da una non corretta programmazione da parte dell'utente segnala questa condizione tramite l'attivazione dello stato st_error. Il device HMI2, inoltre, rende disponibili, tramite i valori sulle variabili errcode ed ervalue, alcune informazioni per meglio comprendere il tipo di errore e quale condizione l'ha generato. Tali informazioni e lo stato di errore st_error, permangono finché non viene eseguito l'apposito comando RSERR che li cancella. La seguente tabella specifica i valori assunti dalla variabile errcode: |
||
Codice | Descrizione | ||||||||
0 | Nessun errore | ||||||||
1 | Segnala un errore nella parametrizzazione della visualizzazione ricorsiva A. | ||||||||
2 | Segnala un errore nella parametrizzazione della visualizzazione ricorsiva B. | ||||||||
3 | Segnala un errore nella parametrizzazione della visualizzazione ricorsiva C. | ||||||||
4 | Segnala un errore nella parametrizzazione del data entry. | ||||||||
errvalue | Byte | 0 | RW | - | 0÷100 | - | Codice di identificazione della causa dell'errore Per mezzo della variabile errvalue è possibile ottenere informazioni più dettagliate riguardo l'errore. La seguente tabella specifica i valori assunti dalla variabile errvalue: |
||
Codice | Descrizione | ||||||||
0 | Nessuna informazione riguardo l'errore | ||||||||
1 | Segnala che la visualizzazione esce dal display. Controllare l'offset della visualizzazione ed il numero di caratteri. | ||||||||
2 | Segnala che la posizione del punto decimale specificata è errata. Non è possibile ad esempio impostare la posizione del punto decimale uguale al numero caratteri. | ||||||||
3 | Segnala che il parametro uplim (limite superiore data entry) è inferiore a lowlim (limite inferiore data entry). L'errore non avviene se il controllo dei limiti è disabilitato. | ||||||||
4 | Segnala un valore non valido di dato del dataentry confermato con il comando EXITDEC. | ||||||||
5 | Segnala una collisione tra due visualizzazioni ricorsive o tra una visualizzazione ricorsiva ed il data entry. Per collisione si intende l'utilizzo di una zona del display da parte di più oggetti (visualizzazioni ricorsive o data entry). | ||||||||
6 | Segnala che il segno non è valido. Avviene quando si imposta un numero caratteri pari a 1 ed il segno è abilitato. Aumentare il numero caratteri (minimo 2) oppure disabilitare il segno. | ||||||||
wrncode | Byte | 0 | RW | - | 0÷100 | - | Codice di identificazione warning Quando i parametri del device HMI2 vengono programmati con valori fuori range essi non vengono accettati e mantengono il loro valore precedente. Il device segnala questa condizione tramite l'attivazione dello stato st_warning. Il device HMI2, inoltre, rende disponibili, tramite i valori sulle variabili wrncode ed wrnvalue, alcune informazioni per meglio comprendere il tipo di warning e quale condizione l'ha generato. Tali informazioni e lo stato di errore st_warning, permangono finché non viene eseguito l'apposito comando RSWRN che li cancella. La seguente tabella specifica i valori assunti dalla variabile wrncode: |
||
Codice | Descrizione | ||||||||
0 | Nessun warning | ||||||||
1 | Segnala un warning nella parametrizzazione della visualizzazione ricorsiva A. | ||||||||
2 | Segnala un warning nella parametrizzazione della visualizzazione ricorsiva B. | ||||||||
3 | Segnala un warning nella parametrizzazione della visualizzazione ricorsiva C. | ||||||||
4 | Segnala un warning nella parametrizzazione del data entry. | ||||||||
5 | Segnala un warning dovuto alla richiesta di esecuzione dei comandi EXITDE o EXITDEC senza che il data entry sia attivo (stato st_dentry=0) | ||||||||
6 | Segnala un warning dovuto alla richiesta di esecuzione del comando DATAENTRY con il data entry già attivo (stato st_dentry=1). | ||||||||
wrnvalue | Byte | 0 | RW | - | 0÷100 | - | Codice di identificazione della causa del warning Per mezzo della variabile wrnvalue è possibile ottenere informazioni più dettagliate riguardo l'errore. La seguente tabella specifica i valori assunti dalla variabile wrnvalue: |
||
Codice | Descrizione | ||||||||
0 | Nessuna informazione riguardo l'errore | ||||||||
1 | Segnala che la posizione del punto decimale specificata è fuori range. | ||||||||
2 | Segnala che il numero di caratteri specificato è fuori range. | ||||||||
3 | Segnala che l'offset specificato è fuori range (superiore al numero dei display presenti) | ||||||||
4 | Segnala una collisione tra due visualizzazioni ricorsive o tra una visualizzazione ricorsiva ed il data entry. Per collisione si intende l'utilizzo di una zona del display da parte di più oggetti (visualizzazioni ricorsive o data entry). |
1.4 Tabella stati
Nome | Valore di default | Descrizione |
---|---|---|
st_modified | 0 | Data entry modificato Segnala che il dato in data entry è stato modificato. |
st_dentry | 0 | Stato data entry Segnala che il device è in data entry. |
st_uplim | 0 | Stato di superamento limite superiore Segnala che il dato introdotto è superiore al valore impostato nel parametro deuplim. Azzerato dal comando DATAENTRY ed aggiornato all'uscita dal data entry con conferma del dato. |
st_lowlim | 0 | Stato di superamento limite inferiore Segnala che il dato introdotto è inferiore al valore impostato nel parametro delowlim. Azzerato dal comando DATAENTRY ed aggiornato all'uscita dal data entry con conferma del dato. |
st_exitcmd | 0 | Stato di uscita con comando EXITDE Segnala l'uscita dal data entry con comando EXITDE. Azzerato dal comando DATAENTRY ed aggiornato all'uscita dal data entry. |
st_error | 0 | Presenza di un errore Indica lo stato di errore del device, per riconoscere il tipo di errore si deve far riferimento alle variabili errcode ed errvalue: 0: errore non presente, 1: errore presente |
st_warning | 0 | Presenza di un warning Indica lo stato di warning del device, per riconoscere il tipo di warning si deve far riferimento alle variabili wrncode e wrnalue: 0: warning non presente, 1: warning presente |
1.5 Tabella comandi
Nome | Condizione | Descrizione |
---|---|---|
DATAENTRY | st_dentry=0 | Entra nella procedura data entry Permette di entrare nella procedura di data entry. |
EXITDE | st_dentry=1 | Esce dalla procedura data entry Permette di uscira dalla procedura di data entry. |
EXITDEC | st_dentry=1 | Esce dalla procedura data entry dopo conferma Permette di uscire dalla procedura di data entry con conferma del dato in introduzione (come se avessimo premuto il tasto ENTER). |
RSERR | st_error=1 | Reset dello stato di errore Azzera lo stato st_error. |
RSWRN | st_warning=1 | Reset dello stato di warning Azzera lo stato st_warning. |