Recomendaciones sobre la nomenclatura de identificadores

Descripción general

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:

NOTA: Las convenciones de nomenclatura y los ejemplos que se proporcionan en los siguientes párrafos se basan en buenas prácticas aplicadas en todo el desarrollo de bibliotecas de Schneider Electric y corresponden a las consultas de convenciones predeterminadas que se utilizan en el Code Analysis de EcoStruxure Machine Expert. Las convenciones de nomenclatura alternativas de otras organizaciones se proporcionan entre paréntesis en las secciones siguientes.

Nombres de variables

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

cadena de bits, no para operaciones aritméticas

SINT

-128

127

8 bits

si

tipo de datos enteros aritméticos, 8 bits

USINT

0

255

8 bits

usi

tipo de datos enteros aritméticos, 8 bits

INT

-32.768

32.767

16 bits

i

tipo de datos enteros aritméticos, 16 bits

UINT

0

65.535

16 bits

ui

tipo de datos enteros aritméticos, 16 bits

DINT

-2.147.483.648

2.147.483.647

32 bits

di

tipo de datos enteros aritméticos, 32 bits

UDINT

0

4.294.967.295

32 bits

udi

tipo de datos enteros aritméticos, 32 bits

LINT

–263

263-1

64 bits

li

tipo de datos enteros aritméticos, 64 bits

ULINT

0

264-1

64 bits

uli

tipo de datos enteros aritméticos, 64 bits

REAL

32 bits

r

tipo de datos de coma flotante aritméticos, 32 bits

LREAL

64 bits

lr

tipo de datos de coma flotante aritméticos, 64 bits

STRING

s

Cadena de caracteres de un solo byte de longitud variable (ajuste predeterminado: 80 caracteres)

WSTRING

ws

Cadena de caracteres de doble byte de longitud variable (ajuste predeterminado: 80 caracteres)

TIME

tim

duración de tiempo, 32 bits

LTIME

ltim

duración de tiempo, 64 bits

  • TIME_OF_DAY

  • TOD

tod

hora del día, 32 bits

  • LTIME_OF_DAY

  • LTOD

ltod

hora del día, 64 bits

  • DATE_AND_TIME

  • DT

dt

fecha y hora

  • LDATE_AND_TIME

  • LDT

ldt

DATE

  • dat

  • d

fecha de calendario

LDATE

  • ldat

  • ld

fecha de calendario

Enumeration

et (e)

POINTER

p

ARRAY

a

Structure

st

Function block

fb

Interface

if (itf)

Union

ut

* 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 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

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 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
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 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_.

POU en bibliotecas

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.

NOTA: Tenga en cuenta el uso del espacio de nombres al utilizar POU declaradas en bibliotecas.