Los identificadores se definen:
en la declaración de variables (nombre de la variable)
en la declaración de tipos de datos definidos por el usuario
en la creación de POU (funciones, bloques de funciones, programas)
Además de los elementos generales que se deben tener en cuenta cuando se define un identificador (consulte el capítulo Información general sobre la declaración de variables ), tenga en cuenta las recomendaciones siguientes para que la nomenclatura sea lo más exclusiva posible:
Para dar nombre a las variables de las aplicaciones y las bibliotecas, siga la notación húngara en la medida de lo posible.
Busque una descripción breve y representativa para cada variable. Esta descripción se utilizará como nombre de base. Ponga en mayúscula la primera letra de cada palabra del nombre de base. Escriba el resto de la palabra en minúsculas (ejemplo: FileSize
).
Tipo de datos |
Límite inferior |
Límite superior |
Contenido de información |
Prefijo |
Comentario |
---|---|---|---|---|---|
BOOL |
FALSE |
TRUE |
1 bit |
|
– |
|
reservado |
||||
BYTE |
– |
– |
8 bits |
|
cadena de bits, no para operaciones aritméticas |
WORD |
– |
– |
16 bits |
|
cadena de bits, no para operaciones aritméticas |
DWORD |
– |
– |
32 bits |
|
cadena de bits, no para operaciones aritméticas |
LWORD |
– |
– |
64 bits |
|
cadena de bits, no para operaciones aritméticas |
SINT |
-128 |
127 |
8 bits |
|
tipo de datos enteros aritméticos, 8 bits |
USINT |
0 |
255 |
8 bits |
|
tipo de datos enteros aritméticos, 8 bits |
INT |
-32.768 |
32.767 |
16 bits |
|
tipo de datos enteros aritméticos, 16 bits |
UINT |
0 |
65.535 |
16 bits |
|
tipo de datos enteros aritméticos, 16 bits |
DINT |
-2.147.483.648 |
2.147.483.647 |
32 bits |
|
tipo de datos enteros aritméticos, 32 bits |
UDINT |
0 |
4.294.967.295 |
32 bits |
|
tipo de datos enteros aritméticos, 32 bits |
LINT |
–263 |
263-1 |
64 bits |
|
tipo de datos enteros aritméticos, 64 bits |
ULINT |
0 |
264-1 |
64 bits |
|
tipo de datos enteros aritméticos, 64 bits |
REAL |
– |
– |
32 bits |
|
tipo de datos de coma flotante aritméticos, 32 bits |
LREAL |
– |
– |
64 bits |
|
tipo de datos de coma flotante aritméticos, 64 bits |
STRING |
– |
– |
– |
|
Cadena de caracteres de un solo byte de longitud variable (ajuste predeterminado: 80 caracteres) |
WSTRING |
– |
– |
– |
|
Cadena de caracteres de doble byte de longitud variable (ajuste predeterminado: 80 caracteres) |
TIME |
– |
– |
– |
|
duración de tiempo, 32 bits |
LTIME |
– |
– |
– |
|
duración de tiempo, 64 bits |
|
– |
– |
– |
|
hora del día, 32 bits |
|
– |
– |
– |
|
hora del día, 64 bits |
|
– |
– |
– |
|
fecha y hora |
|
– |
– |
– |
|
– |
DATE |
– |
– |
– |
|
fecha de calendario |
LDATE |
– |
– |
– |
|
fecha de calendario |
Enumeration |
– |
– |
– |
|
– |
POINTER |
– |
– |
– |
|
– |
ARRAY |
– |
– |
– |
|
– |
Structure |
– |
– |
– |
|
– |
Function block |
– |
– |
– |
|
– |
Interface |
– |
– |
– |
|
– |
Union |
– |
– |
– |
|
– |
* intencionadamente para variables booleanas, se elige x como prefijo para diferenciarlo del BYTE y también para acomodar la percepción de un programador IEC (consulte el direccionamiento de |
Declaración simple
Ejemplos de declaraciones simples:
bySubIndex: BYTE;
sFileName: STRING;
udiCounter: UDINT;
Declaración anidada
Ejemplo de una declaración anidada en la que los prefijos se conectan entre sí en el orden de las declaraciones:
pabyTelegramData: POINTER TO ARRAY [0..7] OF BYTE;
Variables e instancias de bloques de funciones de tipos de datos definidos por el usuario
Las variables e instancias de bloques de funciones de tipos de datos definidos por el usuario obtienen un acceso directo para el nombre del tipo de datos o el bloque de funciones como prefijo (por ejemplo: stSDO
).
Ejemplo
stSDOReceivedTelegram: ST_SDOTelegram;
TYPE ST_SDOTelegram :
STRUCT
wIndex:WORD;
bySubIndex:BYTE;
byLen:BYTE;
aby: ARRAY [0..3] OF BYTE;
END_STRUCT
END_TYPE
Constantes locales
Las constantes locales (c) empiezan con el prefijo c
y un guion bajo pegado, seguido del prefijo de tipo y el nombre de la variable.
Ejemplo
VAR CONSTANT
c_uiSyncID: UINT := 16#80;
END_VAR
Variables globales y constantes globales
Las variables globales van precedidas de G_
(g_
) y, las constantes globales, de Gc_
(gc_
).
Ejemplo
VAR_GLOBAL
G_iTest: INT;
END_VAR
VAR_GLOBAL CONSTANT
Gc_dwExample: DWORD;
END_VAR
Estructura
Por lo general, consulte la descripción anterior para los nombres de variables. Use el espacio de nombres de la biblioteca como prefijo cuando acceda a una variable en su código de aplicación.
Ejemplo
G_iTest: INT; (declaration)
CAN.G_iTest (implementation, call in an application program
Estructura
El nombre de cada tipo de datos de estructura consta del prefijo de tipo correspondiente (consulte también Prefijo de POU) y un nombre corto y significativo (por ejemplo, ET_Day
) de la estructura.
Ejemplo (en una biblioteca con espacio de nombres CAL
):
TYPE ET_Day :(
MONDAY,
TUESDAY,
WEDNESDAY,
THURSDAY,
FRIDAY,
SATURDAY,
SUNDAY);
Declaración:
etToday: CAL.ET_Day;
Uso en aplicación:
IF etToday = CAL.ET_Day.MONDAY THEN
Los nombres de funciones, bloques de funciones y programas constan del prefijo de tipo correspondiente (consulte también Prefijo de POU) y un nombre corto y significativo de la POU (por ejemplo, FB_SendTelegram
). Al igual que ocurre con las variables, la primera letra de una palabra del nombre de la POU debe ir siempre en mayúscula, mientras que el resto de letras irán en minúscula. Por ejemplo, componga el nombre de la POU con un verbo y un sustantivo para indicar claramente la operación del bloque de funciones.
Ejemplo
FUNCTION_BLOCK FB_SendTelegram
En la parte de declaración, escriba una breve descripción del POU en forma de comentario. Además, las entradas y salidas deben estar provistas de comentarios. En caso de bloques de funciones, inserte el prefijo asociado para instancias de configuración directamente después del nombre.
Acciones
Las acciones no llevan prefijo. Únicamente aquellas acciones que se llaman solo internamente, es decir, por la propia POU, empiezan por prv_
.
Estructura
Para crear nombres de métodos, se aplican las mismas reglas que para las acciones. Escriba comentarios para las posibles entradas de un método. Añada una breve descripción de un método a su declaración. Inicie los nombres de interfaz con el prefijo IF_
(I
); por ejemplo, IF_CANDevice
.