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 15:56] – [19. Appendice D: Parole chiave] qem207software:qview:qview_6:qview60 [2015/04/28 11:11] – [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 contengono due tipologie di variabili:
 +
 +**Variabili Statiche** 
 +<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 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. Esempio:
 +<code QCL>
 +DATAGROUP
 +  Name
 +  DATAPROGRAM
 +    100
 +;Static variables declaration
 +    Variable1     L
 +    Variable2     S
 +    Variable3     F
 +</code>
 +Per far riferimento alla variabile //Variable3// della ricetta 5, viene usato il codice:
 +<code QCL>
 +Variable3[5]
 +</code>
 +
 +Altre informazioni:
 +  * In un DATAGROUP tutte le variabili, sia statiche che indicizzate, sono ritentive (mantengono il valore allo spegnimento).
 +  * Le variabili Datagroup possono essere più di una, in questo caso è necessario inserire più settori di tipo DATAGROUP.
 +  * La sottosezione DATAPROGRAM è obbligatoria, mentre quella STEP è opzionale.
 +  * Il numero massimo di ricette impostabile è 65534.
 +  * Il numero massimo di passi impostabile è 65534.
 +  * Rispetto a un comune array, le variabili statiche possono supportare anche un dato di tipo Flag (F).
 +===== - Le variabili DATAGROUP old =====
 +
 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 676:
  
 //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 =====
 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 1454: Linea 1490:
  
 ==== - Arrotondamenti all'intero più vicino ==== ==== - Arrotondamenti all'intero più vicino ====
-^ROUND|Esegue un arrotondamento di un valore in floating point 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.| +|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.| +|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.|+|CEIL|Esegue un arrotondamento di un valore in floating point all'intero più vicino non inferiore al valore dato.|
 La sintassi è:\\ La sintassi è:\\
 <code QCL> <code QCL>
Linea 1475: Linea 1511:
   gsValue = CEIL(2.7)      ;risulta 3.0   gsValue = CEIL(2.7)      ;risulta 3.0
   gsValue = CEIL(-2.7)     ;risulta -2.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 finito, altrimenti 0
 +  gfValue = ISINF(gsValue)        ;risulta 1 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 3556: Linea 3612:
 ^ 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                                     |
  • Ultima modifica: 2024/03/22 14:06