Sección: VarArrays
El parámetro VarArrays
permite crear matrices con tamaño configurable.
SEC VarArrays //optional: yes, modifier: [UPDATE]] SEC VarArray : <slot identifier> //optional: yes, modifier [] Variable := <variable name>; //optional: no, type: InstancePath Var_Count := <variable count>; //optional: no, type: InstancePath Inst_Name := <instance name>; //optional: yes, type: StringLiteral Pragmas := [<pragma1>, <pragma2>,...]; //optional: yes, type: Pragmalist Var_Decl_Flags := <Flag1> | <Flag2> | ... ; //optional: yes, type: Flags END_SEC END_SEC
Los detalles sobre la sintaxis de los tipos de definición se describen en la sección Declaración del módulo.
La definición
Variable
es una ruta de instancia de entrada relativa al bloque de funciones del módulo. El tipo de datos esPOINTER TO <ELEMTYPE>
.<ELEMTYPE>
puede ser cualquier tipo de datos.El objetivo de una sección
VarArray
debe identificar la matriz de variables de forma única.Var_Count
define la ruta de la instancia de entrada de un enteroVariable
del bloque de funciones del módulo. Para estar disponible en el editor para la configuración, esta variable debe definirse como un parámetro. Alternativamente la variableVar_Count
de Slot_Multi o InstRef_Multi se puede utilizar para definir esta variable. Múltiples VarArrays pueden usar el mismoVar_Count
variable. Si el tamaño de la matriz es 0, no se generará ninguna matriz y el puntero de la matriz se establecerá en 0.Inst_Name
define el nombre de la variable de matriz creada. El marcador de posición%Instancename%
y%VariablePath%
(la ortografía en mayúsculas o minúsculas no es relevante) será reemplazada por el nombre de la instancia del módulo resp. la ruta de instancia de la variable de puntero. Los puntos serán reemplazados por subrayados. Si se omite la definición, el valor predeterminadoAC_ARRAY_%VariablePath%
. se usaSe creará un error si dos VarArrays diferentes de un módulo tienen el mismo
Inst_Name
, que no incluye el marcador de posición%VariablePath%
.Pragmas
contiene una lista de pragmas del compilador, que se insertarán antes de la variable de matriz generada.Var_Decl_Flags
se puede utilizar para especificar el tipo de variable de la matriz creada. Las posibles banderas sonNONE
,RETAIN
, yPERSISTENT
. Estas banderas se agregan a la sección de variables.VAR_INPUT
, en el que se crea la matriz. (ejemplo: para la banderaRETAIN
,VAR_INPUT RETAIN
).
SEC VAR_ARRAYS SEC VAR_ARRAY : NameList Variable := psNameList; Var_Count := uiArraySize; END_SEC ... SEC PARAM : ArraySize Variable := uiArraySize; Name := TL.ArraySize_Name; Desc := TL.ArraySize_Desc; END_SEC END_SEC
Entre otras declaraciones, la parte de declaración del bloque de funciones debe contener: uiArraySize: UINT := 7; psNameList: POINTER TO STRING;
.