SoMachine EIO0000000671 06/2011 SoMachine Obtención y ajuste del reloj de tiempo real Guía de la biblioteca SysTime EIO0000000671.03 06/2011 www.schneider-electric.com 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 EIO0000000671 06/2011 Tabla de materias Información de seguridad . . . . . . . . . . . . . . . . . . . . . . . . Acerca de este libro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Capítulo 1 Conceptos básicos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Adición de la biblioteca SysTime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Obtención de la fecha y la hora del controlador . . . . . . . . . . . . . . . . . . . . Ajuste de la fecha y la hora del controlador . . . . . . . . . . . . . . . . . . . . . . . Capítulo 2 Descripciones de las funciones . . . . . . . . . . . . . . . . . . . 2.1 Funciones de contador de tiempo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SysTimeGetMs: Devuelve el tiempo desde el encendido en milisegundos SysTimeGetUs: Devuelve el tiempo desde el encendido en microsegundos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2 Funciones estándar del Real Time Clock . . . . . . . . . . . . . . . . . . . . . . . . . SysTimeRtcGet: Devuelve el Real Time Clock del controlador actual . . . SysTimeRtcSet: Establece el Real Time Clock del controlador . . . . . . . . SysTimeRtcConvertUtcToDate: Convierte la marca de tiempo en fecha y hora . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SysTimeRtcConvertDateToUtc: Convierte la fecha y la hora en marca de tiempo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Capítulo 3 SYSTIMEDATE: tipo de fecha y hora . . . . . . . . . . . . . . . SYSTIMEDATE: Tipo de fecha y hora . . . . . . . . . . . . . . . . . . . . . . . . . . . Capítulo 4 Ejemplo de implementación . . . . . . . . . . . . . . . . . . . . . . 5 7 11 12 13 14 15 16 17 18 19 20 21 22 23 25 25 27 Obtención de la fecha y la hora del controlador . . . . . . . . . . . . . . . . . . . . Ajuste de la fecha y la hora del controlador . . . . . . . . . . . . . . . . . . . . . . . Ejemplo de proyecto de obtención/ajuste de SoMachine del RTC . . . . . . 28 29 31 Apéndices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 Apéndice A Representación de funciones y de bloques de funciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 Diferencias entre una función y un bloque de funciones. . . . . . . . . . . . . . Cómo usar una función o un bloque de funciones en lenguaje IL . . . . . . Cómo utilizar una función o un bloque de funciones en lenguaje ST . . . . 36 37 40 Glosario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Índice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 53 EIO0000000671 06/2011 3 4 EIO0000000671 06/2011 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. EIO0000000671 06/2011 5 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. 6 EIO0000000671 06/2011 Acerca de este libro Presentación Objeto En esta documentación se describen las funciones de SysTime utilizadas para obtener y ajustar el reloj de tiempo real, compatibles con todos los controladores de SoMachine. La gestión del reloj de tiempo real se basa en las funciones disponibles en la biblioteca SysTime de SoMachine. En la tabla siguiente se muestra la lista de funciones de la biblioteca SysTime y los controladores compatibles con ellas: Nombre de la función EIO0000000671 06/2011 M238 M258 LMC058 XBT-GC XBT-GK XBT-GT ATV-IMC SysTimeGetMs x x x x SysTimeGetNs - x x x SysTimeGetUs x x x x SysTimeRtcConvertDateToHighRes - x x - SysTimeRtcConvertHighResToDate - x x - SysTimeRtcHighResGet - x x - SysTimeRtcHighResSet - x x - SysTimeRtcControl - x x x SysTimeRtcConvertDateToUtc x x x x SysTimeRtcConvertLocalToUtc - x x x SysTimeRtcConvertUtcToDate x x x x SysTimeRtcConvertUtcToLocal - x x x SysTimeRtcGet x x x x 7 Nombre de la función M238 M258 LMC058 XBT-GC XBT-GK XBT-GT ATV-IMC SysTimeRtcGetTimezone - x x - SysTimeRtcSet x x x x SysTimeRtcSetTimezone - x x - Leyenda: x Admitido - No admitido Para obtener información sobre las funciones no descritas en este documento, consulte el documento SysTime_V3x_E. (Consulte Documentos relacionados) Campo de aplicación Este documento se ha actualizado con la publicación de SoMachine V3.0. Documentos relacionados Nombre del documento Ubicación/Número de referencia SysTime_V3x_E 8 En su instalación local de SoMachine De manera predeterminada: Versión inglesa Archivos de programa\Schneider Electric\SoMachine\CoDeSys\Documentation\en\ Versión alemana Archivos de programa\Schneider Electric\SoMachine\CoDeSys\Documentation\de\ EIO0000000671 06/2011 Información relativa al producto ADVERTENCIA PÉRDIDA DE CONTROL z z z z z 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. 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 INESPERADO DEL EQUIPO z z 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. EIO0000000671 06/2011 9 Comentarios del usuario Envíe sus comentarios a la dirección electrónica [email protected]. 10 EIO0000000671 06/2011 SoMachine Conceptos básicos EIO0000000671 06/2011 Conceptos básicos 1 Descripción general En este capítulo se proporciona información básica para empezar a usar las funciones de SysTime. Contenido de este capítulo Este capítulo contiene los siguiente apartados: Apartado EIO0000000671 06/2011 Página Adición de la biblioteca SysTime 12 Obtención de la fecha y la hora del controlador 13 Ajuste de la fecha y la hora del controlador 14 11 Conceptos básicos Adición de la biblioteca SysTime Procedimiento Para tener acceso a las funciones de SysTime es necesario añadir manualmente la biblioteca: Paso 12 Acción 1 Haga doble clic en el nodo Administrador de bibliotecas del nodo Aplicación del controlador en la ventana Dispositivos. 2 Haga clic en Agregar biblioteca. Resultado: se abre el cuadro de diálogo Agregar biblioteca. 3 Busque Sistema →SysLibs, visible cuando se establece el filtro Compañía en Sistema o Toda la compañía Resultado: aparece la lista de bibliotecas del sistema. 4 Seleccione la biblioteca SysTime y pulse Aceptar Resultado: se añade la librería a la lista Administrador de bibliotecas. EIO0000000671 06/2011 Conceptos básicos Obtención de la fecha y la hora del controlador Descripción general Para obtener la fecha y la hora del controlador en formato SYSTIMEDATE es necesario utilizar dos funciones distintas; SysTimeRtcGet (véase página 20) y SysTimeRtcConvertUtcToDate (véase página 22). SysTimeRtcGet: esta función devuelve el Real Time Clock (RTC del controlador) en un valor de marca de tiempo (número de segundos desde el 1 de enero de 1970 a las 00:00:00). SysTimeRtcConvertUtcToDate: esta función convierte el valor Timestamp en datos del tipo de estructura SYSTIMEDATE que indican los valores de año, mes, día, hora, minuto y segundo. Esquema de principio En este documento se ofrece un ejemplo de implementación de este principio. (véase página 28) Gestión de zonas horarias Algunos controladores (véase página 7) son compatibles con la información de las zonas horarias (cambio de horario de verano y cambio de Universal Time Coordinated (UTC)): z cuando esta información no se utiliza o se establece en 0, (valor predeterminado), el valor de marca de tiempo devuelto por la función SysTimeRtcGet es = RTC. z cuando la información de la zona horaria no es 0, la función devuelve UTC = RTC + cambio horario. El cambio horario se puede leer o establecer con las funciones de gestión de zonas horarias (SysTimeRtcGetTimezone, SysTimeRtcSetTimezone) La marca de tiempo de UTC se puede convertir a la marca de tiempo local mediante la función SysTimeConvertUtcToLocal. NOTA: Estas funciones no se describen en este documento; consulte el documento SysTime_V3x_E para obtener más información. EIO0000000671 06/2011 13 Conceptos básicos Ajuste de la fecha y la hora del controlador Descripción general Para establecer la fecha y la hora del controlador en formato SYSTIMEDATE es necesario utilizar dos funciones distintas; SysTimeRtcConvertDateToUtc (véase página 23) y SysTimeRtcSet (véase página 21): SysTimeRtcConvertDateToUtc: Esta función convierte una entrada del tipo SYSTIMEDATE en un valor de marca de tiempo (número de segundos desde el 1 de enero de 1970 a las 00:00:00). SysTimeRtcSet: esta función establece el RTC del controlador con la entrada de la marca de tiempo. NOTA: Consulte SetRTCDrift (consulte la Guía de la biblioteca PLCSystem de su controlador para ver si se admite la función SetRTCDrift y para obtener más información sobre esta función) para obtener una corrección automática semanal del reloj de tiempo real, como una alternativa a utilizar la función SysTimeRtcSet. Esquema de principio En este documento se ofrece un ejemplo de implementación de este principio. (véase página 29) 14 EIO0000000671 06/2011 SoMachine Descripción de la función EIO0000000671 06/2011 Descripciones de las funciones 2 Descripción general En este capítulo se describen las funciones de SysTime utilizadas para obtener y ajustar el reloj de tiempo real del controlador. Contenido de este capítulo Este capítulo contiene las siguientes secciones: Sección EIO0000000671 06/2011 Apartado Página 2.1 Funciones de contador de tiempo 16 2.2 Funciones estándar del Real Time Clock 19 15 Descripción de la función 2.1 Funciones de contador de tiempo Descripción general En esta sección se describen las funciones para obtener contadores de tiempo (milisegundos y microsegundos). Contenido de esta sección Esta sección contiene los siguientes apartados: Apartado 16 Página SysTimeGetMs: Devuelve el tiempo desde el encendido en milisegundos 17 SysTimeGetUs: Devuelve el tiempo desde el encendido en microsegundos 18 EIO0000000671 06/2011 Descripción de la función SysTimeGetMs: Devuelve el tiempo desde el encendido en milisegundos Descripción de la función Esta función devuelve el tiempo transcurrido desde el encendido en milisegundos (ms). Representación gráfica Descripción de variables de E/S En la tabla siguiente se describen las variables de salida: Salida Tipo SysTimeGetMs UDINT EIO0000000671 06/2011 Descripción Tiempo transcurrido desde el encendido en milisegundos. 17 Descripción de la función SysTimeGetUs: Devuelve el tiempo desde el encendido en microsegundos Descripción de la función Esta función devuelve el tiempo transcurrido desde el encendido en microsegundos (µs). Representación gráfica Descripción de variables de E/S En la tabla siguiente se describen las variables de salida: Salida Tipo Descripción SysTimeGetUs UDINT Diagnóstico de la operación de la función: 0 = Ningún error detectado 2 = Error detectado en la variable de entrada; el valor devuelto (pUsTime) no es válido. En la tabla siguiente, se describen las variables de entrada/salida: Entrada/Salida Tipo Descripción pUsTime SYSTIME Tiempo transcurrido desde el encendido en microsegundos. NOTA: El tipo SYSTIME es ULINT. 18 EIO0000000671 06/2011 Descripción de la función 2.2 Funciones estándar del Real Time Clock Descripción general En esta sección se describen las funciones estándar de gestión del RTC. Contenido de esta sección Esta sección contiene los siguientes apartados: Apartado SysTimeRtcGet: Devuelve el Real Time Clock del controlador actual EIO0000000671 06/2011 Página 20 SysTimeRtcSet: Establece el Real Time Clock del controlador 21 SysTimeRtcConvertUtcToDate: Convierte la marca de tiempo en fecha y hora 22 SysTimeRtcConvertDateToUtc: Convierte la fecha y la hora en marca de tiempo 23 19 Descripción de la función SysTimeRtcGet: Devuelve el Real Time Clock del controlador actual Descripción de la función Esta función devuelve el Real Time Clock (RTC) del controlador como un valor de marca de tiempo de Universal Time Coordinated (UTC) (número de segundos desde el 1 de enero de 1970 a las 00:00:00). Representación gráfica Descripción de variables de E/S En la tabla siguiente se describen las variables de salida: Salida Tipo Descripción SysTimeRtcGet DWORD RTC del controlador como valor de marca de tiempo UTC (número de segundos desde el 1 de enero de 1970 a las 00:00:00) En la tabla siguiente, se describen las variables de entrada/salida: Entrada/Salida Tipo Descripción pResult UDINT Diagnóstico de la operación de la función: 0 = Ningún error detectado 1 = Error de operación interna detectado; el valor devuelto (SysTimeRtcGet) no es válido (0). NOTA: Nota: UTC = RTC + cambio horario (véase página 13) NOTA: En este documento se facilita un ejemplo de utilización de esta función. (véase página 28) 20 EIO0000000671 06/2011 Descripción de la función SysTimeRtcSet: Establece el Real Time Clock del controlador Descripción de la función Esta función establece el Real Time Clock (RTC) del controlador mediante un valor de marca de tiempo proporcionado (número de segundos desde el 1 de enero de 1970 a las 00:00:00). Representación gráfica Descripción de variables de E/S En la tabla siguiente se describen las variables de entrada: Entrada Tipo Descripción ulTimestamp DWORD Valor de marca de tiempo (número de segundos desde el 1 de enero de 1970 a las 00:00:00) En la tabla siguiente se describen las variables de salida: Salida Tipo Descripción SysTimeRtcSet UDINT Diagnóstico de la operación de la función: 0 = Ningún error detectado 1 = Error de operación interna detectado NOTA: En este documento se facilita un ejemplo de utilización de esta función. (véase página 29) EIO0000000671 06/2011 21 Descripción de la función SysTimeRtcConvertUtcToDate: Convierte la marca de tiempo en fecha y hora Descripción de la función Esta función convierte un valor de marca de tiempo (número de segundos desde el 1 de enero de 1970 a las 00:00:00) en la fecha y hora correspondiente en formato SYSTIMEDATE (véase página 25). Representación gráfica Descripción de variables de E/S En la tabla siguiente se describen las variables de entrada: Entrada Tipo Descripción dwTimestampUtc DWORD Marca de tiempo que convertir (número de segundos desde el 1 de enero de 1970 a las 00:00:00) En la tabla siguiente se describen las variables de salida: Salida Tipo Descripción SysTimeRtcConvertUtcToDate UDINT Diagnóstico de la operación de la función: 0 = Ningún error detectado 2 = Error detectado en la variable de entrada; el valor devuelto (pDate) no es válido. En la tabla siguiente, se describen las variables de entrada/salida: Entrada/Salida Tipo Descripción pDate Fecha y hora calculadas a partir del valor de entrada SYSTIMEDATE (véase página 25) NOTA: En este documento se facilita un ejemplo de utilización de esta función. (véase página 28) 22 EIO0000000671 06/2011 Descripción de la función SysTimeRtcConvertDateToUtc: Convierte la fecha y la hora en marca de tiempo Descripción de la función Esta función convierte una fecha y una hora expresada en formato SYSTIMEDATE (véase página 25) en el valor de marca de tiempo correspondiente (número de segundos desde el 1 de enero de 1970 a las 00:00:00). Representación gráfica Descripción de variables de E/S En la tabla siguiente se describen las variables de salida: Salida Tipo Descripción SysTimeRtcConvertDateToUtc UDINT Diagnóstico de la operación de la función: 0 = Ningún error detectado 2 = Error detectado en la variable de entrada; el valor devuelto (pdwTimestampUtc) no es válido. En la tabla siguiente, se describen las variables de entrada/salida: Entrada/Salida Tipo Descripción pDate SYSTIMEDATE (véase página 25) Fecha y hora que convertir pdwTimestampUtc DWORD Marca de tiempo calculada a partir del valor de fecha y hora indicado = número de segundos desde el 1 de enero de 1970 a las 00:00:00 o FFFF FFFF hexadecimal en caso de una conversión incorrecta. NOTA: En este documento se facilita un ejemplo de utilización de esta función. (véase página 29) EIO0000000671 06/2011 23 Descripción de la función 24 EIO0000000671 06/2011 SoMachine SYSTIMEDATE: tipo de fecha y hora EIO0000000671 06/2011 SYSTIMEDATE: tipo de fecha y hora 3 SYSTIMEDATE: Tipo de fecha y hora Descripción del tipo de datos Esta estructura contiene información detallada sobre la fecha y la hora presentada en un formato legible (en contraste con la marca de tiempo). EIO0000000671 06/2011 Nombre Tipo Descripción wYear UINT Año wMonth UINT Mes, valores del 1 al 12 (enero=1, diciembre=12) wDay UINT Día del mes, valores del 1 al 31 wHour UINT Horas del día actual, valores del 0 al 23 wMinute UINT Minutos de la hora, valores del 0 al 59 wSecond UINT Segundos del minuto actual, valores del 0 al 59 wMilliseconds UINT Milisegundos del segundo actual, valores del 0 al 999 wDayOfWeek UINT Día de la semana, valores del 1 al 7 (lunes=1, domingo=7) wYday UINT Día del año, valores del 1 al 366 (1 de enero=1, 31 de diciembre=365, o 366 en año bisiesto) 25 SYSTIMEDATE: tipo de fecha y hora 26 EIO0000000671 06/2011 SoMachine Ejemplo de implementación EIO0000000671 06/2011 Ejemplo de implementación 4 Descripción general En este capítulo se proporcionan ejemplos de implementación que muestran cómo obtener o ajustar el Real Time Clock. Contenido de este capítulo Este capítulo contiene los siguiente apartados: Apartado Obtención de la fecha y la hora del controlador EIO0000000671 06/2011 Página 28 Ajuste de la fecha y la hora del controlador 29 Ejemplo de proyecto de obtención/ajuste de SoMachine del RTC 31 27 Ejemplo de implementación Obtención de la fecha y la hora del controlador Descripción general Este ejemplo de programa se puede utilizar para obtener la fecha y la hora del controlador. Declaración de variables VAR // Fecha y hora actual del controlador Ctrl_DateTime: SYSTIMEDATE; CtrlYear: UINT; CtrlMonth: UINT; CtrlDay: UINT; CtrlHour: UINT; CtrlMinute: UINT; CtrlSecond: UINT; CtrlMSecond: UINT; CtrlDayOfWeek: UINT; CtrlYday: UINT; // Diagrama de funcionamiento de SysTimeRtcGet GetTimeResult: UDINT; // Diagrama de funcionamiento de SysTimeRtcConvertUtcToDate UTCtoDate_diag: UDINT; END_VAR Programa POU 28 EIO0000000671 06/2011 Ejemplo de implementación Ajuste de la fecha y la hora del controlador Descripción general Este ejemplo de programa se puede utilizar para establecer el reloj de tiempo real del controlador con una fecha y una hora del usuario. Declaración de variables VAR // Fecha y hora para establecer el RTC del controlador MyDateTime: SYSTIMEDATE; MyYear: UINT; MyMonth: UINT; MyDay: UINT; MyHour: UINT; MyMinute: UINT; MySecond: UINT; // Diagrama de funcionamiento de SysTimeRtcConvertDateToUtc DatetoUTC_diag: UDINT; // Fecha y hora en formato de marca de tiempo My_UTC: DWORD; // Comando de ajuste de RTC del controlador Set_DateTime: BOOL; // Diagrama de funcionamiento de SysTimeRtcSet RtcSet_diag: UDINT; END_VAR EIO0000000671 06/2011 29 Ejemplo de implementación Programa POU 30 EIO0000000671 06/2011 Ejemplo de implementación Ejemplo de proyecto de obtención/ajuste de SoMachine del RTC Descripción general Con SoMachine se proporciona un ejemplo de proyecto de obtención/establecimiento del RTC. Una vez se ha iniciado SoMachine: En la vista HOME (Inicio), haga clic en Crear nueva máquina →Empezar con un ejemplo →RTC_HMI.project Descripción de ejemplo de proyecto de obtención/ajuste de SoMachine del RTC El ejemplo facilitado lee de forma continua el valor del RTC del controlador y lo imprime en una HMI. Con la HMI se puede indicar una nueva hora y fecha, y si se hace clic en el botón ENVIAR a PLC se fijará el RTC del controlador con la nueva fecha y hora. Vista previa de la HMI: EIO0000000671 06/2011 31 Ejemplo de implementación 32 EIO0000000671 06/2011 SoMachine EIO0000000671 06/2011 Apéndices EIO0000000671 06/2011 33 34 EIO0000000671 06/2011 SoMachine Representación de funciones y de bloques de funciones EIO0000000671 06/2011 Representación de funciones y de bloques de funciones A 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 EIO0000000671 06/2011 Página Diferencias entre una función y un bloque de funciones 36 Cómo usar una función o un bloque de funciones en lenguaje IL 37 Cómo utilizar una función o un bloque de funciones en lenguaje ST 40 35 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 inmediato z se le llama directamente por su nombre (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. z 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 salidas z siempre se le llama a través de una Instancia (copia del bloque de funciones con nombre y variables dedicados) z cada Instancia tiene un estado persistente (salidas y variables internas) de una llamada a la otra. z Ejemplos: temporizadores, contadores En el ejemplo siguiente, Timer_ON es una instancia del bloque de funciones TON: 36 EIO0000000671 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: 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: z escriba el nombre de la función en la columna de operadores (campo izquierdo); o z use 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. 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: Función Representación gráfica sin parámetros de entrada: IsFirstMastCycle con parámetros de entrada: SetRTCDrift EIO0000000671 06/2011 37 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 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: 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. 38 EIO0000000671 06/2011 Representación de funciones y de bloques de funciones Paso 3 Acción Se llama a los bloques de funciones utilizando una instrucción CAL: z 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). 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 CAL situado a la derecha, reemplace ??? por el nombre de la instancia. 5 Reemplace otro ??? por una variable apropiada o un valor inmediato. Para ilustrar el procedimiento, consulte este ejemplo con el bloque de funciones TON presentado gráficamente a continuación: Bloque de funciones Representación gráfica TON 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 EIO0000000671 06/2011 39 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: 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); 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); 40 EIO0000000671 06/2011 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: 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: 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: Bloque de funciones Representación gráfica TON En la tabla siguiente 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 EIO0000000671 06/2011 41 Representación de funciones y de bloques de funciones 42 EIO0000000671 06/2011 SoMachine Glosario EIO0000000671 06/2011 Glosario 0-9 % Prefijo que identifica las direcciones de memoria interna en el controlador utilizadas para almacenar el valor de las variables, las constantes y las E/S, entre otras, del programa. A aplicación Una aplicación SoMachine se compone de un programa, datos de configuración, símbolos y documentación. ASCII American Standard Code for Information Interchange (código estándar americano para el intercambio de información) es un protocolo de comunicaciones que representa caracteres alfanuméricos, incluidos números, letras y algunos caracteres gráficos y de control. ASIC Circuito integrado específico de aplicaciones. Circuito integrado diseñado especialmente para una aplicación. Este circuito integrado puede ser analógico, digital o ambos. EIO0000000671 06/2011 43 Glosario B bloque de funciones Un bloque de funciones: z es una POU (Unidad de organización de programa) que devuelve una o más salidas. z Siempre se le llama 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) desde una llamada a la otra. Ejemplos: temporizadores, contadores bus de expansión Los módulos de E/S de expansión se conectan con el Modicon Logic Controller utilizando el bus de expansión. C CANopen CANopen es una especificación de protocolo de comunicaciones y de perfil de dispositivos utilizado por los Modicon Logic Controllers. Configuración de Post Archivos que contienen parámetros dependientes de la máquina: z nombre de la máquina z nombre de dispositivo o dirección IP z dirección SL Modbus z tabla de enrutamiento controlador Para automatizar procesos industriales, se utiliza un controlador, un PLC (Programmable Logic Controller) u otro controlador programable. 44 EIO0000000671 06/2011 Glosario E EEPROM La memoria de sólo lectura programable y borrable de forma eléctrica es un tipo de memoria no volátil utilizada para almacenar datos que deben guardarse cuando se quita la alimentación eléctrica. entrada con retención La aplicación captura y graba los pulsos entrantes para un posterior examen. explorar Un controlador explora un programa y realiza básicamente tres funciones principales: En primer lugar, lee las entradas y sitúa estos valores en la memoria. A continuación, ejecuta una instrucción del programa de aplicación cada vez y almacena los resultados en memoria. Finalmente, utiliza los resultados para actualizar las salidas. F FG Generador de frecuencias firmware El firmware es el programa incorporado en el Modicon Logic Controller. FreqGen Consulte FG. 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 (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 las expresiones. Ejemplos: operadores booleanos (AND), cálculos, conversión (BYTE_TO_INT) EIO0000000671 06/2011 45 Glosario G GRAFCET GRAFCET permite representar gráficamente y de forma estructurada el funcionamiento de una operación secuencial. Método analítico que divide cualquier sistema de control secuencial en una serie de pasos a los que se asocian acciones, transiciones y condiciones. GVL Lista de variables globales en SoMachine que gestiona variables globales disponibles en todas las POU de la aplicación H Hora del sistema Hora que indica un dispositivo según un reloj interno HSC Contador de alta velocidad I IEC 61131-3 z z z 46 IEC, siglas del inglés International Electrotechnical Commission (Comisión electrotécnica internacional), es una organización de normas internacionales sin ánimo de lucro y no gubernamental que prepara y publica normas internacionales para todas las tecnologías eléctricas, electrónicas y relacionadas. IEC 61131 es una norma para PLC (Programmable Logic Controller). IEC 61131-3 se ocupa de lenguajes de programación de PLC y define dos normas de lenguajes de programación gráficos y dos textuales: z Diagrama de contactos (LD), gráfico z Diagrama de bloques de funciones (FBD), gráfico z Texto estructurado (ST), textual z Lista de instrucciones (IL), textual z Los gráficos de función secuencial (SFC) disponen de elementos para organizar programas para el procesamiento de control secuencial y paralelo. EIO0000000671 06/2011 Glosario IP 20 (Protección contra entrada) La clasificación de protección ofrecida por una carcasa se muestra con las letras IP y dos dígitos. El primer dígito indica dos factores: la protección para las personas y para el equipo. El segundo dígito, la protección contra el agua. Para obtener más información, consulte la norma NF EN 60.529 L lenguaje de diagrama de contactos (LD) Un programa escrito en lenguaje de contactos (Ladder) está compuesto por 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. Conforme con IEC 61131-3. lenguaje de diagramas 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. lenguaje de gráfica de función continua CFC (gráfica de función continua), como ampliación del estándar IEC61131-3, es un lenguaje de programación de gráficos basado en el lenguaje FBD (diagrama de bloques de funciones). Sin embargo, no se utiliza ninguna red, sino un posicionamiento libre de elementos gráficos, lo cual permite bucles de realimentación. lenguaje de gráfica de función secuencial (SFC) Un programa escrito en el gráfico 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. Conforme con IEC 61131-3. lenguaje de la lista de instrucciones (IL) Un 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 está compuesta por un número de línea, un código de instrucción y un operando. Conforme con IEC 61131-3. EIO0000000671 06/2011 47 Glosario lenguaje de texto estructurado (ST) Un programa escrito en texto estructurado está formado por instrucciones complejas e intercaladas como: bucles de repetición, ejecuciones condicionales o funciones. Conforme con IEC 61131-3. M maestro/esclavo Maestro/esclavo es un modelo de protocolo de comunicaciones en el que un dispositivo o proceso tiene control unidireccional sobre uno o más dispositivos distintos. MAST Una tarea maestra (MAST) es 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. Modbus Protocolo de comunicaciones que permite la comunicación entre varios dispositivos conectados a la misma red. módulos de E/S de expansión Hay disponibles módulos de E/S de expansión opcionales para añadir puntos de E/S a un Modicon Logic Controller. No todos los modelos del controlador permiten la expansión. N NEMA La 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 (códigos IP) de las carcasas. 48 EIO0000000671 06/2011 Glosario nodo Dispositivo al que se puede dirigir en una red de comunicaciones. O OS Firmware que puede cargar/descargar el usuario P PC Ordenador personal. PLCopen El estándar PLCopen ofrece eficacia, flexibilidad e independencia del fabricante para el sector de la automatización y el control mediante la estandarización de herramientas, bibliotecas y enfoques modulares de programación de software. POU Una 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 declarados, cada una de las POU están disponibles para los otros. La programación de SoMachine requiere la utilización de POU. protocolo Un protocolo es una convención o una norma que controla o habilita la conexión, la comunicación y la transferencia de datos entre dos puntos finales informáticos. PTO Salida de tren de pulsos PWM Modulación de ancho de pulsos EIO0000000671 06/2011 49 Glosario R red Dispositivos interconectados que comparten una ruta de datos común y un protocolo de comunicación. reloj de tiempo real (del inglés, Real-Time Clock) Opción que conserva la hora durante una cantidad de tiempo determinada, aunque el controlador no reciba alimentación. RFID La identificación por radiofrecuencias es un método de identificación automática que se basa en almacenar y recuperar datos de forma remota utilizando los dispositivos llamados etiquetas o transpondedores RFID. RPDO Recepción de objetos de datos de proceso RTC Consulte "reloj de tiempo real". RUN Comando que hace que el autómata ejecute un programa de aplicación. S salida de umbral Bobinas controladas directamente por HSC con arreglo a los ajustes establecidos durante la configuración. salida refleja En modalidad HSC, el valor actual del contador HSC se compara con sus umbrales configurados para determinar el estado de estas salidas especializadas. 50 EIO0000000671 06/2011 Glosario símbolo un símbolo es una variable de controlador elemental publicada para los terminales HMI SMS El servicio de mensajes cortos es un servicio de comunicación estándar para teléfonos (u otros dispositivos) que envían mensajes breves de texto con el sistema de comunicaciones móviles GSM. SoMachine SoMachine es una completa herramienta de software de sistemas de desarrollo de controlador para configurar y programar el Modicon Logic Controller y dispositivos conformes 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 entradas y salidas se actualizarán en consecuencia. TPDO Transmisión de objetos de datos de proceso U UTC Hora universal coordinada EIO0000000671 06/2011 51 Glosario V Variable Unidad de memoria que puede enviarse y modificarse mediante un programa. variable de sistema Estructura no ubicada que proporciona información sobre los datos de controlador y diagnóstico, y que permite enviar comandos al controlador. variable ubicada Una variable ubicada tiene una dirección. Una variable no ubicada no la tiene. 52 EIO0000000671 06/2011 SoMachine Índice EIO0000000671 06/2011 B AC Índice F T Funciones Cómo usar una función o un bloque de funciones en lenguaje IL, 37 Cómo utilizar una función o un bloque de funciones en lenguaje ST, 40 Diferencias entre una función y un bloque de funciones, 36 SysTimeGetMs, 17 SysTimeGetUs, 18 SysTimeRtcConvertDateToUtc, 23 SysTimeRtcConvertUtcToDate, 22 SysTimeRtcGet, 20 SysTimeRtcSet, 21 Tipos de datos SYSTIMEDATE, 25 S SYSTIMEDATE Tipos de datos, 25 SysTimeGetMs Funciones, 17 SysTimeGetUs Funciones, 18 SysTimeRtcConvertDateToUtc Funciones, 23 SysTimeRtcConvertUtcToDate Funciones, 22 SysTimeRtcGet Funciones, 20 SysTimeRtcSet Funciones, 21 EIO0000000671 06/2011 53 Índice 54 EIO0000000671 06/2011