0% encontró este documento útil (0 votos)
123 vistas108 páginas

M251 Funciones

Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
123 vistas108 páginas

M251 Funciones

Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Modicon M251 Logic Controller

EIO0000001468 04/2014

Modicon M251 Logic


Controller
Funciones y variables del sistema
Guía de la biblioteca PLCSystem
04/2014
EIO0000001471.00

[Link]
La información que se ofrece en esta documentación contiene descripciones de carácter general
y/o características técnicas sobre el rendimiento de los productos incluidos en ella. La presente
documentación no tiene como objeto sustituir dichos productos para aplicaciones de usuario
específicas, ni debe emplearse para determinar su idoneidad o fiabilidad. Los usuarios o
integradores tienen la responsabilidad de llevar a cabo un análisis de riesgos adecuado y
completo, así como la evaluación y las pruebas de los productos en relación con la aplicación o el
uso de dichos productos en cuestión. Ni Schneider Electric ni ninguna de sus filiales o asociados
asumirán responsabilidad alguna por el uso inapropiado de la información contenida en este
documento. Si tiene sugerencias de mejoras o modificaciones o ha hallado errores en esta
publicación, le rogamos que nos lo notifique.
No se podrá reproducir este documento de ninguna forma, ni en su totalidad ni en parte, ya sea
por medios electrónicos o mecánicos, incluida la fotocopia, sin el permiso expreso y por escrito de
Schneider Electric.
Al instalar y utilizar este producto es necesario tener en cuenta todas las regulaciones sobre
seguridad correspondientes, ya sean regionales, locales o estatales. Por razones de seguridad y
para garantizar que se siguen los consejos de la documentación del sistema, las reparaciones solo
podrá realizarlas el fabricante.
Cuando se utilicen dispositivos para aplicaciones con requisitos técnicos de seguridad, siga las
instrucciones pertinentes.
Si con nuestros productos de hardware no se utiliza el software de Schneider Electric u otro
software aprobado, pueden producirse lesiones, daños o un funcionamiento incorrecto del equipo.
Si no se tiene en cuenta esta información, se pueden causar daños personales o en el equipo.
© 2014 Schneider Electric. Reservados todos los derechos.

2 EIO0000001471 04/2014
Tabla de materias

Información de seguridad . . . . . . . . . . . . . . . . . . . . . . . 7
Acerca de este libro . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Capítulo 1 M251 Variables del sistema . . . . . . . . . . . . . . . . . . . . . . 11
1.1 Variables del sistema: definición y uso . . . . . . . . . . . . . . . . . . . . . . . . 12
Descripción de las variables de sistema . . . . . . . . . . . . . . . . . . . . . . . 13
Utilización de variables de sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.2 Estructuras PLC_R y PLC_W . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
PLC_R: Variables de sistema de solo lectura del controlador . . . . . . . 18
PLC_W: Variables del sistema de lectura/escritura del controlador . . . 22
1.3 Estructuras SERIAL_R y SERIAL_W . . . . . . . . . . . . . . . . . . . . . . . . . 23
SERIAL_R[0...1]: Variables del sistema de solo lectura de la línea
serie. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
SERIAL_W[0...1]: Variables del sistema de lectura/escritura de
línea serie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
1.4 Estructuras ETH_R y ETH_W . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
ETH_R: Variables de sistema de solo lectura del puerto Ethernet . . . 27
ETH_W: Variables de sistema de lectura/escritura del puerto Ethernet 33
1.5 Estructura de TM3_MODULE_R . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
TM3_MODULE_R[0...13]: Variables de sistema de solo lectura de
los módulos TM3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
1.6 Estructura PROFIBUS_R . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
PROFIBUS_R: Variables de sistema de solo lectura PROFIBUS . . . 35
Capítulo 2 Funciones de sistema M251, . . . . . . . . . . . . . . . . . . . . 37
2.1 Funciones de lectura M251 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
GetRtc: Obtener hora del RTC actual . . . . . . . . . . . . . . . . . . . . . . . . 39
IsFirstMastColdCycle: Indica si el ciclo es el primer ciclo MAST
del arranque en frío . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
IsFirstMastCycle: Indica si el ciclo es el primer ciclo MAST . . . . 41
IsFirstMastWarmCycle: Indica si el ciclo es el primer ciclo MAST
del arranque en caliente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
2.2 Funciones de escritura de M251 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
SetRTCDrift: Definir valor de compensación en el RTC . . . . . . . . . 44
2.3 Funciones de usuario de M251 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
DataFileCopy: Comandos para copiar archivos . . . . . . . . . . . . . . . 47
ExecuteScript: Comandos de secuencia de comandos . . . . . . . . 50

EIO0000001471 04/2014 3
2.4 Funciones de lectura TM3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
TM3_GetModuleBusStatus: Obtener estado del bus del módulo
TM3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
TM3_GetModuleInternalStatus: Obtener estado interno del
módulo TM3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
Capítulo 3 Tipos de datos de la biblioteca PLCSystem de M251. 57
3.1 Tipos de datos de variables de sistema de PLC_R/W. . . . . . . . . . . . . 58
PLC_R_APPLICATION_ERROR: Códigos de estado del error
detectado de la aplicación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
PLC_R_BOOT_PROJECT_STATUS: Códigos de estado del proyecto
de inicio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
PLC_R_IO_STATUS: Códigos de estado de E/S . . . . . . . . . . . . . . . . 61
PLC_R_SDCARD_STATUS: Códigos de estado de slots para tarjeta
SD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
PLC_R_STATUS: Códigos de estado del controlador. . . . . . . . . . . . . 63
PLC_R_STOP_CAUSE: Códigos de causa de transición de estado
RUN a otro estado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
PLC_R_TERMINAL_PORT_STATUS: Códigos de estado de la
conexión del puerto de programación . . . . . . . . . . . . . . . . . . . . . . . . . 65
PLC_R_TM3_BUS_STATE: Códigos de estado del bus TM3. . . . . . . 66
PLC_W_COMMAND: Códigos de comando de control . . . . . . . . . . . . 67
3.2 Tipos de datos de variables del sistema de DataFileCopy . . . . . . . . . 68
DataFileCopyError: Códigos de errores detectados . . . . . . . . . . . . . . 69
DataFileCopyLocation: Códigos de ubicación . . . . . . . . . . . . . . . . . . . 70
3.3 Tipos de datos de variables del sistema de ExecScript. . . . . . . . . . . . 71
ExecuteScriptError: Códigos de errores detectados . . . . . . . . . . . . . . 71
3.4 Tipos de datos de variables de sistema de ETH_R/W. . . . . . . . . . . . . 72
ETH_R_FRAME_PROTOCOL: Códigos de protocolo de transmisión
de tramas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
ETH_R_IP_MODE: Códigos de origen de la dirección IP . . . . . . . . . . 74
ETH_R_PORT_DUPLEX_STATUS: Códigos de modalidad de
transmisión. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
ETH_R_PORT_IP_STATUS: Códigos de estado del puerto TCP/IP
Ethernet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
ETH_R_PORT_LINK_STATUS: Códigos de estado de enlaces de
comunicación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
ETH_R_PORT_SPEED: Códigos de velocidad de comunicación del
puerto Ethernet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
ETH_R_RUN_IDLE: Códigos de estado de ejecución e inactividad de
Ethernet/IP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

4 EIO0000001471 04/2014
3.5 Tipos de datos de variables de sistema de TM3_MODULE_R . . . . . . 80
TM3_ERR_CODE: Códigos de error detectados en el módulo de
ampliación TM3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
TM3_MODULE_R_ARRAY_TYPE: Tipo de matriz de lectura del
módulo de ampliación TM3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
TM3_MODULE_STATE: Códigos de estado del módulo de ampliación
TM3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
3.6 Tipos de datos de funciones de sistema . . . . . . . . . . . . . . . . . . . . . . . 84
RTCSETDRIFT_ERROR: Códigos de error de función SetRTCDrift
detectados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
Apéndices ......................................... 85
Apéndice A Representación de funciones y de bloques de
funciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
Diferencias entre una función y un bloque de funciones. . . . . . . . . . . 88
Cómo utilizar una función o un bloque de funciones en lenguaje IL . . 89
Cómo utilizar una función o un bloque de funciones en lenguaje ST . 93
Glosario ......................................... 97
Índice ......................................... 105

EIO0000001471 04/2014 5
6 EIO0000001471 04/2014
Información de seguridad

Información importante

AVISO
Lea atentamente estas instrucciones y observe el equipo para familiarizarse con el dispositivo
antes de instalarlo, utilizarlo o realizar su mantenimiento. Los mensajes especiales que se ofrecen
a continuación pueden aparecer a lo largo de la documentación o en el equipo para advertir de
peligros potenciales o para ofrecer información que aclara o simplifica los distintos
procedimientos.

EIO0000001471 04/2014 7
TENGA EN CUENTA
La instalación, manejo, puesta en servicio y mantenimiento de equipos eléctricos deberán ser
realizados sólo por personal cualificado. Schneider Electric no se hace responsable de ninguna
de las consecuencias del uso de este material.
Una persona cualificada es aquella que cuenta con capacidad y conocimientos relativos a la
construcción, el funcionamiento y la instalación de equipos eléctricos y que ha sido formada en
materia de seguridad para reconocer y evitar los riesgos que conllevan tales equipos.

8 EIO0000001471 04/2014
Acerca de este libro

Presentación

Objeto
Este documento le permite familiarizarse con las funciones y variables del sistema de Modicon
M251 Logic Controller. La biblioteca M251 PLCSystem contiene funciones y variables para
obtener información y enviar comandos al sistema del controlador.
En este documento se describen las funciones y las variables de tipos de datos de la biblioteca
M251 PLCSystem.
Se requieren los conocimientos siguientes:
z Información básica sobre la funcionalidad, la estructura y la configuración de M251 Logic
Controller
z Programación en lenguaje FBD, LD, ST, IL o CFC
z Variables del sistema (variables globales)

Campo de aplicación
Este documento se ha actualizado con la publicación de SoMachine V4.1.

Documentos relacionados

Título de la documentación Número de referencia


SoMachine - Guía de programación EIO0000000067 (ING);
EIO0000000069 (FRA);
EIO0000000068 (ALE);
EIO0000000071 (ESP);
EIO0000000070 (ITA);
EIO0000000072 (CHI)
Modicon M251 Logic Controller - Guía de hardware EIO0000001486 (ING),
EIO0000001487 (FRA),
EIO0000001488 (ALE),
EIO0000001489 (ESP),
EIO0000001490 (ITA),
EIO0000001491 (CHI)
Modicon M251 Logic Controller - Guía de programación EIO0000001462 (ING),
EIO0000001463 (FRA),
EIO0000001464 (ALE),
EIO0000001465 (ESP),
EIO0000001466 (ITA);
EIO0000001467 (CHI)

EIO0000001471 04/2014 9
Puede descargar estas publicaciones técnicas y otra información técnica de nuestro sitio web
[Link].

Información relativa al producto

ADVERTENCIA
PÉRDIDA DE CONTROL
z El diseñador del esquema de control debe tener en cuenta las posibles modalidades de fallo
de rutas de control y, para ciertas funciones de control críticas, proporcionar los medios para
lograr un estado seguro durante y después de un fallo de ruta. Funciones de control críticas
son, por ejemplo, una parada de emergencia y una parada de sobrerrecorrido, un corte de
alimentación y un reinicio.
z Para las funciones de control críticas deben proporcionarse rutas de control separadas o
redundantes.
z Las rutas de control del sistema pueden incluir enlaces de comunicación. Deben tenerse en
cuenta las implicaciones de los retrasos de transmisión no esperados o los fallos en el enlace.
z Tenga en cuenta todas las reglamentaciones para la prevención de accidentes y las
directrices de seguridad locales.1
z Cada implementación de este equipo debe probarse de forma individual y exhaustiva antes
de entrar en servicio.
El incumplimiento de estas instrucciones puede causar la muerte, lesiones serias o daño
al equipo.

1 Para obtener información adicional, consulte NEMA ICS 1.1 (última edición), "Safety Guidelines
for the Application, Installation, and Maintenance of Solid State Control" (Directrices de seguridad
para la aplicación, la instalación y el mantenimiento del control de estado estático) y NEMA ICS
7.1 (última edición), "Safety Standards for Construction and Guide for Selection, Installation and
Operation of Adjustable-Speed Drive Systems" (Estándares de seguridad para la construcción y
guía para la selección, instalación y utilización de sistemas de unidades de velocidad ajustable) o
su equivalente aplicable a la ubicación específica.

ADVERTENCIA
FUNCIONAMIENTO IMPREVISTO DEL EQUIPO
z Utilice solo software aprobado por Schneider Electric para este equipo.
z Actualice el programa de aplicación siempre que cambie la configuración de hardware física.
El incumplimiento de estas instrucciones puede causar la muerte, lesiones serias o daño
al equipo.

10 EIO0000001471 04/2014
Modicon M251 Logic Controller
M251 Variables del sistema
EIO0000001468 04/2014

Capítulo 1
M251 Variables del sistema

M251 Variables del sistema

Descripción general
En este capítulo:
z Se proporciona una introducción a las variables de sistema (véase página 12).
z Se describen las variables de sistema (véase página 18) incluidas en la biblioteca PLCSystem
de M251.

Contenido de este capítulo


Este capítulo contiene las siguientes secciones:
Sección Apartado Página
1.1 Variables del sistema: definición y uso 12
1.2 Estructuras PLC_R y PLC_W 17
1.3 Estructuras SERIAL_R y SERIAL_W 23
1.4 Estructuras ETH_R y ETH_W 26
1.5 Estructura de TM3_MODULE_R 34
1.6 Estructura PROFIBUS_R 35

EIO0000001471 04/2014 11
M251 Variables del sistema

Sección 1.1
Variables del sistema: definición y uso

Variables del sistema: definición y uso

Descripción general
En esta sección se definen las variables del sistema y cómo implementarlas en Modicon M251
Logic Controller.

Contenido de esta sección


Esta sección contiene los siguientes apartados:
Apartado Página
Descripción de las variables de sistema 13
Utilización de variables de sistema 15

12 EIO0000001471 04/2014
M251 Variables del sistema

Descripción de las variables de sistema

Introducción
En esta sección se describe el modo en que se implementan las variables de sistema. Las
variables de sistema:
z Permiten acceder a información general del sistema, realizar diagnósticos del sistema y
controlar acciones sencillas.
z Son variables estructuradas que cumplen con las definiciones y las convenciones sobre
nomenclatura de la IEC 61131-3. Puede acceder a las variables de sistema con el nombre
simbólico de IEC PLC_GVL. Algunas de las variables de PLC_GVL son de solo lectura (por
ejemplo, PLC_R) y otras son de lectura/escritura (por ejemplo, PLC_W).
z Se declaran automáticamente como variables globales. Tienen alcance en todo el sistema y
cualquier unidad de organización del programa (POU) puede acceder a ellas en cualquier
tarea.

Convención sobre nomenclatura


Las variables de sistema se identifican mediante:
z Un nombre de estructura que representa la categoría de la variable de sistema. Por ejemplo,
PLC_R representa un nombre de estructura de variables de solo lectura usado para el
diagnóstico del controlador.
z Un conjunto de nombres de componentes que identifica el objetivo de la variable. Por ejemplo,
i_wVendorID representa el ID del proveedor del controlador.
Puede acceder a las variables de sistema escribiendo el nombre de estructura de las variables
seguido del nombre del componente.
Aquí tiene un ejemplo de implementación de variables de sistema:
VAR
myCtr_Serial : DWORD;
myCtr_ID : DWORD;
myCtr_FramesRx : UDINT;
END_VAR
myCtr_Serial := PLC_R.i_dwSerialNumber;
myCtr_ID := PLC_R.i_wVendorID;
myCtr_FramesRx := SERIAL_R[0].i_udiFramesReceivedOK;
NOTA: El nombre completo de la variable de sistema del ejemplo anterior es
PLC_GVL.PLC_R.i_wVendorID. PLC_GVL es implícito al declarar una variable con
Accesibilidad, pero también puede introducirse en su totalidad. Las buenas prácticas de
programación suelen dictar la utilización de un nombre de variable completo en las declaraciones.

EIO0000001471 04/2014 13
M251 Variables del sistema

Ubicación de variables de sistema


Se definen dos tipos de variables de sistema que se pueden utilizar al programar el controlador:
z variables ubicadas
z variables no ubicadas

Las variables ubicadas:


z Tienen una ubicación fija en un área de %MW estática: de %MW60000 a %MW60199 para
variables de sistema de solo lectura.
z Se pueden acceder mediante Modbus TCP, serie Modbus y peticiones de IP de Ethernet en los
estados RUNNING y STOPPED.
z Se utilizan en programas de SoMachine según la convención
structure_name.component_name explicada anteriormente. Las direcciones %MW de 0 a
59.999 se pueden acceder directamente. SoMachine considera las direcciones mayores que
esta fuera de rango y solo se pueden acceder a través de la convención
structure_name.component_name.
Las variables no ubicadas:
z no están ubicadas físicamente en el área %MW.
z No se pueden acceder a través de ninguna petición de bus de campo o de red a menos que las
localice en la tabla de reubicación y solo entonces se pueden acceder en los estados
RUNNING y STOPPED. La tabla de reubicación utiliza las áreas %MW dinámicas siguientes:
z De %MW60200 a %MW61999 para variables de solo lectura
z De %MW62200 a %MW63999 para variables de lectura/escritura

z Se utilizan en programas de SoMachine según la convención


structure_name.component_name explicada anteriormente. Las direcciones %MW de 0 a
59.999 se pueden acceder directamente. SoMachine considera las direcciones mayores que
esta fuera de rango y solo se pueden acceder a través de la convención
structure_name.component_name.

14 EIO0000001471 04/2014
M251 Variables del sistema

Utilización de variables de sistema

Introducción
En este apartado se describen los pasos necesarios para programar y usar las variables de
sistema en SoMachine.
Las variables de sistema son de ámbito global y pueden usarse en todas las unidades de
organización del programa (POU) de la aplicación.
No es necesario declarar las variables de sistema en la Lista de variables globales (GVL). Se
declaran automáticamente desde la biblioteca de sistema del controlador.

Utilización de variables de sistema en un POU


SoMachine tiene una función de autocompletado. En un POU, empiece por especificar el nombre
de estructura de la variable de sistema (PLC_R, PLC_W...) seguido de un punto. Aparecerán las
variables de sistema en Accesibilidad. Puede seleccionar la variable que desea o especificar el
nombre completo manualmente.

NOTA: En el ejemplo anterior, tras introducir el nombre de estructura PLC_R., SoMachine ofrece
un menú desplegable de nombres/variables de componentes posibles.

EIO0000001471 04/2014 15
M251 Variables del sistema

Ejemplo
En el ejemplo siguiente se muestra el uso de algunas variables de sistema:
VAR
myCtr_Serial : DWORD;
myCtr_ID : WORD;
myCtr_FramesRx : UDINT;
END_VAR
myCtr_Serial := PLC_R.i_dwSerialNumber;
myCtr_ID := PLC_R.i_wVendorID;
myCtr_FramesRx := SERIAL_R[0].i_udiFramesReceivedOK;

16 EIO0000001471 04/2014
M251 Variables del sistema

Sección 1.2
Estructuras PLC_R y PLC_W

Estructuras PLC_R y PLC_W

Descripción general
En este apartado se describen las diferentes variables de sistema incluidas en las estructuras
PLC_R y PLC_W.

Contenido de esta sección


Esta sección contiene los siguientes apartados:
Apartado Página
PLC_R: Variables de sistema de solo lectura del controlador 18
PLC_W: Variables del sistema de lectura/escritura del controlador 22

EIO0000001471 04/2014 17
M251 Variables del sistema

PLC_R: Variables de sistema de solo lectura del controlador

Estructura de variables
En esta tabla se describen los parámetros de la variable de sistema PLC_R (tipo PLC_R_STRUCT):

Dirección Nombre de variable Tipo Comentario


Modbus (1)
60000 i_wVendorID WORD ID de proveedor del controlador.
101A hex = Schneider Electric
60001 i_wProductID WORD ID de referencia del controlador.
NOTA: ID de proveedor e ID de
referencia son los componentes del ID
del destino del controlador mostrado en
la vista de la configuración de
comunicación (ID del destino = 101A
XXXX hex).
60002 i_dwSerialNumber DWORD Número de serie del controlador
60004 i_byFirmVersion ARRAY[0..3] OF BYTE Controlador Firmware Versión
[[Link]]:
z i_byFirmVersion[0]= aa
z ...
z i_byFirmVersion[3]= dd

60006 i_byBootVersion ARRAY[0..3] OF BYTE Versión de inicio del controlador


[[Link]]:
z i_byBootVersion[0]= aa
z ...
z i_byBootVersion[3]= dd

60008 i_dwHardVersion DWORD Versión de hardware del controlador.


60010 i_dwChipVersion DWORD Versión del coprocesador del
controlador.
60012 i_wStatus PLC_R_STATUS Estado del controlador.
(véase página 63)
60013 i_wBootProjectStatus PLC_R_BOOT_PROJECT_ Devuelve información sobre la
STATUS (véase página 60) aplicación de arranque almacenada en
la memoria FLASH.
60014 i_wLastStopCause PLC_R_STOP_CAUSE Causa de la última transición desde el
(véase página 64) estado RUN a otro estado.
60015 i_wLastApplicationError PLC_R_APPLICATION_ Causa de la excepción del último
ERROR (véase página 59) controlador.

18 EIO0000001471 04/2014
M251 Variables del sistema

Dirección Nombre de variable Tipo Comentario


(1)
Modbus
60016 i_lwSystemFault_1 LWORD El campo de bit FFFF FFFF FFFF
FFFF hex no indica ningún error.
Un bit en nivel bajo significa que se ha
detectado un error:
z bit 0 = Reservado
z bit 1 = Error detectado de TM3
z bit 2 = Error detectado de Ethernet
IF1
z bit 3 = Error detectado de Ethernet
IF2
z bit 4 = Error detectado de
sobrecorriente de serie 1
z bit 5 = Reservado
z bit 6 = Error detectado de CAN 1
z bit 7 = Reservado
z bit 8 = Reservado
z bit 9 = Error detectado de TM4
z bit 10 = Error detectado de tarjeta SD
z bit 11 = Error detectado de servidor
de seguridad
60020 i_lwSystemFault_2 LWORD Todos los bits reservados.
60024 i_wIOStatus1 PLC_R_IO_STATUS Reservado
(véase página 61)
60025 i_wIOStatus2 PLC_R_IO_STATUS Estado de E/S de TM3.
(véase página 61)
60026 i_wClockBatterystatus WORD Estado de la batería del RTC:
z 0 = Se requiere cambio de batería
z 100 = Batería completamente
cargada
Otros valores (de 1 a 99) representa el
porcentaje de la carga. Por ejemplo, si
el valor es 75, representa que la carga
de la batería es del 75%.
60028 i_dwAppliSignature1 DWORD Primera DWORD de la firma de
4 DWORD (16 bytes en total).
El software genera la firma de la
aplicación durante la compilación.
60030 i_dwAppliSignature2 DWORD Segunda DWORD de la firma de
4 DWORD (16 bytes en total).
El software genera la firma de la
aplicación durante la compilación.

EIO0000001471 04/2014 19
M251 Variables del sistema

Dirección Nombre de variable Tipo Comentario


(1)
Modbus
60032 i_dwAppliSignature3 DWORD Tercera DWORD de la firma de
4 DWORD (16 bytes en total).
El software genera la firma de la
aplicación durante la compilación.
60034 i_dwAppliSignature4 DWORD Cuarta DWORD de la firma de
4 DWORD (16 bytes en total).
El software genera la firma de la
aplicación durante la compilación.
(1)
No accesible a través de la aplicación.

n/a i_sVendorName STRING(31) Nombre del fabricante: “Schneider


Electric”.
n/d i_sProductRef STRING(31) Referencia del controlador.
n/a i_sNodeName STRING(99) Nombre de nodo en la red de SoMachine.
n/d i_dwLastStopTime DWORD La hora de la última detención detectada
en segundos, comenzando por el 1 de
enero de 1970 a las 00:00.
n/d i_dwLastPowerOffDate DWORD La fecha y la hora del último apagado
detectado en segundos, comenzando por
el 1 de enero de 1970 a las 00:00 h.
NOTA: Convierta este valor en fecha y
hora mediante la función
SysTimeRtcConvertUtcToDate. Para
obtener más información sobre la
conversión a fecha y hora, consulte la
Guía de la biblioteca SysTime
(véase SoMachine, Obtención y ajuste
del Real Time Clock, Guía de la biblioteca
SysTime).
n/d i_uiEventsCounter UINT Reservado
n/a i_wTerminalPortStatus PLC_R_TERMINAL_PORT_ Estado del puerto de programación USB
STATUS (véase página 65) (Mini-B USB).
n/d i_wSdCardStatus PLC_R_SDCARD_STATUS Estado de la tarjeta SD.
(véase página 62)
n/d i_wUsrFreeFileHdl WORD Número de controladores de archivos
disponibles.
Un controlador de archivos es el recurso
asignado por el sistema cuando se abre
un archivo.

20 EIO0000001471 04/2014
M251 Variables del sistema

n/a i_udiUsrFsTotalBytes UDINT Tamaño total de la memoria del sistema


de archivos del usuario (en bytes).
Es el tamaño de la memoria flash para el
directorio "/usr/".
n/d i_udiUsrFsFreeBytes UDINT Tamaño de memoria libre del sistema de
archivos (en bytes).
n/d i_uiTM3BusState PLC_R_TM3_BUS_STATE Estado de bus TM3.
(véase página 66) i_uiTM3BusState puede tener los
siguientes valores:
z 1: TM3_CONF_ERROR
Discrepancia en la configuración entre
la configuración física y la
configuración de SoMachine.
z 3: TM3_OK
La configuración física coincide con la
configuración de SoMachine.
z 4: TM3_POWER_SUPPLY_ERROR
El bus TM3 no recibe alimentación
(por ejemplo, cuando el Logic
Controller recibe alimentación por
USB).
n/a i_ExpertIO_RunStop_Input BYTE Reservado
n/a i_x10msClk BOOL Bit de TimeBase de 10 ms.
Esta variable alterna On/Off con un
período = 10 ms. El valor se alterna
cuando el Logic Controller se encuentra
en el estado Stop y Run.
n/a i_x100msClk BOOL Bit de TimeBase de 100 ms.
Esta variable alterna On/Off con un
período = 100 ms. El valor se alterna
cuando el Logic Controller se encuentra
en el estado Stop y Run.
n/a i_x1sClk BOOL Bit de TimeBase de 1 s.
Esta variable alterna On/Off con un
período = 1 s. El valor se alterna cuando
el Logic Controller se encuentra en el
estado Stop y Run.

NOTA: n/a significa que no existe una asignación de dirección Modbus predefinida para esta
variable de sistema.

EIO0000001471 04/2014 21
M251 Variables del sistema

PLC_W: Variables del sistema de lectura/escritura del controlador

Estructura de variables
En la tabla se describen los parámetros de la variable del sistema PLC_W (tipo PLC_W_STRUCT):

%MW Nombre de variable Tipo Comentario


n/d q_wResetCounterEvent WORD La transición de 0 a 1 restablece el contador
de eventos
(PLC_R.i_uiEventsCounter).
Para volver a restablecer el contador es
necesario escribir este registro en 0 antes
de que pueda llevarse a cabo otra transición
de 0 a 1.
n/d q_uiOpenPLCControl UINT Cuando el valor pasa de 0 a 6.699 se
ejecuta el comando previamente escrito en
el PLC_W.q_wPLCControl siguiente.
n/d q_wPLCControl PLC_W_COMMAND El comando RUN/STOP del controlador se
(véase página 67) ha ejecutado cuando el valor de la variable
del sistema
PLC_R.q_uiOpenPLCControl ha pasado
de 0 a 6.699.

NOTA: n/a significa que no existe ninguna asignación de %MW predefinida para esta variable del
sistema.

22 EIO0000001471 04/2014
M251 Variables del sistema

Sección 1.3
Estructuras SERIAL_R y SERIAL_W

Estructuras SERIAL_R y SERIAL_W

Descripción general
En este apartado se enumeran y describen las diversas variables del sistema incluidas en las
estructuras SERIAL_R y SERIAL_W.

Contenido de esta sección


Esta sección contiene los siguientes apartados:
Apartado Página
SERIAL_R[0...1]: Variables del sistema de solo lectura de la línea serie 24
SERIAL_W[0...1]: Variables del sistema de lectura/escritura de línea serie 25

EIO0000001471 04/2014 23
M251 Variables del sistema

SERIAL_R[0...1]: Variables del sistema de solo lectura de la línea serie

Introducción
SERIAL_R es una matriz de tipo 2 SERIAL_R_STRUCT. Cada elemento de la matriz devuelve las
variables de sistema de diagnóstico para la línea serie correspondiente.
En el caso de M251 Logic Controller:
z Serial_R[0] hace referencia a la línea serie
z Serial_R[1] está reservado

Estructura de variables
En la tabla se describen los parámetros de las variables del sistema de SERIAL_R[0...1]:

%MW Nombre de variable Tipo Comentario


Línea serie
n/d i_udiFramesTransmittedOK UDINT Número de tramas transmitidas
correctamente.
n/d i_udiFramesReceivedOK UDINT Número de tramas recibidas sin ningún error
detectado.
n/d i_udiRX_MessagesError UDINT Número de tramas recibidas con errores
detectados (suma de comprobación, paridad).
Modbus Specific
n/d i_uiSlaveExceptionCount UINT Número de respuestas de excepción de
Modbus devueltas por el controlador lógico.
n/a i_udiSlaveMsgCount UINT Número de mensajes recibidos desde el
maestro y dirigidos al controlador lógico.
n/a i_uiSlaveNoRespCount UINT Número de peticiones de difusión de Modbus
recibidas por el controlador lógico.
n/a i_uiSlaveNakCount UINT No utilizado
n/d i_uiSlaveBusyCount UINT No utilizado
n/d i_uiCharOverrunCount UINT Número de desbordes de caracteres.

NOTA: n/a significa que no existe ninguna asignación de %MW predefinida para esta variable del
sistema.
NOTA:
Los contadores de SERIAL_R se restablecen en los siguientes casos:
z Descarga
z Restablecimiento del controlador.
z Comando SERIAL_W[x].q_wResetCounter
z Comando de restablecimiento mediante el número 8 del código de la función de petición
Modbus.

24 EIO0000001471 04/2014
M251 Variables del sistema

SERIAL_W[0...1]: Variables del sistema de lectura/escritura de línea serie

Introducción
SERIAL_W es una matriz de tipo 2 SERIAL_W_STRUCT. Cada elemento de la matriz fuerza las
variables del sistema SERIAL_R para restablecer la línea serie correspondiente.
En el caso de M251 Logic Controller:
z Serial_W[0] hace referencia a la línea serie
z Serial_W[1] está reservado

Estructura de variables
En la tabla se describen los parámetros de la variable de sistema de SERIAL_W[0..1]:

%MW Nombre de variable Tipo Comentario


n/d q_wResetCounter WORD La transición de 0 a 1 restablece todos los
contadores de SERIAL_R[0..1].
Para volver a restablecer los contadores es
necesario escribir este registro en 0 antes de que
pueda llevarse a cabo otra transición de 0 a 1.

NOTA: n/a significa que no existe ninguna asignación de %MW predefinida para esta variable del
sistema.

EIO0000001471 04/2014 25
M251 Variables del sistema

Sección 1.4
Estructuras ETH_R y ETH_W

Estructuras ETH_R y ETH_W

Descripción general
En este apartado se describen las diferentes variables de sistema incluidas en las estructuras
ETH_R y ETH_W.

Contenido de esta sección


Esta sección contiene los siguientes apartados:
Apartado Página
ETH_R: Variables de sistema de solo lectura del puerto Ethernet 27
ETH_W: Variables de sistema de lectura/escritura del puerto Ethernet 33

26 EIO0000001471 04/2014
M251 Variables del sistema

ETH_R: Variables de sistema de solo lectura del puerto Ethernet

Estructura de variables
En la tabla siguiente se describen los parámetros de la variable de sistema ETH_R (tipo
ETH_R_STRUCT):

%MW Nombre de variable Tipo Comentario


60050 i_byIPAddress ARRAY[0..3] OF BYTE Dirección IP de la interfaz
Ethernet o Ethernet_1
[[Link]]:
z i_byIPAddress[0]= aaa
z ...
z i_byIPAddress[3]= ddd

60052 i_bySubNetMask ARRAY[0..3] OF BYTE Máscara de subred de la


interfaz Ethernet o Ethernet_1
[[Link]]:
z i_bySub-netMask[0]= aaa
z ...
z i_bySub-netMask[3]= ddd

60054 i_byGateway ARRAY[0..3] OF BYTE Dirección de pasarela de la


interfaz Ethernet o Ethernet_1
[[Link]]:
z i_byGateway[0]= aaa
z ...
z i_byGateway[3]= ddd

60056 i_byMACAddress ARRAY[0..5] OF BYTE Dirección MAC de la interfaz


Ethernet o Ethernet_1
[[Link]]:
z i_byMACAddress[0]= aa
z ...
z i_byMACAddress[5]= ff

60059 i_sDeviceName STRING(15) Nombre utilizado para obtener


la dirección IP del servidor.
n/d i_wIpMode ETH_R_IP_MODE Método utilizado para obtener
(véase página 74) una dirección IP.
n/d i_byFDRServerIPAddress ARRAY[0..3] OF BYTE La dirección IP
[[Link]] del
servidor DHCP o BootP:
z i_byFDRServerIPAddress[0]
= aaa
z ...
z i_byFDRServerIPAddress[3]
= ddd
Igual a [Link] si se usa la IP
almacenada o predeterminada.

EIO0000001471 04/2014 27
M251 Variables del sistema

%MW Nombre de variable Tipo Comentario


n/d i_udiOpenTcpConnections UDINT Número de conexiones TCP
abiertas.
n/d i_udiFramesTransmittedOK UDINT Número de tramas
transmitidas correctamente.
Reseteo al encender o con el
comando de reseteo
ETH_W.q_wResetCounter.
n/d i_udiFramedReceivedOK UDINT Número de tramas recibidas
correctamente. Reseteo al
encender o con el comando de
reseteo
ETH_W.q_wResetCounter.
n/d i_udiTransmitBufferErrors UDINT Número de tramas
transmitidas con errores
detectados. Reseteo al
encender o con el comando de
reseteo
ETH_W.q_wResetCounter.
n/d i_udiReceiveBufferErrors UDINT Número de tramas recibidas
con errores detectados.
Reseteo al encender o con el
comando de reseteo
ETH_W.q_wResetCounter.
n/a i_wFrameSendingProtocol ETH_R_FRAME_PROTOCOL Protocolo Ethernet configurado
(véase página 73) para el envío de tramas (IEEE
802.3 o Ethernet II).
n/d i_wPortALinkStatus ETH_R_PORT_LINK_STATUS Conexión del puerto Ethernet
(véase página 77) (0 = sin conexión, 1 = conexión
conectada a otro dispositivo
Ethernet).
n/d i_wPortASpeed ETH_R_PORT_SPEED Velocidad de red del puerto
(véase página 78) Ethernet (10 Mb/s o 100 Mb/s).
n/d i_wPortADuplexStatus ETH_R_PORT_DUPLEX_ Estado dúplex del puerto
STATUS (véase página 75) Ethernet (0 = semidúplex o 1 =
dúplex completo).
n/a i_udiPortACollisions UDINT Número de tramas implicadas
en una o más colisiones y
enviadas a continuación
correctamente. Reseteo al
encender o con el comando de
reseteo
ETH_W.q_wResetCounter.

28 EIO0000001471 04/2014
M251 Variables del sistema

%MW Nombre de variable Tipo Comentario


Específico de Modbus TCP/IP
n/d i_udiModbusMessageTransmitted UDINT Número de mensajes Modbus
transmitidos.
Reseteo al encender o con el
comando de reseteo
ETH_W.q_wResetCounter.
n/a i_udiModbusMessageReceived UDINT Número de mensajes Modbus
recibidos.
Reseteo al encender o con el
comando de reseteo
ETH_W.q_wResetCounter.
n/a i_udiModbusErrorMessage UDINT Mensajes de error detectados
de Modbus enviados y
recibidos.
Reseteo al encender o con el
comando de reseteo
ETH_W.q_wResetCounter.

EtherNet/IP Specific
n/d i_udiETHIP_IOMessagingTransmitted UDINT Tramas EtherNet/IP Clase 1
transmitidas.
Reseteo al encender o con el
comando de reseteo
ETH_W.q_wResetCounter.
n/a i_udiETHIP_IOMessagingReceived UDINT Tramas EtherNet/IP Clase 1
recibidas.
Reseteo al encender o con el
comando de reseteo
ETH_W.q_wResetCounter.
n/a i_udiUCMM_Request UDINT Mensajes recibidos de
EtherNet/IP desconectada.
Reseteo al encender o con el
comando de reseteo
ETH_W.q_wResetCounter.
n/a i_udiUCMM_Error UDINT Mensajes recibidos no
válidos de EtherNet/IP
desconectada.
Reseteo al encender o con el
comando de reseteo
ETH_W.q_wResetCounter.

EIO0000001471 04/2014 29
M251 Variables del sistema

n/a i_udiClass3_Request UDINT Solicitudes de EtherNet/IP


Clase 3 recibidas.
Reseteo al encender o con el
comando de reseteo
ETH_W.q_wResetCounter.
n/a i_udiClass3_Error UDINT Solicitudes de EtherNet/IP
Clase 3 no válidas recibidas.
Reseteo al encender o con el
comando de reseteo
ETH_W.q_wResetCounter.
n/a i_uiAssemblyInstanceInput UINT Número de instancia de
ensamblado de entrada.
Consulte la guía de
programación
correspondiente del
controlador para obtener más
información.
n/a i_uiAssemblyInstanceInputSize UINT Tamaño de la instancia de
ensamblado de entrada.
Consulte la guía de
programación
correspondiente del
controlador para obtener más
información.
n/a i_uiAssemblyInstanceOutput UINT Número de instancia de
ensamblado de salida.
Consulte la guía de
programación
correspondiente del
controlador para obtener más
información.
n/a i_uiAssemblyInstanceOutputSize UINT Tamaño de instancia de
ensamblado de salida.
Consulte la guía de
programación
correspondiente del
controlador para obtener más
información.
n/a i_uiETHIP_ConnectionTimeouts UINT Número de timeouts de la
conexión. Reseteo al
encender o con el comando
de reseteo
ETH_W.q_wResetCounter.

30 EIO0000001471 04/2014
M251 Variables del sistema

n/a i_ucEipRunIdle ETH_R_RUN_IDLE Indicador de ejecución


(véase página 79) (valor=1) / inactividad
(valor=0) para la conexión
EtherNet/IP de Clase 1.
n/a i_byMasterIpTimeouts REAL Contador de eventos de
timeout del maestro Ethernet
Modbus TCP.
Reseteo al encender o con el
comando de reseteo
ETH_W.q_wResetCounter.
n/a i_byMasterIpLost REAL Estado de enlace del maestro
Ethernet Modbus TCP: 0 =
conexión correcta, 1 =
conexión perdida.
n/a i_wPortAIpStatus ETH_R_PORT_IP_STATUS Estado de la pila del puerto
(véase página 76) TCP/IP Ethernet.
n/a i_byIPAddress_If2 ARRAY[0..3] OF BYTE Dirección IP de la
interfaz Ethernet o
Ethernet_2
[[Link]]:
z i_byIPAddress[0]= aaa
z ...
z i_byIPAddress[3]= ddd

n/a i_bySubNetMask_If2 ARRAY[0..3] OF BYTE Máscara de subred de la


interfaz Ethernet o
Ethernet_2
[[Link]]:
z i_bySub-netMask[0]= aaa
z ...
z i_bySub-netMask[3]= ddd

n/a i_byGateway_If2 ARRAY[0..3] OF BYTE Dirección de pasarela de la


interfaz Ethernet o
Ethernet_2
[[Link]]:
z i_byGateway[0]= aaa
z ...
z i_byGateway[3]= ddd

n/a i_byMACAddress_If2 ARRAY[0..5] OF BYTE Dirección MAC de la interfaz


Ethernet o Ethernet_2
[[Link]]:
z i_byMACAddress[0]= aa
z ...
z i_byMACAddress[5]= ff

n/a i_sDeviceName_If2 STRING(15) Nombre utilizado para


obtener la dirección IP del
servidor.

EIO0000001471 04/2014 31
M251 Variables del sistema

n/d i_wIpMode_If2 ETH_R_IP_MODE Método utilizado para


(véase página 74) obtener una dirección IP.
n/a i_wPortALinkStatus_If2 ETH_R_PORT_LINK_STATUS Conexión del puerto Ethernet
(véase página 77) (0 = sin conexión, 1 =
conexión conectada a otro
dispositivo Ethernet).
n/a i_wPortASpeed_If2 ETH_R_PORT_SPEED Velocidad de red del puerto
(véase página 78) Ethernet (10 Mb/s o 100
Mb/s).
n/d i_wPortADuplexStatus_If2 ETH_R_PORT_DUPLEX_STA Estado dúplex del puerto
TUS (véase página 75) Ethernet (0 = semidúplex o 1
= dúplex completo).
n/a i_wPortAIpStatus_If2 ETH_R_PORT_IP_STATUS Estado de la pila del puerto
(véase página 76) TCP/IP Ethernet.

NOTA: n/a significa que no existe una asignación de %MW predefinida para esta variable de
sistema.

32 EIO0000001471 04/2014
M251 Variables del sistema

ETH_W: Variables de sistema de lectura/escritura del puerto Ethernet

Estructura de variables
En la tabla siguiente se describen los parámetros de la variable de sistema ETH_W (tipo
ETH_W_STRUCT):

%MW Nombre de variable Tipo Comentario


n/d q_wResetCounter WORD La transición de 0 a 1 restablece todos los contadores de
ETH_R.
Para volver a restablecer es necesario escribir este
registro en 0 antes de que pueda llevarse a cabo otra
transición de 0 a 1.

NOTA: n/d significa que no existe ninguna asignación de %MW predefinida para esta variable de
sistema.

EIO0000001471 04/2014 33
M251 Variables del sistema

Sección 1.5
Estructura de TM3_MODULE_R

Estructura de TM3_MODULE_R

TM3_MODULE_R[0...13]: Variables de sistema de solo lectura de los módulos


TM3

Introducción
TM3_MODULE_R es una matriz de 14 variables de tipo TM3_MODULE_R_STRUCT. Cada elemento
de la matriz devuelve las variables de sistema de diagnóstico para el módulo de ampliación TM3
correspondiente.
En el caso de Modicon M251 Logic Controller:
z TM3_MODULE_R[0] hace referencia al módulo de ampliación TM3 0
z ...
z TM3_MODULE_R[13] hace referencia al módulo de ampliación TM3 13

Estructura de variables
En la tabla siguiente se describen los parámetros de la variable de sistema
TM3_MODULE_R[0...13]:

%MW Nombre de variable Tipo Comentario


n/d i_wProductID WORD ID del módulo de ampliación TM3.
n/a i_wModuleState TM3_MODULE_STATE Describe el estado del módulo de TM3.
(véase página 83)

NOTA: n/a significa que no existe una asignación de %MW predefinida para esta variable de
sistema.

34 EIO0000001471 04/2014
M251 Variables del sistema

Sección 1.6
Estructura PROFIBUS_R

Estructura PROFIBUS_R

PROFIBUS_R: Variables de sistema de solo lectura PROFIBUS

Estructura de variables
En esta tabla se describen los parámetros de la variable de sistema PROFIBUS_R (tipo
PROFIBUS_R_STRUCT):

%MW Nombre de variable Tipo Comentario


n/d i_wPNOIdentifier WORD Código de identificación del esclavo.
n/a i_wBusAdr UINT Dirección del esclavo PROFIBUS.
n/a i_CommState UDINT Valor que representa el estado del módulo PROFIBUS:
z 0x00: Desconocido
z 0x01: No configurado
z 0x02: Detenido
z 0x03: Inactivo
z 0x04: En funcionamiento

n/a i_CommError UDINT Código de error de comunicación.


n/a i_ErrorCount UDINT Contador de error de comunicación.

NOTA: n/a significa que no existe ninguna asignación de %MW predefinida para esta variable de
sistema.

EIO0000001471 04/2014 35
M251 Variables del sistema

36 EIO0000001471 04/2014
Modicon M251 Logic Controller
Funciones de sistema M251,
EIO0000001468 04/2014

Capítulo 2
Funciones de sistema M251,

Funciones de sistema M251,

Descripción general
En este capítulo se describen las funciones de sistema incluidas en la biblioteca PLCSystem de
M251.

Contenido de este capítulo


Este capítulo contiene las siguientes secciones:
Sección Apartado Página
2.1 Funciones de lectura M251 38
2.2 Funciones de escritura de M251 44
2.3 Funciones de usuario de M251 46
2.4 Funciones de lectura TM3 52

EIO0000001471 04/2014 37
Funciones de sistema M251,

Sección 2.1
Funciones de lectura M251

Funciones de lectura M251

Descripción general
En este apartado se describen las funciones de lectura incluidas en la biblioteca PLCSystem de
M251.

Contenido de esta sección


Esta sección contiene los siguientes apartados:
Apartado Página
GetRtc: Obtener hora del RTC actual 39
IsFirstMastColdCycle: Indica si el ciclo es el primer ciclo MAST del arranque en frío 40
IsFirstMastCycle: Indica si el ciclo es el primer ciclo MAST 41
IsFirstMastWarmCycle: Indica si el ciclo es el primer ciclo MAST del arranque en caliente 43

38 EIO0000001471 04/2014
Funciones de sistema M251,

GetRtc: Obtener hora del RTC actual

Descripción de la función
Esta función devuelve la hora del RTC actual en segundos en formato UNIX.

Representación gráfica

Representación en IL y ST
Para ver la representación general en lenguaje IL o ST, consulte el capítulo Representación de las
funciones y los bloques de funciones (véase página 87).

Descripción de variables de E/S


En la tabla siguiente se describe la variable de E/S:

Salida Tipo Comentario


GetRtc DINT Hora del RTC actual en segundos en formato
UNIX.

Ejemplo
En el siguiente ejemplo se describe cómo obtener la hora del RTC actual:
VAR
MyRTC : DINT := 0;
END_VAR
MyRTC := GetRtc();

EIO0000001471 04/2014 39
Funciones de sistema M251,

IsFirstMastColdCycle: Indica si el ciclo es el primer ciclo MAST del arranque


en frío

Descripción de la función
Esta función devuelve TRUE durante el primer ciclo MAST después de un arranque en frío (primer
ciclo tras la descarga o reset frío).

Representación gráfica

Representación en IL y ST
Para ver la representación general en lenguaje IL o ST, consulte el capítulo Representación de las
funciones y los bloques de funciones (véase página 87).

Descripción de variables de E/S


En esta tabla se describe la variable de salida:

Salida Tipo Comentario


IsFirstMastColdCycle BOOL TRUE durante el primer ciclo de tarea
MAST después de un arranque en frío.

Ejemplo
Consulte la función IsFirstMastCycle (véase página 41).

40 EIO0000001471 04/2014
Funciones de sistema M251,

IsFirstMastCycle: Indica si el ciclo es el primer ciclo MAST

Descripción de la función
Esta función devuelve TRUE durante el primer ciclo MAST después de un arranque.

Representación gráfica

Representación en IL y ST
Para ver la representación general en lenguaje IL o ST, consulte el capítulo Representación de las
funciones y los bloques de funciones (véase página 87).

Descripción de la variable de E/S

Salida Tipo Comentario


IsFirstMastCycle BOOL TRUE durante el primer ciclo de tarea
MAST después de un arranque.

Ejemplo
En este ejemplo se describen las tres funciones IsFirstMastCycle, IsFirstMast-
ColdCycle y IsFirstMastWarmCycle utilizadas a la vez.
Use este ejemplo en la tarea MAST. De lo contrario, se puede ejecutar varias veces o
posiblemente nunca (una tarea adicional puede llamarse varias veces o no llamarse durante un
ciclo de tarea MAST):
VAR MyIsFirstMastCycle : BOOL; MyIsFirstMastWarmCycle : BOOL; MyIsFirst-
MastColdCycle : BOOL; END_VAR
MyIsFirstMastWarmCycle := IsFirstMastWarmCycle(); MyIsFirstMastColdCycle
:= IsFirstMastColdCycle(); MyIsFirstMastCycle := IsFirstMastCycle();
IF (MyIsFirstMastWarmCycle) THEN
(*Este es el primer ciclo MAST después de un arranque en caliente: todas
las variables se establecen en sus valores de inicialización excepto las
variables Retain*)
(*=> inicia las variables necesarias para que la aplicación se ejecute
como se esperaba en este caso*)
END_IF;

EIO0000001471 04/2014 41
Funciones de sistema M251,

IF (MyIsFirstMastColdCycle) THEN
(*Este es el primer ciclo MAST después de un arranque en frío: todas las
variables se establecen en sus valores de inicialización, incluso las
variables Retain*)
(*=> inicia las variables necesarias para que la aplicación se ejecute
como se esperaba en este caso*)
END_IF;
IF (MyIsFirstMastCycle) THEN
(*Este es el primer ciclo MAST después de un arranque, es decir, después
de un arranque en caliente o en frío así, como los comandos STOP/RUN*)
(*=> inicia las variables necesarias para que la aplicación se ejecute
como se esperaba en este caso*)
END_IF;

42 EIO0000001471 04/2014
Funciones de sistema M251,

IsFirstMastWarmCycle: Indica si el ciclo es el primer ciclo MAST del arranque


en caliente

Descripción de la función
Esta función devuelve TRUE durante el primer ciclo MAST después de un arranque en caliente.

Representación gráfica

Representación en IL y ST
Para ver la representación general en lenguaje IL o ST, consulte el capítulo Representación de las
funciones y los bloques de funciones (véase página 87).

Descripción de variables de E/S


En la tabla se describe la variable de salida:

Salida Tipo Comentario


IsFirstMastWarmCycle BOOL TRUE durante el ciclo de tarea MAST
después de un arranque en caliente.

Ejemplo
Consulte la función IsFirstMastCycle (véase página 41).

EIO0000001471 04/2014 43
Funciones de sistema M251,

Sección 2.2
Funciones de escritura de M251

Funciones de escritura de M251

SetRTCDrift: Definir valor de compensación en el RTC

Descripción de la función
Esta función acelera o ralentiza la frecuencia del RTC para dar control a la aplicación para
compensar el RTC, en función del entorno de funcionamiento (temperatura, etc.). El valor de
compensación se indica en segundos por semana. Puede ser positivo (acelerar) o negativo
(ralentizar).
NOTA: La función SetRTCDrift solo se debe llamar una [Link] nueva llamada sustituye el
valor de compensación por uno [Link] valor se conserva en el hardware del Logic Controller
mientras el RTC se alimenta mediante la alimentación principal o la baterí[Link] se eliminan la
batería y la alimentación principal, el valor de compensación del RTC no estará disponible.

Representación gráfica

Representación IL y ST
Para ver la representación general en lenguaje IL o ST, consulte el capítulo Representación de las
funciones y los bloques de funciones (véase página 87).

Descripción de variables de E/S


En esta tabla se describen los parámetros de entrada:

Entradas Tipo Comentario


RtcDrift SINT(-29..29) Corrección en segundos por semana (de -29 a
+29).

NOTA: Los parámetros Día, Hora y Minuto se utilizan únicamente para garantizar la
compatibilidad con versiones anteriores.
NOTA: Si el valor introducido para RtcDrift sobrepasa el límite, el firmware del Logic Controller
definirá el valor en el máximo.

44 EIO0000001471 04/2014
Funciones de sistema M251,

En esta tabla se describe la variable de salida:

Salida Tipo Comentario


SetRTCDrift RTCSETDRIFT_ERROR Devuelve RTC_OK (00 hex) si el comando es
(véase página 84) correcto; en caso contrario, devuelve el código ID
del error detectado.

Ejemplo
En este ejemplo, la función únicamente se invoca durante el primer ciclo de la tarea MAST.
Acelera el RTC en 4 segundos a la semana (18 segundos al mes).
VAR
MyRTCDrift : SINT (-29..29) := 0;
MyDay : DAY_OF_WEEK;
MyHour : HOUR;
MyMinute : MINUTE;
END_VAR
IF IsFirstMastCycle() THEN
MyRTCDrift := 4;
MyDay := 0;
MyHour := 0;
MyMinute := 0;
SetRTCDrift(MyRTCDrift, MyDay, MyHour, MyMinute);
END_IF

EIO0000001471 04/2014 45
Funciones de sistema M251,

Sección 2.3
Funciones de usuario de M251

Funciones de usuario de M251

Descripción general
En esta sección se describen las funciones DataFileCopy y ExecuteScript incluidas en la
biblioteca M251 PLCSystem.

Contenido de esta sección


Esta sección contiene los siguientes apartados:
Apartado Página
DataFileCopy: Comandos para copiar archivos 47
ExecuteScript: Comandos de secuencia de comandos 50

46 EIO0000001471 04/2014
Funciones de sistema M251,

DataFileCopy: Comandos para copiar archivos

Descripción de la función
Esta función permite copiar los datos de la memoria en un archivo y viceversa. El archivo se
encuentra en el sistema interno o el sistema externo (tarjeta SD) de archivos.
El bloque de funciones DataFileCopy puede:
z leer datos de un archivo formateado, o
z Copie datos del búfer de memoria a un archivo formateado. Para obtener más información,
consulte Flash Memory Organization (véase Modicon M251 Logic Controller, Programming
Guide).

Representación gráfica

Representación en IL y ST
Para ver la representación general en lenguaje IL o ST, consulte el capítulo Representación de las
funciones y los bloques de funciones (véase página 87).

Descripción de variables de E/S


En esta tabla se describen las variables de entrada:

Entrada Tipo Comentario


xExecute BOOL En el flanco ascendente, inicia la ejecución del bloque de funciones.
En el flanco descendente, restablece las salidas del bloque de funciones cuando finaliza
su ejecución.
sFileName STRING Nombre de archivo sin extensión (la extensión .DTA se incluye automáticamente).
Utilice solamente caracteres alfanuméricos (mayúsculas, minúsculas o números).
xRead BOOL TRUE: copiar de archivo a memoria.
FALSE: copiar de memoria a archivo.
xSecure BOOL TRUE: la dirección MAC se almacena siempre en el archivo. Solo un controlador con la
misma dirección MAC podrá leer el archivo.
FALSE: otro controlador con el mismo tipo de memoria puede leer el archivo.

EIO0000001471 04/2014 47
Funciones de sistema M251,

Entrada Tipo Comentario


iLocation INT 0: la ubicación del archivo en el sistema interno de archivos es /usr/DTA.
1: la ubicación del archivo en el sistema externo de archivos (tarjeta SD) es /usr/DTA.
uiSize UINT Indica el tamaño en bytes. El máximo son 65.534 bytes.
Utilice solamente direcciones de variables conforme a IEC 6113-1 (variables, matrices,
estructuras), por ejemplo:
Variable : int;
uiSize := SIZEOF (Variable);
dwAdd DWORD Indica la dirección en la memoria.
Utilice solamente direcciones de variables conforme a IEC 6113-1 (variables, matrices,
estructuras), por ejemplo:
Variable : int;
dwAdd := ADR (Variable);

ADVERTENCIA
FUNCIONAMIENTO IMPREVISTO DEL EQUIPO
Compruebe que el tamaño de la ubicación de la memoria es el adecuado y que el tipo de archivo
es el correcto antes de copiar el archivo a la memoria.
El incumplimiento de estas instrucciones puede causar la muerte, lesiones serias o daño
al equipo.

En esta tabla se describen las variables de salida:

Salida Tipo Comentario


xDone BOOL TRUE indica que la acción se ha completado correctamente.
xBusy BOOL TRUE indica que el bloque de funciones se está ejecutando.
xError BOOL TRUE indica que se ha detectado un error y que el bloque de
funciones ha anulado la acción.
eError DataFileCopyError Indica el tipo de error de copia de archivo de datos que se ha
(véase página 69) detectado.

NOTA: Si escribe en la variable de memoria dentro del área de escritura del archivo, generará un
error CRC detectado.

48 EIO0000001471 04/2014
Funciones de sistema M251,

Ejemplo
En este ejemplo se describe cómo copiar comandos de archivos:
VAR
LocalArray : ARRAY [0..29] OF BYTE;
myFileName: STRING := ‘exportfile’;
EXEC_FLAG: BOOL;
DataFileCopy: DataFileCopy;
END_VAR
DataFileCopy(
xExecute:= EXEC_FLAG,
sFileName:= myFileName,
xRead:= FALSE,
xSecure:= FALSE,
iLocation:= DFCL_INTERNAL,
dwSize:= SIZEOF(LocalArray),
dwAdd:= ADR(LocalArray),
xDone=> ,
xBusy=> ,
xError=> ,
eError=> );

EIO0000001471 04/2014 49
Funciones de sistema M251,

ExecuteScript: Comandos de secuencia de comandos

Descripción de la función
Esta función puede ejecutar los siguientes comandos de secuencia de comandos de la tarjeta SD:
z Descargar
z Cargar
z SetNodeName
z Eliminar
z Reiniciar

Utilice la misma sintaxis que en la secuencia de comandos de USB para ejecutar estos comandos
(distingue entre mayúsculas y minúsculas). Consulte Generación de scripts y archivos con el
almacenamiento masivo en la tarjeta SD (véase Modicon M251 Logic Controller, Programming
Guide).

Representación gráfica

Representación en IL y ST
Para ver la representación general en lenguaje IL o ST, consulte el capítulo Representación de las
funciones y los bloques de funciones (véase página 87).

Descripción de variables de E/S


En esta tabla se describen las variables de entrada:

Entrada Tipo Comentario


xExecute BOOL En el rising edge, inicia la ejecución del bloque de funciones.
En el falling edge, restablece las salidas del bloque de funciones
cuando finaliza su ejecución.
sCmd STRING Sintaxis de comando de la secuencia de comandos de la tarjeta SD.
No se permiten ejecuciones de comando simultáneas: si se ejecuta un
comando desde otro bloque de funciones o desde una secuencia de
comandos de la tarjeta SD, el bloque de funciones pone el comando a
la cola y no lo ejecuta inmediatamente.
NOTA: Se considera que una secuencia de comandos de tarjeta SD
ejecutada desde una tarjeta SD se estará ejecutando hasta que se
extraiga la tarjeta SD.

50 EIO0000001471 04/2014
Funciones de sistema M251,

En esta tabla se describen las variables de salida:

Salida Tipo Comentario


xDone BOOL TRUE indica que la acción se ha completado correctamente.
xBusy BOOL TRUE indica que el bloque de funciones se está ejecutando.
xError BOOL TRUE indica que se ha detectado un error y el bloque de
funciones anula la acción.
eError ExecuteScriptError Indica el tipo de error detectado de la secuencia de comandos
(véase página 71) de ejecución.

Ejemplo
En este ejemplo se describe cómo ejecutar un comando de la secuencia de comandos:
VAR
EXEC_FLAG: BOOL;
ExecuteScript: ExecuteScript;
END_VAR
ExecuteScript(
xExecute:= EXEC_FLAG,
sCmd:= ‘Upload “/usr/Syslog/*”’,
xDone=> ,
xBusy=> ,
xError=> ,
eError=> );

EIO0000001471 04/2014 51
Funciones de sistema M251,

Sección 2.4
Funciones de lectura TM3

Funciones de lectura TM3

Descripción general
En este apartado se describen las funciones de lectura TM3 incluidas en la biblioteca M251
PLCSystem.

Contenido de esta sección


Esta sección contiene los siguientes apartados:
Apartado Página
TM3_GetModuleBusStatus: Obtener estado del bus del módulo TM3 53
TM3_GetModuleInternalStatus: Obtener estado interno del módulo TM3 54

52 EIO0000001471 04/2014
Funciones de sistema M251,

TM3_GetModuleBusStatus: Obtener estado del bus del módulo TM3

Descripción de la función
Esta función devuelve el estado del bus del módulo. El índice del módulo se proporciona como
parámetro de entrada.

Representación gráfica

Representación en IL y ST
Para ver la representación general en lenguaje IL o ST, consulte el capítulo Representación de las
funciones y los bloques de funciones (véase página 87).

Descripción de variables de E/S


En la tabla siguiente se describe la variable de entrada:

Entrada Tipo Comentario


ModuleIndex BYTE Índice del módulo (0 para la primera expansión, 1
para la segunda, etc.).

En la tabla siguiente se describe la variable de salida:

Salida Tipo Comentario


TM3_GetModuleBusStatus TM3_ERR_CODE Devuelve TM3_OK (00 hex) si el comando es
(véase página 81) correcto; en caso contrario, devuelve el código ID del
error detectado.

EIO0000001471 04/2014 53
Funciones de sistema M251,

TM3_GetModuleInternalStatus: Obtener estado interno del módulo TM3

Descripción de la función
Esta función llena pStatusBuffer con la tabla de estado del módulo ModuleIndex.

Representación gráfica

Representación en IL y ST
Para ver la representación general en lenguaje IL o ST, consulte el capítulo Representación de las
funciones y los bloques de funciones (véase página 87).

Descripción de variables de E/S

ADVERTENCIA
FUNCIONAMIENTO IMPREVISTO DEL EQUIPO
Asegúrese de que pStatusBuffer está asignado.
El incumplimiento de estas instrucciones puede causar la muerte, lesiones serias o daño
al equipo.

En la tabla siguiente se describen las variables de entrada:

Entrada Tipo Comentario


ModuleIndex BYTE Índice del módulo (0 para la primera expansión, 1
para la segunda, etc.).
StatusOffset BYTE Offset del primer estado que se debe leer en la tabla
de estado.
StatusSize BYTE Número de bytes que se deben leer en la tabla de
estado.
pStatusBuffer POINTER TO BYTE Búfer que contiene la tabla de estado de lectura.

54 EIO0000001471 04/2014
Funciones de sistema M251,

En la tabla siguiente se describe la variable de salida:

Salida Tipo Comentario


TM3_GetModuleInternalStatus TM3_ERR_CODE Devuelve TM3_OK (00 hex) si el comando es
(véase página 81) correcto; en caso contrario, devuelve el código ID
del error detectado.

Ejemplo
En el siguiente ejemplo se describe cómo obtener el estado interno del módulo:
VAR
AMM3HT_Channel1_Input_Status: BYTE;
END_VAR
TM3_GetModuleInternalStatus(0, 1, 1, ADR(AMM3HT_Channel1_Input_Status));

EIO0000001471 04/2014 55
Funciones de sistema M251,

56 EIO0000001471 04/2014
Modicon M251 Logic Controller
Tipos de datos de la biblioteca PLCSystem de M251
EIO0000001468 04/2014

Capítulo 3
Tipos de datos de la biblioteca PLCSystem de M251

Tipos de datos de la biblioteca PLCSystem de M251

Descripción general
En este capítulo se describen los tipos de datos de la biblioteca PLCSystem de M251.
Hay dos tipos de datos disponibles:
z Los tipos de datos de variables de sistema son utilizados por las variables de sistema
(véase página 11) de la biblioteca PLCSystem de M251 (PLC_R, PLC_W,...).
z Los tipos de datos de funciones de sistema son utilizados por las funciones de sistema
(véase página 37) de lectura/escritura de la biblioteca PLCSystem de M251.

Contenido de este capítulo


Este capítulo contiene las siguientes secciones:
Sección Apartado Página
3.1 Tipos de datos de variables de sistema de PLC_R/W 58
3.2 Tipos de datos de variables del sistema de DataFileCopy 68
3.3 Tipos de datos de variables del sistema de ExecScript 71
3.4 Tipos de datos de variables de sistema de ETH_R/W 72
3.5 Tipos de datos de variables de sistema de TM3_MODULE_R 80
3.6 Tipos de datos de funciones de sistema 84

EIO0000001471 04/2014 57
Tipos de datos de la biblioteca PLCSystem de M251

Sección 3.1
Tipos de datos de variables de sistema de PLC_R/W

Tipos de datos de variables de sistema de PLC_R/W

Descripción general
En este apartado se describen los tipos de datos de las variables de sistema incluidas en las
estructuras PLC_R y PLC_W.

Contenido de esta sección


Esta sección contiene los siguientes apartados:
Apartado Página
PLC_R_APPLICATION_ERROR: Códigos de estado del error detectado de la aplicación 59
PLC_R_BOOT_PROJECT_STATUS: Códigos de estado del proyecto de inicio 60
PLC_R_IO_STATUS: Códigos de estado de E/S 61
PLC_R_SDCARD_STATUS: Códigos de estado de slots para tarjeta SD 62
PLC_R_STATUS: Códigos de estado del controlador 63
PLC_R_STOP_CAUSE: Códigos de causa de transición de estado RUN a otro estado 64
PLC_R_TERMINAL_PORT_STATUS: Códigos de estado de la conexión del puerto de 65
programación
PLC_R_TM3_BUS_STATE: Códigos de estado del bus TM3 66
PLC_W_COMMAND: Códigos de comando de control 67

58 EIO0000001471 04/2014
Tipos de datos de la biblioteca PLCSystem de M251

PLC_R_APPLICATION_ERROR: Códigos de estado del error detectado de la


aplicación

Descripción del tipo enumerado


El tipo de datos de enumeración PLC_R_APPLICATION_ERROR contiene los valores siguientes:

Enumerador Valor Comentario


PLC_R_APP_ERR_UNKNOWN FFFF hex Error detectado no definido.
PLC_R_APP_ERR_NOEXCEPTION 0000 hex No se han detectado errores.
PLC_R_APP_ERR_WATCHDOG 0010 hex Ha caducado el watchdog de la aplicación
de la tarea.
PLC_R_APP_ERR_HARDWAREWATCHDOG 0011 hex Ha caducado el watchdog del hardware.
PLC_R_APP_ERR_IO_CONFIG_ERROR 0012 hex Se han detectado parámetros de
configuración de E/S incorrectos.
PLC_R_APP_ERR_UNRESOLVED_EXTREFS 0018 hex Funciones no definidas detectadas.
PLC_R_APP_ERR_IEC_TASK_CONFIG_ERROR 0025 hex Se han detectado parámetros de
configuración de tareas incorrectos.
PLC_R_APP_ERR_ILLEGAL_INSTRUCTION 0050 hex Instrucción no definida detectada.
PLC_R_APP_ERR_ACCESS_VIOLATION 0051 hex Intento de acceso al área de memoria
reservada.
PLC_R_APP_ERR_DIVIDE_BY_ZERO 0102 hex Detectada división de entero por cero.
PLC_R_APP_ERR_PROCESSORLOAD_WATCHDOG 0105 hex Las tareas de la aplicación han
sobrecargado el procesador.
PLC_R_APP_ERR_DIVIDE_REAL_BY_ZERO 0152 hex Detectada división real por cero.
PLC_R_APP_ERR_EXPIO_EVENTS_COUNT_EXCEEDED 4E20 hex Se han detectado demasiados eventos en
E/S expertas. Se reducen las tareas de
evento.
PLC_R_APP_ERR_APPLICATION_VERSION_MISMATCH 4E21 hex Discrepancia detectada en la versión de la
aplicación.

EIO0000001471 04/2014 59
Tipos de datos de la biblioteca PLCSystem de M251

PLC_R_BOOT_PROJECT_STATUS: Códigos de estado del proyecto de inicio

Descripción del tipo enumerado


El tipo de datos de enumeración PLC_R_BOOT_PROJECT_STATUS contiene los valores
siguientes:

Enumerador Valor Comentario


PLC_R_NO_BOOT_PROJECT 0000 hex El proyecto de inicio no existe en la memoria
Flash.
PLC_R_BOOT_PROJECT_CREATION_IN_PROGRESS 0001 hex Se va a crear el proyecto de inicio.
PLC_R_DIFFERENT_BOOT_PROJECT 0002 hex El proyecto de inicio en la memoria Flash es
distinto del cargado en la RAM.
PLC_R_VALID_BOOT_PROJECT FFFF hex El proyecto de inicio en la memoria Flash es
el mismo que el cargado en la RAM.

60 EIO0000001471 04/2014
Tipos de datos de la biblioteca PLCSystem de M251

PLC_R_IO_STATUS: Códigos de estado de E/S

Descripción del tipo enumerado


El tipo de datos de enumeración PLC_R_IO_STATUS contiene los valores siguientes:

Enumerador Valor Comentario


PLC_R_IO_OK FFFF hex Las entradas/salidas están operativas.
PLC_R_IO_NO_INIT 0001 hex Las entradas/salidas no se han
inicializado.
PLC_R_IO_CONF_FAULT 0002 hex Se han detectado parámetros de
configuración de E/S incorrectos.
PLC_R_IO_SHORTCUT_FAULT 0003 hex Se ha detectado un cortocircuito de las
entradas/salidas.
PLC_R_IO_POWER_SUPPLY_FAULT 0004 hex Se ha detectado un error de alimentación
en las entradas/salidas.

EIO0000001471 04/2014 61
Tipos de datos de la biblioteca PLCSystem de M251

PLC_R_SDCARD_STATUS: Códigos de estado de slots para tarjeta SD

Descripción del tipo enumerado


El tipo de datos de enumeración PLC_R_SDCARD_STATUS contiene los valores siguientes:

Enumerador Valor Comentario


NO_SDCARD 0000 hex No se ha detectado ninguna tarjeta SD en el slot o
el slot no está conectado.
SDCARD_READONLY 0001 hex La tarjeta SD se encuentra en la modalidad de
solo lectura.
SDCARD_READWRITE 0002 hex La tarjeta SD se encuentra en la modalidad de
lectura/escritura.
SDCARD_ERROR 0003 hex Error detectado en la tarjeta SD.

62 EIO0000001471 04/2014
Tipos de datos de la biblioteca PLCSystem de M251

PLC_R_STATUS: Códigos de estado del controlador

Descripción del tipo enumerado


El tipo de datos de la enumeración PLC_R_STATUS contiene los valores siguientes:

Enumerador Valor Comentario


PLC_R_EMPTY 0000 hex El controlador no contiene ninguna aplicación.
PLC_R_STOPPED 0001 hex El controlador se ha detenido.
PLC_R_RUNNING 0002 hex El controlador está en ejecución.
PLC_R_HALT 0004 hex El controlador está en estado HALT (Parado).
(Consulte el diagrama del estado del controlador
en la guía de programación del controlador).
PLC_R_BREAKPOINT 0008 hex El controlador se ha detenido en un punto de
interrupción.

EIO0000001471 04/2014 63
Tipos de datos de la biblioteca PLCSystem de M251

PLC_R_STOP_CAUSE: Códigos de causa de transición de estado RUN a otro


estado

Descripción del tipo enumerado


El tipo de datos de enumeración PLC_R_STOP_CAUSE contiene los valores siguientes:

Enumerador Valor Comentario


PLC_R_STOP_REASON_UNKNOWN 00 hex El valor inicial o la causa de la detención es
indefinido.
PLC_R_STOP_REASON_HW_WATCHDOG 01 hex Detenido tras un timeout de watchdog.
PLC_R_STOP_REASON_RESET 02 hex Detenido tras resetear.
PLC_R_STOP_REASON_EXCEPTION 03 hex Detenido tras la excepción.
PLC_R_STOP_REASON_USER 04 hex Detenido tras una petición de usuario.
PLC_R_STOP_REASON_IECPROGRAM 05 hex Detenido después de una petición de
comando de programa (por ejemplo: comando
de control con parámetro
PLC_W.q_wPLCControl:=PLC_W_COMMAND
.PLC_W_STOP;).
PLC_R_STOP_REASON_DELETE 06 hex Detenido tras un comando de eliminación de
aplicación.
PLC_R_STOP_REASON_DEBUGGING 07 hex Detenido tras entrar en la modalidad de
depuración.
PLC_R_STOP_FROM_NETWORK_REQUEST 0A hex Detenido tras una petición de la red, tarjeta SD
o PLC_W command.
PLC_R_STOP_FROM_INPUT 0B hex Detención requerida por una entrada de
controlador.
PLC_R_STOP_FROM_RUN_STOP_SWITCH 0C hex Detención requerida por el interruptor del
controlador.
PLC_R_STOP_REASON_RETAIN_MISMATCH 0D hex Detenido tras una prueba de comprobación de
contexto incorrecta durante el reinicio.
PLC_R_STOP_REASON_BOOT_APPLI_MISMATCH 0E hex Detenido tras una comparación incorrecta
entre la aplicación de inicio y la aplicación que
se encontraba en la memoria antes de
reiniciar.
PLC_R_STOP_REASON_POWERFAIL 0F hex Detenido tras una interrupción de la
alimentación.

Para obtener más información sobre los motivos por los que se ha detenido el controlador,
consulte la Descripción de los estados del controlador (véase Modicon M251 Logic Controller,
Programming Guide).

64 EIO0000001471 04/2014
Tipos de datos de la biblioteca PLCSystem de M251

PLC_R_TERMINAL_PORT_STATUS: Códigos de estado de la conexión del


puerto de programación

Descripción de los tipos enumerados


El tipo de datos de enumeración PLC_R_TERMINAL_PORT_STATUS contiene los valores
siguientes:

Enumerador Valor Comentario


TERMINAL_NOT_CONNECTED 00 hex No hay ningún PC conectado al puerto de
programación.
TERMINAL_CONNECTION_IN_PROGRESS 01 hex La conexión está en curso.
TERMINAL_CONNECTED 02 hex El PC está conectado al puerto de programación.
TERMINAL_ERROR 0F hex Error detectado durante la conexión.

EIO0000001471 04/2014 65
Tipos de datos de la biblioteca PLCSystem de M251

PLC_R_TM3_BUS_STATE: Códigos de estado del bus TM3

Descripción del tipo enumerado


El tipo de datos de enumeración PLC_R_TM3_BUS_STATE contiene los valores siguientes:

Enumerador Valor Comentario


TM3_CONF_ERROR 01 hex Error detectado debido a una discrepancia en la
configuración física y la configuración en SoMachine.
TM3_OK 03 hex Se ha detectado una buena coincidencia en la
configuración física y la configuración en SoMachine.
TM3_POWER_SUPPLY_ERROR 04 hex Error detectado en la fuente de alimentación.

66 EIO0000001471 04/2014
Tipos de datos de la biblioteca PLCSystem de M251

PLC_W_COMMAND: Códigos de comando de control

Descripción del tipo enumerado


El tipo de datos de enumeración PLC_W_COMMAND contiene los valores siguientes:

Enumerador Valor Comentario


PLC_W_STOP 0001 hex Comando para detener el controlador.
PLC_W_RUN 0002 hex Comando para ejecutar el controlador.
PLC_W_RESET_COLD 0004 hex Comando para iniciar un reinicio en frío del
controlador.
PLC_W_RESET_WARM 0008 hex Comando para iniciar un reinicio en caliente del
controlador.

EIO0000001471 04/2014 67
Tipos de datos de la biblioteca PLCSystem de M251

Sección 3.2
Tipos de datos de variables del sistema de DataFileCopy

Tipos de datos de variables del sistema de DataFileCopy

Descripción general
En esta sección se describen los tipos de datos de variables de sistema incluidos en las
estructuras DataFileCopy.

Contenido de esta sección


Esta sección contiene los siguientes apartados:
Apartado Página
DataFileCopyError: Códigos de errores detectados 69
DataFileCopyLocation: Códigos de ubicación 70

68 EIO0000001471 04/2014
Tipos de datos de la biblioteca PLCSystem de M251

DataFileCopyError: Códigos de errores detectados

Descripción de los tipos enumerados


El tipo de datos de enumeración DataFileCopyError contiene los valores siguientes:

Enumerador Valor Descripción


ERR_NO_ERR 00 hex No se ha detectado ningún error.
ERR_FILE_NOT_FOUND 01 hex El archivo no existe.
ERR_FILE_ACCESS_REFUSED 02 hex No se puede abrir el archivo.
ERR_INCORRECT_SIZE 03 hex El tamaño de la petición es diferente al
tamaño que se ha leído en el archivo.
ERR_CRC_ERR 04 hex El CRC es incorrecto y se supone que el
archivo está dañado.
ERR_INCORRECT_MAC 05 hex El controlador que intenta leer del archivo
no tiene la misma dirección MAC que la
que se presenta en el archivo.

EIO0000001471 04/2014 69
Tipos de datos de la biblioteca PLCSystem de M251

DataFileCopyLocation: Códigos de ubicación

Descripción del tipo enumerado


El tipo de datos de enumeración DataFileCopyLocation contiene los valores siguientes:

Enumerador Valor Descripción


DFCL_INTERNAL 00 hex El archivo de datos con la extensión DTA se
encuentra en el directorio /usr/Dta.
DFCL_EXTERNAL 01 hex El archivo de datos con la extensión DTA se
encuentra en el directorio /sd0/usr/Dta.
DFCL_TBD 02 hex No utilizado.

70 EIO0000001471 04/2014
Tipos de datos de la biblioteca PLCSystem de M251

Sección 3.3
Tipos de datos de variables del sistema de ExecScript

Tipos de datos de variables del sistema de ExecScript

ExecuteScriptError: Códigos de errores detectados

Descripción de los tipos enumerados


El tipo de datos de enumeración ExecuteScriptError contiene los valores siguientes:

Enumerador Valor Descripción


CMD_OK 00 hex No se ha detectado ningún error.
ERR_CMD_UNKNOWN 01 hex No se reconoce el comando.
ERR_SD_CARD_MISSING 02 hex La tarjeta SD no está presente.
ERR_SEE_FWLOG 03 hex Se ha detectado un error durante la ejecución
del comando, consulte [Link]. Para
obtener más información, consulte Tipo de
archivo (véase Modicon M251 Logic Controller,
Programming Guide).
ERR_ONLY_ONE_COMMAND_ALLOWED 04 hex Se ha intentado ejecutar diversas secuencias
de comandos simultáneamente.
CMD_BEING_EXECUTED 05 hex Ya hay una secuencia de comandos en curso.

EIO0000001471 04/2014 71
Tipos de datos de la biblioteca PLCSystem de M251

Sección 3.4
Tipos de datos de variables de sistema de ETH_R/W

Tipos de datos de variables de sistema de ETH_R/W

Descripción general
En este apartado se describen los tipos de datos de las variables de sistema incluidos en las
estructuras ETH_R y ETH_W.

Contenido de esta sección


Esta sección contiene los siguientes apartados:
Apartado Página
ETH_R_FRAME_PROTOCOL: Códigos de protocolo de transmisión de tramas 73
ETH_R_IP_MODE: Códigos de origen de la dirección IP 74
ETH_R_PORT_DUPLEX_STATUS: Códigos de modalidad de transmisión 75
ETH_R_PORT_IP_STATUS: Códigos de estado del puerto TCP/IP Ethernet 76
ETH_R_PORT_LINK_STATUS: Códigos de estado de enlaces de comunicación 77
ETH_R_PORT_SPEED: Códigos de velocidad de comunicación del puerto Ethernet 78
ETH_R_RUN_IDLE: Códigos de estado de ejecución e inactividad de Ethernet/IP 79

72 EIO0000001471 04/2014
Tipos de datos de la biblioteca PLCSystem de M251

ETH_R_FRAME_PROTOCOL: Códigos de protocolo de transmisión de tramas

Descripción del tipo enumerado


El tipo de datos de enumeración ETH_R_FRAME_PROTOCOL contiene los valores siguientes:

Enumerador Valor Comentario


ETH_R_802_3 00 hex El protocolo que se usa en la transmisión de
tramas es IEEE 802.3.
ETH_R_ETHERNET_II 01 hex El protocolo usado para la transmisión de tramas
es Ethernet II.

EIO0000001471 04/2014 73
Tipos de datos de la biblioteca PLCSystem de M251

ETH_R_IP_MODE: Códigos de origen de la dirección IP

Descripción del tipo enumerado


El tipo de datos de enumeración ETH_R_IP_MODE contiene los valores siguientes:

Enumerador Valor Comentario


ETH_R_STORED 00 hex Se utiliza la dirección IP almacenada.
ETH_R_BOOTP 01 hex Se usa el protocolo Bootstrap para obtener una
dirección IP.
ETH_R_DHCP 02 hex Se usa el protocolo DHCP para obtener una
dirección IP.
ETH_DEFAULT_IP FF hex Se utiliza la dirección IP predeterminada.

74 EIO0000001471 04/2014
Tipos de datos de la biblioteca PLCSystem de M251

ETH_R_PORT_DUPLEX_STATUS: Códigos de modalidad de transmisión

Descripción de los tipos enumerados


El tipo de datos de enumeración ETH_R_PORT_DUPLEX_STATUS contiene los valores siguientes:

Enumerador Valor Comentario


ETH_R_PORT_HALF_DUPLEX 00 hex Se utiliza la modalidad de transmisión de
semidúplex.
ETH_R_FULL_DUPLEX 01 hex Se utiliza la modalidad de transmisión de dúplex
completo.
ETH_R_PORT_NA_DUPLEX 03 hex Se utiliza la modalidad de transmisión de dúplex.

EIO0000001471 04/2014 75
Tipos de datos de la biblioteca PLCSystem de M251

ETH_R_PORT_IP_STATUS: Códigos de estado del puerto TCP/IP Ethernet

Descripción de los tipos enumerados


El tipo de datos de enumeración ETH_R_PORT_IP_STATUS contiene los valores siguientes:

Enumerador Valor Comentario


WAIT_FOR_PARAMS 00 hex En espera de parámetros.
WAIT_FOR_CONF 01 hex En espera de configuración.
DATA_EXCHANGE 02 hex Listo para el intercambio de datos.
ETH_ERROR 03 hex Error detectado en el puerto TCP/IP Ethernet (cable
desconectado, configuración no válida, etc.).
DUPLICATE_IP 04 hex Dirección IP ya usada por otro equipo.

76 EIO0000001471 04/2014
Tipos de datos de la biblioteca PLCSystem de M251

ETH_R_PORT_LINK_STATUS: Códigos de estado de enlaces de comunicación

Descripción de los tipos enumerados


El tipo de datos de enumeración ETH_R_PORT_LINK_STATUS contiene los valores siguientes:

Enumerador Valor Comentario


ETH_R_LINK_DOWN 00 hex Enlace de comunicación no disponible a otro dispositivo.
ETH_R_LINK_UP 01 hex Enlace de comunicación disponible a otro dispositivo.

EIO0000001471 04/2014 77
Tipos de datos de la biblioteca PLCSystem de M251

ETH_R_PORT_SPEED: Códigos de velocidad de comunicación del puerto


Ethernet

Descripción de los tipos enumerados


El tipo de datos de enumeración ETH_R_PORT_SPEED contiene los valores siguientes:

Enumerador Valor Comentario


ETH_R_SPEED_NA 0 dec La velocidad de la red es de 0 megabits por segundo.
ETH_R_SPEED_10_MB 10 dec La velocidad de la red es de 10 megabits por segundo.
ETH_R_100_MB 100 dec La velocidad de la red es de 100 megabits por segundo.

78 EIO0000001471 04/2014
Tipos de datos de la biblioteca PLCSystem de M251

ETH_R_RUN_IDLE: Códigos de estado de ejecución e inactividad de Ethernet/IP

Descripción de los tipos enumerados


El tipo de datos de enumeración ETH_R_RUN_IDLE contiene los valores siguientes:

Enumerador Valor Comentario


IDLE 00 hex La conexión EtherNet/IP está inactiva.
RUN 01 hex La conexión EtherNet/IP está funcionando.

EIO0000001471 04/2014 79
Tipos de datos de la biblioteca PLCSystem de M251

Sección 3.5
Tipos de datos de variables de sistema de TM3_MODULE_R

Tipos de datos de variables de sistema de


TM3_MODULE_R

Descripción general
En esta sección se enumeran y se describen los tipos de datos de variables de sistema incluidos
en la estructura TM3_MODULE_R.

Contenido de esta sección


Esta sección contiene los siguientes apartados:
Apartado Página
TM3_ERR_CODE: Códigos de error detectados en el módulo de ampliación TM3 81
TM3_MODULE_R_ARRAY_TYPE: Tipo de matriz de lectura del módulo de ampliación TM3 82
TM3_MODULE_STATE: Códigos de estado del módulo de ampliación TM3 83

80 EIO0000001471 04/2014
Tipos de datos de la biblioteca PLCSystem de M251

TM3_ERR_CODE: Códigos de error detectados en el módulo de ampliación TM3

Descripción del tipo enumerado


El tipo de datos de enumeración TM3_ERR_CODE contiene los valores siguientes:

Enumerador Valor Comentario


TM3_NO_ERR 00 hex El último intercambio de bus con el módulo de ampliación
se ha realizado correctamente.
TM3_ERR_FAILED 01 hex Error detectado debido a que el último intercambio de bus
en el módulo de ampliación no se ha realizado
correctamente.
TM3_ERR_PARAMETER 02 hex Error de parámetro detectado en el último intercambio del
bus con el módulo.
TM3_ERR_COK 03 hex Error de hardware temporal o permanente detectado en
uno de los módulos de ampliación TM3.
TM3_ERR_BUS 04 hex Error de bus detectado en el último intercambio del bus con
el módulo de ampliación.

EIO0000001471 04/2014 81
Tipos de datos de la biblioteca PLCSystem de M251

TM3_MODULE_R_ARRAY_TYPE: Tipo de matriz de lectura del módulo de


ampliación TM3

Descripción
TM3_MODULE_R_ARRAY_TYPE es una matriz de 0 a 13 TM3_MODULE_R_STRUCT.

82 EIO0000001471 04/2014
Tipos de datos de la biblioteca PLCSystem de M251

TM3_MODULE_STATE: Códigos de estado del módulo de ampliación TM3

Descripción del tipo enumerado


El tipo de datos de enumeración TM3_MODULE_STATE contiene los valores siguientes:

Enumerador Valor Comentario


TM3_EMPTY 00 hex No hay módulo.
TM3_CONF_ERROR 01 hex El módulo de ampliación física no coincide con el
configurado en SoMachine.
TM3_BUS_ERROR 02 hex Error de bus detectado en el último intercambio con el
módulo.
TM3_OK 03 hex El último intercambio del bus con este módulo se ha
realizado correctamente.

EIO0000001471 04/2014 83
Tipos de datos de la biblioteca PLCSystem de M251

Sección 3.6
Tipos de datos de funciones de sistema

Tipos de datos de funciones de sistema

RTCSETDRIFT_ERROR: Códigos de error de función SetRTCDrift detectados

Descripción de los tipos enumerados


El tipo de datos de enumeración RTCSETDRIFT_ERROR contiene los valores siguientes:

Enumerador Valor Comentario


RTC_OK 00 hex Desviación del RTC correctamente configurada.
RTC_BAD_DAY 01 hex No se utiliza.
RTC_BAD_HOUR 02 hex No se utiliza.
RTC_BAD_MINUTE 03 hex No se utiliza.
RTC_BAD_DRIFT 04 hex Parámetro de desviación de RTC fuera de rango.
RTC_INTERNAL_ERROR 05 hex Ajustes de desviación de RTC rechazados en el error
detectado interno.

84 EIO0000001471 04/2014
Modicon M251 Logic Controller

EIO0000001468 04/2014

Apéndices

EIO0000001471 04/2014 85
86 EIO0000001471 04/2014
Modicon M251 Logic Controller
Representación de funciones y de bloques de funciones
EIO0000001468 04/2014

Apéndice A
Representación de funciones y de bloques de funciones

Representación de funciones y de bloques de funciones

Descripción general
Cada función se puede representar en los lenguajes siguientes:
z IL: Lista de instrucciones
z ST: Texto estructurado
z LD: Diagrama de contactos
z FBD: Diagrama de bloques de funciones
z CFC: Diagrama de función continua

En este capítulo se proporcionan funciones y ejemplos de representación de bloques de funciones


y se describe cómo utilizarlas en lenguajes IL y ST.

Contenido de este capítulo


Este capítulo contiene los siguiente apartados:
Apartado Página
Diferencias entre una función y un bloque de funciones 88
Cómo utilizar una función o un bloque de funciones en lenguaje IL 89
Cómo utilizar una función o un bloque de funciones en lenguaje ST 93

EIO0000001471 04/2014 87
Representación de funciones y de bloques de funciones

Diferencias entre una función y un bloque de funciones

Función
Una función:
z Es una POU (Unidad de organización de programa) que devuelve un resultado inmediato.
z Se le llama directamente por su nombre (y no a través de una instancia).
z No tiene un estado persistente desde una llamada hasta la otra.
z Se puede utilizar como un operando en otras expresiones.

Ejemplos: operadores booleanos (AND), cálculos, conversión (BYTE_TO_INT)

Bloque de funciones
Bloque de funciones
z Es una POU (Unidad de organización de programa) que devuelve una o más salidas.
z Debe llamarse a través de una instancia (copia del bloque de funciones con nombre y variables
dedicados).
z Todas las instancias tienen un estado persistente (salidas y variables internas) de una llamada
a otra desde un bloque de funciones o programa.
Ejemplos: temporizadores, contadores
En el ejemplo, Timer_ON es una instancia del bloque de funciones TON:

88 EIO0000001471 04/2014
Representación de funciones y de bloques de funciones

Cómo utilizar una función o un bloque de funciones en lenguaje IL

Información general
En esta sección se describe cómo implementar una función y un bloque de funciones en lenguaje
IL.
Las funciones IsFirstMastCycle y SetRTCDrift y el bloque de funciones TON se utilizan
como ejemplos para mostrar implementaciones.

Uso de una función en lenguaje IL


En este procedimiento se describe cómo insertar una función en lenguaje IL:

Paso Acción
1 Abra o cree una nueva POU en el lenguaje de Lista de instrucciones (IL).
NOTA: Aquí no se detalla el procedimiento para crear una POU. Para obtener más información,
consulte Adding and Calling POUs (véase SoMachine, - Guía de programación).
2 Las variables de entrada son los parámetros de entrada requeridos por la función.
3 Si la función tiene 1 o más entradas, empiece a cargar la primera entrada utilizando la instrucción
LD.
4 Inserte una nueva línea abajo y:
z escriba el nombre de la función en la columna de operadores (campo izquierdo); o
z Utilice la opción Accesibilidad para seleccionar la función (seleccione Insertar llamada de
módulo en el menú contextual).
5 Si la función tiene más de una entrada y se utiliza Accesibilidad, se crea automáticamente el número
necesario de líneas con ??? en los campos de la derecha. Sustituya los ??? por el valor o la variable
adecuada que corresponda al orden de las entradas.
6 Inserte una nueva línea para almacenar el resultado de la función en la variable adecuada: Escriba
la instrucción ST en la columna de operadores (campo de la izquierda) y un nombre de variable en
el campo de la derecha.

Para ilustrar el procedimiento, considere las funciones IsFirstMastCycle (sin parámetro de


entrada) y SetRTCDrift (con parámetros de entrada) que se representan gráficamente a
continuación:

Función Representación gráfica


sin parámetros de entrada:
IsFirstMastCycle

EIO0000001471 04/2014 89
Representación de funciones y de bloques de funciones

Función Representación gráfica


con parámetros de
entrada:
SetRTCDrift

En lenguaje IL, el nombre de la función se utiliza directamente en la columna de operadores:

Función Representación en el Editor POU IL de SoMachine


Ejemplo en IL de una
función sin parámetros
de entrada:
IsFirstMastCycle

Ejemplo en IL de una
función con parámetros
de entrada:
SetRTCDrift

90 EIO0000001471 04/2014
Representación de funciones y de bloques de funciones

Uso de un bloque de funciones en lenguaje IL


En este procedimiento se describe cómo insertar un bloque de funciones en lenguaje IL:

Paso Acción
1 Abra o cree una POU nueva en el lenguaje de Lista de instrucciones (IL).
NOTA: Aquí no se detalla el procedimiento para crear una POU. Para obtener más información,
consulte Adding and Calling POUs (véase SoMachine, - Guía de programación).
2 Cree las variables que necesita el bloque de funciones, incluido el nombre de instancia.
3 Se llama a los bloques de funciones utilizando una instrucción CAL:
z Utilice la opción Accesibilidad para seleccionar el bloque de funciones (botón derecho del ratón
y seleccionar Insertar llamada de módulo en el menú contextual).
z La instrucción CAL y la E/S necesaria se crean automáticamente.

Cada parámetro (E/S) es una instrucción:


z Los valores de las entradas se establecen con ":=".
z Los valores de las salidas se establecen con "=>".

4 En el campo de la derecha CAL, sustituya ??? por el nombre de la instancia.


5 Sustituya otros ??? por una variable apropiada o un valor inmediato.

Para ilustrar el procedimiento, considere este ejemplo con el bloque de funciones TON que se
representa gráficamente a continuación:

3 Representación gráfica
TON

EIO0000001471 04/2014 91
Representación de funciones y de bloques de funciones

En lenguaje IL, el nombre del bloque de funciones se utiliza directamente en la columna de


operadores:

Bloque de funciones Representación en el Editor POU IL de SoMachine


TON

92 EIO0000001471 04/2014
Representación de funciones y de bloques de funciones

Cómo utilizar una función o un bloque de funciones en lenguaje ST

Información general
En esta sección se describe el modo de implementar una función y un bloque de funciones en
lenguaje ST.
La función SetRTCDrift y el bloque de funciones TON se utilizan como ejemplos para mostrar
implementaciones.

Uso de una función en lenguaje ST


En este procedimiento se describe cómo insertar una función en lenguaje ST:

Paso Acción
1 Abra o cree una POU nueva en el lenguaje de Texto estructurado (ST).
NOTA: Aquí no se detalla el procedimiento para crear una POU. Para obtener más información,
consulte Adding and Calling POUs (véase SoMachine, - Guía de programación).
2 Las variables de entrada son los parámetros de entrada requeridos por la función.
3 Utilice la sintaxis general en el Editor POU ST para el lenguaje ST de una función. La sintaxis
general es:
FunctionResult:= FunctionName(VarInput1, VarInput2,.. VarInputx);

Para ilustrar el procedimiento, considere la función SetRTCDrift que se representa


gráficamente a continuación:

Función Representación gráfica


SetRTCDrift

El lenguaje ST de esta función es este:

Función Representación en el Editor POU IL de SoMachine


SetRTCDrift PROGRAM MyProgram_ST
VAR myDrift: SINT(-29..29) := 5;
myDay: DAY_OF_WEEK := SUNDAY;
myHour: HOUR := 12;
myMinute: MINUTE;
myRTCAdjust: RTCDRIFT_ERROR;
END_VAR
myRTCAdjust:= SetRTCDrift(myDrift, myDay, myHour, myMinute);

EIO0000001471 04/2014 93
Representación de funciones y de bloques de funciones

Uso de un bloque de funciones en lenguaje ST


En este procedimiento se describe cómo insertar un bloque de funciones en lenguaje ST:

Paso Acción
1 Abra o cree una POU nueva en el lenguaje de Texto estructurado (ST).
NOTA: Aquí no se detalla el procedimiento para crear una POU. Para obtener más
información sobre la adición, declaración y llamadas de POU, consulte la
documentación (véase SoMachine, - Guía de programación) relacionada.
2 Cree las variables de entrada y salida y la instancia requeridas para el bloque de
funciones:
z Las variables de entrada son los parámetros de entrada requeridos por el bloque
de funciones
z Las variables de salida reciben el valor devuelto por el bloque de funciones

3 Utilice la sintaxis general en el Editor POU ST para el lenguaje ST de un bloque de


funciones. La sintaxis general es:
FunctionBlock_InstanceName(Input1:=VarInput1,
Input2:=VarInput2,... Ouput1=>VarOutput1,
Ouput2=>VarOutput2,...);

Para ilustrar el procedimiento, considere este ejemplo con el bloque de funciones TON que se
representa gráficamente a continuación:

3 Representación gráfica
TON

94 EIO0000001471 04/2014
Representación de funciones y de bloques de funciones

En esta tabla se muestran ejemplos de una llamada de bloque de funciones en lenguaje ST:

Bloque de funciones Representación en el Editor POU IL de SoMachine


TON

EIO0000001471 04/2014 95
Representación de funciones y de bloques de funciones

96 EIO0000001471 04/2014
Modicon M251 Logic Controller
Glosario
EIO0000001468 04/2014

Glosario

0-9
%MW
Según el estándar IEC, %MW representa un registro de palabra de memoria (por ejemplo un
objeto de lenguaje del tipo palabra de memoria).

A
aplicación
Un programa que incluye datos de configuración, símbolos y documentación.
Aplicación de arranque
(aplicación de arranque) El archivo binario que contiene la aplicación. Normalmente está
guardada en el PLC y permite que el PLC arranque en la aplicación generada por el usuario.
ARRAY
La disposición sistemática de objetos de datos de un solo tipo en forma de tabla definida en la
memoria del controlador lógico. La sintaxis es la siguiente: ARRAY [<dimensión>] OF <Tipo>
Ejemplo 1: ARRAY [1..2] OF BOOL es una tabla de una dimensión compuesta por dos
elementos de tipo BOOL.
Ejemplo 2: ARRAY [1..10, 1..20] OF INT es una tabla de dos dimensiones compuesta por
10 x 20 elementos de tipo INT.

B
bloque de funciones
Una unidad de programación que dispone de una o varias entradas y devuelve una o varias
salidas. Los FBs se llaman mediante una instancia (copia del bloque de funciones con nombre y
variables dedicados), y todas las instancias tienen un estado persistente (salidas y variables
internas) de una llamada a la otra.
Ejemplos: temporizadores, contadores
BOOL
(booleano) Un tipo de datos básico en informática. Una variable BOOL puede tener uno de estos
valores: 0 (FALSE) o 1 (TRUE). Un bit extraído de una palabra es de tipo BOOL, por ejemplo,
%MW10.4 es un quinto bit con un número de palabra de memoria 10.

EIO0000001471 04/2014 97
Glosario

BOOTP
(protocolo bootstrap) Un protocolo de red UDP que puede utilizar un cliente de red para obtener
de forma automática una dirección IP (y tal vez otros datos) de un servidor. El cliente se identifica
ante el servidor utilizando la dirección MAC del cliente. El servidor, que mantiene una tabla
preconfigurada de direcciones MAC de los dispositivos cliente y las direcciones IP asociadas,
envía al cliente su dirección IP predefinida. BOOTP se utilizaba originariamente como un método
que permitía iniciar los hosts sin disco de forma remota por una red. El proceso BOOTP asigna un
arrendamiento infinito de una dirección IP. El servicio BOOTP utiliza los puertos UDP 67 y 68.
byte
Un tipo que está codificado en un formato de 8 bits que, en el formato hexadecimal, va de 16#00
a 16#FF.

C
cadena
Una variable que es una serie de caracteres ASCII.
CFC
(diagrama de función continua) Un lenguaje de programación (una ampliación del estándar IEC
61131-3) basado en el lenguaje de diagrama de bloque de funciones (FBD) y que funciona como
un diagrama de flujo. Sin embargo, no se utiliza ninguna red y es posible un posicionamiento libre
de elementos gráficos, lo que permite bucles de realimentación. En cada bloque, las entradas se
sitúan a la izquierda y las salidas, a la derecha. Las salidas del bloque se pueden conectar a las
entradas de otros bloques para formar expresiones complejas.
configuración
Organización e interconexión de los componentes de hardware en un sistema y los parámetros
del hardware y software que determina las características operativas del sistema.
controlador
Automatiza procesos industriales (también conocido como controlador lógico programable o
controlador programable).
CRC
(comprobación de redundancia cíclica) Método que se emplea para determinar la validez de la
transmisión de la comunicación. La transmisión contiene un campo de bits que constituye una
suma de comprobación. El mensaje se usa para que el transmisor calcule la suma de
comprobación según el contenido del mensaje. A continuación, los nodos receptores recalculan
el campo de la misma manera. Toda discrepancia en el valor de los dos cálculos CRC indica que
el mensaje transmitido y el mensaje recibido son diferentes.

98 EIO0000001471 04/2014
Glosario

D
DHCP
(protocolo de configuración dinámica del host) Una ampliación avanzada de BOOTP. DHCP es
más avanzado, pero tanto DHCP como BOOTP son habituales. (DHCP puede gestionar
solicitudes de cliente BOOTP.)
diagrama de bloques de funciones
Uno de los cinco lenguajes para lógica o control que cumplen con el estándar IEC 61131-3 para
sistemas de control. El diagrama de bloques de funciones es un lenguaje de programación
orientado gráficamente. Funciona con una lista de redes en la que cada red contiene una
estructura gráfica de cuadros y líneas de conexión que representa una expresión lógica o
aritmética, la llamada de un bloque de funciones, un salto o una instrucción de retorno.
dirección MAC
(dirección de control de acceso a medios) Un número único de 48 bits asociado a una parte
específica del hardware. La dirección MAC se programa en cada tarjeta de red o dispositivo
cuando se fabrica.
DWORD
(palabra doble) Con codificación en formato de 32 bits.

E
ejecución
Un comando que hace que el controlador explore el programa de la aplicación, lea las entradas
físicas y escriba en las salidas físicas según la solución de la lógica del programa.
elemento
El nombre abreviado de ARRAY.
equipo
Una parte de la máquina que incluye subconjuntos tales como cintas transportadoras, plataformas
giratorias, etc.
Ethernet
Una tecnología de capas física y de conexión de datos para LANs, también conocida como
IEE 802.3.
EtherNet/IP
(protocolo industrial de Ethernet) Un protocolo de comunicaciones abiertas para fabricar
soluciones de automatización en sistemas industriales. EtherNet/IP se incluye en una familia de
redes que implementa el protocolo industrial común en sus capas superiores. La organización de
apoyo (ODVA) especifica EtherNet/IP para cumplir la adaptabilidad y la independencia de los
medios.

EIO0000001471 04/2014 99
Glosario

F
FB
(bloque de funciones) Un práctico mecanismo de programación que consolida un grupo de
instrucciones de programación para realizar una acción específica y normalizada, por ejemplo, el
control de velocidad, el control de intervalo o el conteo. Un bloque de funciones se puede
componer de datos de configuración, un conjunto de parámetros de funcionamiento internos o
externos y, normalmente, una o diversas entradas y salidas de datos.
firmware
Representa el BIOS, los parámetros de datos y las instrucciones de programación que constituyen
el sistema operativo en un controlador. El firmware se almacena en la memoria no volátil del
controlador.
función
Una unidad de programación que dispone de una entrada y devuelve un resultado inmediato. No
obstante, a diferencia de los FBs, se llama directamente por su nombre (y no mediante una
instancia), no tiene un estado persistente desde una llamada hasta la siguiente y se puede utilizar
como un operando en otras expresiones de programación.
Ejemplos: operadores booleanos (AND), cálculos, conversiones (BYTE_TO_INT)

G
GVL
(lista de variables globales) Gestiona variables globales que se pueden transferir entre
controladores en una red Ethernet TCP/IP Modbus.

H
hex
(hexadecimal)

I
ID
(identificador/identificación)
IEC
(International Electrotechnical Commission) Una organización de estándares internacional sin
ánimo de lucro y no gubernamental que prepara y publica estándares internacionales para todas
las tecnologías eléctricas, electrónicas y relacionadas.

100 EIO0000001471 04/2014


Glosario

IEC 61131-3
Tercera parte de un estándar de tres partes de la IEC para los equipos de automatización
industriales. IEC 61131-3 se ocupa de los lenguajes de programación del controlador y define dos
estándares de lenguajes de programación gráficos y dos textuales. Los lenguajes de
programación gráficos son un diagrama de contactos y un diagrama de bloque de funciones. Los
lenguajes de programación textuales incluyen texto estructurado y lista de instrucciones.
IEEE 802.3
Una recopilación de estándares del IEEE que definen la capa física y la subcapa de control de
acceso a medios de la capa de conexión de datos, deEthernet cableado.
IL
(lista de instrucciones) Un programa escrito en lenguaje que se compone de una serie de
instrucciones basadas en texto y ejecutadas secuencialmente por el controlador. Cada instrucción
incluye un número de línea, un código de instrucción y un operando (consulte IEC 61131-3).
INT
(entero) Un número entero con codificación de 16 bits.
IP
(protocolo de Internet) Parte de la familia de protocolos TCP/IP que hace un seguimiento de las
direcciones de Internet de los dispositivos, encamina los mensajes salientes y reconoce los
mensajes entrantes.

L
LD
(diagrama de contactos) Una representación gráfica de instrucciones de un programa de
controlador con símbolos para contactos, bobinas y bloques en una serie de escalones ejecutados
de forma secuencial por un controlador (consulte IEC 61131-3).
LWORD
(palabra larga) Un tipo de datos con codificación en formato de 64 bits.

M
MAST
Una tarea del procesador que se ejecuta en el software de programación. La tarea MAST consta
de dos secciones:
z IN: las entradas se copian en la sección IN antes de ejecutar la tarea MAST.
z OUT: las salidas se copian en la sección OUT después de ejecutar la tarea MAST.

memoria Flash
Una memoria no volátil que se puede sobrescribir. Se almacena en una memoria EEPROM
especial que se puede borrar y volver a programar.

EIO0000001471 04/2014 101


Glosario

P
PLC
(controlador lógico programable) Un ordenador industrial que se usa para automatizar procesos
de fabricación e industriales y otros procesos electromecánicos. Los PLCs se diferencian de los
ordenadores comunes en que están diseñados de forma que tienen varias matrices de entrada y
salida y que disponen de especificaciones más sólidas contra los golpes, las vibraciones, la
temperatura, las interferencias eléctricas, etc.
POU
(unidad de organización de programas) Una declaración variable en el código fuente y el conjunto
de instrucciones correspondiente. Las POUs facilitan la reutilización modular de programas de
software, funciones y bloques de funciones. Una vez declaradas, cada una de las POUs está
disponible para las otras.
programa
El componente de una aplicación consistente en código fuente compilado capaz de poder ser
instalado en la memoria de un controlador lógico.
protocolo
Una convención o una definición de norma que controla o habilita la conexión, la comunicación y
la transferencia de datos entre dos sistemas o dispositivos informáticos.

R
red
Un sistema de dispositivos interconectados que comparten una ruta de datos común y un
protocolo de comunicaciones.

S
ST
(Texto estructurado) Un lenguaje que incluye instrucciones complejas y anidadas (por ejemplo,
bucles de repetición, ejecuciones condicionales o funciones). ST está conforme con IEC 61131-3.
STOP
Comando que hace que el controlador detenga la ejecución de un programa de aplicación.

T
tarea
Grupo de secciones y subrutinas ejecutadas cíclica o periódicamente si se trata de la tarea MAST,
o periódicamente si se trata de la tarea FAST.
Una tarea siempre tiene un nivel de prioridad y tiene asociadas entradas y salidas del controlador.
Estas E/S se actualizan en función de la tarea.

102 EIO0000001471 04/2014


Glosario

Un controlador puede tener diversas tareas.


TCP
(protocolo de control de transmisión) Un protocolo de capas de transporte basado en conexiones
que proporciona una transmisión de datos simultánea y bidireccional fiable. TCP forma parte del
conjunto de protocolos TCP/IP.

U
UDINT
(entero doble sin signo) Codificado en 32 bits.
UINT
(entero sin signo) Codificado en 16 bits.

V
variable
Una unidad de memoria direccionada y modificada por un programa.
variable del sistema
Una variable que proporciona datos del controlador e información de diagnóstico, y permite enviar
comandos al controlador.
variable no ubicada
Una variable que no tiene dirección (consulte variable ubicada).

W
watchdog
Un watchdog es un cronómetro especial utilizado para garantizar que los programas no superen
su tiempo de exploración asignado. El cronómetro watchdog suele configurarse con un valor
superior al tiempo de exploración y se resetea a 0 cuando termina cada ciclo de exploración. Si el
cronómetro watchdog alcanza el valor predeterminado, por ejemplo, porque el programa queda
atrapado en un bucle infinito, se declara un fallo y el programa se detiene.
WORD
Un tipo codificado en formato de 16 bits.

EIO0000001471 04/2014 103


Glosario

104 EIO0000001471 04/2014


Modicon M251 Logic Controller
Índice
EIO0000001468 04/2014

Índice

D de funciones, 88
ExecuteScript, 50
DataFileCopy
GetRtc, 39
funciones, 47
IsFirstMastColdCycle, 40
DataFileCopyError
Funciones
Tipos de datos, 69
IsFirstMastCycle, 41
DataFileCopyLocation
IsFirstMastWarmCycle, 43
tipos de datos, 70
funciones
SetRTCDrift, 44
E TM3_GetModuleBusStatus, 53
TM3_GetModuleInternalStatus, 54
ETH_R Functions
variable de sistema, 27 DataFileCopy, 47
ETH_R_FRAME_PROTOCOL
tipos de datos, 73
ETH_R_IP_MODE G
tipos de datos, 74
GetRtc
ETH_R_PORT_DUPLEX_STATUS
funciones, 39
Tipos de datos, 75
ETH_R_PORT_LINK_STATUS
Tipos de datos, 77 I
ETH_R_PORT_SPEED
IsFirstMastColdCycle
Tipos de datos, 78
funciones, 40
ETH_W
IsFirstMastCycle
Variable de sistema, 33
Funciones, 41
ExecuteScript
IsFirstMastWarmCycle
funciones, 50
Funciones, 43
ExecuteScriptError
Tipos de datos, 71
P
F PLC_R
variable de sistema, 18
funciones
PLC_R_APPLICATION_ERROR
cómo utilizar una función o un bloque de
tipos de datos, 59
funciones en lenguaje IL, 89
PLC_R_BOOT_PROJECT_STATUS
cómo utilizar una función o un bloque de
Tipos de datos, 60
funciones en lenguaje ST, 93
PLC_R_IO_STATUS
diferencias entre una función y un bloque
Tipos de datos, 61
PLC_R_SDCARD_STATUS
tipos de datos, 62

EIO0000001471 04/2014 105


Índice

PLC_R_STATUS tipos de datos


tipos de datos, 63 PLC_R_APPLICATION_ERROR, 59
PLC_R_STOP_CAUSE Tipos de datos
tipos de datos, 64 PLC_R_BOOT_PROJECT_STATUS, 60
PLC_R_TERMINAL_PORT_STATUS PLC_R_IO_STATUS, 61
Tipos de datos, 65 tipos de datos
PLC_R_TM3_BUS_STATE PLC_R_SDCARD_STATUS, 62
tipos de datos, 66 PLC_R_STATUS, 63
PLC_W PLC_R_STOP_CAUSE, 64
Variable del sistema, 22 Tipos de datos
PLC_W_COMMAND PLC_R_TERMINAL_PORT_STATUS, 65
tipos de datos, 67 tipos de datos
PROFIBUS_R PLC_R_TM3_BUS_STATE, 66
variable de sistema, 35 PLC_W_COMMAND, 67
Tipos de datos
RTCSETDRIFT_ERROR, 84
R tipos de datos
RTCSETDRIFT_ERROR TM3_ERR_CODE, 81
Tipos de datos, 84 TM3_MODULE_R_ARRAY_TYPE, 82
TM3_MODULE_STATE, 83
TM3_ERR_CODE
S tipos de datos, 81
SERIAL_R TM3_GetModuleBusStatus
Variable del sistema, 24 funciones, 53
SERIAL_W TM3_GetModuleInternalStatus
Variable del sistema, 25 funciones, 54
SetRTCDrift TM3_MODULE_R
funciones, 44 variable de sistema, 34
TM3_MODULE_R_ARRAY_TYPE
tipos de datos, 82
T TM3_MODULE_STATE
Tipos de datos tipos de datos, 83
DataFileCopyError, 69
tipos de datos
DataFileCopyLocation, 70
V
ETH_R_FRAME_PROTOCOL, 73 variable de sistema
ETH_R_IP_MODE, 74 ETH_R, 27
Tipos de datos Variable de sistema
ETH_R_PORT_DUPLEX_STATUS, 75 ETH_W, 33
ETH_R_PORT_IP_STATUS, 76 variable de sistema
ETH_R_PORT_LINK_STATUS, 77 PLC_R, 18
ETH_R_PORT_SPEED, 78 PROFIBUS_R, 35
ETH_R_RUN_IDLE, 79 TM3_MODULE_R, 34
ExecuteScriptError, 71

106 EIO0000001471 04/2014


Índice

Variable del sistema


PLC_W, 22
SERIAL_R, 24
SERIAL_W, 25
variables de sistema
definición, 13
utilización, 15

EIO0000001471 04/2014 107


Índice

108 EIO0000001471 04/2014

También podría gustarte