Recomendaciones sobre la nomenclatura de identificadores
Los identificadores se definen:
oen la declaración de variables (nombre de la variable)
oen la declaración de tipos de datos definidos por el usuario
oen 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:
oNombres de variables en bibliotecas
oTipos de datos definidos por el usuario (DUT) en bibliotecas
oFunciones, bloques de funciones, programas (POU), acciones
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 |
x* |
– |
b |
reservado |
||||
BYTE |
– |
– |
8 bits |
by |
cadena de bits, no para operaciones aritméticas |
WORD |
– |
– |
16 bits |
w |
cadena de bits, no para operaciones aritméticas |
DWORD |
– |
– |
32 bits |
dw |
cadena de bits, no para operaciones aritméticas |
LWORD |
– |
– |
64 bits |
lw |
no para operaciones aritméticas |
SINT |
–128 |
127 |
8 bits |
si |
– |
USINT |
0 |
255 |
8 bits |
usi |
– |
INT |
–32,768 |
32,767 |
16 bits |
i |
– |
UINT |
0 |
65,535 |
16 bits |
ui |
– |
DINT |
–2,147,483,648 |
2,147,483,647 |
32 bits |
di |
– |
UDINT |
0 |
4,294,967,295 |
32 bits |
udi |
– |
LINT |
–263 |
263-1 |
64 bits |
li |
– |
ULINT |
0 |
264-1 |
64 bits |
uli |
– |
REAL |
– |
– |
32 bits |
r |
– |
LREAL |
– |
– |
64 bits |
lr |
– |
STRING |
– |
– |
– |
s |
– |
WSTRING |
– |
– |
– |
ws |
– |
TIME |
– |
– |
– |
tim |
– |
TIME_OF_DAY |
– |
– |
– |
tod |
– |
DATE_AND_TIME |
– |
– |
– |
dt |
– |
DATE |
– |
– |
– |
date |
– |
ENUM |
– |
– |
16 bits |
e |
– |
POINTER |
– |
– |
– |
p |
– |
ARRAY |
– |
– |
– |
a |
– |
* 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 %IX0.0). |
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 del bloque de funciones de tipos de datos definidos por el usuario
Las variables e instancias del bloque de funciones de los 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: sdo).
Ejemplo
cansdoReceivedTelegram: CAN_SDOTelegram;
TYPE CAN_SDOTelegram : (* prefix: sdo *)
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 guión 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_, y las constantes globales, de gc_.
Ejemplo
VAR_GLOBAL
g_iTest: INT;
END_VAR
VAR_GLOBAL CONSTANT
gc_dwExample: DWORD;
END_VAR
Nombres de variables en bibliotecas
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
Tipos de datos definidos por el usuario (DUT) en bibliotecas
Estructura
El nombre del tipo de datos de cada estructura consta de una descripción breve y representativa (por ejemplo, SDOTelegram) de la estructura.
Ejemplo (en una biblioteca con espacio de nombres CAL):
TYPE Day :(
MONDAY,
TUESDAY,
WEDNESDAY,
THURSDAY,
FRIDAY,
SATURDAY,
SUNDAY);
Declaración:
eToday: CAL.Day;
Uso en aplicación:
IF eToday = CAL.Day.MONDAY THEN
NOTA: Tenga en cuenta el uso del espacio de nombres al utilizar DUT o enumeraciones declaradas en bibliotecas.
Funciones, bloques de funciones, programas (POU), acciones
Los nombres de funciones, bloques de funciones y programas van precedidos de un nombre corto representativo de la POU (por ejemplo, SendTelegram). Al igual que ocurre con las variables, la primera letra de una palabra del nombre del POU debe ir siempre en mayúscula, mientras que el resto de letras irán en minúscula. Se recomienda que el nombre del POU se componga de un verbo y un sustantivo.
Ejemplo
FUNCTION_BLOCK SendTelegram (* prefix: canst *)
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 en inglés para las posibles entradas de un método. Añada una breve descripción de un método a su declaración. Comience los nombres de la interfaz con la letra I; por ejemplo, ICANDevice.
NOTA: Tenga en cuenta el uso del espacio de nombres al utilizar POU declaradas en bibliotecas.