Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
en:appnote:an007 [2017/04/28 18:02] – [Verificare se il dato introdotto è nei limiti] qem103 | en:appnote:an007 [2019/08/29 17:01] (current) – external edit 127.0.0.1 | ||
---|---|---|---|
Line 321: | Line 321: | ||
IF ( dvHMI: | IF ( dvHMI: | ||
CALL ERROR ; | CALL ERROR ; | ||
- | JUMP Dentry ; | + | JUMP Dentry ; |
ENDIF | ENDIF | ||
</ | </ | ||
- | === Controllare il tasto di uscita dal data entry === | + | === Check the output key from data entry === |
- | Controllando il parametro // | + | |
- | ^// | + | |
- | |0|0|Uscita con conferma tramite pressione del tasto ENTER o tramite comando // | + | |
- | |0|1|Uscita senza conferma tramite domando // | + | |
- | |!=0|X|Uscita senza conferma tramite pressione del tasto identificato dal valore del parametro // | + | |
- | === Verificare se il dato è stato modificato | + | Checking the// |
- | Per verificare se il dato introdotto è stato modificato basta semplicemente controllare lo stato // | + | ^// |
- | Il programma completo sarà quindi: | + | |0|0|Exit with confirmation by pressing the ENTER key or by //EXITDEC// command| |
+ | |0|1|Exit without confirmation by //EXITDE// command| | ||
+ | |!=0|X|Exit without confirmation by pressing the button identified by the value of the // | ||
+ | |||
+ | === Check if the data has been modified | ||
+ | |||
+ | To check if the introduced data has changed, simply check the // | ||
+ | The full program will then: | ||
<code QCL> | <code QCL> | ||
Line 357: | Line 359: | ||
IF dvHMI: | IF dvHMI: | ||
- | ;--Uscita da data entry con tasti d' | + | ;--Output from data entry with output keys |
dvHMI: | dvHMI: | ||
dvHMI: | dvHMI: | ||
Line 365: | Line 367: | ||
dvHMI: | dvHMI: | ||
IF dvHMI: | IF dvHMI: | ||
- | dvHMI: | + | dvHMI: |
ELSE | ELSE | ||
IF dvHMI: | IF dvHMI: | ||
- | dvHMI: | + | dvHMI: |
ENDIF | ENDIF | ||
ENDIF | ENDIF | ||
ELSE | ELSE | ||
- | ;--Uscita da data entry con conferma | + | ;--Output from data entry with confirm |
- | ;--Controllo limiti | + | ;--Limits control |
IF ( dvHMI: | IF ( dvHMI: | ||
- | CALL ERROR ;stampa mesaggio d' | + | CALL ERROR ;print error message |
- | JUMP LABEL0 ;ritorna all' | + | JUMP LABEL0 ;return to data entry |
ENDIF | ENDIF | ||
- | ;--Verifica se i dati sono stati modificati | + | ;--Checks if the data has changed |
IF dvHMI: | IF dvHMI: | ||
- | dvHMI: | + | dvHMI: |
dvHMI: | dvHMI: | ||
dvHMI: | dvHMI: | ||
Line 390: | Line 392: | ||
WAIT tm01 | WAIT tm01 | ||
ENDIF | ENDIF | ||
- | cntPieces = dvHMI: | + | cntPieces = dvHMI: |
ENDIF | ENDIF | ||
Line 399: | Line 401: | ||
SUB ERROR | SUB ERROR | ||
- | dvHMI:dis6 = CHAR_ | + | dvHMI:dis6 = CHAR_ |
dvHMI:dis5 = CHAR_E | dvHMI:dis5 = CHAR_E | ||
dvHMI:dis4 = CHAR_R | dvHMI:dis4 = CHAR_R | ||
Line 413: | Line 415: | ||
</ | </ | ||
- | ==== Creare una visualizzazione mista non ricorsiva | + | ==== Create a mixed non-recursive visualization |
- | Si voglia creare una visualizzazione di un messaggio composto dalla stringa | + | You want to create a view of a message consisting of the " |
- | Il codice risulta essere: | + | The code is: |
<code QCL> | <code QCL> | ||
Line 424: | Line 426: | ||
dvHMI:dis6 = CHAR_C | dvHMI:dis6 = CHAR_C | ||
- | ;configura e abilita | + | ;Configure and enable |
dvHMI: | dvHMI: | ||
dvHMI: | dvHMI: | ||
Line 430: | Line 432: | ||
dvHMI: | dvHMI: | ||
- | tm01 = 5000 ;utilizzo del timer per causare un errore | + | tm01 = 5000 ;how to use the timer to cause an error |
LOOP: | LOOP: | ||
Line 438: | Line 440: | ||
;Errore? | ;Errore? | ||
IF tm01 | IF tm01 | ||
- | ;disabilita | + | ;disable |
dvHMI: | dvHMI: | ||
CALL ERROR | CALL ERROR | ||
Line 449: | Line 451: | ||
| | ||
SUB ERROR | SUB ERROR | ||
- | ;stampa | + | ;print " |
dvHMI:dis6 = CHAR_E | dvHMI:dis6 = CHAR_E | ||
dvHMI:dis5 = CHAR_R | dvHMI:dis5 = CHAR_R | ||
Line 457: | Line 459: | ||
- | ;stampa errore con identificativo | + | ;printing error with the ID |
dvHMI: | dvHMI: | ||
dvHMI: | dvHMI: | ||
Line 465: | Line 467: | ||
DATAENTRY dvHMI | DATAENTRY dvHMI | ||
- | ;attesa | + | ;wait 2 seconds |
tm01 = 2000 | tm01 = 2000 | ||
WAIT tm01 | WAIT tm01 | ||
Line 474: | Line 476: | ||
</ | </ | ||
- | ==== Diagnostica Ingressi | + | ==== Diagnostic Inputs |
- | Si voglia creare una visualizzazione che rappresenti lo stato di 9 ingressi digitali. Lo stesso esempio potrà essere poi utilizzato per la rappresentazione di uscite digitali. Assegneremo perciò, ad ogni ingresso, uno dei segmenti di ciascuno dei tre digit più a destra e lo attiveremo quando il corrispondente ingresso sarà attivo.\\ | + | You want to create a view that represents the State of 9 digital inputs. The same example can be used for the representation of digital outputs. We will assign to each input, one of the segments of each of the three rightmost |
- | La figura mostra l' | + | The figure shows the assignment chose for the inputs and segments of the digits of the display: |
{{: | {{: | ||
- | Innanzitutto dichiareremo, nella unit di configurazione, 9 variabili di dimensione | + | First we will declare, in the configuration |
<code QCL> | <code QCL> | ||
Line 496: | Line 498: | ||
</ | </ | ||
- | Dichiareremo poi anche un array global | + | We will declare a global |
<code QCL> | <code QCL> | ||
ARRGBL | ARRGBL | ||
- | diagnTab B 8 ; | + | diagnTab B 8 ; |
</ | </ | ||
- | Infatti per ogni gruppo di tre ingressi associati ad uno dei tre digit sul display | + | In fact, for each group of three inputs associated with one of the three digits on the display |
^I7^I8^I9^Display^ | ^I7^I8^I9^Display^ | ||
Line 515: | Line 517: | ||
|1|1|1|$| | |1|1|1|$| | ||
- | Servirà infine anche la definizione di alcune costanti da utilizzare come maschera per bit generici di un byte: | + | Will finally also defining some constants to be used as a mask for generic bits of a byte: |
<code QCL> | <code QCL> | ||
Line 531: | Line 533: | ||
</ | </ | ||
- | Il codice completo per ottenere la funzione di diagnostica è: | + | The complete code to obtain the diagnostic function is: |
<code QCL> | <code QCL> | ||
- | ;inizializza tabella | + | ;Initializes table |
diagnTab[1] = CHAR_ | diagnTab[1] = CHAR_ | ||
diagnTab[2] = CHAR_UP | diagnTab[2] = CHAR_UP | ||
Line 544: | Line 546: | ||
diagnTab[8] = CHAR_LOWUPCE | diagnTab[8] = CHAR_LOWUPCE | ||
- | ;stampa messaggio | + | ;print " |
hmi:dis6 = CHAR_I | hmi:dis6 = CHAR_I | ||
hmi:dis5 = CHAR_N | hmi:dis5 = CHAR_N |