Differenze

Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.

Link a questa pagina di confronto

software:devices:mmiq [2019/08/29 17:01] – modifica esterna 127.0.0.1software:devices:mmiq [2020/07/13 15:14] (versione attuale) qem103
Linea 1: Linea 1:
 +====== DEVICE MMIQ ======
 +
 +
 +====== - Introduzione ======
 +
 +Il device MMIQ è necessario per creare un sistema d'interfaccia uomo - macchina (HMI)
 +programmabile tramite l'ambiente di sviluppo Qpaint.\\
 +Il device fornisce una serie d'informazioni sul pannello d'interfaccia con una rapidità d'aggiornamento
 +impostabile tramite il tempo di campionamento.
 +
 +
 +===== - Installazione =====
 +
 +==== - DICHIARAZIONE DEVICE NELL'UNITÀ DI CONFIGURAZIONE (.CNF) ====
 +
 +Nell'unità di configurazione, nella sezione BUS, deve essere dichiarato uno strumento il cui
 +firmware contenga il device MMIQ.\\
 +Nella sezione INTDEVICE deve essere aggiunta la seguente definizione:
 +<code QCL>
 +;---------------------------------
 +; Dichiarazione devices interni
 +;---------------------------------
 +INTDEVICE
 +<nome device>   MMIQ         TCamp
 +</code>
 +
 +dove:
 +|<nome device>|Nome assegnato al device.|
 +|MMIQ|Parola chiave che identifica il device.|
 +|Tcamp|Tempo campionamento device (1÷10 ms).|
 +
 +=== - Esempio ===
 +<code QCL>
 +;--------------------------------
 +; Dichiarazione devices interni
 +;--------------------------------
 +INTDEVICE
 +DEV   MMIQ        0001
 +</code>
 +
 +
 +===== - Funzionamento =====
 +
 +==== - TASTI PREMUTI ====
 +
 +I parametri //key// e //keyf// sono utilizzati per riconoscere quale tasto è stato premuto. I valori associati
 +ad ogni tasto sono riportati nel capitolo di questo manuale "Comandi e Parametri".\\
 +Ogni bit dei parametri //key// e //keyf// è associato ad un tasto, quindi se si vuole determinare la
 +pressione contemporanea di più tasti è sufficiente controllare che tali parametri assumano
 +un valore pari alla somma dei valori associati ai tasti.
 +
 +==== - LEDS ====
 +
 +I parametri //leds// e //blinkleds// sono utilizzabili per accedere (o far lampeggiare) e spegnere il
 +led presenti sulla tastiera.\\
 +Normalmente esiste un LED per ogni tasto funzione.\\
 +Per accedere (o far lampeggiare) e spegnere il led è necessario assegnare al parametro il
 +codice associato al tasto funzione.\\
 +Ogni bit dei parametri //leds// e //blinkleds// è associato ad un led.
 +
 +
 +===== - Tabella comandi e parametri =====
 +
 +==== - Simbologia adottata ====
 +
 +Il **nome** del parametro, stato o comando è riportato alla sinistra della tabella.
 +
 +**R**\\
 +Indica se il relativo parametro o stato è ritentivo (al momento dell’inizializzazione del device
 +mantiene lo stato precedentemente definito), oppure lo stato che assume al momento
 +dell’inizializzazione del device.\\
 +Se il device non necessita d'inizializzazione il campo “R” indica il valore che il parametro o
 +stato assume all’accensione della scheda.\\
 +R = Ritentivo\\
 +0 = Al momento dell’inizializzazione del device il valore è forzato a zero.\\
 +1 = Al momento dell’inizializzazione del device il valore è forzato a uno.\\
 +- = Al momento dell’inizializzazione del device è presentato il valore significativo.
 +
 +**D**\\
 +Indica la **dimensione del parametro**.\\
 +F = Flag\\
 +B = Byte\\
 +W = Word\\
 +L = Long\\
 +S = Single Float
 +
 +=== - Condizioni ===
 +Sono descritte tutte le **condizioni necessarie affinché il parametro sia considerato corretto o perché il comando sia accettato**.\\
 +In alcuni casi sono specificati dei valori limite per l’accettazione del parametro: se sono introdotti
 +dei valori esterni ai limiti impostati, il dato è in ogni caso accettato; pertanto devono
 +essere previsti opportuni controlli dell’applicativo tali da garantire il corretto funzionamento.\\
 +Per l’esecuzione di un comando, tutte le relative condizioni devono necessariamente essere
 +soddisfatte; in caso contrario il comando non è inviato.
 +
 +**A**\\
 +Indica il **modo d'accesso**.\\
 +R = Read (lettura).\\
 +W = Write (scrittura).\\
 +R-W= Read / Write.\\
 +
 +==== - Comandi / Parametri per la tastiera ====
 +
 +^Nome^D^R^A^Condizioni^Descrizione^
 +|key|L|-|R|-|**Key**\\ Rappresenta in ogni istante lo stato dei tasti. Ogni tasto è rappresentato da un bit.\\ Per l’assegnazione dei bit fare riferimento a quanto segue:\\ KEY_1 268435456\\ KEY_2 1048576\\ KEY_3 4096\\ KEY_4 536870912\\ KEY_5 2097152\\ KEY_6 8192\\ KEY_7 1073741824\\ KEY_8 4194304\\ KEY_9 16384\\ KEY_0 8388608\\ KEY_CLR -2147483648\\ KEY_ENTER 128\\ KEY_HELP 64\\ KEY_DECPT 32\\ KEY_SIGN 16\\ KEY_ESC 33554432\\ KEY_UP 131072\\ KEY_PGUP 512\\ KEY_LEFT 67108864\\ KEY_NEXT 262144\\ KEY_RIGHT 1024\\ KEY_INS 134217728\\ KEY_DOWN 524288\\ KEY_PGDN 2048|
 +|keyf|L|-|R|-|**Function Key**\\ Rappresenta in ogni istante lo stato dei tasti funzione. Ogni tasto è rappresentato da un bit.\\ Per l’assegnazione dei bit fare riferimento a quanto segue:\\ KEY_F1 33554432\\ KEY_F2 67108864\\ KEY_F3 134217728\\ KEY_F4 268435456\\ KEY_F5 536870912\\ KEY_F6 131072\\ KEY_F7 262144\\ KEY_F8 524288\\ KEY_F9 1048576\\ KEY_F10 2097152\\ KEY_F11 1\\ KEY_F12 2\\ KEY_F13 4|
 +
 +==== - Comandi / Parametri per i leds ====
 +
 +^Nome^D^R^A^Condizioni^Descrizione^
 +|leds|L|0|R-W|-|**Leds status**\\ Parametro utilizzato per accendere i LED dei tasti funzione.\\ Ogni bit del parametro è associato un LED.\\ Per il valore associato al parametro //keyf//.|
 +|blinkleds|L|0|R-W|-|**Blink Leds status**\\ Parametro utilizzato per far lampeggiare i LED dei tasti funzione.\\ Ogni bit del parametro è associato un LED.\\ Per il valore associato al parametro //keyf//.\\ N.B. Perché un led possa lampeggiare è necessario associare il valore relativo a quel led sia al parametro leds che al parametro //blinkleds//.|
 +
 +==== - Comandi / Parametri generici ====
 +
 +^Nome^D^R^A^Condizioni^Descrizione^
 +|language|B|R|R-W|-|**Language**\\ Parametro per impostare la lingua da visualizzare. I valori vanno da 0 al numero di lingue introdotto -1.|
 +|Reverse|B|R|R-W|Non gestito\\ nei display\\ non grafici|**Reverse**\\ Parametro per impostare la modalità reverse del display.\\ Range 0÷1|
 +|contrast|W|R|R-W|-|**Contrast**\\ Parametro per impostare il contrasto del display. Range 1÷99.\\ Default=33\\ Per valori prossimi a 99 il display appare scuro, mentre per valori prossimi a 1 appare chiaro.|
 +|clrtime|W|R|R-W|-|**Clear time**\\ Parametro per impostare il tempo associato del tasto CLEAR.\\ Durante l'inserimento di un dato, se il tasto CLEAR viene premuto per più di quel tempo, il dato introdotto viene azzerato.|
 +|error|B|0|R|-|**Error**\\ Indica se vi sono errori nel device. In dettaglio:\\ **0** = no error\\ **1** = no application present\\ **2** = checksum no match\\ **3** = file format no match\\ **4** = incorrect display size\\ **5** = out of memory\\ **6** = error readin the page\\ **7** = error in erase operation\\ **8** = internal error\\ **9** = error in write memory\\ **10** = error in read operation\\ **11** = internal error\\ **12** = image present but not possible\\ **13** = font not supported\\ **14** = internal error|
 +|memuse|B|0|R|-|**Memory used**\\ Indica la percentuale di memoria utilizzata per memorizzare il file applicativo di QPAint.|
 +
 +
 +===== - Limitazioni =====
 +
 +Nessuna limitazione.
 +
 +
 +===== - Esempio applicativo =====
 +
 +<code QCL>
 +; Accensione di un LED alla pressione del tasto funzione
 +; (si accende solo il LED F1 e tutti gli altri si spengono).
 +
 +IF   DEV:keyf EQ KEY_F1
 +     DEV:leds = KEY_F1
 +ELSE
 +     DEV:keyf EQ KEY_F1
 +ENDIF
 +
 +; Accensione di due LED alla pressione di due tasti funzione
 +; (viene acceso/spento solo il LED relativo al tasto premuto).
 +
 +IF   DEV:keyf EQ KEY_F1
 +     DEV:leds = DEV:leds ORB KEY_F1
 +ELSE
 +     DEV:leds = DEV:leds ANDB (-1-KEY_F1)
 +ENDIF
 +
 +IF   DEV:keyf EQ KEY_F2
 +     DEV:leds = DEV:leds ORB KEY_F2
 +ELSE
 +     DEV:leds = DEV:leds ANDB (-1-KEY_F2)
 +ENDIF
 +</code>
 +