Modicon M238 Logic Controller EIO0000000759 06/2011 ... · PLC_R_BOOT_PROJECT_STATUS: Códigos de...
Transcript of Modicon M238 Logic Controller EIO0000000759 06/2011 ... · PLC_R_BOOT_PROJECT_STATUS: Códigos de...
Modicon M238 Logic Controller
EIO0000000759 06/2011
EIO
0000
0007
59.0
4
www.schneider-electric.com
Modicon M238 Logic ControllerFunciones y variables de sistemaGuía de la biblioteca M238 PLCSystem
06/2011
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 objetivo sustituir ni debe emplearse para determinar la idoneidad o fiabilidad de dichos productos para aplicaciones de usuario específicas. Los usuarios o integradores tienen la responsabilidad de llevar a cabo un análisis de riesgos adecuado y exhaustivo, así como la evaluación y pruebas de los productos en relación con la aplicación o uso en cuestión de dichos productos. 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 para 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 sólo 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.
© 2011 Schneider Electric. Reservados todos los derechos.
2 EIO0000000759 06/2011
Tabla de materias
Información de seguridad . . . . . . . . . . . . . . . . . . . . . . . . 7Acerca de este libro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Capítulo 1 M238 Variables del sistema . . . . . . . . . . . . . . . . . . . . . . . 131.1 Variables de sistema: Definición y utilización . . . . . . . . . . . . . . . . . . . . . . 14
Descripción de las variables de sistema . . . . . . . . . . . . . . . . . . . . . . . . . . 15Utilización de variables de sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.2 PLC_R and PLC_W Structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19PLC_R: Variables de sólo lectura del controlador . . . . . . . . . . . . . . . . . . 20PLC_W: Variables de sistema de lectura/escritura del controlador . . . . . 22
1.3 Estructuras SERIAL_R y SERIAL_W . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23SERIAL_R[0..1]: Variables de sólo lectura de línea serie . . . . . . . . . . . . . 24SERIAL_W[0..1]: Variables de sistema de lectura/escritura de la línea serie. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Capítulo 2 M238 Funciones de sistema . . . . . . . . . . . . . . . . . . . . . . 272.1 Funciones de lectura de M238 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
GetBatteryLevel: Devuelve la carga de alimentación restante de la batería 30GetBootProjectStatus: Devuelve el estado del proyecto de inicio . . . . . . 31GetEventsNumber: Devuelve el número de eventos externos detectados 32GetFirmwareVersion: Devuelve información acerca de las versiones del firmware, el inicio y el coprocesador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33GetHardwareVersion: Devuelve la versión del hardware . . . . . . . . . . . . . 35GetLastStopCause: Devuelve la causa de la última detención. . . . . . . . . 36GetLastStopTime: Devuelve la fecha y la hora de la última detención detectada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37GetLocalIOStatus: Devuelve el estado de las E/S incrustadas. . . . . . . . . 38GetPlcFault: Devuelve los errores detectados en las E/S del controlador 40GetRightBusStatus: Devuelve el estado del bus de ampliación . . . . . . . . 41GetSerialNumber: Devuelve el número de serie del controlador . . . . . . . 46
EIO0000000759 06/2011 3
GetShortCutStatus: Devuelve el estado del cortocircuito en las salidas incrustadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47IsFirstMastColdCycle: indica si el ciclo es el primer ciclo MAST del arranque en frío . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48IsFirstMastCycle: indica si el ciclo es el primer ciclo MAST . . . . . . . . . . 49IsFirstMastWarmCycle: indica si el ciclo es el primer ciclo MAST del arranque en caliente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
2.2 Funciones de escritura de M238 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52InhibitBatLowLed: Deshabilita o vuelve a habilitar el indicador luminoso Batt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53ResetEventsNumber: Restablece el número de eventos . . . . . . . . . . . . 54SetRTCDrift: ajuste de Real Time Clock cada semana. . . . . . . . . . . . . . 55
Capítulo 3 Tipos de datos de la biblioteca PLCSystem de M238 . . 573.1 Tipos de datos de variables del sistema de PLC_R/W . . . . . . . . . . . . . . 58
PLC_R_STATUS: Códigos de estado del controlador . . . . . . . . . . . . . . 59PLC_R_APPLICATION_ERROR: Códigos de estado del error detectado de la aplicación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60PLC_R_BOOT_PROJECT_STATUS: Códigos de estado del proyecto de inicio. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61PLC_R_IO_STATUS: Códigos de estado de E/S . . . . . . . . . . . . . . . . . . 62PLC_R_STOP_CAUSE: Códigos RUN para causa de transición a otro estado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63PLC_W_COMMAND: Códigos de comando de control. . . . . . . . . . . . . . 64
3.2 Tipos de datos de funciones de sistema . . . . . . . . . . . . . . . . . . . . . . . . . 65FIRMWARE_VERSION: Tipo de salida de la función GetFirmwareVersion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66BOOT_PROJECT_STATUS: Códigos de salida de la función GetBootProjectStatus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67STOP_WHY: Códigos de salida de la función GetLastStopCause . . . 68LOCAL_IO_GET_STATUS: Códigos de parámetros de la función GetLocalIOStatus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69LOCAL_IO_GEN_STATUS: Códigos de salida de la función GetLocalIOStatus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70RIGHTBUS_GET_STATUS: Códigos de parámetros de la función GetRightBusStatus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71DAY_OF_WEEK: Códigos de parámetro de día de la función SetRTCDrift . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72HOUR: SetRTCDrift Función Tipo de parámetro de hora . . . . . . . . . . 73MINUTE: SetRTCDrift Función Tipo de parámetro de minuto . . . . . . 74
Apéndices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
4 EIO0000000759 06/2011
Apéndice A Representación de funciones y de bloques de funciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77Diferencias entre una función y un bloque de funciones. . . . . . . . . . . . . . 78Cómo usar una función o un bloque de funciones en lenguaje IL . . . . . . 79Cómo utilizar una función o un bloque de funciones en lenguaje ST . . . . 83
Glosario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85Índice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
EIO0000000759 06/2011 5
6 EIO0000000759 06/2011
§
Información de seguridadInformació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.
EIO0000000759 06/2011 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 EIO0000000759 06/2011
Acerca de este libro
Presentación
Objeto
Este documento le familiarizará con las funciones y variables del sistema dentro de Modicon M238 Logic Controller. La biblioteca M238 PLCSystem contiene funciones y variables para obtener información y enviar comandos al sistema de controlador.
En este documento se describen las funciones y las variables de tipos de datos de la biblioteca M238 PLCSystem.
Se necesita el siguiente conocimiento básico:Información básica sobre la funcionalidad, la estructura y la configuración de M238Programación en lenguaje FBD, LD, ST, IL o CFCVariables del sistema (variables globales)
Campo de aplicación
Este documento se ha actualizado con la publicación de SoMachine V3.0.
Documentos relacionados
Puede descargar estas publicaciones técnicas y otra información técnica de nuestro sitio web www.schneider-electric.com.
Título de la documentación Número de referencia
M238 Logic Controller Guía de programación EIO0000000384 (ING); EIO0000000385 (FRA); EIO0000000386 (ALE); EIO0000000387 (ITA); EIO0000000388 (ESP); EIO0000000389 (CHI)
EIO0000000759 06/2011 9
Información relativa al producto
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.
ADVERTENCIAPÉRDIDA DE CONTROL
El diseñador del esquema de control debe tener en cuenta los posibles modos 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.Para las funciones críticas de control deben proporcionarse rutas de control separadas o redundantes.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.Tenga en cuenta todas las reglamentaciones para la prevención de accidentes
y las directrices de seguridad locales.1
Cada implementación de este equipo debe probarse de forma individual y exhaustiva antes de entrar en servicio.
Si no se siguen estas instrucciones pueden producirse lesiones personales graves o mortales o daños en el equipo.
ADVERTENCIAFUNCIONAMIENTO NO DESEADO DEL EQUIPO
Utilice sólo software aprobado por Schneider Electric para este equipo.Actualice el programa de aplicación siempre que cambie la configuración de hardware física.
Si no se siguen estas instrucciones pueden producirse lesiones personales graves o mortales o daños en el equipo.
10 EIO0000000759 06/2011
Comentarios del usuario
Envíe sus comentarios a la dirección electrónica [email protected].
EIO0000000759 06/2011 11
12 EIO0000000759 06/2011
EIO0000000759 06/2011
1
Modicon M238 Logic Controller
M238 Variables del sistema
EIO0000000759 06/2011
M238 Variables del sistema
Descripción general
En este capítulo:se ofrece una introducción a las variables del sistema (véase página 14).se describen las variables del sistema (véase página 20) incluidas con la biblioteca M238 PLCSystem.
Contenido de este capítulo
Este capítulo contiene las siguientes secciones:
Sección Apartado Página
1.1 Variables de sistema: Definición y utilización 14
1.2 PLC_R and PLC_W Structures 19
1.3 Estructuras SERIAL_R y SERIAL_W 23
13
M238 Variables del sistema
1.1 Variables de sistema: Definición y utilización
Descripción general
En este apartado se definen las variables de sistema y cómo implementarlas en Modicon M238 Logic Controller.
Contenido de esta sección
Esta sección contiene los siguientes apartados:
Apartado Página
Descripción de las variables de sistema 15
Utilización de variables de sistema 17
14 EIO0000000759 06/2011
M238 Variables del sistema
Descripción de las variables de sistema
Introducción
En este apartado se describe cómo se implementan las variables de sistema para el controlador. Estas variables tienen los atributos siguientes:
Las variables de sistema permiten acceder a información general del sistema, realizar diagnósticos del sistema y realizar acciones sencillas.Las variables de sistema son variables estructuradas que cumplen las definiciones y las normas de asignación de nombres de IEC 61131. Puede accederse a ellas con el nombre simbólico IEC PLC_GVL.Algunas de las variables de PLC_GVL son de sólo lectura (por ejemplo, PLC_R), y otras son de lectura y escritura (por ejemplo, PLC_W).Las variables de sistema se declaran automáticamente como variables globales. Su ámbito es todo el sistema y se deben gestionar con prudencia porque las POU (unidades de organización de programa) de cualquier tarea pueden acceder a ellas.
Normas de asignación de nombres de las variables de sistema
Las variables de sistema se identifican mediante:un nombre de estructura que representa la categoría de la variable del sistema (por ejemplo, PLC_R representa un nombre de estructura de variables de sólo lectura utilizadas para el diagnóstico del controlador).un conjunto de nombres de componentes que identifica el objetivo de la variable (por ejemplo, i_wVendorID representa el ID de fabricante del controlador).
Puede acceder a las variables 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 especificarse por completo. Las buenas prácticas de programación suelen dictar la utilización de un nombre de variable completo en las declaraciones.
EIO0000000759 06/2011 15
M238 Variables del sistema
Ubicación de variables de sistema
Se definen dos tipos de variables de sistema para utilizar al programar el controlador:
variables ubicadasvariables no ubicadas
Las variables ubicadas:Tienen una ubicación fija en un área de %MW estática:
De %MW60000 a %MW60199 para variables de sistema de sólo lecturaDe %MW62000 a %MW62199 para variables de sistema de lectura/escritura
son accesibles mediante petición serie Modbus tanto en los estados EN EJECUCIÓN como DETENIDOse utilizan en programas de SoMachine según la convención nombre_estructura.nombre_componente explicada anteriormente (las direcciones %MW entre 0 y 59999 se pueden acceder directamente; SoMachine considera las direcciones mayores que esto fuera de rango y sólo se pueden acceder a través de la convención nombre_estructura.nombre_componente.
Las variables no ubicadas:no están ubicadas físicamente en el área %MWno son accesibles a través de ninguna petición de bus de campo o de red a menos que se localicen en la tabla de reubicación y sólo entonces están accesibles en los estados EN EJECUCIÓN y DETENIDO. La tabla de reubicación utiliza las áreas %MW dinámicas siguientes:
De %MW60200 a %MW61999 para las variables de sólo lecturaDe %MW62200 a %MW63999 para las variables de lectura/escritura
se utilizan en programas de SoMachine según la convención nombre_estructura.nombre_componente explicada anteriormente (las direcciones %MW entre 0 y 59999 se pueden acceder directamente; SoMachine considera las direcciones mayores que esto fuera de rango y sólo se pueden acceder a través de la convención nombre_estructura.nombre_componente.
16 EIO0000000759 06/2011
M238 Variables del sistema
Utilización de variables de sistema
Introducción
En este tema se describen los pasos necesarios para programar y usar las variables de sistema de SoMachine.
Las variables de sistema se pueden utilizar en todas las unidades de organización del programa (POU) de la aplicación.
No es necesario declarar las variables de sistema en las GVL. Se declaran automáticamente desde la biblioteca de sistema del controlador.
Utilización de variables de sistema en una POU
En la POU, empiece por especificar el nombre de estructura de variables de sistema (PLC_R, PLC_W...) seguido de un punto. Las variables del sistema aparecen en el asistente de entrada. Puede seleccionar la variable que desea o especificar el nombre completo manualmente.
NOTA: SoMachine tiene una función de finalización automática. En el ejemplo anterior, cuando haya escrito el nombre de estructura PLC_R., SoMachine ofrece un menú desplegable de nombres/variables de componentes posibles.
EIO0000000759 06/2011 17
M238 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;
18 EIO0000000759 06/2011
M238 Variables del sistema
1.2 PLC_R and PLC_W Structures
Descripción general
En este apartado se muestran y describen las diversas 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 sólo lectura del controlador 20
PLC_W: Variables de sistema de lectura/escritura del controlador 22
EIO0000000759 06/2011 19
M238 Variables del sistema
PLC_R: Variables de sólo lectura del controlador
Estructura de variables
En la tabla siguiente se describen los parámetros de la variable del sistema PLC_R (tipo PLC_R_STRUCT):
%MW Nombre de variable Tipo Comentario
60000 i_wVendorID WORD ID de fabricante del controlador.101A hex= Schneider Electric
60001 i_wProductID WORD ID de referencia del controlador.NOTA: ID de fabricante e ID de referencia son los componentes del ID del destino del controlador mostrado en la vista Configuración de comunicación (ID del destino = 101A XXXX hex).
60002 i_dwSerialNumber DWORD Número de serie del controlador
60004 i_byFirmVersion[0..3] ARRAY[0..3] OF BYTE
Controlador Firmware Versión [aa.bb.cc.dd]:
i_byFirmVersion[0]= aa...i_byFirmVersion[3]= dd
60006 i_byBootVersion[0..3] ARRAY[0..3] OF BYTE
Versión de inicio del controlador [aa.bb.cc.dd]:
i_byBootVersion[0]= aa...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 (véase página 59)
Estado del controlador.
60013 i_wBootProjectStatus PLC_R_BOOT_PROJECT_STATUS (véase página 61)
Devuelve información sobre la aplicación de arranque almacenada en la memoria FLASH.
60014 i_wLastStopCause PLC_R_STOP_CAUSE (véase página 63)
Causa de la última transición desde el estado RUN a otro estado.
60015 i_wLastApplicationError PLC_R_APPLICATION_ERROR (véase página 60)
Causa de la excepción del último controlador.
60016 i_lwSystemFault_1 LWORD El campo de bit FFFF FFFF FFFF FFFF hex no indica ningún error.Si se detecta un error de TM2, el bit 1 es FALSE.
60020 i_lwSystemFault_2 LWORD No utilizado.
20 EIO0000000759 06/2011
M238 Variables del sistema
60024 i_wIOStatus1 PLC_R_IO_STATUS (véase página 62)
Estado de E/S incrustada
60025 i_wIOStatus2 PLC_R_IO_STATUS (véase página 62)
Estado de E/S de TM2.
60026 i_wBatteryStatus WORD Carga restante en la batería.La variable del sistema puede tener los siguientes valores significativos:
FFFF hex = 100% = 3,5 V7FFF hex = 50% = 2,75 V 0000 hex = 0% = 2 V
Umbrales de parpadeo del indicador luminoso Batt:
100% = siempre apagado50% = parpadeo periódico0% = siempre encendido
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.
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.
%MW Nombre de variable Tipo Comentario
EIO0000000759 06/2011 21
M238 Variables del sistema
PLC_W: Variables de sistema de lectura/escritura del controlador
Estructura de variables
En la tabla siguiente se describen los parámetros de la variable del sistema PLC_W (tipo PLC_W_STRUCT):
NOTA: n/d significa que no existe ninguna asignación de %MW predefinida para esta variable del sistema.
%MW Nombre de variable Tipo Comentario
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 (véase página 64)
El comando RUN / STOP del controlador se ha ejecutado cuando el valor de la variable del sistema PLC_R.q_uiOpenPLCControl ha pasado de 0 a 6.699.
22 EIO0000000759 06/2011
M238 Variables del sistema
1.3 Estructuras SERIAL_R y SERIAL_W
Descripción general
En este apartado se enumeran y describen las diversas variables de 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 de sólo lectura de línea serie 24
SERIAL_W[0..1]: Variables de sistema de lectura/escritura de la línea serie 25
EIO0000000759 06/2011 23
M238 Variables del sistema
SERIAL_R[0..1]: Variables de sólo lectura de línea serie
Introducción
SERIAL_R es una matriz de 2 tipos de SERIAL_R_STRUCT. Cada elemento de la matriz devuelve las variables de sistema de diagnóstico para la línea serie correspondiente.
Para M238:Serial_R[0] hace referencia a la línea serie 1Serial_R[1] hace referencia a la línea serie 2 (sólo para TM238LFDC24DT•• y TM238LFAC24DR••)
Estructura de variables
En la tabla siguiente se describen los parámetros de la variable de sistema de SERIAL_R[0..1]:
NOTA: n/d significa que no existe ninguna asignación de %MW predefinida para esta variable del sistema.
NOTA:
Los contadores de SERIAL_R se restablecen en las situaciones siguientes:DescargaRestablecimiento del controladorComando SERIAL_W[x].q_wResetCounterComando de restablecimiento por código de función de petición Modbus nº 8.
%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.
n/d i_udiSlaveMsgCount UINT Número de mensajes recibidos desde el maestro y dirigidos al controlador.
n/d i_uiSlaveNoRespCount UINT Número de peticiones de difusión de Modbus recibidas por el controlador.
n/d i_uiSlaveNakCount UINT No utilizado
n/d i_uiSlaveBusyCount UINT No utilizado
n/d i_uiCharOverrunCount UINT Número de desbordamientos de caracteres.
24 EIO0000000759 06/2011
M238 Variables del sistema
SERIAL_W[0..1]: Variables de sistema de lectura/escritura de la línea serie
Introducción
SERIAL_W es una matriz de 2 tipos de SERIAL_W_STRUCT. Cada elemento de la matriz fuerza las variables del sistema SERIAL_R para restablecer la línea serie correspondiente.
Para M238:Serial_W[0] hace referencia a la línea serie 1Serial_W[1] hace referencia a la línea serie 2 (sólo para y TM238LFDC24DT•• y TM238LFAC24DR••)
Estructura de variables
En la tabla siguiente se describen los parámetros de la variable de sistema de SERIAL_W[0..1]:
NOTA: n/d significa que no existe ninguna asignación de %MW predefinida para esta variable del sistema.
%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.
EIO0000000759 06/2011 25
M238 Variables del sistema
26 EIO0000000759 06/2011
EIO0000000759 06/2011
2
Modicon M238 Logic Controller
M238 Funciones de sistema
EIO0000000759 06/2011
M238 Funciones de sistema
Descripción general
En este capítulo se describen las funciones incluidas en la biblioteca M238 PLCSystem.
Contenido de este capítulo
Este capítulo contiene las siguientes secciones:
Sección Apartado Página
2.1 Funciones de lectura de M238 28
2.2 Funciones de escritura de M238 52
27
M238 Funciones de sistema
2.1 Funciones de lectura de M238
Descripción general
En este apartado se describen las funciones de lectura incluidas en la biblioteca M238 PLCSystem.
En muchos casos, se puede obtener información parecida a la que devuelven estas funciones a través de variables del sistema (véase página 15). Las variables del sistema son comunes en todas las plataformas de control y, por ello, se recomienda utilizarlas siempre que sea posible para la portabilidad de las aplicaciones. Con frecuencia, la información contenida en las variables del sistema es parecida, aunque no sea exactamente igual a la que devuelven las funciones. Si sustituye estas funciones en su programa para propiciar el uso de variables del sistema, asegúrese de comprender las diferencias de la información que se ofrece.
Las siguientes descripciones de las funciones indican cuándo está disponible una variable del sistema para obtener información similar.
Contenido de esta sección
Esta sección contiene los siguientes apartados:
Apartado Página
GetBatteryLevel: Devuelve la carga de alimentación restante de la batería 30
GetBootProjectStatus: Devuelve el estado del proyecto de inicio 31
GetEventsNumber: Devuelve el número de eventos externos detectados 32
GetFirmwareVersion: Devuelve información acerca de las versiones del firmware, el inicio y el coprocesador
33
GetHardwareVersion: Devuelve la versión del hardware 35
GetLastStopCause: Devuelve la causa de la última detención 36
GetLastStopTime: Devuelve la fecha y la hora de la última detención detectada 37
GetLocalIOStatus: Devuelve el estado de las E/S incrustadas 38
GetPlcFault: Devuelve los errores detectados en las E/S del controlador 40
GetRightBusStatus: Devuelve el estado del bus de ampliación 41
GetSerialNumber: Devuelve el número de serie del controlador 46
GetShortCutStatus: Devuelve el estado del cortocircuito en las salidas incrustadas
47
IsFirstMastColdCycle: indica si el ciclo es el primer ciclo MAST del arranque en frío
48
28 EIO0000000759 06/2011
M238 Funciones de sistema
IsFirstMastCycle: indica si el ciclo es el primer ciclo MAST 49
IsFirstMastWarmCycle: indica si el ciclo es el primer ciclo MAST del arranque en caliente
51
Apartado Página
EIO0000000759 06/2011 29
M238 Funciones de sistema
GetBatteryLevel: Devuelve la carga de alimentación restante de la batería
Descripción de la función
Esta función devuelve la carga de alimentación restante de la batería de reserva externa (como un porcentaje).
Para obtener más información acerca de las baterías internas y externas, consulte M238 - Guía de hardware (véase M238 Logic Controller, Guía de hardware).
NOTA: También puede encontrar información similar en la variable del sistema PLC_R.i_wBatteryStatus (véase página 20)
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 77).
Descripción de variables de E/S
En la tabla siguiente se describe la variable de salida:
Salida Tipo Comentario
GetBatteryLevel WORD Porcentaje de carga restante en la batería.Rango: 0..100:
100%= 3,5 V50% = 2,75 V0%= 2 V
Umbrales de parpadeo del indicador luminoso Batt:100%= siempre apagado50%= parpadeo periódico0%= siempre encendido
30 EIO0000000759 06/2011
M238 Funciones de sistema
GetBootProjectStatus: Devuelve el estado del proyecto de inicio
Descripción de la función
Esta función devuelve el estado del proyecto de inicio.
NOTA: También puede encontrar información similar en la variable del sistema PLC_R.i_wBootProjectStatus (véase página 20).
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 77).
Descripción de la variable de E/S
En la tabla siguiente se describe la variable de salida:
Salida Tipo Comentario
GetBootProjectStatus BOOT_PROJECT_STATUS (véase página 67)
Estado del proyecto de inicio
EIO0000000759 06/2011 31
M238 Funciones de sistema
GetEventsNumber: Devuelve el número de eventos externos detectados
Descripción de la función
Esta función devuelve el número de eventos que se han producido desde el último arranque en frío, incluidos los detectados en entradas y eventos de comparación de umbral de HSC.
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 77).
Descripción de la variable de E/S
En la tabla siguiente se describe la variable de salida:
Salida Tipo Comentario
GetEventsNumber DWORD Valor que representa el número de eventos que se han producido desde el último arranque en frío. Restablecimiento a 0 con una llamada de la función ResetEventsNumber (véase página 54).
32 EIO0000000759 06/2011
M238 Funciones de sistema
GetFirmwareVersion: Devuelve información acerca de las versiones del firmware, el inicio y el coprocesador
Descripción de la función
Esta función devuelve la información siguiente acerca del controlador:Versión de firmwareVersión de inicio (Kernel para la actualización del firmware)Versión del coprocesador (ASIC dedicado a la gestión de E/S incrustadas)
NOTA: También puede encontrar información similar en las variables del sistema PLC_R.i_byFirmVersion, PLC_R.i_byBootVersion y PLC_R.i_byChipVersion (véase página 20)
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 77).
Descripción de la variable de E/S
En la tabla siguiente se describe la variable de salida:
Salida Tipo Comentario
GetFirmwareVersion FIRMWARE_VERSION (véase página 66)
Versión del firmware, el inicio y el coprocesador.
EIO0000000759 06/2011 33
M238 Funciones de sistema
Ejemplo
En este ejemplo se describe cómo utilizar la variable de estructura para obtener los valores de las versiones:
VAR MyFirmwareVersion : FIRMWARE_VERSION; MyFwVersion : DWORD; MyBootVersion : WORD; MyCoProcVersion : WORD;END_VARMyFirmwareVersion := GetFirmwareVersion();MyFwVersion := MyFirmwareVersion.FwVersion;MyBootVersion := MyFirmwareVersion.BootVersion;MyCoProcVersion := MyFirmwareVersion.AsicVersion;
34 EIO0000000759 06/2011
M238 Funciones de sistema
GetHardwareVersion: Devuelve la versión del hardware
Descripción de la función
Esta función devuelve la versión de hardware del controlador.
NOTA: También puede encontrar información similar en las variables del sistema PLC_R.i_dwHardVersion (véase página 20)
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 77).
Descripción de la variable de E/S
En la tabla siguiente se describe la variable de salida:
Salida Tipo Comentario
GetHardwareVersion WORD Versión del hardware del controlador.
EIO0000000759 06/2011 35
M238 Funciones de sistema
GetLastStopCause: Devuelve la causa de la última detención
Descripción de la función
Esta función devuelve la causa de la última transición desde el estado RUN a otro estado.
NOTA: También puede encontrar información similar en la variable del sistema PLC_R.i_wLastStopCause (véase página 20).
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 77).
Descripción de la variable de E/S
En la tabla siguiente se describe la variable de salida:
Salida Tipo Comentario
GetLastStopCause STOP_WHY (véase página 68)
Causa de la última transición desde el estado RUN a otro estado.
36 EIO0000000759 06/2011
M238 Funciones de sistema
GetLastStopTime: Devuelve la fecha y la hora de la última detención detectada
Descripción de la función
Esta función devuelve la fecha y la hora de la última transición desde el estado RUN a otro estado.
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 77).
Descripción de la variable de E/S
En la tabla siguiente se describe la variable de salida:
Salida Tipo Comentario
GetLastStopTime DWORD La hora de la última detención detectada en segundos, comenzando por el 1 de enero de 1970 a las 00:00.
EIO0000000759 06/2011 37
M238 Funciones de sistema
GetLocalIOStatus: Devuelve el estado de las E/S incrustadas
Descripción de la función
Esta función devuelve el estado de las E/S incrustadas.
NOTA: También puede encontrar información similar en la variable del sistema PLC_R.i_wLocalIOStatus (véase página 20).
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 77).
Descripción de variables de E/S
En la tabla siguiente se describe el parámetro de entrada:
En la tabla siguiente se describe la variable de salida:
Ejemplo 1
En este ejemplo se muestra el uso directo del enumerador LOCAL_IO_GET_GEN_STATUS del tipo de enumeración LOCAL_IO_GET_STATUS para el parámetro de entrada Mode:
VAR MyLocalIOStatus : LOCAL_IO_GEN_STATUS;END_VAR MyLocalIOStatus := GetLocalIOStatus(LOCAL_IO_GET_GEN_STATUS);
Entrada Tipo Comentario
Modalidad LOCAL_IO_GET_STATUS (véase página 69)
Descripción de la función: actualmente, sólo está disponible LOCAL_IO_GET_GEN_STATUS (00 hex) (véase página 69).
Salida Tipo Comentario
GetLocalIOStatus LOCAL_IO_GEN_STATUS (véase página 70)
Estado de la E/S incrustada.
38 EIO0000000759 06/2011
M238 Funciones de sistema
Ejemplo 2
En este ejemplo se muestra el uso de una variable intermedia para el parámetro de entrada Mode.
VAR MyLocalIOStatus : LOCAL_IO_GEN_STATUS; MyMode : LOCAL_IO_GET_STATUS;END_VAR MyMode := LOCAL_IO_GET_GEN_STATUS;MyLocalIOStatus := GetLocalIOStatus(MyMode);
EIO0000000759 06/2011 39
M238 Funciones de sistema
GetPlcFault: Devuelve los errores detectados en las E/S del controlador
Descripción de la función
Esta función devuelve un diagnóstico genérico de las E/S del controlador en un campo de bit (FFFF hex significa que no se ha detectado ningún error):
NOTA: También puede encontrar información similar en la variable del sistema (bit0 y bit1) PLC_R.i_lwSystemFault_1 (véase página 20).
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 77).
Descripción de la variable de E/S
En la tabla siguiente se describe la variable de salida:
En la tabla siguiente se muestran los bits contenidos en el campo de bits de salida:
Salida Tipo Comentario
GetPlcFault WORD Diagnóstico de las E/S del controlador en un campo de bit (FFFF hex significa que no se ha detectado ningún error).
Bit Significado
0 FALSE = se ha detectado un error en el bus de ampliación de E/S.Utilice la función GetRightBusStatus (véase página 41) para obtener información detallada de diagnóstico.
1 FALSE = se ha detectado un error en la E/S incrustada.Utilice la función GetLocalIOStatus (véase página 38) para obtener información detallada de diagnóstico.
2..15 reservado, siempre 1
40 EIO0000000759 06/2011
M238 Funciones de sistema
GetRightBusStatus: Devuelve el estado del bus de ampliación
Descripción de las funciones
Esta función devuelve el estado del bus de ampliación de E/S en un campo de bit. A continuación del parámetro de entrada (Mask), esta función devuelve un diagnóstico de configuración en el bus de ampliación de E/S (discrepancia de configuración del bus de ampliación de E/S con los módulos conectados) o un diagnóstico detallado del módulo de E/S analógicas de ampliación solicitado.
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 77).
Variables de E/S Descripción
En la tabla siguiente se describe el parámetro de entrada:
En la tabla siguiente se describe la variable de salida:
Entrada Tipo Comentario
Mask RIGHTBUS_GET_STATUS (véase página 71)
Define el tipo de diagnóstico del bus de ampliación de E/S devuelto por la función: configuración del bus o uno de los siete módulos de ampliación posibles.
Salida Tipo Comentario
GetRightBusStatus WORD Diagnóstico del bus de ampliación de E/S.Consulte los detalles a continuación.
EIO0000000759 06/2011 41
M238 Funciones de sistema
Diagnóstico de configuración del bus de ampliación de E/S
En la tabla siguiente se describe el campo de bit que devuelve la función GetRightBusStatus cuando el parámetro de entrada (Mask) es RIGHT_BUS_GET_GEN_STATUS (véase página 71) para un diagnóstico de configuración del bus de ampliación (0000 hex si no se detecta ningún error):
Bit Descripción
0 Reservado (siempre 0)
1 TRUE si la configuración del módulo 1 TM2 no coincide con el módulo conectado.
2 TRUE si la configuración del módulo 2 TM2 no coincide con el módulo conectado.
3 TRUE si la configuración del módulo 3 TM2 no coincide con el módulo conectado.
4 TRUE si la configuración del módulo 4 TM2 no coincide con el módulo conectado.
5 TRUE si la configuración del módulo 5 TM2 no coincide con el módulo conectado.
6 TRUE si la configuración del módulo 6 TM2 no coincide con el módulo conectado.
7 TRUE si la configuración del módulo 7 TM2 no coincide con el módulo conectado.
8...15 Reservado (siempre 0)
42 EIO0000000759 06/2011
M238 Funciones de sistema
Diagnóstico de los módulos del bus de ampliación de E/S
En la tabla siguiente se describe el campo de bit que devuelve la función GetRightBusStatus cuando el parámetro de entrada (Mask) es RIGHTBUS_GET_STATUSx (véase página 71) (donde x=1 a 7) para un diagnóstico detallado del módulo de ampliación "x".
NOTA: El diagnóstico detallado sólo es válido para los módulos de E/S analógicas y el significado del campo de bit depende del tipo de módulo analógico correspondiente.
Cuando el módulo asociado es un módulo de E/S analógicas estándar (hasta 2 canales de entrada):
TM2AMM3HTTM2ALM3LTTM2AMI2HTTM2AMI2LTTM2AVO2HTTM2AMO1HT
Bit Descripción
0 Todos los canales analógicos se encuentran en estado normal.
1 Módulo en estado de inicialización
2 La fuente de alimentación no funciona correctamente.
3 Configuración incorrecta: es necesario realizar un análisis.
4 Proceso de conversión para el canal de entrada 0
5 Proceso de conversión para el canal de entrada 1
6 Parámetro no válido para el canal de entrada 0.
7 Parámetro no válido para el canal de entrada 1.
8 Sin utilizar
9 Sin utilizar
10 Valor de desborde para el canal de entrada 0.
11 Valor de desborde para el canal de entrada 1.
12 Valor de transgresión por debajo del rango para el canal de entrada 0.
13 Valor de transgresión por debajo del rango para el canal de entrada 1.
14 Sin utilizar
15 Parámetro no válido para el canal de salida.
EIO0000000759 06/2011 43
M238 Funciones de sistema
Cuando el módulo asociado es uno de los 4 u 8 módulos de canales analógicos de entrada:
TM2ARI8HTTM2AMI8HTTM2ARI8LTTM2ARI8LRJTM2AMI4LTTM2AMM6HT
NOTA: Cuando el módulo de ampliación de destino es un módulo de E/S digitales, un módulo de contador de alta velocidad o un módulo maestro AS-Interface, el diagnóstico devuelto no es válido (0000 hex).
Para obtener un diagnóstico de módulos de ampliación HSC y AS-Interface, se puede utilizar:
Bloque de funciones HSCGetDiag (véase Modicon M238 Logic Controller, Contador de alta velocidad, Guía de la biblioteca M238 HSC ) para el módulo TM200 HSC206D•ASI_MasterStatusCheck (véase Modicon M238 Logic Controller, Guía de programación) para el módulo TWDNOI10M3
Bit Descripción Significado
0, 1 Estado del canal 0 00: Canal analógico en estado normal01: Parámetro no válido para el canal de entrada10: Valor de entrada no disponible (módulo en estado de inicialización, proceso de conversión)11: Valor no válido para canal de entrada (valor de desborde o de transgresión por debajo del rango)
2, 3 Estado del canal 1 consulte el bit 0, 1
4, 5 Estado del canal 2 consulte el bit 0, 1
6, 7 Estado del canal 3 consulte el bit 0, 1
8, 9 Estado del canal 4 consulte el bit 0, 1 (sólo para módulos de 8 canales de entrada)
10, 11 Estado del canal 5 consulte el bit 0, 1 (sólo para módulos de 8 canales de entrada)
12, 13 Estado del canal 6 consulte el bit 0, 1 (sólo para módulos de 8 canales de entrada)
14, 15 Estado del canal 7 consulte el bit 0, 1 (sólo para módulos de 8 canales de entrada)
44 EIO0000000759 06/2011
M238 Funciones de sistema
Ejemplo
En el ejemplo siguiente se describe un método en el que se utiliza GetRight-BusStatus para diagnóstico de los módulos analógicos y el bus de ampliación de E/S:
VAR(*Modules 1 to 7 conf diag = MyRightBusStatus bits 1 to 7*)MyRightBusStatus: WORD;(*Modules 1 to 7 diag codes*) ModuleError:Array [1..7] of WORD;
END_VAR
(*Conf diagnostic on expansion bus*)MyRightBusStatus:=GetRightBusStatus(RIGHTBUS_GET_GEN_STATUS);
IF MyRightBusStatus<>0 THEN(*Conf mismatch detected => set an alarm, check bit values...*)END_IF;
(*Get modules diagnostic; detected error if diag <> 0*)(*Limit the list to analog modules configured only*)ModuleError[1]:=GetRightBusStatus(RIGHTBUS_GET_STATUS1);ModuleError[2]:=GetRightBusStatus(RIGHTBUS_GET_STATUS2);ModuleError[3]:=GetRightBusStatus(RIGHTBUS_GET_STATUS3);ModuleError[4]:=GetRightBusStatus(RIGHTBUS_GET_STATUS4);ModuleError[5]:=GetRightBusStatus(RIGHTBUS_GET_STATUS5);ModuleError[6]:=GetRightBusStatus(RIGHTBUS_GET_STATUS6);ModuleError[7]:=GetRightBusStatus(RIGHTBUS_GET_STATUS7);
EIO0000000759 06/2011 45
M238 Funciones de sistema
GetSerialNumber: Devuelve el número de serie del controlador
Descripción de la función
Esta función devuelve el número de serie del controlador.
NOTA: También puede encontrar información similar en la variable del sistema (bit0 y bit1) PLC_R.i_dwSerialNumber (véase página 20).
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 77).
Descripción de la variable de E/S
En la tabla siguiente se describe la variable de salida:
Salida Tipo Comentario
GetSerialNumber DWORD Número de serie del controlador.
46 EIO0000000759 06/2011
M238 Funciones de sistema
GetShortCutStatus: Devuelve el estado del cortocircuito en las salidas incrustadas
Descripción de la función
Esta función devuelve el diagnóstico del cortocircuito o la sobrecarga en las salidas incrustadas.
NOTA: Para obtener más información acerca de la gestión de las salidas incrustadas, consulte la M238 - Guía de hardware (véase M238 Logic Controller, Guía de hardware).
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 77).
Descripción de la variable de E/S
En la tabla siguiente se describe la variable de salida:
En la tabla siguiente se describe el campo de bit para TM238LDD24DT y TM238LFDC24DT••:
En la tabla siguiente se describe el campo de bit para TM238LDA24DR y TM238LFAC24DR••:
Parámetro Tipo Comentario
GetShortCutStatus WORD Consulte la descripción del campo de bit a continuación.
Bit Descripción
0 TRUE= cortocircuito en el grupo de salidas 1 (Q0 a Q3).
1 TRUE= cortocircuito en el grupo de salidas 2 (Q4 a Q6).
2 TRUE= cortocircuito en el grupo de salidas 3 (Q7 a Q9).
Bit Descripción
0 TRUE= cortocircuito en el grupo de salidas 1 (Q0 a Q3).
EIO0000000759 06/2011 47
M238 Funciones de sistema
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 restablecimiento en frío).
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 77).
Descripción de variables de E/S
En la tabla siguiente se describe la variable de salida:
Ejemplo
Consulte la función IsFirstMastCycle (véase página 49).
Salida Tipo Comentario
IsFirstMastColdCycle BOOL TRUE durante el ciclo de tarea maestra después de un arranque en frío.
48 EIO0000000759 06/2011
M238 Funciones de sistema
IsFirstMastCycle: indica si el ciclo es el primer ciclo MAST
Descripción de las funciones
Esta función devuelve TRUE durante el primer ciclo MAST después de un arranque.
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 77).
Descripción de la variable de E/S
Ejemplo
En este ejemplo se describen las tres funciones IsFirstMastCycle, IsFirstMastColdCycle y IsFirstMastWarmCycle utilizadas a la vez.
Este ejemplo se debe utilizar en la tarea MAST, pues de lo contrario se puede ejecutar varias veces o nunca (una tarea adicional puede llamarse varias veces o no llamarse durante un ciclo de tarea MAST):
VARMyIsFirstMastCycle : BOOL;MyIsFirstMastWarmCycle : BOOL;MyIsFirstMastColdCycle : 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 ponen a sus valores de inicialización excepto las variables Retains*)
Salida Tipo Comentario
IsFirstMastCycle BOOL TRUE durante el primer ciclo de tarea MAST después de un arranque.
EIO0000000759 06/2011 49
M238 Funciones de sistema
(*=> inicializa las variables necesarias para que la aplicación funcione de la forma esperada en este caso*)
END_IF;
IF (MyIsFirstMastColdCycle) THEN
(*Este es el primer ciclo MAST después de un arranque en frío: todas las variables se ponen a sus valores de inicialización, incluso las variables Retains*)
(*=> inicializa las variables necesarias para que la aplicación funcione de la forma esperada 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*)
(*=> inicializa las variables necesarias para que la aplicación funcione de la forma esperada en este caso*)
END_IF;
50 EIO0000000759 06/2011
M238 Funciones de sistema
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 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 77).
Descripción de variables de E/S
En la tabla siguiente se describe la variable de salida:
Ejemplo
Consulte la función IsFirstMastCycle (véase página 49).
Salida Tipo Comentario
IsFirstMastWarmCycle BOOL TRUE durante el ciclo de tarea MAST después de un arranque en caliente.
EIO0000000759 06/2011 51
M238 Funciones de sistema
2.2 Funciones de escritura de M238
Descripción general
En este capítulo se describen las funciones de escritura incluidas en la biblioteca M238 PLCSystem.
En muchos casos, se puede obtener información parecida a la que devuelven estas funciones a través de variables del sistema (véase página 15). Las variables del sistema son comunes en todas las plataformas de control y, por ello, se recomienda utilizarlas siempre que sea posible para la portabilidad de las aplicaciones. Con frecuencia, la información contenida en las variables del sistema es parecida, aunque no sea exactamente igual a la que devuelven las funciones. Si sustituye estas funciones en su programa para propiciar el uso de variables del sistema, asegúrese de comprender las diferencias de la información que se ofrece.
Las siguientes descripciones de las funciones indican cuándo está disponible una variable del sistema para obtener información similar.
Contenido de esta sección
Esta sección contiene los siguientes apartados:
Apartado Página
InhibitBatLowLed: Deshabilita o vuelve a habilitar el indicador luminoso Batt 53
ResetEventsNumber: Restablece el número de eventos 54
SetRTCDrift: ajuste de Real Time Clock cada semana 55
52 EIO0000000759 06/2011
M238 Funciones de sistema
InhibitBatLowLed: Deshabilita o vuelve a habilitar el indicador luminoso Batt
Descripción de la función
Esta función deshabilita o vuelve a habilitar la visualización del indicador luminoso de batería baja (Batt).
Se puede utilizar cuando el controlador se emplea sin batería externa con el fin de evitar que se muestre una señal de error persistente. La visualización del indicador luminoso de batería (Batt) se restablece después de un comando Reset to Origin (restablecimiento de los valores de origen) o una descarga del panel de programación al controlador.
NOTA: Para obtener más información acerca de la batería externa, consulte la M238 - Guía de hardware (véase M238 Logic Controller, Guía de hardware).
NOTA: Para obtener más información acerca del indicador LED, consulte la M238 - Guía de hardware (véase M238 Logic Controller, Guía de hardware).
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 77).
Descripción de la variable de E/S
En la tabla siguiente se describe el parámetro de entrada:
En la siguiente tabla se describe el parámetro de salida:
Entrada Tipo Comentario
Inhibit BOOL TRUE = Deshabilita la visualización del indicador luminoso Batt.FALSE = Vuelve a habilitar la visualización del indicador luminoso Batt.
Salida Tipo Comentario
InhibitBatLowLed WORD 00 hex = operación correctaelse = operación incorrecta
EIO0000000759 06/2011 53
M238 Funciones de sistema
ResetEventsNumber: Restablece el número de eventos
Descripción de las funciones
Esta función restablece el número de eventos que se han producido desde el último arranque en frío, incluidos los detectados en entradas y eventos de comparación de umbral de HSC.
NOTA: El número de eventos detectados en las entradas o umbrales de HSC lo devuelve la función GetEventsNumber (véase página 32).
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 77).
Descripción de variables de E/S
En la tabla siguiente se describe la variable de salida:
Salida Tipo Comentario
ResetEventsNumber BOOL TRUE si el contador se ha restablecido a 0 correctamente.
54 EIO0000000759 06/2011
M238 Funciones de sistema
SetRTCDrift: ajuste de Real Time Clock cada semana
Descripción de las funciones
Esta función suma o resta del Reloj de tiempo real una cantidad especificada de segundos, cada semana, en el día especificado de la semana, hora:minuto:30s.
NOTA: La función SetRTCDrift debe llamarse al menos una vez para actualizar los parámetros.
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 77).
Descripción de variables de E/S
En la siguiente tabla, se describen los parámetros de entrada:
NOTA: Si los valores especificados para RTCDrift, Day, Hour, Minute sobrepasan los valores límite, el firmware del controlador establecerá todos los valores en sus valores máximos.
Entradas Tipo Comentario
RTCDrift SINT(-29..29) Corrección en segundos (-29 a +29)
Día DAY_OF_WEEK (véase página 72)
Día de la semana en que se ejecutará.
Hora HOUR (véase página 73)
Hora de cambio.
Minuto MINUTE (véase página 74)
Minuto de cambio.El día de la semana especificado en Hora:Minuto:30 segundos, el RTC está establecido en Hora:Minuto:(30+RTCDrift) segundos.
EIO0000000759 06/2011 55
M238 Funciones de sistema
En la tabla siguiente se describe la variable de salida:
Ejemplo
En este ejemplo, sólo se llama una vez a la función durante el primer ciclo de la tarea MAST, 20 segundos se añaden a la RTC cada martes a las 5:45:30 a.m.:
VAR MyRTCDrift : SINT (-29..29) := 0; MyDay : DAY_OF_WEEK; MyHour : HOUR; MyMinute : MINUTE;END_VAR
IF IsFirstMastCycle() THEN MyRTCDrift := 20; MyDay := TUESDAY; MyHour := 5; MyMinute := 45; SetRTCDrift(MyRTCDrift, MyDay, MyHour, MyMinute);END_IF
Salida Tipo Comentario
SetRTCDrift WORD Devuelve 00 hex si el comando es correcto; de lo contrario devuelve el código ID del error detectado.
56 EIO0000000759 06/2011
EIO0000000759 06/2011
3
Modicon M238 Logic Controller
Tipos de datos de la biblioteca PLCSystem de M238
EIO0000000759 06/2011
Tipos de datos de la biblioteca PLCSystem de M238
Descripción general
En este capítulo se describen los tipos de datos de la biblioteca M238 PLCSystem.
Hay 2 clases de tipos de datos disponibles:Los tipos de datos de las variables de sistema los utilizan las variables del sistema (véase página 13) de la biblioteca M238 PLCSystem (PLC_R, PLC_W,...).Los tipos de datos de funciones de sistema los utilizan las funciones del sistema (véase página 27) de lectura/escritura de la biblioteca M238 PLCSystem.
Contenido de este capítulo
Este capítulo contiene las siguientes secciones:
Sección Apartado Página
3.1 Tipos de datos de variables del sistema de PLC_R/W 58
3.2 Tipos de datos de funciones de sistema 65
57
Tipos de datos de la biblioteca PLCSystem de M238
3.1 Tipos de datos de variables del sistema de PLC_R/W
Descripción general
En este apartado se describen los tipos de datos de variables del sistema incluidos 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_STATUS: Códigos de estado del controlador 59
PLC_R_APPLICATION_ERROR: Códigos de estado del error detectado de la aplicación
60
PLC_R_BOOT_PROJECT_STATUS: Códigos de estado del proyecto de inicio
61
PLC_R_IO_STATUS: Códigos de estado de E/S 62
PLC_R_STOP_CAUSE: Códigos RUN para causa de transición a otro estado 63
PLC_W_COMMAND: Códigos de comando de control 64
58 EIO0000000759 06/2011
Tipos de datos de la biblioteca PLCSystem de M238
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 00 hex El controlador no está programado.
PLC_R_STOPPED 01 hex El controlador se ha detenido.
PLC_R_RUNNING 02 hex El controlador está en ejecución.
PLC_R_HALT 04 hex El controlador está en estado HALT. (consulte el diagrama del estado del controlador en la guía de programación del controlador).
PLC_R_BREAKPOINT 08 hex El controlador está en pausa en el punto de interrupción.
EIO0000000759 06/2011 59
Tipos de datos de la biblioteca PLCSystem de M238
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 desconocido.
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 Se han detectado funciones desconocidas.
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 Se ha detectado una instrucción desconocida.
PLC_R_APP_ERR_ACCESS_VIOLATION 0051 hex 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.
60 EIO0000000759 06/2011
Tipos de datos de la biblioteca PLCSystem de M238
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 no se utiliza
PLC_R_BOOT_PROJECT_CREATION_IN_PROGRESS 0001 hex Se va a crear el proyecto de arranque.
PLC_R_DIFFERENT_BOOT_PROJECT 0002 hex El proyecto de inicio en la memoria Flash es distinto del cargado en la RAM o no existe.
PLC_R_VALID_BOOT_PROJECT FFFF hex El proyecto de arranque en la memoria Flash es el mismo que el cargado en la RAM.
EIO0000000759 06/2011 61
Tipos de datos de la biblioteca PLCSystem de M238
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.
RESERVADO 0004 hex no se utiliza
PLC_R_IO_COM_LOST 0005 hex Detectado error de comunicación con el coprocesador.La E/S incrustada no está actualizada.
62 EIO0000000759 06/2011
Tipos de datos de la biblioteca PLCSystem de M238
PLC_R_STOP_CAUSE: Códigos RUN para causa de transición 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 watchdog de hardware.
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 tras una petición de comando de programa (p. ej.: comando de control con el 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 (llave USB o comando PLC_W).
PLC_R_STOP_FROM_INPUT 0B hex Detención requerida por una entrada de controlador.
EIO0000000759 06/2011 63
Tipos de datos de la biblioteca PLCSystem de M238
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 01 hex Comando para detener el controlador.
PLC_W_RUN 02 hex Comando para ejecutar el controlador.
PLC_W_RESET_COLD 04 hex Comando para iniciar un restablecimiento en frío del controlador.
PLC_W_RESET_WARM 08 hex Comando para iniciar un restablecimiento en caliente del controlador.
64 EIO0000000759 06/2011
Tipos de datos de la biblioteca PLCSystem de M238
3.2 Tipos de datos de funciones de sistema
Descripción general
En este apartado se describen los diversos tipos de datos de funciones de sistema de la biblioteca M238 PLCSystem.
Contenido de esta sección
Esta sección contiene los siguientes apartados:
Apartado Página
FIRMWARE_VERSION: Tipo de salida de la función GetFirmwareVersion 66
BOOT_PROJECT_STATUS: Códigos de salida de la función GetBootProjectStatus
67
STOP_WHY: Códigos de salida de la función GetLastStopCause 68
LOCAL_IO_GET_STATUS: Códigos de parámetros de la función GetLocalIOStatus
69
LOCAL_IO_GEN_STATUS: Códigos de salida de la función GetLocalIOStatus
70
RIGHTBUS_GET_STATUS: Códigos de parámetros de la función GetRightBusStatus
71
DAY_OF_WEEK: Códigos de parámetro de día de la función SetRTCDrift 72
HOUR: SetRTCDrift Función Tipo de parámetro de hora 73
MINUTE: SetRTCDrift Función Tipo de parámetro de minuto 74
EIO0000000759 06/2011 65
Tipos de datos de la biblioteca PLCSystem de M238
FIRMWARE_VERSION: Tipo de salida de la función GetFirmwareVersion
Descripción de la estructura
La estructura de datos contiene las variables siguientes:
Variable Tipo Descripción
FwVersion DWORD Contiene la versión del firmware (p. ej.: 2.0.20.4= 02001404 hex).
BootVersion WORD Contiene la versión de arranque (p. ej.: 1.4= 0104 hex).
AsicVersion WORD Contiene la versión del coprocesador.
66 EIO0000000759 06/2011
Tipos de datos de la biblioteca PLCSystem de M238
BOOT_PROJECT_STATUS: Códigos de salida de la función GetBootProjectStatus
Descripción de los tipos enumerados
El tipo de datos de la enumeración contiene los valores siguientes:
Enumerador Valor Descripción
VALID_BOOT_PROJECT 0000 hex El proyecto de inicio en la memoria Flash es el mismo que el cargado en la RAM.
INVALID_BOOT_PROJECT 0001 hex El proyecto de inicio en la memoria Flash es distinto del cargado en la RAM o no existe.
CREATE_BOOT_PROJECT_IN_PROGRESS
0002 hex Se está creando el proyecto de inicio.
EIO0000000759 06/2011 67
Tipos de datos de la biblioteca PLCSystem de M238
STOP_WHY: Códigos de salida de la función GetLastStopCause
Descripción de los tipos enumerados
El tipo de datos de enumeración contiene el estado con los valores siguientes:
Enumerador Valor Descripción
STOP_FROM_POWER_FAIL 00 hex Detención después de un corte de alimentación.
STOP_FROM_INTERNAL_ERROR 01 hex Detención por detección de un error interno.
STOP_FROM_APP_WATCHDOG 02 hex Detención tras una tarea o un Watchdog (véase Modicon M238 Logic Controller, Guía de programación) del sistema.
STOP_FROM_STOP_REQUEST 03 hex Detención tras una petición de usuario.
STOP_FROM_POWER_FAIL_BAD_RETAINS 04 hex Las variables retentivas se han perdido después de un corte de alimentación.Esto puede ocurrir si la batería interna y la batería externa no están cargadas o no están presentes.
STOP_FROM_POWER_FAIL_INVALID_BOOT_PROJECT 05 hex El proyecto de la aplicación de arranque no es válido al apagar debido a un cambio en línea sin actualizar la aplicación de arranque.
68 EIO0000000759 06/2011
Tipos de datos de la biblioteca PLCSystem de M238
LOCAL_IO_GET_STATUS: Códigos de parámetros de la función GetLocalIOStatus
Descripción de los tipos enumerados
El tipo de datos de enumeración LOCAL_IO_GET_STATUS contiene el valor siguiente:
Enumerador Valor Descripción
LOCAL_IO_GET_GEN_STATUS 00 hex Valor utilizado para solicitar el estado general de las E/S incrustadas
EIO0000000759 06/2011 69
Tipos de datos de la biblioteca PLCSystem de M238
LOCAL_IO_GEN_STATUS: Códigos de salida de la función GetLocalIOStatus
Descripción de los tipos enumerados
El tipo de datos de enumeración LOCAL_IO_GEN_STATUS contiene el estado de las E/S locales con los valores siguientes:
Enumerador Valor Descripción
LOCAL_IO_OK 00 hex Las entradas/salidas están operativas.
LOCAL_IO_NO_INIT 01 hex Se han detectado parámetros de configuración de E/S incorrectos.
LOCAL_IO_COM_LOST 02 hex Error de comunicación con el coprocesador.La E/S incrustada no está actualizada.
LOCAL_IO_CONF_FAULT 03 hex Se han detectado parámetros de configuración de E/S incorrectos.
70 EIO0000000759 06/2011
Tipos de datos de la biblioteca PLCSystem de M238
RIGHTBUS_GET_STATUS: Códigos de parámetros de la función GetRightBusStatus
Descripción de los tipos enumerados
El tipo de datos de la enumeración contiene los valores siguientes:
NOTA: Para obtener más información acerca del uso del tipo de parámetro RIGHTBUS_GET_STATUS, consulte la función GetRightBusStatus (véase página 41).
Enumerador Valor Descripción
RIGHTBUS_GET_GEN_STATUS 00 hex Parámetro para el diagnóstico de configuración del bus de ampliación
RIGHTBUS_GET_STATUS1 01 hex Parámetro para un diagnóstico del módulo 1 del bus de ampliación
RIGHTBUS_GET_STATUS2 02 hex Parámetro para un diagnóstico del módulo 2 del bus de ampliación
RIGHTBUS_GET_STATUS3 03 hex Parámetro para un diagnóstico del módulo 3 del bus de ampliación
RIGHTBUS_GET_STATUS4 04 hex Parámetro para un diagnóstico del módulo 4 del bus de ampliación
RIGHTBUS_GET_STATUS5 05 hex Parámetro para un diagnóstico del módulo 5 del bus de ampliación
RIGHTBUS_GET_STATUS6 06 hex Parámetro para un diagnóstico del módulo 6 del bus de ampliación
RIGHTBUS_GET_STATUS7 07 hex Parámetro para un diagnóstico del módulo 7 del bus de ampliación
EIO0000000759 06/2011 71
Tipos de datos de la biblioteca PLCSystem de M238
DAY_OF_WEEK: Códigos de parámetro de día de la función SetRTCDrift
Descripción del tipo enumerado
El tipo de datos de la enumeración contiene los valores siguientes:
Enumerador Valor Comentario
MONDAY 01 hex Establece lunes como día de la semana
TUESDAY 02 hex Establece martes como día de la semana
WEDNESDAY 03 hex Establece miércoles como día de la semana
THURSDAY 04 hex Establece jueves como día de la semana
FRIDAY 05 hex Establece viernes como día de la semana
SATURDAY 06 hex Establece sábado como día de la semana
SUNDAY 07 hex Establece domingo como día de la semana
72 EIO0000000759 06/2011
Tipos de datos de la biblioteca PLCSystem de M238
HOUR: SetRTCDrift Función Tipo de parámetro de hora
Descripción del tipo de datos
El tipo de datos contiene los valores de horas de 0 al 23.
EIO0000000759 06/2011 73
Tipos de datos de la biblioteca PLCSystem de M238
MINUTE: SetRTCDrift Función Tipo de parámetro de minuto
Descripción del tipo de datos
El tipo de datos contiene los valores de minutos de 0 al 59.
74 EIO0000000759 06/2011
Modicon M238 Logic Controller
EIO0000000759 06/2011
Apéndices
EIO0000000759 06/2011 75
76 EIO0000000759 06/2011
EIO0000000759 06/2011
A
Modicon M238 Logic Controller
Representación de funciones y de bloques de funciones
EIO0000000759 06/2011
Representación de funciones y de bloques de funciones
Descripción general
Cada función se puede representar en los lenguajes siguientes:IL: Lista de instruccionesST: Texto estructuradoLD: Diagrama de contactosFBD: Diagrama de bloques de funcionesCFC: 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 78
Cómo usar una función o un bloque de funciones en lenguaje IL 79
Cómo utilizar una función o un bloque de funciones en lenguaje ST 83
77
Representación de funciones y de bloques de funciones
Diferencias entre una función y un bloque de funciones
Función
Una función:es una POU (Unidad de organización de programa) que devuelve un resultado inmediatose le llama directamente por su nombre (no a través de una Instancia)No tiene un estado persistente desde una llamada hasta la otra.Se puede utilizar como un operando en otras expresiones.
Ejemplos: operadores booleanos (AND), cálculos, conversión (BYTE_TO_INT)
Bloque de funciones
Un bloque de funciones:es una POU (Unidad de organización de programa) que devuelve una o más salidassiempre se le llama a través de una Instancia (copia del bloque de funciones con nombre y variables dedicados)cada Instancia tiene un estado persistente (salidas y variables internas) de una llamada a la otra.
Ejemplos: temporizadores, contadores
En el ejemplo siguiente, Timer_ON es una instancia del bloque de funciones TON:
78 EIO0000000759 06/2011
Representación de funciones y de bloques de funciones
Cómo usar una función o un bloque de funciones en lenguaje IL
Información general
En esta sección se describe el modo de implementar una función y un bloque de funciones en lenguaje IL.
Las funciones IsFirstMastCycle and SetRTCDrift y el bloque de funciones TON se usan como ejemplo para mostrar implementaciones.
Uso de una función en lenguaje IL
En el procedimiento siguiente se describe cómo insertar una función en lenguaje IL:
Para ilustrar el procedimiento, consulte las funciones IsFirstMastCycle (sin parámetros de entrada) y SetRTCDrift (con parámetros de entrada) presentadas gráficamente a continuación:
Paso Acción
1 Abra o cree una POU en el lenguaje de lista de instrucciones.NOTA: Aquí no se detalla el procedimiento para crear una POU. Para obtener más información, consulte la ayuda global de SoMachine.
2 Cree las variables que necesite 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:escriba el nombre de la función en la columna de operadores (campo izquierdo); ouse el Asistente de entradas para seleccionar la función (seleccione Insertar llamada de módulo en el menú contextual).
5 Si la función tiene más de 1 entrada y se usa el Asistente de entradas, se crea automáticamente el número de líneas necesario con ??? en los campos de la derecha. Reemplace ??? 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.
Función Representación gráfica
sin parámetros de entrada:IsFirstMastCycle
con parámetros de entrada:SetRTCDrift
EIO0000000759 06/2011 79
Representación de funciones y de bloques de funciones
En lenguaje IL, el nombre de la función se utiliza directamente en la columna del operador:
Función Representación en el SoMachineEditor IL de POU
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
80 EIO0000000759 06/2011
Representación de funciones y de bloques de funciones
Uso de un bloque de funciones en lenguaje IL
En el procedimiento siguiente se describe cómo insertar un bloque de funciones en lenguaje IL:
Para ilustrar el procedimiento, consulte este ejemplo con el bloque de funciones TON presentado gráficamente a continuación:
Paso Acción
1 Abra o cree una POU en el lenguaje de lista de instrucciones.NOTA: Aquí no se detalla el procedimiento para crear una POU. Para obtener más información, consulte la ayuda global de SoMachine.
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:Use el Asistente de entradas para seleccionar el bloque de funciones (haga clic con el botón derecho y seleccione Insertar llamada de módulo en el menú contextual).La instrucción CAL y la E/S necesaria se crean automáticamente.
Cada parámetro (E/S) es una instrucción:Los valores de las entradas se establecen con ":=".Los valores de las salidas se establecen con "=>".
4 En el campo CAL situado a la derecha, reemplace ??? por el nombre de la instancia.
5 Reemplace otro ??? por una variable apropiada o un valor inmediato.
Bloque de funciones Representación gráfica
TON
EIO0000000759 06/2011 81
Representación de funciones y de bloques de funciones
En lenguaje IL, el nombre del bloque de funciones se utiliza directamente en la columna del operador:
Bloque de funciones Representación en el SoMachineEditor IL de POU
TON
82 EIO0000000759 06/2011
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 el procedimiento siguiente se describe cómo insertar una función en lenguaje ST:
Para ilustrar el procedimiento, considere la función SetRTCDrift que se representa gráficamente a continuación:
El lenguaje ST de esta función es este:
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 la ayuda global de SoMachine .
2 Cree las variables que necesite 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);
Función Representación gráfica
SetRTCDrift
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);
EIO0000000759 06/2011 83
Representación de funciones y de bloques de funciones
Uso de un bloque de funciones en lenguaje ST
En el procedimiento siguiente se describe cómo insertar un bloque de funciones en lenguaje ST:
Para ilustrar el procedimiento, considere este ejemplo con el bloque de funciones TON que se representa gráficamente a continuación:
En la tabla siguiente se muestran ejemplos de una llamada de 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, consulte la ayuda global de SoMachine .
2 Cree las variables de entrada y salida y la instancia requeridas para el bloque de funciones:Las variables de entrada son los parámetros de entrada requeridos por el bloque de funcionesLas 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,...);
Bloque de funciones Representación gráfica
TON
Bloque de funciones Representación en el Editor POU IL de SoMachine
TON
84 EIO0000000759 06/2011
Modicon M238 Logic Controller
Glosario
EIO0000000759 06/2011
Glosario
A
Aplicación de arranqueArchivos que contienen parámetros dependientes de la máquina:
nombre de la máquinanombre de dispositivo o dirección IPdirección de la línea serie Modbustabla de enrutamiento
B
Bloque de funciones(FB) Unidad de programa de entradas y variables organizadas para calcular los valores de las salidas basadas en una función definida como un temporizador o un contador.
BOOLUn tipo booleano es el tipo de datos básico en informática. Una variable BOOL puede tener uno de estos valores: 0 (FALSE), 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.
EIO0000000759 06/2011 85
Glosario
BOOTPEl Bootstrap Protocol es 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 clientes y las direcciones IP asociadas) envía al cliente su dirección IP preconfigurada. 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.
bus de ampliaciónEl bus de ampliación es un bus de comunicación eléctrico entre los módulos de ampliación y una CPU.
BYTECuando se agrupan 8 bits, se habla de un BYTE (byte). La entrada de un BYTE se realiza en modalidad binaria o en base 8. El tipo BYTE está codificado en un formato de 8 bits que, en el formato hexadecimal, va de 16#00 a 16#FF.
C
CANEl protocolo Red de área del controlador (ISO 11898) para redes de bus serie está diseñado para la interconexión de dispositivos inteligentes (de varios fabricantes) en sistemas inteligentes para aplicaciones industriales en tiempo real. Los sistemas CAN multimaestro aseguran una alta integridad de datos por medio de la aplicación de la difusión de mensajes y de mecanismos de diagnóstico avanzados. CAN, diseñado originalmente para utilizarse en automóviles, se emplea actualmente en una amplia variedad de entornos industriales de control automático.
CANopenCANopen es una especificación de perfiles de dispositivos y un protocolo de comunicaciones abierto estándar en el sector.
86 EIO0000000759 06/2011
Glosario
CFCEl diagrama de función continua (una ampliación del estándar IEC61131-3) es un lenguaje de programación que funciona como un diagrama de flujo. Mediante la adición de bloques lógicos simples (Y, O, etc.), cada función o bloque de funciones del programa se representa mediante esta forma gráfica. En cada bloque, las entradas se sitúan a la izquierda y las salidas, a la derecha. Las salidas de los bloques pueden estar vinculadas a las entradas de otros bloques para formar expresiones complejas.
contador bifásicoUn contador bifásico utiliza el desfase entre 2 señales de contador de entrada para contar de forma progresiva o regresiva.
contador monofásicoUn contador monofásico utiliza 1 entrada de hardware como entrada de contador. Normalmente cuenta progresiva o regresivamente cuando hay una señal de pulso en la entrada.
controladorUn controlador (o controlador lógico programable, o controlador programable) se emplea para automatizar procesos industriales.
D
datos retenidosSe utiliza un valor de datos retenidos en el próximo encendido o arranque en caliente. El valor se retiene incluso después de un cierre descontrolado o un apagado normal del controlador.
F
FBDUn diagrama de bloques de funciones es un lenguaje de programación orientado gráficamente, que cumple con el estándar IEC 61131-3. Funciona con una lista de redes con 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.
EIO0000000759 06/2011 87
Glosario
firmwareEl firmware representa el sistema operativo en un controlador.
G
GVLLa lista de variables globales gestiona variables globales que están disponibles en cada POU de aplicación.
H
HMIUna interfaz hombre–máquina es una interfaz del operario, generalmente gráfica, para equipos industriales.
HSCcontador de alta velocidad
I
IEC 61131-3El IEC 61131-3 es un estándar de la Comisión Electrotécnica Internacional para los equipos de automatización industriales (como controladores). IEC 61131-3 se ocupa de los lenguajes de programación del controlador y define dos normas de lenguajes de programación gráficos y dos textuales:
grafico:diagrama de contactos, diagrama de bloques de funcionestextual: texto estructurado, lista de instrucciones
ILUn programa escrito en el lenguaje de lista de instrucciones está compuesto por una serie de instrucciones ejecutadas de forma secuencial por el controlador. Cada instrucción incluye un número de línea, un código de instrucción y un operando. (IL cumple con IEC 61131-3.)
88 EIO0000000759 06/2011
Glosario
L
LDUn programa escrito en lenguaje de diagrama de contactos incluye una represen-tación gráfica de instrucciones de un programa de autómata con símbolos para contactos, bobinas y bloques en una serie de escalones ejecutados de forma secuencial por un autómata. Conforme con IEC 61131-3.
lenguaje de diagrama de bloques de funciones(FBD) Un diagrama de bloques de funciones describe una función entre variables de entrada y de salida. Una función se describe como un conjunto de bloques elementales. Las variables de entrada y de salida están conectadas a bloques mediante líneas de conexión. La salida de un bloque también puede estar conectada a la entrada de otro bloque.
M
ModbusEl protocolo de comunicaciones Modbus permite las comunicaciones entre muchos dispositivos conectados a la misma red.
módulo de E/S de ampliaciónUn módulo de entrada o salida de ampliación es un módulo digital o analógico que añade E/S adicional al controlador base.
N
NEMALa Asociación de fabricantes de componentes eléctricos (National Electrical Manufacturers Association) publica normas para el rendimiento de varias clases de carcasas eléctricas. Las normas NEMA abarcan la resistencia a la corrosión, la capacidad de protección contra la lluvia y la inmersión, etc. Para los países adheridos a IEC, la norma IEC 60529 clasifica el grado de protección contra entrada de las carcasas.
EIO0000000759 06/2011 89
Glosario
P
PLCEl controlador lógico programable (PLC) es el “cerebro” de un proceso de fabricación industrial. A diferencia de los sistemas de control por relés, un PLC automatiza un proceso. Los PLC son ordenadores adaptados para sobrevivir a las duras condiciones del entorno industrial.
PLIEntrada con retención de pulsos
POUUna unidad de organización de programa incluye una declaración de variable en el código fuente y el conjunto de instrucciones correspondiente. Las POU facilitan la reutilización modular de programas de software, funciones y bloques de funciones. Una vez declaradas, cada una de las POU están disponibles para los otros. La programación de SoMachine requiere la utilización de POU.
PTOLas salidas de tren de pulsos se utilizan para controlar por ejemplo los motores paso a paso en un bucle abierto.
PWMLa modulación de ancho de pulsos se utiliza para los procesos de regulación (por ejemplo, actuadores para el control de temperatura) en los que una señal de pulso se modula en su longitud. Para este tipo de señales se utilizan salidas de transistores.
R
RTCLa opción de reloj en tiempo real conserva la hora durante un período de tiempo determinado, aunque el controlador no reciba alimentación.
90 EIO0000000759 06/2011
Glosario
S
salida reflejaEn modo de conteo, el valor actual del contador de alta velocidad se compara con sus umbrales configurados para determinar el estado de estas salidas especializadas.
SFCUn programa escrito en el lenguaje de gráficos de funciones secuenciales puede utilizarse para procesos que se pueden dividir en pasos. SFC está formado por pasos con acciones asociadas, transiciones con una condición lógica asociada y enlaces dirigidos entre pasos y transiciones. (La norma SFC está definida en IEC 848. Es conforme con IEC 61131-3.)
T
Texto estructuradoUn programa escrito en el lenguaje de texto estructurado (ST) incluye instrucciones complejas e intercaladas (por ejemplo bucles de repetición, ejecuciones condicionales o funciones). ST está conforme con IEC 61131-3.
V
variable de sistemaUna estructura de variables de sistema proporciona datos del controlador e información de diagnóstico, y permite enviar comandos al controlador.
variable no ubicadaUna variable no ubicada no tiene una dirección. (Consulte variable ubicada.)
variable ubicadaUna variable ubicada tiene una dirección. (Consulte variable no ubicada.)
EIO0000000759 06/2011 91
Glosario
92 EIO0000000759 06/2011
Modicon M238 Logic Controller
Índice
EIO0000000759 06/2011
CBA
ÍndiceBBOOT_PROJECT_STATUS
Tipos de datos, 67
DDAY_OF_WEEK
Tipos de datos, 72
FFIRMWARE_VERSION
Tipos de datos, 66Funciones
Cómo usar una función o un bloque de funciones en lenguaje IL, 79Cómo utilizar una función o un bloque de funciones en lenguaje ST, 83Diferencias entre una función y un blo-
EIO0000000759 06/2011
que de funciones, 78GetBatteryLevel, 30GetBootProjectStatus, 31GetEventsNumber, 32GetFirmwareVersion, 33GetHardwareVersion, 35GetLastStopCause, 36GetLastStopTime, 37GetLocalIOStatus, 38GetPlcFault, 40GetRightBusStatus, 41GetSerialNumber, 46GetShortCutStatus, 47InhibitBatLowLed, 53IsFirstMastColdCycle, 48IsFirstMastCycle, 49IsFirstMastWarmCycle, 51ResetEventsNumber, 54SetRTCDrift, 55
GGetBatteryLevel
Funciones, 30GetBootProjectStatus
Funciones, 31GetEventsNumber
Funciones, 32GetFirmwareVersion
Funciones, 33GetHardwareVersion
Funciones, 35
93
Índice
GetLastStopCauseFunciones, 36
GetLastStopTimeFunciones, 37
GetLocalIOStatusFunciones, 38
GetPlcFaultFunciones, 40
GetRightBusStatusFunciones, 41
GetSerialNumberFunciones, 46
GetShortCutStatusFunciones, 47
HHOUR
Tipos de datos, 73
IInhibitBatLowLed
Funciones, 53IsFirstMastColdCycle
Funciones, 48IsFirstMastCycle
Funciones, 49IsFirstMastWarmCycle
Funciones, 51
LLOCAL_IO_GEN_STATUS
Tipos de datos, 70LOCAL_IO_GET_STATUS
Tipos de datos, 69
MMINUTE
Tipos de datos, 74
94
PPLC_R
Variable del sistema, 20PLC_R_APPLICATION_ERROR
Tipos de datos, 60PLC_R_BOOT_PROJECT_STATUS
Tipos de datos, 61PLC_R_IO_STATUS
Tipos de datos, 62PLC_R_STATUS
Tipos de datos, 59PLC_R_STOP_CAUSE
Tipos de datos, 63PLC_W
Variable del sistema, 22PLC_W_COMMAND
Tipos de datos, 64
RResetEventsNumber
Funciones, 54RIGHTBUS_GET_STATUS
Tipos de datos, 71
SSERIAL_R
Variable del sistema, 24SERIAL_W
Variable del sistema, 25SetRTCDrift
Funciones, 55STOP_WHY
Tipos de datos, 68
EIO0000000759 06/2011
Índice
TTipos de datos
BOOT_PROJECT_STATUS, 67DAY_OF_WEEK, 72FIRMWARE_VERSION, 66HOUR, 73LOCAL_IO_GEN_STATUS, 70LOCAL_IO_GET_STATUS, 69MINUTE, 74PLC_R_APPLICATION_ERROR, 60PLC_R_BOOT_PROJECT_STATUS, 61PLC_R_IO_STATUS, 62PLC_R_STATUS, 59PLC_R_STOP_CAUSE, 63PLC_W_COMMAND, 64RIGHTBUS_GET_STATUS, 71STOP_WHY, 68
VVariable del sistema
PLC_R, 20PLC_W, 22SERIAL_R, 24SERIAL_W, 25
variables de sistemadefinición, 15utilización, 17
EIO0000000759 06/2011
95Índice
96 EIO0000000759 06/2011