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 16:39] – [19. Appendice D: Parole chiave] qem207software:qview:qview_6:qview60 [2015/04/28 14:40] – [Variabili Statiche] qem207
Linea 533: Linea 533:
  
 ===== - Le variabili DATAGROUP ===== ===== - Le variabili DATAGROUP =====
-Le variabili Datagroup sono una particolare struttura di dati. Quando si dichiara un datagroupsi organizza una parte della memoria come una tabella formata da righe colonne. Le colonne sono chiamate //programmi// o //ricette//, mentre le righe //passi// (in inglese //step//).\\ +Le variabili Datagroup sono una particolare struttura di dati, memorizzate in una zona ritentiva. Esse vengono dichiarate nella unit di configurazione e sono idonee per rappresentare un archivio di ricette. \\ Le variabili Datagroup contengono due tipologie di variabili:
-Ogni programma (colonna) contiene due tipologie di variabili+
-  * 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, ognuna di queste variabili è identificata con un unico nome quindi, per poter far riferimento ai diversi valori che può assumere, si deve utilizzare un metodo di indicizzazione. Per esempio, per far riferimento alla variabile //dslVeMa// del programma (colonna) 5, viene usato il codice:+
  
 +==== -Variabili Statiche ====
 <code QCL> <code QCL>
-  dslVeMa[5]+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> </code>
- +Le variabili statiche risiedono nel sottosettore di DATAGROUP nominato come DATAPROGRAMIl primo valore di questo settore è un numero o una costante interae indica il numero di ricette dell'archivioLe variabili statiche sono da considerarsi come contenitori di un determinato valore per ogni ricetta, sono accessibili come un arraydove l'indice è il numero di ricetta desiderata. Esempio:
-Le variabili indicizzate possono assumere un valore diverso a seconda del programma e del passo (riga) a cui si fa riferimentoNella dichiarazione, ognuna di queste variabili è identificata con un unico nome quindiper potersi riferire ai diversi valori che può assumere, si deve utilizzare un metodo di indicizzazionePer esempio, per far riferimento alla variabile “ddwLuPe” del programma (colonna) 5 del passo (riga) 3viene usato il codice: +
 <code QCL> <code QCL>
-  ddwLuPe[5,3]+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> </code>
  
-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^_+^ ^  Variable1   Variable2   Variable3  
-^_|dslVeMa[1]|dslVeMa[2]|dslVeMa[3]|dslVeMa[4]|dslVeMa[5]^Statiche^ +^Ricetta 1| | | | 
-^Step 1|ddwLuPe[1,1]|_|_|_|_^Indicizzate^ +^Ricetta 2| | | | 
-^Step 2|ddwLuPe[1,2]|_|_|_|_^:::^ +^Ricetta 3| | | | 
-^Step 3|ddwLuPe[1,3]|_|_|_|ddwLuPe[5,3]^:::^ +^...| | | | 
-^Step 4|_|_|_|_|ddwLuPe[5,4]^:::^ +^Ricetta 100| | | |
-^Step 5|_|_|_|_|ddwLuPe[5,5]^:::+
-Nelle due sezioni, statiche e indicizzate, del datagroup è possibile dichiarare più di una variabile.+
  
-La sintassi per la definizione di variabili DATAGROUP è:+==== -Variabili Indicizzate ==== 
 <code QCL> <code QCL>
 DATAGROUP DATAGROUP
   <DataGroup Name>   <DataGroup Name>
-[;Number of programs (or recipe) 
   DATAPROGRAM   DATAPROGRAM
-    <number of programs> +    <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>+
-[;Number of steps+
   STEP   STEP
     <number of steps>     <number of steps>
Linea 577: Linea 581:
     <variable name> <F/B/W/L/S>     <variable name> <F/B/W/L/S>
     <variable name> <F/B/W/L/S>     <variable name> <F/B/W/L/S>
-    <variable name> <F/B/W/L/S>]+    <variable name> <F/B/W/L/S>
 </code> </code>
-dove: +Le variabili indicizzate risiedono nel sottosettore di DATAGROUP nominato come STEP. La loro funzione è quella di introdurre per ogni ricetta, il concetto di passo. Il primo valore di questo settore è un numero o una costante intera, e indica il numero di passi per ogni ricetta dell'archivioLe variabili indicizzate sono da considerarsi come contenitori di una lista di valori per ogni ricettasono accessibili come un array a 2 dimensioni, dove il primo valore è il numero di ricetta, il secondo il passo desiserato. Esempio:
-|DATAGROUP|Parola chiave per la definizione di un DataGroup.| +
-|<DataGroup Name>|Nome associato al DataGroup.| +
-|DATAPROGRAM|Parola chiave per la definizione delle variabili statiche nel DataGroup.| +
-|<number of programs>|Numero di programmi (DataProgram) di cui è composto il DataGroup.| +
-|<variable name>|Nome della variabile statica del DataGroup.| +
-|<F/B/W/L/S>|Tipo della variabile statica| +
-|STEP|Parola chiave per la definizione delle variabili indicizzate nel DataGroup.| +
-|<number of steps>|Numero di passi (Step) di cui è composto il DataGroup.| +
-|<variable name>|Nome della variabile indicizzata del DataGroup.+
-|<F/B/W/L/S>|Tipo della variabile indicizzata| +
- +
-La definizione del DATAGROUP è composta di 3 parti: +
-  * 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 per la sintassi dei nomi variabili. +
- +
-Il numero programmi va scritto in forma numericaoppure tramite l’ausilio di costanti e deve essere diverso da zero; il numero massimo di programmi è 65534. +
- +
-Il numero passi va scritto in forma numericaoppure tramite l’ausilio di costanti deve essere diverso da zero. Il numero massimo di passi è 65534. +
- +
-La sottosezione DATAPROGRAM è obbligatoria, mentre quella STEP è opzionale. +
- +
-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, sono ritentive (mantengono il valore allo spegnimento). +
- +
-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
-  dMyDataGrp            ;Datagroup name+  Name
   DATAPROGRAM   DATAPROGRAM
-    DIM_PROG            ;Number of programs +    100 
-    ;--------------Static variables declaration------------------ +;Static variables declaration 
-    dsfStat1 F          ; +    Variable1     L 
-    dswStat2 W          ;+    Variable2     S 
 +    Variable3     F
   STEP   STEP
-    DIM_STEP            ;Number of step for each program +    10 
-    ;--------------Indexed variables declaration------------- +;Indexed variables declaration 
-    ddbDin1 B           ; +    Variable4     W 
-    ddlDin2 L           ;+    Variable5     B
 </code> </code>
- +Per far riferimento alla variabile //Variable4// della ricetta 5 al passo 9, viene usato il codice:
- +
-Sintassi nel caso di variabile statiche:+
 <code QCL> <code QCL>
-< Nome variabile Static > < num_prog >+Variable4[5, 9]
 </code> </code>
  
-Sintassi nel caso di variabile indicizzate+Possiamo immaginare la struttura della memoria di una variabile DATAGROUP, nel nostro esempio con variabili statiche e indicizzate, come la seguente tabella:
-<code QCL> +
-< Nome variabile Index > < [ num_prognum_step ] > +
-</code>+
  
-//num_prog// e //num_step// possono essere un numero (non SINGLE), una costante, una variabile o un’espressione complessaNel 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.+^ ^  Variable1  ^  Variable2  ^  Variable3  ^  Variable4  ^^^^^  Variable5  ^^^^^ 
 +^Ricetta 1| | | | | | | | | | | | | | 
 +^:::|:::|:::|:::| | | | | | | | | | | 
 +^Ricetta 2| | | | | | | | | | | | | | 
 +^:::|:::|:::|:::| | | | | | | | | | | 
 +^Ricetta 3| | | | | | | | | | | | | | 
 +^:::|:::|:::|:::| | | | | | | | | | | 
 +^...| | | | | | | | | | | | | | 
 +^:::|:::|:::|:::| | | | | | | | | | | 
 +^Ricetta 100| | | | | | | | | | | | | | 
 +^:::|:::|:::|:::| | | | | | | | | | |
  
 +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ù parole chiave DATAGROUP.
 +  * La sottosezione DATAPROGRAM è obbligatoria, mentre quella STEP è opzionale.
 +  * 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 =====
  • Ultima modifica: 2024/03/22 14:06