en:software:qview:qview_6:qview60

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revisionBoth sides next revision
en:software:qview:qview_6:qview60 [2015/04/28 15:47] – [3.11.1. Variabili Statiche] qem207en:software:qview:qview_6:qview60 [2015/04/28 16:07] – [3.12. DATAGROUP variables old] qem207
Line 560: Line 560:
 ^Recipe 100| | | | ^Recipe 100| | | |
  
-===== - DATAGROUP variables old ====+==== - Indexed Variables ==== 
-Datagroup variables are a special data structures. When declaring a datagroup, a part of memory is organised in a table of rows and columns. The columns are called  //programs// or //recipes//, while the rows are //steps//.\\ +
-Each program (column) contains two kinds of variable: +
-  * Static. +
-  * indexed. +
- +
-Static variables can take on different values according to their program (column) reference. In the declaration each of these variables is identified by an individual name so, to be able to refer to different values that it can take on, indexing has to be used. For example, to refer to the //dslVeMa// variable of program (column) 5, use the code: +
- +
-<code QCL> +
-  dslVeMa[5] +
-</code> +
- +
-Indexed variables can have different values according to their program (column) and step (row) reference. In the declaration, each of these variables is identified by the same name so, to be able to refer to its different values, indexing must be used. For example, to refer to the “ddwLuPe” variable of program (column) 5 and step (row) 3, use the code: +
- +
-<code QCL> +
-  ddwLuPe[5,3] +
-</code> +
- +
-The datagroup is best represented as the chart below: +
-^_^Prog.1^Prog. 2^Prog. 3^Prog. 4^Prog. 5^_^ +
-^_|dslVeMa[1]|dslVeMa[2]|dslVeMa[3]|dslVeMa[4]|dslVeMa[5]^Static^ +
-^Step 1|ddwLuPe[1,1]|_|_|_|_^indexed^ +
-^Step 2|ddwLuPe[1,2]|_|_|_|_^:::+
-^Step 3|ddwLuPe[1,3]|_|_|_|ddwLuPe[5,3]^:::+
-^Step 4|_|_|_|_|ddwLuPe[5,4]^:::+
-^Step 5|_|_|_|_|ddwLuPe[5,5]^:::+
-In the two, static and indexed, datagroup sections several variables can be declared. +
- +
-The syntax for defining DATAGROUP variables:+
 <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>
Line 605: Line 571:
     <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: +Indexed variables reside in DATAGROUP subsector named STEP. Their function is to introduce for each recipe, the concept of step. The first value of this sector is number or an integer constantand represents the number of steps for each recipe in archiveIndexed variables are to be considered as containers of list of values for each recipe, and are accessed as 2-dimensional array, where the first value is the number of the recipe, the second the number of desired step. Example:
-|DATAGROUP|Keyword for defining a DataGroup.| +
-|<DataGroup Name>|Name associated to the DataGroup.| +
-|DATAPROGRAM|Keyword for defining the static variables in the DataGroup.| +
-|<number of programs>|Number of programs (DataProgram) composing the DataGroup.| +
-|<variable name>|Name of the static variable in the DataGroup.| +
-|<F/B/W/L/S>|Static variable type| +
-|STEP|Keyword for defining indexed variables in the DataGroup.+
-|<number of steps>|Number of steps comprising the DataGroup.| +
-|<variable name>|Name of the indexed variable in the DataGroup.| +
-|<F/B/W/L/S>|Indexed variable type| +
- +
-The DATAGROUP definition is made up of 3 parts: +
-  * the datagroup name definition; +
-  * the number of programs and static variables (starting with DATAPROGRAM); +
-  * the number of program steps and indexed variables (starting with keyword STEP). +
- +
-The datagroup name follows all the general rules for variable name syntax. +
- +
-The number of programs is written in number formor with the aid of constants and must be different to zero. The maximum number of programs is 65534. +
- +
-The number of steps is written in number formor with the aid of constants and must be different to zero. The maximum number of steps is 65534. +
- +
-The DATAPROGRAM subsection is mandatory, while the STEP subsection is optional. +
- +
-A STEP section cannot be declared without declaring at least one indexed variable. A STEP section can be declared without declaring DATAPROGRAM section. A DATAPROGRAM cannot be declared without declaring at least one static variable. A DATAPROGRAM section can be declared without declaring a STEP section.\\ +
-All static and indexed variables in a DATAGROUP are retentive (i.e. they keep their value after shut-off). +
- +
-To calculate the total memory space of the DATAGROUP consider that each variable in the datagroup takes up 4 bytes (regardless of the variable types). So the memory space in byte is equal to: +
- +
-(N.Programs x N.Static variables x 4 ) + ( N.Programs x N.Steps x N.Indexed variables x 4).\\ +
-Example:+
 <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>
- +To refer to variable //Variable4// in recipe 5 to step 9, the used code is:
- +
-Syntax for static variables:+
 <code QCL> <code QCL>
-< Nome variabile Static > < num_prog >+Variable4[5, 9]
 </code> </code>
  
-Syntax for indexed variables: +We can imagine the memory structure of a variable DATAGROUP, in our example with static and indexed variables, as the following table
-<code QCL> + 
-< Nome variabile Index > < [ num_prognum_step ] > +^ ^  Variable1  ^  Variable2  ^  Variable3  ^  Variable4  ^^^^^  Variable5  ^^^^^ 
-</code>+^Recipe 1| | | | | | | | | | | | | | 
 +^:::|:::|:::|:::| | | | | | | | | | | 
 +^Recipe 2| | | | | | | | | | | | | | 
 +^:::|:::|:::|:::| | | | | | | | | | | 
 +^Recipe 3| | | | | | | | | | | | | | 
 +^:::|:::|:::|:::| | | | | | | | | | | 
 +^...| | | | | | | | | | | | | | 
 +^:::|:::|:::|:::| | | | | | | | | | | 
 +^Recipe 100| | | | | | | | | | | | | | 
 +^:::|:::|:::|:::| | | | | | | | | | | 
 + 
 +Other informations: 
 +  * In a DATAGROUP all variablesboth static and indexed, are retentive (maintain the value at power off). 
 +  * The Datagroup variables may be more than one, in this case it is necessary to insert more DATAGROUP keywords. 
 +  * The subsection DATAPROGRAM is mandatory, while the STEP is optional. 
 +  * The maximum number of recipes can be set is 65534. 
 +  * The maximum number of steps can be set is 65534. 
 +  * Compared to a common array, static variables can also support a Flag size data (F).
  
-//num_prog// and //num_step// can be a number (not SINGLE), a constant, variable or complex expression. In the case of number or constant, the compilation controls that the index is not over the maximum size declared in the configuration unit (by number of programs and number of steps respectively); the other indexes - //num_prog and num_step// - start from one. 
 ===== - BUS Section ===== ===== - BUS Section =====
 The BUS section in the configuration unit is essential to declare the QMOVE hardware model being used.\\ The BUS section in the configuration unit is essential to declare the QMOVE hardware model being used.\\
  • Last modified: 2022/08/31 09:02