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.

La modalità di dichiarazione del device nell'unità di configurazione è:

;----------------------------------------
; Internal device declarations
;----------------------------------------
<nome_device>   HMI2	TCamp

Dove:

<nome_device>nome assegnato al device
HMI2parola chiave che identifica il device
TCamptempo di campionamento device (3÷250 ms)
:important:Attenzione:
È necessario che tutte le voci di definizione siano presenti sulla stessa linea.

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:

TastoFunzionalità
Tasto ENTERConferma 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 CLEARCancellazione/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 MENOSelezione 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:

TastoFunzionalità
Tasto ENTERConferma 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 CLEARCancellazione/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 MENODecremento 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:

TastoValore parametro key
Tasto ENTER1
Tasto CLEAR8
Tasto PIU'4
Tasto MENO32
Tasto F16
Tasto F + CLEAR24

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:

TastoValore parametro key
Tasto ENTER1
Tasto CLEAR8
Tasto PIU'4
Tasto MENO32
Tasto F16
Tasto F + CLEAR24

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.

ValoreCarattereValoreCarattereValoreCarattereValoreCarattere
0014E28J42~
1115F29c43M
2216G30h44&
3317H31!45[
4418I32@46]
5519L33-47;
6620n34u48,
7721o35 49:
8822P36_50.
9923Q37=518.
10a24r38$
11b25t39*
12c26U40^
13d27Y41%
:info: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
NomeDimensioneValore di defaultTipo di accessoUnità di misuraRange validoCondizioni di scritturaDescrizione
keyLong-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.
ledsLong0RW---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.
blinkledsLong0RW---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.
numdisByte-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÷31Byte-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.
blinkcharLong0RW---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.
ScreenALong0RW---Valore per visualizzazione ricorsiva
E' un valore da visualizzare ricorsivamente se abilitato.
ScreenBLong0RW---Valore per visualizzazione ricorsiva
E' un valore da visualizzare ricorsivamente se abilitato.
ScreenCLong0RW---Valore per visualizzazione ricorsiva
E' un valore da visualizzare ricorsivamente se abilitato.
decptAByte0RW-0÷5-Punto decimale per visualizzazione ricorsiva
E' la posizione del punto decimale nella visualizzazione ricorsiva A.
decptBByte0RW-0÷5-Punto decimale per visualizzazione ricorsiva
E' la posizione del punto decimale nella visualizzazione ricorsiva B.
decptCByte0RW-0÷5-Punto decimale per visualizzazione ricorsiva
E' la posizione del punto decimale nella visualizzazione ricorsiva C.
ncharAByte0Read - Write-1÷7-Numero di caratteri per visualizzazione ricorsiva
E' il numero di caratteri di cui è composta la visualizzazione ricorsiva A.
ncharBByte0RW-1÷7-Numero di caratteri per visualizzazione ricorsiva
E' il numero di caratteri di cui è composta la visualizzazione ricorsiva B.
ncharCByte0RW-1÷7-Numero di caratteri per visualizzazione ricorsiva
E' il numero di caratteri di cui è composta la visualizzazione ricorsiva C.
offsAByte0RW-0÷numdis-1-Posizione per visualizzazione ricorsiva
E' la posizione rispetto al display di destra della visualizzazione ricorsiva A. Range valido: 0 ÷ numdis-1.
offsBByte0RW-0÷numdis-1-Posizione per visualizzazione ricorsiva
E' la posizione rispetto al display di destra della visualizzazione ricorsiva B. Range valido: 0 ÷ numdis-1.
offsCByte0RW-0÷numdis-1-Posizione per visualizzazione ricorsiva
E' la posizione rispetto al display di destra della visualizzazione ricorsiva C. Range valido: 0 ÷ numdis-1.
scflagsWord0RW---Configurazione per visualizzazioni ricorsive
È un valore a campi di bit per configurare le visualizzazioni ricorsive screenA, screenB e screenC.
BitValoreDescrizione
00Visualizzazione ricorsiva screenA disabilitata
1Visualizzazione ricorsiva screenA abilitata
10Visualizzazione ricorsiva screenB disabilitata
1Visualizzazione ricorsiva screenB abilitata
20Visualizzazione ricorsiva screenC disabilitata
1Visualizzazione ricorsiva screenC abilitata
30Segno visualizzazione ricorsiva screenA disabilitato
1Segno visualizzazione ricorsiva screenA disabilitato
40Segno visualizzazione ricorsiva screenB disabilitato
1Segno visualizzazione ricorsiva screenB disabilitato
50Segno visualizzazione ricorsiva screenC disabilitato
1Segno visualizzazione ricorsiva screenCS disabilitato
60Leading Zero Blank screenA disabilitato
1Leading Zero Blank screenA abilitato
70Leading Zero Blank screenB disabilitato
1Leading Zero Blank screenB abilitato
80Leading Zero Blank screenC disabilitato
1Leading Zero Blank screenC abilitato
devalueLong0RW---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.
dencharByte0RW-1÷7-Numero caratteri introducibili in data entry
Imposta il numero dei caratteri introducibili per data entry.
deoffsByte0RW-0÷numdis-1-Posizione data entry sul display
Imposta la posizione sul display, rispetto alla cifra più a destra, del data entry.
dedecptByte0RW-0÷5-Numero cifre decimali per data entry
Indica il numero di cifre decimali per il data entry.
deuplimLong0RW---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.
delowlimLong0RW---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.
deflagsWord0RW---Configurazione per data entry
È un valore a campi di bit per configurare il Data Entry.
BitValoreDescrizione
00Solo visualizzazione
1Introduzione dato
10Leading Zero Blank non attivo (valido solo per visualizzazione quindi con bit 0 = 0)
1Leading Zero Blank attivo (valido solo per visualizzazione quindi con bit 0 = 0)
20Introduzione/visualizzazione segno abilitata
1Introduzione/visualizzazione segno disabilitata
30Data Entry standard
1Data entri con tasti +/- come aumenta diminuisci
40Controllo limiti non abilitato
1Controllo limiti abilitato
deExKeymaskLong-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.
deExitKeyLong-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.
errcodeByte0RW-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:
CodiceDescrizione
0Nessun errore
1Segnala un errore nella parametrizzazione della visualizzazione ricorsiva A.
2Segnala un errore nella parametrizzazione della visualizzazione ricorsiva B.
3Segnala un errore nella parametrizzazione della visualizzazione ricorsiva C.
4Segnala un errore nella parametrizzazione del data entry.
errvalueByte0RW-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:
CodiceDescrizione
0Nessuna informazione riguardo l'errore
1Segnala che la visualizzazione esce dal display. Controllare l'offset della visualizzazione ed il numero di caratteri.
2Segnala che la posizione del punto decimale specificata è errata. Non è possibile ad esempio impostare la posizione del punto decimale uguale al numero caratteri.
3Segnala 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.
4Segnala un valore non valido di dato del dataentry confermato con il comando EXITDEC.
5Segnala 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).
6Segnala 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.
wrncodeByte0RW-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:
CodiceDescrizione
0Nessun warning
1Segnala un warning nella parametrizzazione della visualizzazione ricorsiva A.
2Segnala un warning nella parametrizzazione della visualizzazione ricorsiva B.
3Segnala un warning nella parametrizzazione della visualizzazione ricorsiva C.
4Segnala un warning nella parametrizzazione del data entry.
5Segnala un warning dovuto alla richiesta di esecuzione dei comandi EXITDE o EXITDEC senza che il data entry sia attivo (stato st_dentry=0)
6Segnala un warning dovuto alla richiesta di esecuzione del comando DATAENTRY con il data entry già attivo (stato st_dentry=1).
wrnvalueByte0RW-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:
CodiceDescrizione
0Nessuna informazione riguardo l'errore
1Segnala che la posizione del punto decimale specificata è fuori range.
2Segnala che il numero di caratteri specificato è fuori range.
3Segnala che l'offset specificato è fuori range (superiore al numero dei display presenti)
4Segnala 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).
NomeValore di defaultDescrizione
st_modified0Data entry modificato
Segnala che il dato in data entry è stato modificato.
st_dentry0Stato data entry
Segnala che il device è in data entry.
st_uplim0Stato 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_lowlim0Stato 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_exitcmd0Stato 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_error0Presenza 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_warning0Presenza 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
NomeCondizioneDescrizione
DATAENTRYst_dentry=0Entra nella procedura data entry
Permette di entrare nella procedura di data entry.
EXITDEst_dentry=1Esce dalla procedura data entry
Permette di uscira dalla procedura di data entry.
EXITDECst_dentry=1Esce 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).
RSERRst_error=1Reset dello stato di errore
Azzera lo stato st_error.
RSWRNst_warning=1Reset dello stato di warning
Azzera lo stato st_warning.
  • Ultima modifica: 2020/07/13 15:13