Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% encontró este documento útil (0 votos)
47 vistas38 páginas

Funcionesdatalogging

Descargar como pdf o txt
Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1/ 38

SoMachine

EIO0000000488 04/2014

SoMachine
Funciones Data Logging
Guía de la biblioteca DataLogging
04/2014
EIO0000000488.03

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.
© 2014 Schneider Electric. Reservados todos los derechos.

2 EIO0000000488 04/2014
Tabla de materias

Información de seguridad . . . . . . . . . . . . . . . . . . . . . . . 5
Acerca de este libro . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Capítulo 1 registro de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Introducción al registro de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Configuración del registro de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Gestión de archivos de registro de datos . . . . . . . . . . . . . . . . . . . . . . 15
Información adicional de archivos de registro de datos . . . . . . . . . . . 19
Cómo añadir bloques de funciones LogRecord y Dump . . . . . . . . . . . 20
Compilación de una cadena WSTRING amplia . . . . . . . . . . . . . . . . . 21
Apéndices ......................................... 23
Apéndice A Representación de funciones y de bloques de
funciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Diferencias entre una función y un bloque de funciones. . . . . . . . . . . 26
Cómo utilizar una función o un bloque de funciones en lenguaje IL . . 27
Cómo utilizar una función o un bloque de funciones en lenguaje ST . 31
Glosario ......................................... 35
Índice ......................................... 37

EIO0000000488 04/2014 3
4 EIO0000000488 04/2014
Información de seguridad

Información importante

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

EIO0000000488 04/2014 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 EIO0000000488 04/2014
Acerca de este libro

Presentación

Objeto
En esta guía se describe la función de registro de datos para los controladores que soportan
operaciones de gestión de archivos.

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

Información relativa al producto

ADVERTENCIA
PÉRDIDA DE CONTROL
 El diseñador del esquema de control debe tener en cuenta los posibles modalidades de fallo
de rutas de control y, para ciertas funciones de control críticas, proporcionar los medios para
lograr un estado seguro durante y después de un fallo de ruta. Funciones de control críticas
son, por ejemplo, una parada de emergencia y una parada de sobrerrecorrido, un corte de
alimentación y un reinicio.
 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.
El incumplimiento de estas instrucciones puede causar la muerte, lesiones serias o daño
al equipo.

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

EIO0000000488 04/2014 7
8 EIO0000000488 04/2014
SoMachine
Registro de datos
EIO0000000488 04/2014

Capítulo 1
registro de datos

registro de datos

Introducción
En este documento se describe la función de registro de datos para los controladores que
soportan operaciones de gestión de archivos.
Un registro de datos es un archivo de texto de cadenas definidas por el usuario que contienen
información de datos de aplicación para un proceso o una máquina. El archivo de registro de datos
se almacena en el controlador. Puede cargar el archivo y abrirlo con un editor de texto estándar.
La información incluye valores de variables incrustados y su texto asociado. Otras opciones
adicionales son las marcas de fecha y hora.

Contenido de este capítulo


Este capítulo contiene los siguiente apartados:
Apartado Página
Introducción al registro de datos 10
Configuración del registro de datos 12
Gestión de archivos de registro de datos 15
Información adicional de archivos de registro de datos 19
Cómo añadir bloques de funciones LogRecord y Dump 20
Compilación de una cadena WSTRING amplia 21

EIO0000000488 04/2014 9
Registro de datos

Introducción al registro de datos

Descripción general
Puede supervisar y analizar los datos de la aplicación examinando el archivo de registro de datos
(.log).

Carga de archivos desde SoMachine,


Controlador servidor web
o la petición de cliente FTP
Controlador
aplicación
Controlador
Archivo de registro
memoria

FB Búfer de LogFile.log
automático

Nuevo
Archivo
Volcado

Registro
LogRecord
de datos de registro Registro de datos 1
Registro de datos 2
Registro de datos x
Registro de datos 3
Registro de datos y
Registro de datos 4
Archivo de registro Registro de datos z
Registro de datos 5
Registro de datos 6
Comando de FB …
volcado
Volcado Forzar volcado de búfer

En la ilustración se muestra una aplicación que incluye los 2 bloques de funciones, LogRecord y
Dump. El bloque de funciones LogRecord escribe datos en el búfer, que se vacían en el archivo
de registro de datos (.log) ubicado en la memoria del controlador. El volcado de búfer es
automático cuando está al 80%, o se puede forzar con la función Dump. Como cliente FTP
estándar, un PC puede acceder a este archivo de registro de datos cuando el controlador actúa
como servidor FTP. También es posible cargar el archivo con SoMachine o el servidor web del
controlador.
NOTA: Sólo los controladores con la función de gestión de archivos son compatibles con el
registro de datos. Consulte el manual de programación del controlador para ver si admite la
gestión de archivos. El software por sí mismo no comprueba la compatibilidad del controlador con
las actividades de registro de datos.

10 EIO0000000488 04/2014
Registro de datos

Archivo de registro de datos de ejemplo (.log)


Entradas en el archivo: 8; Última entrada: 8;
18/06/2009;14:12:33;ciclo: 1182;
18/06/2009;14:12:35;ciclo: 1292;
18/06/2009;14:12:38;ciclo: 1450;
18/06/2009;14:12:40;ciclo: 1514;
18/06/2009;14:12:41;ciclo: 1585;
18/06/2009;14:12:43;ciclo: 1656;
18/06/2009;14:14:20;ciclo: 6346;
18/06/2009;14:14:26;ciclo: 6636;

Procedimiento de implementación
Primero debe declarar y configurar los archivos de registro de datos en la aplicación antes de
empezar a escribir el programa.

EIO0000000488 04/2014 11
Registro de datos

Configuración del registro de datos

Cómo añadir un gestor de registro de datos


Añada un gestor de registro de datos a su configuración antes de configurar el registro de datos:

Paso Acción
1 En el árbol Herramientas, seleccione el nodo Aplicación, haga clic en el signo más verde y
seleccione Añadir otros objetos →DataLogManager....
Resultado: aparece el cuadro de diálogo Add Data Log Manager.
2 En el cuadro de diálogo Add Data Log Manager, haga clic en Añadir.
Resultado: aparece un nodo DataLogManager debajo del nodo Aplicación.
3 Seleccione el nodo DataLogManager, haga clic en el signo más verde y seleccione DataLog....
Resultado: se abre el cuadro de diálogo Add DataLog.
4 En el cuadro de texto Data Logging File Name, introduzca un nombre para el archivo de
registro de datos y haga clic en Añadir.
Resultado: el archivo de registro de datos con el nombre asignado aparece debajo del nodo
DataLogManager y la pantalla de configuración se muestra en la vista del editor en la parte
central de la pantalla SoMachine Logic Builder.
Nota: no es posible cambiar posteriormente el nombre del archivo de registro de datos.
5 Establecimiento de los parámetros del archivo de registro de datos (véase página 13).
6 Repita los pasos del 3 al 5 para crear archivos de registro de datos adicionales.

12 EIO0000000488 04/2014
Registro de datos

Pantalla de configuración
Esta pantalla de configuración aparece después de añadir un archivo de registro de datos a la
configuración:

Parámetros de configuración

Parámetro Descripción
Add Date Estas opciones imprimen la fecha o la hora correspondiente de cada registro. Por
ejemplo, una instancia asociada al 10 de junio de 2009 a las 2:30 p.m. podría
Add Time
representarse como 10/06/2009, 06/10/2009 o 20090610... a las 14:30 o las
02:30:00 p.m., etc.
Max number of entries Esta opción establece el número máximo de registros que contiene el archivo de
registro de datos. Los valores válidos van de 10 a 65.536. El valor predeterminado
es 10.000.

EIO0000000488 04/2014 13
Registro de datos

Parámetro Descripción
Modalidad Circular (valor Una vez que se alcanza el Max number of entries (número
predeterminado) máximo de entradas), los registros nuevos sobrescribirán los
anteriores. La primera línea del archivo de registro de datos se
puede utilizar para obtener la posición real del último registro,
así como el rango de otros registros. Los siguientes casos están
basados en un archivo con un máximo de 10 registros:
 Caso 1: Entries in File: 8; Last Entry: 8
Significado: el número de entradas del archivo es igual al
valor de Last Entry. Los registros van del n.º 1 (el más
antiguo) al n.º 8 (el más reciente).
 Caso 2: Entries in File: 10; Last Entry: 5
Significado: el número de entradas del archivo es superior
al valor de Last Entry. El archivo está lleno y los nuevos
registros reemplazan a los antiguos. Los 10 registros quedan
dispuestos en el siguiente orden (de más antiguo a más
nuevo): 6, 7, 8, 9, 10, 1, 2, 3, 4, 5
Stop when full Cuando se alcanza el Max number of entries (número
máximo de entradas), cualquier nuevo intento de registro
devuelve un mensaje de error detectado.
Internal Buffer Size Configure el tamaño del búfer de la RAM que almacene los registros añadidos. Los
valores válidos van del 1 al valor configurado en Max number of entries. El valor
predeterminado es 10.
Max characters per entry Establezca la longitud máxima de cada entrada. Los valores válidos van de 10
(optimization) a 255. El valor predeterminado es 64.
La longitud máxima incluye separadores y fecha y hora opcionales. Se añaden
espacios adicionales al final de la línea para dar cabida al número de caracteres
definido.
Separator between date, time Defina el carácter que debe insertarse entre los diversos campos del registro de
and record datos. Después del registro se añade un separador adicional.
NOTA: para cada archivo de registro de datos configurado hay una instancia de bloque de funciones LogRecord con
el mismo nombre que este archivo de registro de datos, que gestiona todos los datos internos y permite la gestión de
registros de datos.

14 EIO0000000488 04/2014
Registro de datos

Gestión de archivos de registro de datos

Introducción
Se proporciona un bloque de funciones, LogRecord, para escribir entradas de cadenas de texto
en el archivo de registro de datos. Este bloque de funciones almacena la cadena de entrada en
un búfer interno. Cuando el búfer alcanza el 80% de capacidad, se traslada al archivo real del
controlador. Puede forzar este mecanismo para guardar utilizando el bloque de funciones Dump.
Cuando se quita la alimentación se pueden perder los datos del búfer interno o aumentar el tiempo
de ciclo hasta que se vacíe el búfer.

AVISO
PÉRDIDA DE DATOS
 No desconecte la alimentación del controlador hasta que toda la información del búfer interno
se hay transferido al sistema de archivos actual.
 Si los datos que está registrando son importantes para la aplicación, defina el tamaño del
búfer interno a 1.
El incumplimiento de estas instrucciones puede causar daño al equipo.

Adición de un registro con un bloque de funciones LogRecord


Este bloque de funciones está disponible para registrar una cadena UNICODE en un registro
específico:

Parámetros de entrada

Parámetro Tipo Comentario


xExecute BOOL La función se ejecuta en el flanco ascendente de esta entrada.
NOTA: si xExecute se establece en TRUE en el primer ciclo de
tarea EN EJECUCIÓN después de un reseteo en frío o en
caliente, el flanco ascendente no se detecta.
wsRecord WSTRING Esta cadena de texto UNICODE específica de usuario se escribe
en el archivo de registro de datos.
NOTA: El tipo WSTRING (véase página 21) está disponible en la
biblioteca Standard64.lib que se inserta automáticamente
cuando se añade el gestor del registro de datos a la aplicación.

EIO0000000488 04/2014 15
Registro de datos

Parámetros de salida

Parámetro Tipo Comentario


xDone BOOL Esta salida se establece en TRUE cuando el registro se guarda
correctamente en el búfer interno sin mensajes de error.
xBusy BOOL Esta salida continúa siendo TRUE mientras LogRecord está
ocupado (hasta que se completa la transferencia al búfer).
xError BOOL Esta salida se establece en TRUE cuando se produce un error
(por ejemplo, cuando el búfer interno está lleno).
eError ERROR Esta salida contiene el código de error cuando xError es TRUE:
 NO_ERROR
 INIT_ERROR
 DUMP_ERROR
 BUFFER_FULL_ERROR
 FILE_FULL_ERROR
 DUMP_INCOMPLETED
 INPUT_ERROR
 FILE_OPEN_ERROR
 FILE_SETPOINTER_ERROR
 FILE_WRITE_ERROR
 FILE_CLOSE_ERROR

NOTA: Si el registro supera la longitud configurada, se trunca.


Las salidas xDone y xError siguen siendo TRUE siempre que xExecute sea TRUE. Cuando se
establece xExecute en FALSE antes de que se establezca xDone o xError en TRUE (xBusy
sigue siendo TRUE), se establece uno de cada en TRUE cuando se completa el bloque de
funciones durante un ciclo de controlador de manera que la aplicación detecte este punto:

1 Un ciclo como Ex es FALSE.

El bloque de funciones LogRecord incluye una instancia que corresponde a cada archivo de
registro de datos configurado. No es necesario declarar de forma explícita una instancia del bloque
de funciones porque la instancia se declara automáticamente. Añada el bloque de funciones a la
POU y especifique la instancia del archivo de registro de datos adecuada (consulte Cómo añadir
LogRecord (véase página 20)).

16 EIO0000000488 04/2014
Registro de datos

Forzado de un guardado con el método de vaciado


Puede utilizar el método Dump (un método puede considerarse una subfunción de un bloque de
funciones, en este caso LogRecord) para forzar que los datos de la aplicación trasladen los
recursos almacenados en el búfer interno al archivo real del sistema de archivos del controlador:

Parámetros

Entrada Tipo Comentario


xExecute BOOL La función de guardar se ejecuta en el flanco ascendente de esta
entrada.
NOTA: Cuando xExecute se establece en 1 en el primer ciclo de
tareas del controlador, el flanco ascendente no se detecta

Salida Tipo Comentario


xDone BOOL Esta salida se establece en TRUE cuando los registros se
guardan correctamente sin mensajes de error.
xBusy BOOL Esta salida sigue siendo TRUE mientras Dump está ocupado
(hasta que el archivo se ha escrito por completo).
xError BOOL Esta salida se establece en TRUE cuando se detecta un error (por
ejemplo, cuando el archivo de registro de datos está lleno).
eError ERROR Esta salida contiene el código de error cuando xError es TRUE:
 NO_ERROR
 INIT_ERROR
 DUMP_ERROR
 BUFFER_FULL_ERROR
 FILE_FULL_ERROR
 DUMP_INCOMPLETED
 INPUT_ERROR
 FILE_OPEN_ERROR
 FILE_SETPOINTER_ERROR
 FILE_WRITE_ERROR
 FILE_CLOSE_ERROR

Consulte Cómo añadir un método de volcado (véase página 20) para la implementación del
método Dump.

EIO0000000488 04/2014 17
Registro de datos

Almacenamiento automático en el archivo de registro de datos


Cuando se utiliza el bloque de funciones LogRecord, el sistema traslada automáticamente los
datos del búfer interno al archivo de registro de datos cuando este búfer está el 80% lleno. El
bloque de funciones Dump permite forzar este desplazamiento antes de que se alcance el 80%.
Este límite del 80% permite que comience el proceso de escritura antes de que se llene el búfer y
mientras se añade un nuevo registro.
En esta tabla se muestra el número de registros en el que se almacena el archivo para un tamaño
de búfer configurado determinado (80% del tamaño de búfer redondeado hacia el entero inferior
más próximo):

Tamaño del Límite del Comentario


búfer 80%
1 1 La operación de almacenamiento en el archivo de registro de
datos se activa en cuanto se añade un registro con un slot
adicional disponible para un nuevo registro que llega durante
este almacenamiento.
2 1 La operación de almacenamiento en el archivo de registro de
datos se activa cuando el búfer llega al 80% con un slot
3 2
adicional disponible para un nuevo registro que llega durante
4 3 este almacenamiento.
5 4 La operación de almacenamiento en el archivo de registro de
datos se activa cuando el búfer llega al 80% con más slots
6 4
disponibles para nuevos registros que lleguen durante este
7 5 almacenamiento.
8 6
...

En el caso de un almacenamiento explícito (Dump) o automático (80%), el archivo de registro de


datos se cierra después de cada registro (o grupo de registros) en caso de que haya un posterior
fallo de alimentación externa.

18 EIO0000000488 04/2014
Registro de datos

Información adicional de archivos de registro de datos

Propiedades del registro de datos


Se puede acceder a las propiedades del registro de datos cuando ya se ha configurado el bloque
de funciones.
Las propiedades de LogRecord son variables adicionales (de sólo lectura) conectadas automáti-
camente con la instancia LogRecord que proporcionan información sobre el estado de los
archivos de registro de datos:

Variables Tipo Descripción


<nombre del archivo de registro de UDINT el número de registros en el archivo de registro de
datos>.NumberOfRecords datos
<nombre del archivo de registro de UINT el número de registros del búfer
datos>.NumberOfBufferedRecords
<nombre del archivo de registro de FILE_STATUS información de estado sobre el archivo de registro de
datos>.FileStatus datos (tipo FILE_STATUS):
 0: OK
 1: FILE_FULL
 2: NO_WRITE_ACCESS
 3: FILE_NOT_EXISTS

<nombre del archivo de registro de BOOL TRUE cuando los registros que utilizan búfer se
datos>.DumpInProgress guardan en el archivo de registro de datos

Recomendación
El bloque de funciones LogRecord requiere más de 15 ciclos de intervalo una vez activado
(mediante xExecute) para guardar un registro en el archivo de registro. Por lo tanto, es muy
recomendable usar este bloque de funciones en un tarea FAST:

Tipo de tarea Intervalo (ms) Tiempo mínimo necesario para guardar el registro
cíclica 20 300 ms
cíclica 1 15 ms: Muy recomendable
evento 15 eventos necesarios: No recomendable

EIO0000000488 04/2014 19
Registro de datos

Cómo añadir bloques de funciones LogRecord y Dump

Descripción general
Siga estos pasos para añadir el bloque de funciones LogRecord y el método Dump al proyecto.

Cómo añadir LogRecord


Añada el bloque de funciones LogRecord al proyecto:

Paso Acción Comentario


1 Inserte un bloque de funciones LogRecord a la En el cuadro de diálogo Input Assistant, efectúe
POU utilizando el Input Assistant o directamente estas selecciones:
escribiendo LogRecord.  Categorías: Function Blocks (Libraries)
 Elementos: {} SEDL →LogRecord
(Elementos en vista estructurada)
2 Haga clic en OK o pulse ENTER. El bloque de funciones LogRecord ya forma parte
del proyecto.
3 Seleccione el archivo de registro de datos En Accesibilidad, seleccione el archivo de registro de
adecuado como nombre de instancia LogRecord datos adecuado o directamente escriba el nombre
del archivo de registro.
4 Configure las entradas y salidas como lo haría Consulte la descripción de los parámetros de estos
para otros bloques de funciones. bloques de funciones (véase página 15).

Cómo añadir el método Dump


Añada el método Dump al proyecto:

Paso Acción Comentario


1 Inserte un método Dump a la POU utilizando el En el cuadro de diálogo Input Assistant, efectúe
Input Assistant o directamente escribiendo estas selecciones:
LogRecord.Dump.  Categorías: Function Blocks (Libraries)
 Items: SEDL →LogRecord →Dump
(Elementos en vista estructurada)
2 Haga clic en OK o pulse ENTER. El método LogRecord.Dump ya forma parte del
proyecto.
3 Seleccione el archivo de registro de datos En Input Assistant, seleccione el archivo de registro
adecuado como nombre de instancia LogRecord de datos adecuado o directamente escriba el nombre
del archivo de registro.
4 Configure las entradas y salidas como lo haría Consulte la descripción de los parámetros de estos
para otras funciones. bloques de funciones (véase página 17).

20 EIO0000000488 04/2014
Registro de datos

Compilación de una cadena WSTRING amplia

Descripción general
La entrada wsRecord del bloque de funciones LogRecord es del tipo WSTRING (wide string).
Para compilar la cadena de registro primero debe añadir la biblioteca Standard64 a la aplicación
y utilizar funciones de cadena amplia.

Ejemplo
En esta figura se muestra la creación de un ejemplo de WSTRING que incluye un valor de variable:

EIO0000000488 04/2014 21
Registro de datos

22 EIO0000000488 04/2014
SoMachine

EIO0000000488 04/2014

Apéndices

EIO0000000488 04/2014 23
24 EIO0000000488 04/2014
SoMachine
Representación de funciones y de bloques de funciones
EIO0000000488 04/2014

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

Representación de funciones y de bloques de funciones

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

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


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

Contenido de este capítulo


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

EIO0000000488 04/2014 25
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.
 Se le llama directamente por su nombre (y 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
Bloque de funciones
 Es una POU (Unidad de organización de programa) que devuelve una o más salidas.
 Debe llamarse a través de una instancia (copia del bloque de funciones con nombre y variables
dedicados).
 Todas las instancias tienen un estado persistente (salidas y variables internas) de una llamada
a otra desde un bloque de funciones o programa.
Ejemplos: temporizadores, contadores
En el ejemplo, Timer_ON es una instancia del bloque de funciones TON:

26 EIO0000000488 04/2014
Representación de funciones y de bloques de funciones

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

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

Uso de una función en lenguaje IL


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

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

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


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

Función Representación gráfica


sin parámetros de entrada:
IsFirstMastCycle

EIO0000000488 04/2014 27
Representación de funciones y de bloques de funciones

Función Representación gráfica


con parámetros de
entrada:
SetRTCDrift

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

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


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

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

28 EIO0000000488 04/2014
Representación de funciones y de bloques de funciones

Uso de un bloque de funciones en lenguaje IL


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

Paso Acción
1 Abra o cree una POU nueva en el lenguaje de Lista de instrucciones (IL).
NOTA: Aquí no se detalla el procedimiento para crear una POU. Para obtener más información,
consulte Adding, Declaring and Calling POUs.
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:
 Utilice la opción Accesibilidad para seleccionar el bloque de funciones (botón derecho del ratón
y seleccionar Insertar llamada de módulo en el menú contextual).
 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 de la derecha CAL, sustituya ??? por el nombre de la instancia.


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

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

3 Representación gráfica
TON

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


operadores:

EIO0000000488 04/2014 29
Representación de funciones y de bloques de funciones

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


TON

30 EIO0000000488 04/2014
Representación de funciones y de bloques de funciones

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

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

Uso de una función en lenguaje ST


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

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

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


gráficamente a continuación:

Función Representación gráfica


SetRTCDrift

El lenguaje ST de esta función es este:

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


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

EIO0000000488 04/2014 31
Representación de funciones y de bloques de funciones

Uso de un bloque de funciones en lenguaje ST


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

Paso Acción
1 Abra o cree una POU nueva en el lenguaje de Texto estructurado (ST).
NOTA: Aquí no se detalla el procedimiento para crear una POU. Para obtener más
información sobre la adición, declaración y llamadas de POU, consulte la
documentación relacionada.
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 funciones
 Las variables de salida reciben el valor devuelto por el bloque de funciones

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


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

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

3 Representación gráfica
TON

32 EIO0000000488 04/2014
Representación de funciones y de bloques de funciones

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

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


TON

EIO0000000488 04/2014 33
Representación de funciones y de bloques de funciones

34 EIO0000000488 04/2014
SoMachine
Glosario
EIO0000000488 04/2014

Glosario

B
byte
Un tipo que está codificado en un formato de 8 bits que, en el formato hexadecimal, va de 16#00
a 16#FF.

C
CFC
(diagrama de función continua) Un lenguaje de programación (una ampliación del estándar IEC
61131-3) basado en el lenguaje de diagrama de bloque de funciones (FBD) y que funciona como
un diagrama de flujo. Sin embargo, no se utiliza ninguna red y es posible un posicionamiento libre
de elementos gráficos, lo que permite bucles de realimentación. En cada bloque, las entradas se
sitúan a la izquierda y las salidas, a la derecha. Las salidas del bloque se pueden conectar a las
entradas de otros bloques para formar expresiones complejas.

F
FB
(bloque de funciones) Un práctico mecanismo de programación que consolida un grupo de
instrucciones de programación para realizar una acción específica y normalizada, por ejemplo, el
control de velocidad, el control de intervalo o el conteo. Un bloque de funciones se puede
componer de datos de configuración, un conjunto de parámetros de funcionamiento internos o
externos y, normalmente, una o diversas entradas y salidas de datos.
FBD
(diagrama de bloques de funciones) Uno de los cinco lenguajes para lógica o control que cumplen
con el estándar IEC 61131-3 para sistemas de control. El diagrama de bloques de funciones es
un lenguaje de programación orientado gráficamente. Funciona con una lista de redes en la que
cada red contiene una estructura gráfica de cuadros y líneas de conexión que representa una
expresión lógica o aritmética, la llamada de un bloque de funciones, un salto o una instrucción de
retorno.

I
IL
(lista de instrucciones) Un programa escrito en lenguaje que se compone de una serie de
instrucciones basadas en texto y ejecutadas secuencialmente por el controlador. Cada instrucción
incluye un número de línea, un código de instrucción y un operando (consulte IEC 61131-3).

EIO0000000488 04/2014 35
Glosario

INT
(entero) Un número entero con codificación de 16 bits.

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

P
POU
(unidad de organización de programas) Una declaración variable en el código fuente y el conjunto
de instrucciones correspondiente. Las POUs facilitan la reutilización modular de programas de
software, funciones y bloques de funciones. Una vez declaradas, cada una de las POUs está
disponible para las otras.

S
ST
(Texto estructurado) Un lenguaje que incluye instrucciones complejas y anidadas (por ejemplo,
bucles de repetición, ejecuciones condicionales o funciones). ST está conforme con IEC 61131-3.

V
variable
Una unidad de memoria direccionada y modificada por un programa.

36 EIO0000000488 04/2014
SoMachine
Índice
EIO0000000488 04/2014

Índice

B NumberOfRecords
Variables, 19
Bloque de funciones
Dump, 17
LogRecord, 15 R
registro de datos, 9
D
Dump T
Bloque de funciones, 17
Tipo
DumpInProgress
FILE_STATUS, 19
Variables, 19
Tipo de parámetros de salida
ERROR, 16, 17
E
ERROR V
Tipo de parámetros de salida, 16, 17
Variables
DumpInProgress, 19
F FileStatus, 19
NumberOfBufferedRecords, 19
FILE_STATUS
NumberOfRecords, 19
Tipo, 19
FileStatus
Variables, 19
funciones
cómo utilizar una función o un bloque de
funciones en lenguaje IL, 27
cómo utilizar una función o un bloque de
funciones en lenguaje ST, 31
diferencias entre una función y un bloque
de funciones, 26

L
LogRecord
Bloque de funciones, 15

N
NumberOfBufferedRecords
Variables, 19

EIO0000000488 04/2014 37
Índice

38 EIO0000000488 04/2014

También podría gustarte