software:qview:qview_6:qview60

Differenze

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

Link a questa pagina di confronto

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 14:08] – [7.6.7. Shift logico a destra] qem207software:qview:qview_6:qview60 [2015/04/28 10:47] – [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'accesso e la gestione di un archivio di ricette. Le variabili Datagroup possono essere più di una, in questo caso è necessario inserire più settori di tipo DATAGROUP.\\ Le variabili Datagroup contengono due tipologie di variabili:
 +
 +**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'archivio. Le variabili statiche sono da considerarsi come contenitori di un determinato valore per ogni ricetta, e sono accessibili come un array, dove l'indice è il numero di ricetta desiderata.\\ Rispetto a un comune array, le variabili statiche possono supportare anche un dato di tipo Flag (F).
 +
 +<code QCL>
 +DATAGROUP
 +  <DataGroup Name>
 +  DATAPROGRAM
 +    <number of recipes>
 +;Static variables declaration
 +    <variable name> <F/B/W/L/S>
 +    <variable name> <F/B/W/L/S>
 +    <variable name> <F/B/W/L/S>]
 +</code>
 +
 +----
 +
 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 //programmi// o //ricette//, mentre le righe //passi// (in inglese //step//).\\ 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 //programmi// o //ricette//, mentre le righe //passi// (in inglese //step//).\\
 Ogni programma (colonna) contiene due tipologie di variabili: Ogni programma (colonna) contiene due tipologie di variabili:
Linea 638: Linea 655:
  
 //num_prog// e //num_step// possono essere un numero (non SINGLE), una costante, una variabile o un’espressione complessa. Nel caso di numero o di costante, viene eseguito il controllo durante la compilazione che l’indice non superi la dimensione massima dichiarata in configurazione (rispettivamente per il numero programmi e il numero step); gli altri indici - //num_prog e num_step// - partono (in valore) da uno. //num_prog// e //num_step// possono essere un numero (non SINGLE), una costante, una variabile o un’espressione complessa. Nel caso di numero o di costante, viene eseguito il controllo durante la compilazione che l’indice non superi la dimensione massima dichiarata in configurazione (rispettivamente per il numero programmi e il numero step); gli altri indici - //num_prog e num_step// - partono (in valore) da uno.
- 
  
 ===== - Sezione BUS ===== ===== - Sezione BUS =====
Linea 1434: Linea 1450:
  
 ==== - Moltiplicazione e divisione ==== ==== - 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.\\ Se viene eseguita una divisione per zero, la CPU andrà in stato "Division by zero error".\\ La sintassi è:\\+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 "Division by zero error".\\ La sintassi è:\\
 <code QCL> <code QCL>
-  MULDIV(<factor1>,<factor2>,<variable3>)+  MULDIV(<factor1>,<factor2>,<divisor>
 +</code> 
 +Esempio: glValue = a * b / c 
 +<code QCL> 
 +  glValue = MULDIV(a, b, c) 
 +</code> 
 + 
 +==== - 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 "Division by zero error".\\ La sintassi è:\\ 
 +<code QCL> 
 +  RMULDIV(<factor1>,<factor2>,<divisor>
 +</code> 
 +Esempio: glValue = a * b % c 
 +<code QCL> 
 +  glValue = RMULDIV(a, b, c) 
 +</code> 
 + 
 +==== - Arrotondamenti all'intero più vicino ==== 
 +|ROUND|Esegue un arrotondamento di un valore in floating point all'intero più vicino.| 
 +|TRUNC|Esegue un arrotondamento di un valore in floating point all'intero più vicino non maggiore di grandezza rispetto al valore dato.| 
 +|FLOOR|Esegue un arrotondamento di un valore in floating point all'intero più vicino non superiore al valore dato.| 
 +|CEIL|Esegue un arrotondamento di un valore in floating point all'intero più vicino non inferiore al valore dato.| 
 +La sintassi è:\\ 
 +<code QCL> 
 +  ROUND(<variable>
 +  TRUNC(<variable>
 +  FLOOR(<variable>
 +  CEIL(<variable>)
 </code> </code>
 Esempio: Esempio:
 <code QCL> <code QCL>
-  glValue SHLR(glValue, 1)+  gsValue ROUND(2.7)     ;risulta 3.0 
 +  gsValue = ROUND(-2.7)    ;risulta -3.0 
 +  gsValue = TRUNC(2.7)     ;risulta 2.0 
 +  gsValue = TRUNC(-2.7)    ;risulta -2.0 
 +  gsValue = FLOOR(2.7)     ;risulta 2.0 
 +  gsValue = FLOOR(-2.7)    ;risulta -3.0 
 +  gsValue = CEIL(2.7)      ;risulta 3.0 
 +  gsValue = CEIL(-2.7)     ;risulta -2.0 
 +</code> 
 + 
 +==== - 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(<variable>
 +  ISINF(<variable>
 +  ISNAN(<variable>
 +  ISNORMAL(<variable>
 +</code> 
 +Esempio: 
 +<code QCL> 
 +  gfValue = ISFINITE(gsValue)     ;risulta 1 se gsValue è un valore finitoaltrimenti 0 
 +  gfValue = ISINF(gsValue)        ;risulta se gsValue è un valore infinito, altrimenti 0 
 +  gfValue = ISNAN(gsValue       ;risulta 1 se gsValue è un NaN (Not a Number), altrimenti 0 
 +  gfValue = ISNORMAL(gsValue)     ;risulta 1 se gsValue è un valore normale (non zero, non infinito, non NaN), altrimenti 0
 </code> </code>
 ===== - Funzioni trigonometriche ===== ===== - Funzioni trigonometriche =====
Linea 3493: Linea 3563:
 ^ 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    | sezione file di configurazione                      | ^ DATAGROUP    | sezione file di configurazione                      |
 ^ DATAPROGRAM  | sezione file di configurazione                      | ^ DATAPROGRAM  | sezione file di configurazione                      |
Linea 3510: Linea 3582:
 ^ EXTDEVICE    | sezione file di configurazione                      | ^ EXTDEVICE    | sezione file di configurazione                      |
 ^ 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           maggiore uguale                                     |
 ^ GLOBAL       | sezione file di configurazione                      | ^ GLOBAL       | sezione file di configurazione                      |
 ^ GT           | maggiore                                            | ^ GT           | maggiore                                            |
Linea 3519: Linea 3592:
 ^ INPUT        | sezione file di configurazione                      | ^ INPUT        | sezione file di configurazione                      |
 ^ INTDEVICE    | sezione file di configurazione                      | ^ INTDEVICE    | sezione file di configurazione                      |
 +^ ISFINITE     | controlla se il valore è finito                     |
 +^ ISINF        | controlla se il valore è infinito                   |
 +^ ISNAN        | controlla se il valore è Nan (Not a Number)         |
 +^ ISNORMAL     | controlla se il valore è normale                    |
 ^ 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       | moltiplicazione e divisione                         |
 ^ NEG          | negazione (inversione del segno o complemento a 2)  | ^ NEG          | negazione (inversione del segno o complemento a 2)  |
 ^ NEQ          | operatore                                           | ^ NEQ          | operatore                                           |
Linea 3534: Linea 3612:
 ^ POW          | potenza                                             | ^ POW          | potenza                                             |
 ^ REFERENCE    | proprietà di "riferimento" di un simbolo            | ^ REFERENCE    | proprietà di "riferimento" di un simbolo            |
-REFERENCE    | inizio dell'elenco dei riferimenti                  |+REFERENCES   | inizio dell'elenco dei riferimenti                  |
 ^ RESOUT       | reset uscite                                        | ^ RESOUT       | reset uscite                                        |
-^ S            | singola precisione                                  |+^ RESTART      | istruzione di restart                               | 
 +^ RESUME       | istruzione di resume                                | 
 +^ RETURN       | istruzione di return (su subroutine)                | 
 +^ RMULDIV      | resto di moltiplicazione e divisione                | 
 +^ ROUND        | arrotondamento a intero più vicino                  | 
 +^ S            | single                                              |
 ^ SETOUT       | setta uscita                                        | ^ SETOUT       | setta uscita                                        |
 +^ 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      | istruzione di sospensione                           |
 ^ SWITCH       | istruzione SWITCH-CASE                              | ^ SWITCH       | istruzione SWITCH-CASE                              |
 ^ SYSTEM       | sezione file di configurazione                      | ^ SYSTEM       | sezione file di configurazione                      |
-^ RESTART      | istruzione di restart                               | 
-^ RESUME       | istruzione di resume                                | 
-^ RETURN       | istruzione di return (su subroutine)                | 
-^ SUSPEND      | istruzione di sospensione                           | 
 ^ 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 3566: Linea 3649:
  
 <html><pagebreak /></html> <html><pagebreak /></html>
- 
 ====== - Appendice E: Tasti caldi ====== ====== - Appendice E: Tasti caldi ======
  
  • Ultima modifica: 2024/03/22 14:06