Differenze
Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.
Entrambe le parti precedenti la revisione Revisione precedente Prossima revisione | Revisione precedente Prossima revisioneEntrambe le parti successive la revisione | ||
software:qview:qview_6:qview60 [2015/04/20 15:56] – [19. Appendice D: Parole chiave] qem207 | software:qview:qview_6:qview60 [2019/08/29 17:01] – modifica esterna 127.0.0.1 | ||
---|---|---|---|
Linea 533: | Linea 533: | ||
===== - Le variabili DATAGROUP ===== | ===== - Le variabili DATAGROUP ===== | ||
- | Le variabili Datagroup sono una particolare struttura di dati. Quando si dichiara un datagroup, si organizza | + | Le variabili Datagroup sono una particolare struttura di dati, memorizzate in una zona ritentiva. Esse vengono dichiarate nella unit di configurazione |
- | Ogni programma (colonna) contiene | + | |
- | * Statiche. | + | |
- | * Indicizzate. | + | |
- | + | ||
- | Le statiche sono delle variabili che possono assumere un valore diverso a seconda del programma (della colonna) a cui si fa riferimento. Nella dichiarazione, | + | |
+ | ==== - Variabili Statiche ==== | ||
<code QCL> | <code QCL> | ||
- | dslVeMa[5] | + | DATAGROUP |
+ | < | ||
+ | DATAPROGRAM | ||
+ | <number of recipes> | ||
+ | ;Static variables declaration | ||
+ | < | ||
+ | < | ||
+ | < | ||
</ | </ | ||
- | + | Le variabili | |
- | Le variabili | + | |
<code QCL> | <code QCL> | ||
- | ddwLuPe[5,3] | + | DATAGROUP |
+ | Name | ||
+ | DATAPROGRAM | ||
+ | 100 | ||
+ | ;Static variables declaration | ||
+ | Variable1 | ||
+ | Variable2 | ||
+ | Variable3 | ||
+ | </ | ||
+ | Per far riferimento alla variabile // | ||
+ | <code QCL> | ||
+ | Variable3[5] | ||
</ | </ | ||
- | Graficamente il datagroup si può rappresentare in questo modo: | + | Possiamo immaginare la struttura della memoria di una variabile DATAGROUP, nel nostro esempio con variabili statiche, come la seguente tabella: |
- | ^_^Prog.1^Prog. 2^Prog. 3^Prog. 4^Prog. 5^_^ | + | ^ ^ |
- | ^_|dslVeMa[1]|dslVeMa[2]|dslVeMa[3]|dslVeMa[4]|dslVeMa[5]^Statiche^ | + | ^Ricetta |
- | ^Step 1|ddwLuPe[1, | + | ^Ricetta |
- | ^Step 2|ddwLuPe[1, | + | ^Ricetta |
- | ^Step 3|ddwLuPe[1, | + | ^...| | | | |
- | ^Step 4|_|_|_|_|ddwLuPe[5, | + | ^Ricetta 100| | | | |
- | ^Step 5|_|_|_|_|ddwLuPe[5, | + | |
- | Nelle due sezioni, statiche e indicizzate, | + | |
- | La sintassi per la definizione di variabili DATAGROUP è: | + | ==== - Variabili Indicizzate ==== |
<code QCL> | <code QCL> | ||
DATAGROUP | DATAGROUP | ||
< | < | ||
- | [;Number of programs (or recipe) | ||
DATAPROGRAM | DATAPROGRAM | ||
- | <number of programs> | + | <number of recipes> |
- | ;Static variables declaration | + | |
- | < | + | |
- | < | + | |
- | < | + | |
- | [;Number of steps | + | |
STEP | STEP | ||
<number of steps> | <number of steps> | ||
Linea 577: | Linea 581: | ||
< | < | ||
< | < | ||
- | < | + | < |
</ | </ | ||
- | dove: | + | Le variabili |
- | |DATAGROUP|Parola chiave per la definizione di un DataGroup.| | + | |
- | |< | + | |
- | |DATAPROGRAM|Parola chiave per la definizione delle variabili | + | |
- | |<number of programs> | + | |
- | |< | + | |
- | |< | + | |
- | |STEP|Parola chiave per la definizione delle variabili indicizzate nel DataGroup.| | + | |
- | |<number of steps> | + | |
- | |< | + | |
- | |< | + | |
- | + | ||
- | La definizione del DATAGROUP | + | |
- | * una relativa alla definizione del nome del datagroup; | + | |
- | * una relativa all’impostazione del numero programmi e delle variabili statiche (inizia con la parola chiave DATAPROGRAM); | + | |
- | * una relativa all’impostazione del numero di passi di programma e delle variabili indicizzate (inizia con la parola chiave STEP). | + | |
- | + | ||
- | Il nome datagroup segue tutte le regole generali finora incontrate | + | |
- | + | ||
- | Il numero programmi va scritto in forma numerica, oppure tramite l’ausilio di costanti e deve essere diverso da zero; il numero massimo | + | |
- | + | ||
- | Il numero | + | |
- | + | ||
- | La sottosezione DATAPROGRAM è obbligatoria, | + | |
- | + | ||
- | Non è possibile dichiarare una sezione STEP senza dichiarare almeno una variabile indicizzata. È possibile dichiarare una sezione STEP senza dichiarare una sezione DATAPROGRAM. Non è possibile dichiarare una sezione DATAPROGRAM senza dichiarare almeno una variabile statica. È possibile dichiarare una sezione DATAPROGRAM senza dichiarare una sezione STEP.\\ | + | |
- | In un DATAGROUP tutte le variabili, sia statiche che indicizzate, | + | |
- | + | ||
- | Per calcolare l’occupazione in memoria totale del DATAGROUP si deve tener presente che ogni variabile inserita nel datagroup occupata 4 byte (qualsiasi sia il tipo scelto per la variabile stessa). Quindi l’occupazione in byte è pari a: | + | |
- | + | ||
- | (N.Programmi x N.Variabili statiche x 4 ) + ( N.Programmi x N.Passi x N.Variabili indicizzate x 4).\\ | + | |
- | Esempio: | + | |
<code QCL> | <code QCL> | ||
DATAGROUP | DATAGROUP | ||
- | | + | |
DATAPROGRAM | DATAPROGRAM | ||
- | | + | |
- | ;--------------Static variables declaration------------------ | + | ;Static variables declaration |
- | | + | |
- | | + | |
+ | Variable3 | ||
STEP | STEP | ||
- | | + | |
- | ;--------------Indexed variables declaration------------- | + | ;Indexed variables declaration |
- | | + | |
- | | + | |
</ | </ | ||
- | + | Per far riferimento alla variabile | |
- | + | ||
- | Sintassi nel caso di variabile | + | |
<code QCL> | <code QCL> | ||
- | < Nome variabile Static > < [ num_prog | + | Variable4[5, 9] |
</ | </ | ||
- | Sintassi nel caso di variabile indicizzate: | + | Possiamo immaginare la struttura della memoria |
- | <code QCL> | + | |
- | < Nome variabile Index > < [ num_prog, num_step ] > | + | |
- | </ | + | |
- | // | + | ^ ^ Variable1 |
+ | ^Ricetta 1| | | | | | | | | | | | | | | ||
+ | ^::: | ||
+ | ^Ricetta 2| | | | | | | | | | | | | | | ||
+ | ^::: | ||
+ | ^Ricetta 3| | | | | | | | | | | | | | | ||
+ | ^::: | ||
+ | ^...| | | | | | | | | | | | | | | ||
+ | ^::: | ||
+ | ^Ricetta 100| | | | | | | | | | | | | | | ||
+ | ^::: | ||
+ | Altre informazioni: | ||
+ | * In un DATAGROUP tutte le variabili, sia statiche che indicizzate, | ||
+ | * Le variabili Datagroup possono essere più di una, in questo caso è necessario inserire più parole chiave DATAGROUP. | ||
+ | * La sottosezione DATAPROGRAM è obbligatoria, | ||
+ | * Il numero massimo di ricette impostabile è 65534. | ||
+ | * Il numero massimo di passi impostabile è 65534. | ||
+ | * Rispetto ad un comune array, le variabili statiche possono supportare anche un dato di dimensione Flag (F). | ||
===== - Sezione BUS ===== | ===== - Sezione BUS ===== | ||
Linea 1454: | Linea 1440: | ||
==== - Arrotondamenti all' | ==== - Arrotondamenti all' | ||
- | ^ROUND|Esegue un arrotondamento di un valore in floating point all' | + | |ROUND|Esegue un arrotondamento di un valore in floating point all' |
- | ^TRUNC|Esegue un arrotondamento di un valore in floating point all' | + | |TRUNC|Esegue un arrotondamento di un valore in floating point all' |
- | ^FLOOR|Esegue un arrotondamento di un valore in floating point all' | + | |FLOOR|Esegue un arrotondamento di un valore in floating point all' |
- | ^CEIL|Esegue un arrotondamento di un valore in floating point all' | + | |CEIL|Esegue un arrotondamento di un valore in floating point all' |
La sintassi è:\\ | La sintassi è:\\ | ||
<code QCL> | <code QCL> | ||
Linea 1475: | Linea 1461: | ||
gsValue = CEIL(2.7) | gsValue = CEIL(2.7) | ||
gsValue = CEIL(-2.7) | gsValue = CEIL(-2.7) | ||
+ | </ | ||
+ | |||
+ | ==== - Operatori di classificazione ==== | ||
+ | |ISFINITE|Controlla se il numero dato ha valore finito.| | ||
+ | |ISINF|Controlla se il numero dato ha valore infinito.| | ||
+ | |ISNAN|Controlla se il numero dato ha valore NaN.| | ||
+ | |ISNORMAL|Controlla se il numero dato ha valore normale.| | ||
+ | La sintassi è:\\ | ||
+ | <code QCL> | ||
+ | ISFINITE(< | ||
+ | ISINF(< | ||
+ | ISNAN(< | ||
+ | ISNORMAL(< | ||
+ | </ | ||
+ | Esempio: | ||
+ | <code QCL> | ||
+ | gfValue = ISFINITE(gsValue) | ||
+ | gfValue = ISINF(gsValue) | ||
+ | gfValue = ISNAN(gsValue) | ||
+ | gfValue = ISNORMAL(gsValue) | ||
</ | </ | ||
===== - Funzioni trigonometriche ===== | ===== - Funzioni trigonometriche ===== | ||
Linea 3556: | Linea 3562: | ||
^ INPUT | sezione file di configurazione | ^ INPUT | sezione file di configurazione | ||
^ INTDEVICE | ^ INTDEVICE | ||
+ | ^ ISFINITE | ||
+ | ^ ISINF | ||
+ | ^ ISNAN | controlla se il valore è Nan (Not a Number) | ||
+ | ^ ISNORMAL | ||
^ JUMP | istruzione JUMP | | ^ JUMP | istruzione JUMP | | ||
^ LE | minore o uguale | ^ LE | minore o uguale |