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 12:03] – [19. Appendice D: Parole chiave] qem207 | software:qview:qview_6:qview60 [2015/04/28 10:55] – [3.11. Le variabili DATAGROUP] qem207 | ||
---|---|---|---|
Linea 533: | Linea 533: | ||
===== - Le variabili DATAGROUP ===== | ===== - Le variabili DATAGROUP ===== | ||
+ | Le variabili Datagroup sono una particolare struttura di dati, allocate in memoria in una zona ritentiva. Esse vengono dichiarate nella unit di configurazione e hanno la funzione di semplificare l' | ||
+ | |||
+ | **Variabili Statiche**\\ Le variabili statiche risiedono nel sottosettore di DATAGROUP nominato come DATAPROGRAM. Il primo valore di questo settore è un numero o una costante intera, e indica in numero di ricette dell' | ||
+ | |||
+ | <code QCL> | ||
+ | DATAGROUP | ||
+ | < | ||
+ | DATAPROGRAM | ||
+ | <number of recipes> | ||
+ | ;Static variables declaration | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | |||
+ | 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ù settori di tipo DATAGROUP. | ||
+ | * La sottosezione DATAPROGRAM è obbligatoria, | ||
+ | * Il numero massimo di ricette impostabile è 65534. | ||
+ | * Il numero massimo di passi impostabile è 65534. | ||
+ | |||
+ | ---- | ||
+ | |||
Le variabili Datagroup sono una particolare struttura di dati. Quando si dichiara un datagroup, si organizza una parte della memoria come una tabella formata da righe e colonne. Le colonne sono chiamate // | Le variabili Datagroup sono una particolare struttura di dati. Quando si dichiara un datagroup, si organizza una parte della memoria come una tabella formata da righe e colonne. Le colonne sono chiamate // | ||
Ogni programma (colonna) contiene due tipologie di variabili: | Ogni programma (colonna) contiene due tipologie di variabili: | ||
Linea 638: | Linea 662: | ||
// | // | ||
- | |||
- | |||
===== - Sezione BUS ===== | ===== - Sezione BUS ===== | ||
La sezione BUS nell’unità di configurazione è indispensabile per dichiarare quale modello hardware di QMOVE il programmatore ha a disposizione.\\ | La sezione BUS nell’unità di configurazione è indispensabile per dichiarare quale modello hardware di QMOVE il programmatore ha a disposizione.\\ | ||
Linea 1413: | Linea 1435: | ||
</ | </ | ||
+ | ==== - Shift logico a sinistra ==== | ||
+ | Esegue una operazione di shift a sinistra di //n// bit sull' | ||
+ | <code QCL> | ||
+ | SHLL(< | ||
+ | </ | ||
+ | Esempio: | ||
+ | <code QCL> | ||
+ | glValue = SHLL(glValue, | ||
+ | </ | ||
+ | |||
+ | ==== - Shift logico a destra ==== | ||
+ | Esegue una operazione di shift a destra di //n// bit sull' | ||
+ | <code QCL> | ||
+ | SHLR(< | ||
+ | </ | ||
+ | Esempio: | ||
+ | <code QCL> | ||
+ | glValue = SHLR(glValue, | ||
+ | </ | ||
+ | |||
+ | ==== - Moltiplicazione e divisione ==== | ||
+ | Esegue una moltiplicazione di valori interi a 32 bit con risultato a 64 bit e una successiva divisione per valore intero a 32 bit. Il risultato è un valore di 32 bit.\\ **N.B.** Se viene eseguita una divisione per zero, la CPU andrà in stato " | ||
+ | <code QCL> | ||
+ | MULDIV(< | ||
+ | </ | ||
+ | Esempio: glValue = a * b / c | ||
+ | <code QCL> | ||
+ | glValue = MULDIV(a, b, c) | ||
+ | </ | ||
+ | |||
+ | ==== - Resto di moltiplicazione e divisione ==== | ||
+ | Esegue una moltiplicazione di valori interi a 32 bit con risultato a 64 bit e una successiva divisione per valore intero a 32 bit. Il risultato è il resto della divisione.\\ **N.B.** Se viene eseguita una divisione per zero, la CPU andrà in stato " | ||
+ | <code QCL> | ||
+ | RMULDIV(< | ||
+ | </ | ||
+ | Esempio: glValue = a * b % c | ||
+ | <code QCL> | ||
+ | glValue = RMULDIV(a, b, c) | ||
+ | </ | ||
+ | |||
+ | ==== - Arrotondamenti all' | ||
+ | |ROUND|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' | ||
+ | |CEIL|Esegue un arrotondamento di un valore in floating point all' | ||
+ | La sintassi è:\\ | ||
+ | <code QCL> | ||
+ | ROUND(< | ||
+ | TRUNC(< | ||
+ | FLOOR(< | ||
+ | CEIL(< | ||
+ | </ | ||
+ | Esempio: | ||
+ | <code QCL> | ||
+ | gsValue = ROUND(2.7) | ||
+ | gsValue = ROUND(-2.7) | ||
+ | gsValue = TRUNC(2.7) | ||
+ | gsValue = TRUNC(-2.7) | ||
+ | gsValue = FLOOR(2.7) | ||
+ | gsValue = FLOOR(-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 3464: | Linea 3569: | ||
^ CALL | chiamata subroutine | ^ CALL | chiamata subroutine | ||
^ CASE | istruzione SWITCH-CASE | ^ CASE | istruzione SWITCH-CASE | ||
+ | ^ CEIL | arrotondamento a intero non inferiore a quello dato | | ||
^ CONST | sezione file di configurazione | ^ CONST | sezione file di configurazione | ||
^ COS | coseno | ^ COS | coseno | ||
^ COT | cotangente | ^ COT | cotangente | ||
+ | ^ D | double | ||
^ DATAGROUP | ^ DATAGROUP | ||
^ DATAPROGRAM | ^ DATAPROGRAM | ||
Linea 3481: | Linea 3588: | ||
^ EXTDEVICE | ^ EXTDEVICE | ||
^ F | flag | | ^ F | flag | | ||
+ | ^ FLOOR | arrotondamento a intero non superiore a quello dato | | ||
^ FOR | istruzione FOR | | ^ FOR | istruzione FOR | | ||
^ FPROG | istruzione FPROG | | ^ FPROG | istruzione FPROG | | ||
^ FSTEP | istruzione FSTEP | | ^ FSTEP | istruzione FSTEP | | ||
- | ^ GE | + | ^ GE |
^ GLOBAL | ^ GLOBAL | ||
^ GT | maggiore | ^ GT | maggiore | ||
Linea 3490: | Linea 3598: | ||
^ 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 | ||
^ LN | logaritmo naturale | ^ LN | logaritmo naturale | ||
^ LT | minore | ^ LT | minore | ||
+ | ^ MULDIV | ||
^ NEG | negazione (inversione del segno o complemento a 2) | | ^ NEG | negazione (inversione del segno o complemento a 2) | | ||
^ NEQ | operatore | ^ NEQ | operatore | ||
Linea 3505: | Linea 3618: | ||
^ POW | potenza | ^ POW | potenza | ||
^ REFERENCE | ^ REFERENCE | ||
- | ^ REFERENCE | + | ^ REFERENCES |
^ RESOUT | ^ RESOUT | ||
- | ^ S | singola precisione | + | ^ RESTART |
+ | ^ RESUME | ||
+ | ^ RETURN | ||
+ | ^ RMULDIV | ||
+ | ^ ROUND | arrotondamento a intero più vicino | ||
+ | ^ S | single | ||
^ SETOUT | ^ SETOUT | ||
+ | ^ SHLL | shift a sinistra | ||
+ | ^ SHLR | shift a destra | ||
^ SIN | seno | | ^ SIN | seno | | ||
^ SQRT | radice quadrata | ^ SQRT | radice quadrata | ||
^ STEP | sezione file di configurazione | ^ STEP | sezione file di configurazione | ||
^ SUB | subroutine | ^ SUB | subroutine | ||
+ | ^ SUSPEND | ||
^ SWITCH | ^ SWITCH | ||
^ SYSTEM | ^ SYSTEM | ||
- | ^ RESTART | ||
- | ^ RESUME | ||
- | ^ RETURN | ||
- | ^ SUSPEND | ||
^ TAN | tangente | ^ TAN | tangente | ||
^ TIMER | sezione file di configurazione | ^ TIMER | sezione file di configurazione | ||
+ | ^ TRUNC | arrotondamento a intero non maggiore di grandezza | ||
^ W | word | | ^ W | word | | ||
^ WAIT | istruzione di wait | | ^ WAIT | istruzione di wait | | ||
Linea 3537: | Linea 3655: | ||
< | < | ||
- | |||
====== - Appendice E: Tasti caldi ====== | ====== - Appendice E: Tasti caldi ====== | ||