Prólogo, Índice
SIMATIC Software estándar para S7-300 y S7-400 Funciones estándar Parte 2 Manual de referencia
Funciones lógicas con bits
1
Funciones de tabla
2
Funciones de desplazamiento
3
Funciones y bloques de función de transferencia
4
Funciones y bloques de función de temporización
5
Funciones y bloques de función de conversión
6
Función en coma flotante
7
Bloques de función de comparación
8
Glosario, Índice alfabético
03/2000 Edición 03
Consignas de seguridad para el usuario
!
!
!
Este manual contiene las informaciones necesarias para la seguridad personal así como para la pre vención de daños materiales. Las informaciones están puestas de relieve mediante señales de pre caución. Las señales que figuran a continuación representan distintos grados de peligro:
Peligro Significa que, si no se adoptan las medidas preventivas adecuadas, se producirá la muerte, o bien lesiones corporales graves o daños materiales considerables.
Precaución Significa que, si no se adoptan las medidas preventivas adecuadas, puede producirse la muerte, lesiones corporales graves o daños materiales considerables.
Cuidado Significa que, si no se adoptan las medidas preventivas adecuadas, pueden producirse lesiones cor porales o daños materiales.
Nota Se trata de una información importante, sobre el producto o sobre una parte determinada del manual, sobre la que se desea llamar particularmente la atención.
Personal cualificado
La puesta en funcionamiento y el servicio del equipo sólo deben ser llevados a cabo conforme a lo descrito en este manual. Sólo está autorizado a intervenir en este equipo el personal cualificado. cualificado. En el sentido del manual se trata de personas que disponen de los conocimientos técnicos necesarios para poner en funciona miento, conectar a tierra y marcar los aparatos, sistemas y circuitos de acuerdo con las normas están dar de seguridad.
Uso conforme
!
Considere lo siguiente:
Precaución El equipo o los componentes del sistema sólo se podrán utilizar para los casos de aplicación previstos en el catálogo y en la descripción técnica, y sólo con los equipos y componentes de proveniencia tercera recomendados y homologados por Siemens. El funcionamiento correcto y seguro del producto presupone un transporte, un almacenamiento, una instalación y un montaje conforme a las prácticas de la buena ingeniería, así como un manejo y un mantenimiento rigurosos.
Marca registrada
SIMATIC , SIMATC NET y SIMATC HMI son marcas registradas por SIEMENS AG Los restantes nombres y designaciones contenidos en el presente documento pueden ser marcas regis tradas cuya utilización por terceros para sus propios fines puede violar los derechos de los proprietarios.
Copyright { Siemens AG 2000 All rights reserved
Exención de responsabilidad
La divulgación y reproducción de este documento, así como el uso y la comunicación de su contenido, no están autorizados, a no ser que se obtenga el consentimiento expreso para ello. Los infractores quedan obligados a la indemnizaci ón de los da ños. Se reservan todos los derechos, en particular para el caso de concesi ón de patentes o de modelos de utilidad.
Hemos probado el contenido de esta publicaci ón con la concordancia descrita para el hardware y el software. Sin embargo, es posible que se den algunas desviaciones que nos impiden tomar garant ía completa de esta concordancia. El contenido de esta publicaci ón está sometido a revisiones regularmente y en caso necesario se incluyen las correcciones en la siguiente edici ón. Agradecemos sugerencias.
Siemens AG Bereich Automatisierungs- und Antriebstechnik Geschaeftsgebiet Industrie-Automatisierungssysteme Postfach 4848, D-90327 Nuernberg
Siemens Aktiengesellschaft
Siemens AG 2000 Sujeto a cambios sin previo aviso.
A5E00066869
Prólogo Finalidad de este manual
En el presente manual se describen las funciones (FC) y los bloques de función (FB) de S7, representados con ejemplos en el lenguaje de programación ”Esquema de contactos” (KOP). Las FC y los FB sirven para programar cómodamente el autómata programable S7-300/S7-400. Este manual ha sido concebido como una obra de referencia que le proporciona la información necesaria sobre cada función y bloque de función.
Dónde encontrar las funciones S7
Las FC y los FB descritos en este manual están almacenados en la librería estándar de STEP 7. Con el Administrador SIMATIC de STEP 7 puede copiar en el directorio de su programa de destino las FC y los FB que necesite. Antes de realizar esta operación, asegúrese de que en su programa no hay ninguna otra FC o FB con el mismo número que las que va a copiar desde la librería. Si encuentra alguna con la misma numeración, antes de copiarla tendrá que cambiar la numeración de las FC o FB que desea copiar, o la de las que ya estaban en su programa.
Destinatarios
Este manual ha sido redactado para ingenieros, programadores y personal de mantenimiento que tengan conocimientos generales sobre sistemas de automatización.
Estructuración del manual
Las FC y los FB aquí descritos han sido agrupados por capítulos atendiendo a la finalidad de su aplicación: •
Funciones lógicas con bits (capítulo 1)
•
Funciones de tabla (capítulo 2)
•
Funciones de desplazamiento (capítulo 3)
•
Funciones y bloques de función de transferencia (capítulo 4)
•
Funciones y bloques de función de temporización (capítulo 5)
•
Funciones y bloques de función de conversión (capítulo 6)
•
Funciones de coma flotante (capítulo 7)
•
Bloques de función de comparación (capítulo 8)
•
El glosario incluido al final del manual contiene una lista de términos y definiciones que son de importancia para la programación con el Esquema de contactos.
Software estándar para S7-300 y S7-400 Funciones estándar, parte 2 A5E00066869-03
iii
Prólogo
En cada capítulo se describen las FC y los FB que puede añadir a las operaciones estándar para aumentar la flexibilidad de la programación. Todas las funciones y bloques de función se enumeran con el nombre completo, los nemotécnicos y el número respectivos. Todas las descripciones de FC o FB incluyen los apartados siguientes:
Resumen de la documentación STEP 7 Título
•
Descripción: Resumen básico del cometido para el que sirve la FC o el FB.
•
Parámetros: Tabla de declaración, tipo de datos, áreas de memoria válidas y descripción de los parámetros.
•
Información sobre errores: Indica aquellos errores que, caso de producirse, impedirían que la FC o el FB se ejecutara satisfactoriamente.
•
Ejemplo: Representación gráfica de la FC o del FB con unos parámetros elegidos a modo de ejemplo y con el correspondiente resultado de la ejecución.
Este manual forma parte del paquete de documentación STEP 7, integrado por los manuales que se enumeran a continuación.
Contenido
STEP 7: Introducción y ejercicios prácticos
Ofrece una introducción básica a la metodología de la estructura y programación de un S7-300/S7-400. Resulta especialmente apropiado para aquellos usuarios que utilizan por primera vez un sistema de automatización.
Programar con STEP 7 Manual
Aporta la información básica sobre la estructura del sistema operativo y del programa de usuario de una CPU S7. Es recomendable que aquellos usuarios que utilizan un S7-300/S7-400 por primera vez utilicen este manual para adquirir una visión general de la metodología de programación y para tomarlo como base en el diseño de los programas de usuario.
Software de sistema para S7-300 y S7400 Funciones estándar y funciones de sistema Manual de referencia
Las CPU S7 tienen incorporados con el sistema operativo una serie de funciones estándar y de bloques de organización que pueden aplicarse para hacer más fácil la programación. Este manual le ofrece una visión de conjunto de las funciones de sistema, los bloques de organización y las funciones estándar de que se dispone en S7, incluyendo igualmente descripciones detalladas a modo de información de referencia para utilizarla al programar su programa de usuario.
Configurar el hardware y la communicación con STEP 7 Manual
Describe las principales aplicaciones y las funciones del software de automatización STEP 7. Recomendable tanto si es la primera vez que utiliza STEP 7 como si ya tiene experiencia con STEP 5, este manual le proporciona una visión global de los procedimientos usados para configurar, programar y poner en funcionamiento un S7-300/S7-400. Mientras está trabajando con el software puede acceder a una serie de temas online que le ayudarán al aplicar el software.
Guía para facilitar la transición
iv
Necesitará este manual cuando desee convertir los programas que ya tenga programados en STEP 5 para ejecutarlos con las CPU S7. El manual le proporciona una visión de conjunto sobre los procedimientos y la aplicación del convertidor; en la ayuda online encontrará una descripción detallada de las funciones de conversión, así como las descripciones sobre las funciones convertidas a STEP 7 disponibles en la ayuda online.
Software estándar para S7-300 y S7-400 Funciones estándar, parte 2 A5E00066869-03
Pr ól ogo
Título Manuales de referencia Lista de instrucciones AWL, Esquema de contactos KOP, SCL1
Contenido Los manuales de los lenguajes de programaci ón Lista de Instrucciones AWL, Esquema de contactos KOP y SCL (Lenguaje de Control Secuencial) contienen tanto la guí a para el usuario como la descripci ón del lenguaje de programación o modo de representaci ón. Para programar un S7-300/S7-400 sólo se requiere un lenguaje de programaci ón, pero también puede mezclar los diferentes lenguajes dentro de un proyecto, si as í lo desea. Caso de que sea la primera vez que utiliza uno de estos lenguajes es recomendable que emplee el manual para aprender antes la metodologí a de creaci ón de programas en ese lenguaje de programaci ón concreto. Mientras esté trabajando con el software puede acceder a una serie de temas online que le ayudarán en el empleo de los editores/compiladores respectivos.
Manuales S7-GRAPH1 , S7-HiGraph1, CFC1
Los lenguajes GRAPH, HiGraph y CFC (para el cableado gr áfico de funciones tecnológicas) le ofrecen métodos adicionales para la programación de bloques en forma de controles secuenciales, grafos de estado o gráficos. Estos manuales contienen tanto la gu í a para el usuario como la descripción del lenguaje de programaci ón. Si es la primera vez que utiliza uno de estos lenguajes es recomendable que emplee este manual para aprender antes la metodolog í a de creaci ón de programas en ese lenguaje de programaci ón concreto. Mientras está trabajando con el software puede acceder a una serie de temas online que le ayudarán en el empleo de los editores/compiladores respectivos (exceptuando HiGraph).
1
Paquete opcional para el software de sistema para S7-300/S7-400
Otros manuales
En los manuales indicados a continuación se describen las CPUs , los módulos así como las instrucciones y operaciones disponibles para los sistemas S7-300 y S7-400: •
Sistemas de automatización S7-300: consulte los manuales “Configuración e instalación (datos de la CPU, datos de los m ódulos) y la lista de instrucciones.
•
Sistemas de automatización S7-400: consulte los manuales “Configuración e instalación (datos de la CPU, datos de los m ódulos) y la lista de instrucciones.
Las ayudas en pantalla contienen información adicional.
Asistencia adicional
Si tiene dudas sobre cualquier cuestión no tratada en este o en otros manuales STEP 7, si necesita información para pedir más documentación o equipos, o si desea informarse acerca de los cursillos de entrenamiento, no dude en dirigirse a su distribuidor oficial de Siemens. Le atenderán de buen grado.
Software estándar para S7-300 y S7-400 Funciones estándar, parte 2 A5E00066869-03
v
Prólogo
Lista de funciones y bloques de función
vi
En este manual se describen las funciones (FC) y los bloques de función (FB) siguientes: Función o bloque de función
Número
Página
Activar un temporizador como retardo a la conexión con memoria (TONR)
FC80
5-2
Transferencia indirecta de un bloque de datos (IBLKMOV)
FC81
4-2
Poner a cero un área de periferia o de marcas en la imagen del proceso (RSET)
FC82
1-2
Activar un área de marcas o de periferia en la imagen del proceso (SET)
FC83
1-6
Añadir un elemento a una tabla (ATT)
FC84
2-2
Extraer el elemento más antiguo de una tabla (FIFO)
FC85
2-4
Buscar un valor en una tabla (TBL_FIND)
FC86
2-6
Extraer el elemento más reciente de una tabla (LIFO)
FC87
2-9
Realizar una operación en una tabla (TBL)
FC88
2-11
Copiar un valor de una tabla (TBL_WRD)
FC89
2-13
Almacenar datos en el registro de desplazamiento (WSR)
FC90
3-2
Relacionar lógicamente un valor con un elemento de una tabla y almacenarlo (WRD_TBL)
FC91
2-15
Desplazar un bit a un registro de desplazamiento (SHRB)
FC92
3-4
Crear el patrón de bits para la visualización con siete segmentos (SEG)
FC93
6-2
Convertir una cadena de caracteres ASCII en una cifra hexadecimal (ATH)
FC94
6-4
Convertir una cifra hexadecimal en una cadena de caracteres ASCII (HTA)
FC95
6-6
Codificar una posición binaria (ENCO)
FC96
6-8
Decodificar una posición binaria (DECO)
FC97
6-9
Generar el complemento a diez (BCDCPL)
FC98
6-10
Sumar la cantidad de bits activados (BITSUM)
FC99
6-11
Poner a cero inmediatamente un área de salida (RSETI)
FC100
1-4
Activar inmediatamente un área de salida (SETI)
FC101
1-8
Desviación típica (DEV)
FC102
7-2
Tabla de datos correlativos (CDT)
FC103
2-17
Enlace lógico de tablas (TBL_TBL)
FC104
2-19
Escalar valores (SCALE)
FC105
6-12
Desescalar valores (UNSCALE)
FC106
6-14
Algoritmo avance/retardo (LEAD_LAG)
FB80
6-16
Alarma de tiempo para control discreto (DCAT)
FB81
5-4
Alarma de tiempo para control motor (MCAT)
FB82
5-7
Comparar índice matriz (IMC)
FB83
8-2
Barrido de matriz (SMC)
FB84
8-6
Evento drum enmascarable (DRUM)
FB85
5-10
Acumular/Distribuir datos de tabla (PACK)
FB86
4-4
Software estándar para S7-300 y S7-400 Funciones estándar, parte 2 A5E00066869-03
Índice 1
Funciones lógicas con bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.1
Poner a cero un área de periferia o de marcas en la imagen del proceso (RSET): FC82 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1-2
1.2
Poner a cero inmediatamente un área de salida (RSETI): FC100 . . . . . .
1-4
1.3
Activar un área de marcas o de periferia en la imagen del proceso (SET): FC83 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1-6
Activar inmediatamente un área de salida (SETI): FC101 . . . . . . . . . . . . .
1-8
Funciones de tabla . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2-1
2.1
Añadir un elemento a una tabla (ATT): FC84 . . . . . . . . . . . . . . . . . . . . . . . .
2-2
2.2
Extraer el elemento más antiguo de una tabla (FIFO): FC85 . . . . . . . . . .
2-4
2.3
Buscar un valor en una tabla (TBL_FIND): FC86 . . . . . . . . . . . . . . . . . . . .
2-6
2.4
Extraer el elemento más reciente de una tabla (LIFO): FC87 . . . . . . . . . .
2-9
2.5
Realizar una operación en una tabla (TBL): FC88 . . . . . . . . . . . . . . . . . . . .
2-11
2.6
Copiar un valor de una tabla (TBL_WRD): FC89 . . . . . . . . . . . . . . . . . . . . .
2-13
2.7
Combinar lógicamente un valor con un elemento de una tabla y almacenarlo (WRD_TBL): FC91 . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2-15
2.8
Tabla de datos correlativos (CDT): FC103 . . . . . . . . . . . . . . . . . . . . . . . . . .
2-17
2.9
Enlace lógico de tablas (TBL_TBL): FC104 . . . . . . . . . . . . . . . . . . . . . . . . .
2-19
Funciones de desplazamiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3-1
3.1
Almacenar datos en el registro de desplazamiento (WSR): FC90 . . . . . .
3-2
3.2
Desplazar un bit a un registro de desplazamiento (SHRB): FC92 . . . . . .
3-4
Funciones y bloques de función de transferencia . . . . . . . . . . . . . . . . . . . . . . . . .
4-1
4.1
Transferencia indirecta de un bloque de datos (IBLKMOV): FC81 . . . . . .
4-2
4.2
Acumular/Distribuir datos de tabla (PACK): FB86 . . . . . . . . . . . . . . . . . . . .
4-4
Funciones y bloques de función de temporización. . . . . . . . . . . . . . . . . . . . . . . .
5-1
1.4 2
3
4
5
1-1
5.1
Activar un temporizador como retardo a la conexión con memoria (TONR): FC80 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5-2
5.2
Alarma de tiempo para control discreto (DCAT): FB81 . . . . . . . . . . . . . . . .
5-4
5.3
Alarma de tiempo para control motor (MCAT): FB82 . . . . . . . . . . . . . . . . .
5-7
5.4
Evento drum enmascarable (DRUM): FB85 . . . . . . . . . . . . . . . . . . . . . . . . .
5-10
Software estándar para S7-300 y S7-400 Funciones estándar, parte 2 A5E00066869-03
vii
Índice
6
Funciones y bloques de función de conversión . . . . . . . . . . . . . . . . . . . . . . . . . .
6-1
6.1
Crear el patrón de bits para el display de 7 segmentos (SEG): FC93 . . .
6-2
6.2
Convertir una cadena de caracteres ASCII en una cifra hexadecimal (ATH): FC94 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6-4
Convertir una cifra hexadecimal en una cadena de caracteres ASCII (HTA): FC95 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6-6
6.4
Codificar una posición binaria (ENCO): FC96 . . . . . . . . . . . . . . . . . . . . . . .
6-8
6.5
Decodificar una posición binaria (DECO): FC97 . . . . . . . . . . . . . . . . . . . . .
6-9
6.6
Generar el complemento a diez (BCDCPL): FC98 . . . . . . . . . . . . . . . . . . .
6-10
6.7
Sumar la cantidad de bits activados (BITSUM): FC99 . . . . . . . . . . . . . . . .
6-11
6.8
Escalar valores (SCALE): FC105 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6-12
6.9
Desescalar valores (UNSCALE): FC106 . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6-14
6.10
Algoritmo avance/retardo (LEAD_LAG): FB80 . . . . . . . . . . . . . . . . . . . . . . .
6-16
Función en coma flotante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7-1
7.1
Desviación típica (DEV): FC102 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7-2
Bloques de función de comparación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8-1
8.1
Comparar índice matriz (IMC): FB83 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8-2
8.2
Barrido de matriz (SMC): FB84 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8-6
6.3
7 8
Glosario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Glosario-1 Índice alfabético . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Índice-1
viii
Software estándar para S7-300 y S7-400 Funciones estándar, parte 2 A5E00066869-03
1
Funciones lógicas con bits
Este capítulo describe las funciones (FC) lógicas con bits que puede añadir a las operaciones estándar de que ya dispone, aumentando así la flexibilidad en la programación.
Apartado
Descripción
Página
1.1
Poner a cero un área de periferia o de marcas en la imagen del proceso (RSET): FC82
1-2
1.2
Poner a cero inmediatamente un área de salida (RSETI): FC100
1-4
1.3
Activar un área de marcas o de periferia en la imagen del proceso (SET): FC83
1-6
1.4
Activar inmediatamente un área de salida (SETI): FC101
1-8
Software estándar para S7-300 y S7-400 Funciones estándar, parte 2 A5E00066869-03
1-1
Funciones lógicas con bits
1.1
Poner a cero un área de periferia o de marcas en la imagen del proceso (RSET): FC82
Descripción
La función RSET pone a cero el estado de señal de todos los bits que están dentro de un área especificada, siempre que el bit MCR sea 1. Si el bit MCR es 0, el estado de señal de los bits de ese área no cambia. El parámetro N indica la cantidad de bits del área a desactivar. El puntero S_BIT apunta al primer bit de ese área.
Parámetros
En la tabla 1-1 se describen los parámetros de la función ”Poner a cero un área de periferia o de marcas en la imagen del proceso” (RSET).
Tabla 1-1
Parámetro
Parámetros de la función RSET (FC82)
Declaración
Tipo de datos
Area de memoria
Descripción
EN
Entrada
BOOL
E, A, M, D, L
La entrada de habilitación con estado de señal 1 activa el cuadro.
ENO
Salida
BOOL
E, A, M, D, L
La salida de habilitación tiene el estado de señal 1 si la función se ejecuta sin errores.
S_BIT
Entrada
Pointer*
E, A, M, D
Apunta al primer bit del área.
N
Entrada
INT
E, A, M, D, L, P o constante
Cantidad de bits a desactivar en el área.
* Puntero en formato de palabra doble cuando se trata de direccionamiento interárea indirecto por registro.
1-2
Software estándar para S7-300 y S7-400 Funciones estándar, parte 2 A5E00066869-03
Funciones lógicas con bits
Información sobre errores
Si el puntero S_BIT apunta al área de memoria de la periferia externa (memoria P) no cambia el estado de señal de ningún bit dentro del área en cuestión, y el estado de señal de la salida de habilitación (ENO) se pone a 0.
Ejemplo
La figura 1-1 muestra cómo opera la función RSET. La función se ejecuta cuando el estado de señal de la entrada E 0.0 es 1 (activada) y el bit MCR es 1. En este ejemplo, S_BIT apunta al primer bit en la dirección M0.0. El parámetro N indica que son 10 los bits a desactivar. Una vez que se ha ejecutado la función, se pone a cero el estado de señal de los 10 bits del área comprendida entre M0.0 y M1.1. Si la función se ejecuta sin errores, los estados de señal de la salida de habilitación (ENO) y de la salida A 4.0 se ponen a 1 (activadas).
RSET FC82 EN ENO
E 0.0 P#M0.0 10
A 4.0
S_BIT N
antes de la ejecución:
después de la ejecución:
M0.7 M0.0 1 1 1 1 1 1 1 1
M0.7 M0.0 0 0 0 0 0 0 0 0
M1.7 M1.0 1 1 1 1 1 1 1 1
M1.7 M1.0 1 1 1 1 1 1 0 0
Figura 1-1
Poner a cero un área de periferia o de marcas en la imagen del proceso (RSET)
Software estándar para S7-300 y S7-400 Funciones estándar, parte 2 A5E00066869-03
1-3
Funciones lógicas con bits
1.2
Poner a cero inmediatamente un área de salida (RSETI): FC100
Descripción
La función ”Poner a cero inmediatamente un área de salida” (RSETI) pone a cero el estado de señal de un área de bytes cuando el bit MCR es 1. Si el bit MCR es 0, el estado de señal de los bits de ese área no cambia. El puntero S_BYTE apunta al primer byte del área: El parámetro N indica el tamaño del área; este tamaño se expresa con la cantidad de bits del área. Por ejemplo: si se quiere indicar un área de 2 bytes, habrá que darle a N el valor 16 (16 bits).
Nota El valor de N tiene que ser múltiplo de ocho (por ej. 8, 16, 24, etc.).
El puntero S_BYTE debe indicar al área de memoria de la periferia externa (memoria P). Dado que a la memoria P se accede por bytes, palabras y palabras dobles, S_BYTE debe apuntar a una dirección que sea límite de byte, lo cual significa que el número de bit del puntero tiene que ser 0.
Nota El estado de señal de los bits correspondientes en la imagen de proceso de las salidas (A) también se pone a 0.
Parámetros Tabla 1-2
Parámetro
En la tabla 1-2 se describen los parámetros de la función ”Poner a cero inmediatamente un área de salida” (RSETI). Parámetros de la función RSETI (FC100)
Declaración
Tipo de datos
Area de memoria
Descripción
EN
Entrada
BOOL
E, A, M, D, L
La entrada de habilitación con estado de señal 1 activa el cuadro.
ENO
Salida
BOOL
E, A, M, D, L
La salida de habilitación tiene el estado de señal 1 si la función se ejecuta sin errores.
S_BYTE
Entrada
Pointer*
P
Apunta al primer byte del área.
N
Entrada
INT
E, A, M, D, L, P o constante
Tamaño del área de bytes a desactivar, indicado por la cantidad de bits del área (con un múltiplo de 8, por ej., 8, 16, 24, etc.).
* Puntero en formato de palabra doble cuando se trata de direccionamiento interárea indirecto por registro.
1-4
Software estándar para S7-300 y S7-400 Funciones estándar, parte 2 A5E00066869-03
Funciones lógicas con bits
Información sobre errores
Ejemplo
Si se cumple alguna de las condiciones siguientes, el estado de señal de todos los bits dentro del área indicada permanece inalterado, y el estado de señal de la salida de habilitación (ENO) se pone a cero. •
El puntero S_BYTE apunta a un área de memoria distinta de la periferia externa (memoria P).
•
El puntero S_BYTE apunta a una dirección que no es un valor límite de byte.
•
El valor de N no es múltiplo de ocho.
La figura 1-2 muestra cómo opera la función RSETI. Si el estado de señal de la entrada E 0.0 es 1 (activada) y el bit MCR es 1, entonces se ejecuta la función RSETI. En este ejemplo, S_BYTE apunta al primer byte en la dirección P2.0. El parámetro N indica que son 16 los bits a desactivar, es decir, 2 bytes. Una vez que se ha ejecutado la función se pone a cero el estado de señal de los 16 bits del área comprendida entre P2.0 y P3.7. Si la función se ejecuta sin errores, los estados de señal de la salida de habilitación (ENO) y de la salida A 4.0 se ponen a 1 (activadas).
RSETI FC100 EN ENO
E 0.0 P#P2.0 16
A 4.0
S_BYTE N
antes de la ejecución: P1.7 P1.0 1 1 1 1 1 1 1 1
después de la ejecución: P1.7 P1.0 1 1 1 1 1 1 1 1
P2.7 P2.0 1 1 1 1 1 1 1 1
P2.7 P2.0 0 0 0 0 0 0 0 0
P3.7 P3.0 1 1 1 1 1 1 1 1
P3.7 P3.0 0 0 0 0 0 0 0 0
P4.7 P4.0 1 1 1 1 1 1 1 1
P4.7 P4.0 1 1 1 1 1 1 1 1
Figura 1-2
Poner a cero inmediatamente un área de salida (RSETI)
Software estándar para S7-300 y S7-400 Funciones estándar, parte 2 A5E00066869-03
1-5
Funciones lógicas con bits
1.3
Activar un área de marcas o de periferia en la imagen del proceso (SET): FC83
Descripción
La función SET activa el estado de señal de todos los bits dentro de un área especificada, siempre que el bit MCR sea 1. Si el bit MCR es 0, el estado de señal de los bits de ese área no cambia. El parámetro N indica la cantidad de bits a activar dentro del área. El puntero S_BIT apunta al primer bit de ese área.
Parámetros
En la tabla 1-3 se describen los parámetros de la función ”Activar un área de marcas o de periferia en la imagen del proceso” SET.
Tabla 1-3
Parámetro
Parámetros de la función SET (FC83)
Declaración
Tipo de datos
Area de memoria
Descripción
EN
Entrada
BOOL
E, A, M, D, L
La entrada de habilitación con estado de señal 1 activa el cuadro.
ENO
Salida
BOOL
E, A, M, D, L
La salida de habilitación tiene el estado de señal 1 si la función se ejecuta sin errores.
S_BIT
Entrada
Pointer*
E, A, M, D
Apunta al primer bit del área.
N
Entrada
INT
E, A, M, D, L, P o constante
Cantidad de bits a activar en el área.
* Puntero en formato de palabra doble cuando se trata de direccionamiento interárea indirecto por registro.
1-6
Software estándar para S7-300 y S7-400 Funciones estándar, parte 2 A5E00066869-03
Funciones lógicas con bits
Información sobre errores
Si el puntero S_BIT apunta al área de memoria de la periferia externa (memoria P), no cambia el estado de señal de ningún bit dentro del área en cuestión, y el estado de señal de la salida de habilitación (ENO) se pone a 0.
Ejemplo
La figura 1-3 muestra cómo opera la función ”Activar un área de marcas o de periferia en la imagen del proceso” (SET). Si el estado de señal de la entrada E 0.0 es 1 (activada) y el bit MCR es 1, entonces se ejecuta la función. En este ejemplo, S_BIT apunta al primer bit en la dirección M0.0. El parámetro N indica que son 10 los bits a desactivar. Una vez que se ha ejecutado la función se pone a 1 el estado de señal de los 10 bits del área comprendida entre M0.0 y M1.1. Si la función se ejecuta sin errores, los estados de señal de la salida de habilitación (ENO) y de la salida A 4.0 se ponen a 1 (activadas).
SET FC83
E 0.0 EN P#M0.0 10
A 4.0 ENO
S_BIT N
antes de la ejecución:
después de la ejecución:
M0.7 M0.0 0 0 0 0 0 0 0 0
M0.7 M0.0 1 1 1 1 1 1 1 1
M1.7 M1.0 0 0 0 0 0 0 0 0
M1.7 M1.0 0 0 0 0 0 0 1 1
Figura 1-3
Activar un área de marcas o de periferia en la imagen del proceso (SET)
Software estándar para S7-300 y S7-400 Funciones estándar, parte 2 A5E00066869-03
1-7
Funciones lógicas con bits
1.4
Activar inmediatamente un área de salida (SETI): FC101
Descripción
La función ”Activar inmediatamente un área de salida” (SETI) activa el estado de señal de todos los bits dentro de un área de bytes especificada, siempre que el bit MCR sea 1. Si el bit MCR es 0, el estado de señal de los bytes de ese área no cambia. El puntero S_BYTE apunta al primer byte de ese área. La entrada N indica el tamaño del área; este tamaño se expresa con la cantidad de bits que contiene el área; por ejemplo: si se quiere indicar un área de 2 bytes, habrá que darle a N el valor 16 (16 bits).
Nota El valor de N tiene que ser múltiplo de ocho (por ej. 8, 16, 24, etc.).
El puntero S_BYTE debe apuntar al área de memoria de la periferia externa (memoria P). Dado que a la memoria P se accede por bytes, palabras y palabras dobles, S_BYTE debe apuntar a una dirección que sea límite de byte, lo cual significa que el número de bit del puntero tiene que ser 0.
Nota El estado de señal de los bits correspondientes en la imagen de proceso de las salidas (A) también se pone a 0.
Parámetros Tabla 1-4
Parámetro
En la tabla 1-4 se describen los parámetros de la función ”Activar inmediatamente un área de salida”(SETI). Parámetros de la función SETI (FC101)
Declaración
Tipo de datos
Area de memoria
Descripción
EN
Entrada
BOOL
E, A, M, D, L
La entrada de habilitación con estado de señal 1 activa el cuadro.
ENO
Salida
BOOL
E, A, M, D, L
La salida de habilitación tiene el estado de señal 1 si la función se ejecuta sin errores.
S_BYTE
Entrada
Pointer*
P
Apunta al primer byte del área.
N
Entrada
INT
E, A, M, D, L, P o constante
Tamaño del área de bytes a desactivar, indicado por la cantidad de bits del área (con un múltiplo de 8, por ej., 8, 16, 24, etc.).
* Puntero en formato de palabra doble cuando se trata de direccionamiento interárea indirecto por registro.
1-8
Software estándar para S7-300 y S7-400 Funciones estándar, parte 2 A5E00066869-03
Funciones lógicas con bits
Información sobre errores
Ejemplo
Si se cumple una de las condiciones siguientes, el estado de señal de todos los bits dentro del área indicada permanece inalterado, y el estado de señal de la salida de habilitación (ENO) se pone a cero. •
El puntero S_BYTE apunta a un área de memoria distinta de la periferia externa (memoria P).
•
El puntero S_BYTE apunta a una dirección que no es un valor límite de byte.
•
El valor de N no es múltiplo de ocho.
La figura 1-4 muestra cómo opera la función ”Activar inmediatamente un área de salida” (SETI). Si el estado de señal de la entrada E 0.0 es 1 (activada) y el bit MCR es 1, entonces se ejecuta la función SETI. En este ejemplo, S_BYTE apunta al primer byte en la dirección P 2.0. El parámetro N indica que son 16 los bits a desactivar, es decir, 2 bytes. Una vez que se ha ejecutado la operación se activa el estado de señal de los 16 bits del área comprendida entre P2.0 y P3.7, es decir, se ponen a 1. Si la función se ejecuta sin errores, los estados de señal de la salida de habilitación (ENO) y de la salida A 4.0 se ponen a 1 (activadas).
SETI FC101 EN ENO
E 0.0 P#P2.0 16
A 4.0
S_BYTE N
antes de la ejecución: P1.7 P1.0 0 0 0 0 0 0 0 0
después de la ejecución: P1.7 P1.0 0 0 0 0 0 0 0 0
P2.7 P2.0 0 0 0 0 0 0 0 0
P2.7 P2.0 1 1 1 1 1 1 1 1
P3.7 P3.0 0 0 0 0 0 0 0 0
P3.7 P3.0 1 1 1 1 1 1 1 1
P4.7 P4.0 0 0 0 0 0 0 0 0
P4.7 P4.0 0 0 0 0 0 0 0 0
Figura 1-4
Activar inmediatamente un área de salida (SETI)
Software estándar para S7-300 y S7-400 Funciones estándar, parte 2 A5E00066869-03
1-9
Funciones lógicas con bits
1-10
Software estándar para S7-300 y S7-400 Funciones estándar, parte 2 A5E00066869-03
2
Funciones de tabla
Este capítulo describe las funciones (FC) de tabla que puede añadir a las operaciones estándar para aumentar la flexibilidad de la programación.
Apartado
Descripción
Página
2.1
Añadir un elemento a una tabla (ATT): FC84
2-2
2.2
Extraer el elemento más antiguo de una tabla (FIFO): FC85
2-4
2.3
Buscar un valor en una tabla (TBL_FIND): FC86
2-6
2.4
Extraer el elemento más reciente de una tabla (LIFO): FC87
2-9
2.5
Realizar una operación en una tabla (TBL): FC88
2-11
2.6
Copiar un valor de una tabla (TBL_WRD): FC89
2-13
2.7
Combinar lógicamente un valor con un elemento de una tabla y almacenarlo (WRD_TBL): FC91
2-15
2.8
Tabla de datos correlativos (CDT): FC103
2-17
2.9
Enlace lógico de tablas (TBL_TBL): FC104
2-19
Software estándar para S7-300 y S7-400 Funciones estándar, parte 2 A5E00066869-03
2-1
Funciones de tabla
2.1
Añadir un elemento a una tabla (ATT): FC84
Descripción
La función ”Añadir un elemento a una tabla” ATT añade el contenido del parámetro DATA como siguiente elemento de una tabla, e incrementa en uno el registro que indica la cantidad de elementos de esa tabla. La tabla está compuesta por palabras. Esta función permite añadir elementos en tablas que se utilicen con las funciones FIFO y LIFO. •
El primer registro de la tabla FIFO o LIFO indica la cantidad máxima de elementos que puede contener la tabla (longitud de tabla).
•
El segundo registro de la tabla indica la cantidad de elementos que contiene la tabla actualmente.
•
El tercer registro contiene la primera palabra de datos.
Nota Cuando cree la tabla debe inicializar los dos primeros registros.
Parámetros Tabla 2-1
Parámetro
En la tabla 2-1 se describen los parámetros de la función ”Añadir un elemento a una tabla” (ATT). Parámetros de la función ATT (FC84)
Declaración
Tipo de datos
Area de memoria
Descripción
EN
Entrada
BOOL
E, A, M, D, L
La entrada de habilitación con estado de señal 1 activa el cuadro.
ENO
Salida
BOOL
E, A, M, D, L
La salida de habilitación tiene el estado de señal 1 si la función se ejecuta sin errores.
DATA
Entrada
WORD
E, A, M, D, L, P o constante
Datos a añadir a la tabla.
TABLE
Entrada
Pointer*
E, A, M, D
Apunta al comienzo de la tabla FIFO o LIFO.
* Puntero en formato de palabra doble cuando se trata de direccionamiento interárea indirecto por registro.
2-2
Software estándar para S7-300 y S7-400 Funciones estándar, parte 2 A5E00066869-03
Funciones de tabla
Información sobre errores
Si la cantidad de elementos es igual o mayor que la longitud de tabla, entonces no se añade el parámetro DATA (= nuevo elemento) a la tabla, y el estado de señal de la salida de habilitación (ENO) se pone a cero.
Ejemplo
La figura 2-1 muestra cómo opera la función ”Añadir un elemento a una tabla” ATT. La función se ejecuta cuando el estado de señal en la entrada E 0.0 es 1 (activada). En este ejemplo se añade el contenido del parámetro DATA como quinto elemento de la tabla, y se incrementa el registro que indica la cantidad de elementos de 4 a 5. Si la función se ejecuta sin errores, los estados de señal de la salida de habilitación (ENO) y de la salida A4.0 se ponen a 1 (activadas).
ATT FC84
E 0.0 EN W#16#0024 P#DB1.DBX10.0
A 4.0 ENO
DATA TABLE
Antes de la ejecución: Tabla (long. de tabla) DBW10 cantidad de elementos DBW12 DBW14 DBW16 DBW18 DBW20 DBW22 DBW24
= = = = = = = =
W#16#0006 W#16#0004 W#16#0012 W#16#0029 W#16#0090 W#16#0002 W#16#0000 W#16#0000
Después de la ejecución: Tabla (long. de tabla) DBW10 = W#16#0006 cantidad de elementos DBW12 = W#16#0005 DBW14 = W#16#0012 DBW16 = W#16#0029 DBW18 = W#16#0090 DBW20 = W#16#0002 DBW22 = W#16#0024 DBW24 = W#16#0000 Figura 2-1
Añadir un elemento a una tabla (ATT)
Software estándar para S7-300 y S7-400 Funciones estándar, parte 2 A5E00066869-03
2-3
Funciones de tabla
2.2
Extraer el elemento más antiguo de una tabla (FIFO): FC85
Descripción
La función ”Extraer el elemento más antiguo de una tabla” FIFO (del inglés First In / First Out) extrae el elemento más antiguo de una tabla FIFO, devolviéndolo como valor de respuesta de la función. La cantidad de elementos de la tabla se decrementa en uno y, si aún siguen quedando elementos dentro de la tabla, son desplazados hacia abajo. La tabla FIFO está compuesta por palabras. Aplicando la función ATT puede añadir elementos a la tabla FIFO.
Parámetros Tabla 2-2
Parámetro
•
El primer registro de la tabla indica la cantidad máxima de elementos que puede tener (longitud de tabla).
•
El segundo registro de la tabla indica la cantidad de elementos que contiene la tabla actualmente.
•
El tercer registro contiene la primera palabra de datos
En la tabla 2-2 se describen los parámetros de la función ”Extraer el elemento más antiguo de una tabla” FIFO. Parámetros de la función FIFO (FC85)
Declaración
Tipo de datos
Area de memoria
Descripción
EN
Entrada
BOOL
E, A, M, D, L
La entrada de habilitación con estado de señal 1 activa el cuadro.
ENO
Salida
BOOL
E, A, M, D, L
La salida de habilitación tiene el estado de señal 1 si la función se ejecuta sin errores.
TABLE
Entrada
Pointer*
E, A, M, D
Apunta al comienzo de la tabla FIFO.
RET_VAL
Salida
WORD
E, A, M, D, L, P
Entrada más antigua de la tabla FIFO.
* Puntero en formato de palabra doble cuando se trata de direccionamiento interárea indirecto por registro.
2-4
Software estándar para S7-300 y S7-400 Funciones estándar, parte 2 A5E00066869-03
Funciones de tabla
Información sobre errores
Si la tabla FIFO está vacía (número de elementos = 0), el valor de respuesta RET_VAL no cambia, y el estado de señal de la salida de habilitación (ENO) se pone a cero.
Ejemplo
La figura 2-2 muestra cómo opera la función ”Extraer el elemento más antiguo de una tabla” (FIFO). Si el estado de señal de la entrada E 0.0 es 1 (activada) se ejecuta la función. En este ejemplo, el valor que se extrae como valor de la función es MW2, ya que éste corresponde al elemento más antiguo de la tabla. La cantidad de elementos es decrementada de 5 a 4, y los elementos que quedan son desplazados hacia abajo dentro de la tabla. Si la función se ejecuta sin errores, los estados de señal de la salida de habilitación (ENO) y de la salida A4.0 se ponen a 1.
FIFO FC85
E 0.0 EN P#DB1.DBX10.0
A 4.0 ENO
TABLE RET_VAL
MW2
Antes de la ejecución: Tabla (long. de tabla) DBW10 = cantidad de elementos DBW12 = DBW14 = DBW16 = DBW18 = DBW20 = DBW22 = DBW24 = RET_VAL MW2 =
W#16#0006 W#16#0005 W#16#0012 W#16#0029 W#16#0090 W#16#0002 W#16#0024 W#16#0000 W#16#0000
Después de la ejecución: Tabla (long. de tabla) DBW10 = W#16#0006 cantidad de elementos DBW12 = W#16#0004 DBW14 = W#16#0029 DBW16 = W#16#0090 DBW18 = W#16#0002 DBW20 = W#16#0024 DBW22 = W#16#0024 DBW24 = W#16#0000 RET_VAL MW2 = W#16#0012 Figura 2-2
Extraer el elemento más antiguo de una tabla (FIFO)
Software estándar para S7-300 y S7-400 Funciones estándar, parte 2 A5E00066869-03
2-5
Funciones de tabla
2.3
Buscar un valor en una tabla (TBL_FIND): FC86
Descripción
La función ”Buscar un valor en una tabla” TBL_FIND sirve para buscar un patrón diferente o para buscar un patrón no coherente en un bloque de memoria. Esta función ejecuta la orden de comparación (CMD) entre el patrón fuente (PATRN) y los elementos de la tabla fuente (SRC). La función busca (a partir del elemento indizado en INDX) el primer elemento de la tabla que cumpla las condiciones de la comparación, y deposita su número en INDX. Caso de no encontrar ningún elemento que cumpla dichas condiciones, el parámetro INDX indica más allá del final de la tabla, y se desactiva la salida de la función. •
Si CMD = 1, la función busca el primer valor que es igual al valor de PATRN.
•
Si CMD = 2, la función busca el primer valor distinto del valor de PATRN.
•
El primer registro de la tabla indica la cantidad máxima de elementos que puede haber en la tabla (longitud de la tabla).
•
El segundo registro contiene el primer elemento de la tabla.
Nota Debe inicializar el primer registro (longitud de la tabla) de la tabla.
2-6
Software estándar para S7-300 y S7-400 Funciones estándar, parte 2 A5E00066869-03
Funciones de tabla
Parámetros Tabla 2-3
Parámetro
En la tabla 2-3 se describen los parámetros de la función ”Buscar un valor en una tabla” (TBL_FIND). Parámetros de la función TBL_FIND (FC86)
Declaración
Tipo de datos
Area de memoria
Descripción
EN
Entrada
BOOL
E, A, M, D, L
La entrada de habilitación con estado de señal 1 activa el cuadro.
ENO
Salida
BOOL
E, A, M, D, L
La salida de habilitación tiene el estado de señal 1 si la función se ejecuta sin errores.
SRC
Entrada
Pointer*
E, A, M, D
Apunta al comienzo de la tabla.
PATRN
Entrada
Pointer*
E, A, M, D
Apunta al patrón que hay que buscar.
CMD
Entrada
BYTE
E, A, M, D, L, P
Indica el tipo de operación a ejecutar: B#16#01 = igual que B#16#02 = distinto de
E_TYPE
Entrada
BYTE
E, A, M, D, L, P
Indica el tipo de datos de los elementos de la tabla. La función TBL_FIND admite los siguientes tipos de datos: B#16#02 = BYTE B#16#04 = WORD B#16#05 = INT B#16#06 = DWORD B#16#07 = DINT B#16#08 = REAL
RET_VAL
Salida
WORD
E, A, M, D, L, P
Da el valor W#16#0000 cuando la función se ejecuta sin errores; si los valores son distintos de W#16#0000, véase la información sobre errores.
INDX
Entrada_Salida
WORD
E, A, M, D, L
Indice de la tabla que señala: Entrada: número del elemento donde debe empezar la búsqueda Salida: número del elemento que cumple la condición
* Puntero en formato de palabra doble cuando se trata de direccionamiento interárea indirecto por registro.
Información sobre errores
Si se cumple alguna de las condiciones enumeradas en la tabla 2-4 no se modifican los valores de la tabla. El estado de señal de la salida de habilitación (ENO) se pone a cero y el valor de respuesta se ajusta como corresponde (véase tabla 2-4). Tabla 2-4
Condiciones de error en la función FC86
RET_VAL
Significado
W#16#0008
No se han encontrado valores que cumplan la condición.
W#16#0009
Los parámetros E_TYPE y/o CMD no son válidos.
Software estándar para S7-300 y S7-400 Funciones estándar, parte 2 A5E00066869-03
2-7
Funciones de tabla
Ejemplo
La figura 2-3 muestra cómo opera la función ”Buscar un valor en una tabla” (TBL_FIND). La función se ejecuta cuando el estado de señal de la entrada E 0.0 es 1 (activada). En este ejemplo, al ser 4 el tipo de datos (E_TYPE = 04), los datos se almacenan en la tabla en palabras a partir del elemento al que apunta el parámetro SRC. Estas palabras se comparan con el valor del patrón 5555, que está almacenado en la dirección indicada por PATRN. Como el parámetro CMD tiene en el ejemplo el valor 1, la búsqueda localiza el primer valor de la tabla en SRC que sea igual que el valor del patrón. El valor INDX apunta al elemento donde debe comenzar la búsqueda. Una vez que se ha ejecutado la operación, el parámetro INDX indica el número del elemento que cumple la condición de búsqueda. Si la función se ejecuta sin errores, los estados de señal de la salida de habilitación (ENO) y de la salida A4.0 se ponen a 1 (activadas), y el valor de respuesta (RET_VAL) toma el valor W#16#0000.
E 0.0 EN P#DB1.DBX0.0 P#DB2.DBX10.0
SRC CMD
B#16#04
E_TYPE
ENO
RET_VAL
MW0
El primer registro de la tabla indica la longitud de la operación de búsqueda. El valor 0004 hace que se busquen en los siguientes 4 elementos de la tabla. El parámetro INDX pasa de DW0 (antes de la ejecución) a DW6 (después de la ejecución), porque el patrón en la dirección DW6 corresponde con el patrón 5555 en la dirección de puntero PATRN.
INDX
Antes de la ejecución: SRC (long. de tabla) DBW0 DBW2 DBW4 DBW6 DBW8
= = = = =
INDX
MW2
= W#16#0000
PATRN
DBW10 = W#16#5555
INDX
2-8
A 4.0
PATRN
B#16#01 MW2
Figura 2-3
TBL_FIND FC86
Después de la ejecución: MW2
W#16#0004 W#16#1111 W#16#3333 W#16#5555 W#16#7777
= W#16#0003
Buscar un valor en una tabla (TBL_FIND)
Software estándar para S7-300 y S7-400 Funciones estándar, parte 2 A5E00066869-03
Funciones de tabla
2.4
Extraer el elemento más reciente de una tabla (LIFO): FC87
Descripción
La función ”Extraer el elemento más reciente de una tabla” LIFO (del inglés Last In / First Out) extrae el elemento más nuevo de una tabla LIFO, devolviéndolo como valor de respuesta de la función. La cantidad de elementos de la tabla se decrementa en uno. La tabla FIFO está compuesta por palabras. Aplicando la función ATT puede añadir elementos a la tabla LIFO.
Parámetros Tabla 2-5
Parámetro
•
El primer registro de la tabla indica la cantidad máxima de elementos que puede tener (longitud de tabla).
•
El segundo registro de la tabla indica la cantidad de elementos que contiene la tabla actualmente.
•
El tercer registro contiene la primera palabra de datos.
En la tabla 2-5 se describen los parámetros de la función ”Extraer el elemento más reciente de una tabla” LIFO. Parámetros de la función LIFO (FC87)
Declaración
Tipo de datos
Area de memoria
Descripción
EN
Entrada
BOOL
E, A, M, D, L
La entrada de habilitación con estado de señal 1 activa el cuadro.
ENO
Salida
BOOL
E, A, M, D, L
La salida de habilitación tiene el estado de señal 1 si la función se ejecuta sin errores.
TABLE
Entrada
Pointer*
E, A, M, D
Apunta al comienzo de la tabla LIFO.
RET_VAL
Salida
WORD
E, A, M, D, L, P
Elemento más reciente que se ha extraído de la tabla LIFO.
* Puntero en formato de palabra doble cuando se trata de direccionamiento interárea indirecto por registro.
Software estándar para S7-300 y S7-400 Funciones estándar, parte 2 A5E00066869-03
2-9
Funciones de tabla
Información sobre errores
Si la tabla LIFO está vacía (número de elementos = 0), entonces el valor de respuesta RET_VAL no cambia, y el estado de señal de la salida de habilitación (ENO) se pone a cero.
Ejemplo
La figura 2-4 muestra cómo opera la función ”Extraer el elemento más reciente de una tabla” LIFO. La función se ejecuta cuando el estado de señal de la entrada E 0.0 es 1 (activada). En este ejemplo, el valor que se extrae como valor de la función es MW2, ya que éste corresponde al elemento más nuevo de la tabla, es decir, al último elemento que se introdujo en la tabla. La cantidad de elementos es decrementada de 5 a 4. Si la función se ejecuta sin errores, los estados de señal de la salida de habilitación (ENO) y de la salida A4.0 se ponen a 1.
LIFO FC87
E 0.0 EN P#DB1.DBX10.0
A 4.0 ENO
TABLE RET_VAL
MW2
Antes de la ejecución: Tabla (long. de tabla) DBW10 = cantidad de elementos DBW12 = DBW14 = DBW16 = DBW18 = DBW20 = DBW22 = DBW24 = RET_VAL
MW2
W#16#0006 W#16#0005 W#16#0012 W#16#0029 W#16#0090 W#16#0002 W#16#0024 W#16#0000
= W#16#0000
Después de la ejecución: Tabla (long. de tabla) DBW10 = W#16#0006 cantidad de elementos DBW12 = W#16#0004 DBW14 = W#16#0012 DBW16 = W#16#0029 DBW18 = W#16#0090 DBW20 = W#16#0002 DBW22 = W#16#0024 DBW24 = W#16#0000 RET_VAL
Figura 2-4
2-10
MW2
= W#16#0024
Extraer el elemento más reciente de una tabla (LIFO)
Software estándar para S7-300 y S7-400 Funciones estándar, parte 2 A5E00066869-03
Funciones de tabla
2.5
Realizar una operación en una tabla (TBL): FC88
Descripción
La función ”Realizar una operación en una tabla” TBL realiza en la tabla fuente la operación especificada en el parámetro CMD, y escribe el resultado de la operación en el mismo elemento de la tabla. •
El primer registro de la tabla indica la cantidad máxima de elementos que puede tener (longitud de tabla).
•
El segundo registro de la tabla indica la cantidad de elementos que contiene la tabla actualmente.
•
Si el tipo de datos (E_TYPE) se ha ajustado a REAL, el valor del parámetro CMD para la operación de complementar a uno no es válido.
Nota Al crear la tabla tiene que inicializar el primer registro.
Parámetros Tabla 2-6
Parámetro
En la tabla 2-6 se describen los parámetros de la función ”Realizar una operación en una tabla” (TBL). Parámetros de la función TBL (FC88)
Declaración
Tipo de datos
Area de memoria
Descripción
EN
Entrada
BOOL
E, A, M, D, L
La entrada de habilitación con estado de señal 1 activa el cuadro.
ENO
Salida
BOOL
E, A, M, D, L
La salida de habilitación tiene el estado de señal 1 si la función se ejecuta sin errores.
SRC
Entrada
Pointer*
E, A, M, D
Apunta al comienzo de la tabla.
CMD
Entrada
BYTE
E, A, M, D, L, P
Indica el tipo de operación a ejecutar. Las operaciones válidas y sus valores son: B#16#03 = complementar a uno B#16#04 = borrar B#16#05 = negar B#16#06 = raíz cuadrada
E_TYPE
Entrada
BYTE
E, A, M, D, L, P
Indica el tipo de datos de los elementos de la tabla. Los tipos válidos para la función TBL son: B#16#04 = WORD B#16#05 = INT B#16#06 = DWORD B#16#07 = DINT B#16#08 = REAL
RET_VAL
Salida
WORD
E, A, M, D, L, P
Da el valor W#16#0000 si la función se ejecuta sin errores; acerca de otros valores véase la información sobre errores.
* Puntero en formato de palabra doble cuando se trata de direccionamiento interárea indirecto por registro.
Software estándar para S7-300 y S7-400 Funciones estándar, parte 2 A5E00066869-03
2-11
Funciones de tabla
Información sobre errores
Los valores de la tabla no se modificarán si CMD o E_TYPE no son válidos, y tampoco cuando CMD y E_TYPE no sean compatibles. En estos casos, el estado de señal de la salida de habilitación (ENO) se pone a cero y el valor de respuesta (RET_VAL) toma el valor W#16#0008.
Ejemplo
La figura 2-5 muestra cómo opera la función ”Realizar una operación en una tabla” (TBL). La función se ejecuta cuando el estado de señal de la entrada E 0.0 es 1 (activada). En este ejemplo, el puntero SRC indica las direcciones del bloque de datos con el que se va a ejecutar la función. Al ser 4 el tipo de datos (E_TYPE = 04), los datos se almacenan en la tabla en las palabras a partir del elemento al que apunta el parámetro SRC. Como el valor del parámetro CMD es 4 (borrar), al ejecutarse la función son borradas (puestas a cero) todas las palabras de la tabla. En este caso, el primer registro de la tabla, que indica la longitud de la misma, tiene el valor 5, por lo que se borrarán las siguientes cinco palabras de la tabla. Si la función se ejecuta sin errores, los estados de señal de la salida de habilitación (ENO) y de la salida A4.0 se ponen a 1 (activadas), y RET_VAL toma el valor W#16#0000.
TBL FC88
E 0.0
EN
P#DB1.DBX0.0
SRC
B#16#04
CMD
B#16#04
E_TYPE
A 4.0
ENO RET_VAL
MW0
Antes de la ejecución: SRC (longitud de tabla) DBW0 DBW2 DBW4 DBW6 DBW8 DBW10
= = = = = =
W#16#0005 W#16#2000 W#16#3000 W#16#4000 W#16#5000 W#16#6000
Después de la ejecución: SRC (longitud de tabla) DBW0 =W#16#0005 DBW2 =W#16#0000 DBW4 =W#16#0000 DBW6 =W#16#0000 DBW8 =W#16#0000 DBW10 = W#16#0000 Figura 2-5
2-12
Realizar una operación en una tabla (TBL)
Software estándar para S7-300 y S7-400 Funciones estándar, parte 2 A5E00066869-03
Funciones de tabla
2.6
Copiar un valor de una tabla (TBL_WRD): FC89
Descripción
La función ”Copiar un valor de una tabla” (TBL_WRD) copia el registro indicado por el parámetro INDX desde la tabla SRC al registro destino al que indica el puntero DEST; a continuación incrementa el valor de INDX siempre que éste fuera menor que la longitud máxima de la tabla, indicada en la primera palabra de la misma, SRC [0]. En caso de que INDX indique el último elemento de la tabla cuando se llama a la función, el bit de la salida A se pone a cero tras ejecutarse la función. •
El primer registro de la tabla indica la cantidad máxima de elementos que puede tener (longitud de tabla).
•
El segundo registro indica el primer elemento de la tabla.
Nota Cuando cree la tabla debe inicializar el primer registro.
Parámetros Tabla 2-7
Parámetro
En la tabla 2-7 se describen los parámetros de la función ”Copiar un valor de una tabla” (TBL_WRD). Parámetros de la función TBL_WRD (FC89)
Declaración
Tipo de datos
Area de memoria
Descripción
EN
Entrada
BOOL
E, A, M, D, L
La entrada de habilitación con estado de señal 1 activa el cuadro.
ENO
Salida
BOOL
E, A, M, D, L
La salida de habilitación tiene el estado de señal 1 si la función se ejecuta sin errores.
SRC
Entrada
Pointer*
E, A, M, D
Apunta al comienzo de la tabla.
DEST
Entrada
Pointer*
E, A, M, D
Apunta al registro de destino.
E_TYPE
Entrada
BYTE
E, A, M, D, L, P
Indica el tipo de datos que tienen los elementos de la tabla. Los tipos válidos para la función TBL_WRD son: B#16#04 = WORD B#16#05 = INT B#16#06 = DWORD B#16#07 = DINT B#16#08 = REAL
RET_VAL
Salida
WORD
E, A, M, D, L, P
Da el valor W#16#0000 si la función se ejecuta sin errores; acerca de otros valores véase la información sobre errores.
Q
Salida
BOOL
A, M, D, L
Indica 0 si la variable INDX contiene el último elemento de la tabla cuando se llama a la función.
INDX
Entrada_Salida
WORD
E, A, M, L
Número del elemento a copiar.
* Puntero en formato de palabra doble cuando se trata de direccionamiento interárea indirecto por registro.
Software estándar para S7-300 y S7-400 Funciones estándar, parte 2 A5E00066869-03
2-13
Funciones de tabla
Información sobre errores
La función no será ejecutada si se da una de las condiciones enumeradas en la tabla 2-8. En esos casos, el estado de señal de la salida de habilitación (ENO) se pone a 0 y el valor de respuesta (RET_VAL) se ajusta como corresponde. Tabla 2-8
Condiciones de error en la función FC89
RET_VAL
Ejemplo
Significado
W#16#0007
INDX es 0.
W#16#0008
El tipo de datos (E_TYPE) no es válido.
W#16#0009
INDX está más allá del final de la tabla.
La figura 2-6 muestra cómo opera la función TBL_WRD. La función se ejecuta cuando el estado de señal de la entrada E 0.0 es 1 (activada). Al ser 4 el tipo de datos (E_TYPE = 04), en el elemento apuntado por DEST se copia la palabra que está almacenada en la tabla a partir de la dirección a la que apunta SRC. El valor de INDX apunta al elemento de la tabla que va a ser copiado. Después de haberse ejecutado satisfactoriamente la función, el valor de INDX se incrementa automáticamente en uno, de modo que tras este incremento apunte al elemento que sigue al que se ha copiado. En este ejemplo, al llamar a la función, INDX no indica el último elemento de la tabla, por lo que la salida A se pone a 1 tras ejecutarse la función. Si la función se ejecuta sin errores, los estados de señal de la salida de habilitación (ENO) y de la salida A4.0 se ponen a 1 (activadas), y el valor de respuesta (RET_VAL) toma el valor W#16#0000.
TBL_WRD FC89 EN ENO
E 0.0
P#DB1.DBX0.0 P#DB2.DBX20.0 B#16#04 MW1
A 4.0
RET_VAL
MW0
Q
M2.0
SRC DEST E_TYPE INDX
Antes de la ejecución: SRC (longitud de tabla) DBW0 = DBW2 = DBW4 = DBW6 = DBW8 =
Figura 2-6
2-14
W#16#0004 W#16#2000 W#16#3000 W#16#4000 W#16#5000
INDX
MW1
= W#16#0001
DEST
DBW20 = W#16#0000
INDX
Después de la ejecución: MW1 = W#16#0002
DEST
DBW20 = W#16#2000
Copiar un valor de una tabla (TBL_WRD)
Software estándar para S7-300 y S7-400 Funciones estándar, parte 2 A5E00066869-03
Funciones de tabla
2.7
Combinar lógicamente un valor con un elemento de una tabla y almacenarlo (WRD_TBL): FC91
Descripción
La función ”Combinar lógicamente un valor con un elemento de una tabla y almacenarlo” (WRD_TBL) ejecuta la operación (CMD) indicada con el elemento fuente (apuntado por SRC) y el elemento de la tabla en el offset (desplazamiento) que indica INDX. La función incrementa a continuación el valor de INDX siempre que dicho valor sea menor que la longitud de la tabla. •
El primer registro de la tabla indica la cantidad máxima de elementos que puede haber en la tabla (longitud de la tabla).
•
El segundo registro contiene el primer elemento de la tabla.
•
Si E_TYPE es REAL, entonces CMD sólo puede ser “Move.”
Nota Al crear la tabla debe inicializar el primer registro.
Parámetros Tabla 2-9
Parámetro
En la tabla 2-9 se describen los parámetros de la función ”Combinar lógicamente un valor con un elemento de una tabla y almacenarlo” (WRD_TBL). Parámetros de la función WRD_TBL (FC91)
Declaración
Tipo de datos
Area de memoria
Descripción
EN
Entrada
BOOL
E, A, M, D, L
La entrada de habilitación con estado de señal 1 activa el cuadro.
ENO
Salida
BOOL
E, A, M, D, L
La salida de habilitación tiene el estado de señal 1 si la función se ejecuta sin errores.
SRC
Entrada
Pointer*
E, A, M, D
Apunta al elemento fuente.
TABLE
Entrada
Pointer*
E, A, M, D
Apunta al comienzo de la tabla.
CMD
Entrada
BYTE
E, A, M, D, L, P
Indica qué operación debe ejecutarse. Las operaciones válidas y sus valores correspondientes son: B#16#0E = copiar B#16#07 = operación lógica Y B#16#08 = operación lógica O B#16#09 = operación lógica O EXCLUSIVA
E_TYPE
Entrada
BYTE
E, A, M, D, L, P
Indica el tipo de los datos (elementos) de la tabla. Los tipos válidos para la función WRD_TBL son los siguientes: B#16#04 = WORD B#16#05 = INT B#16#06 = DWORD B#16#07 = DINT B#16#08 = REAL
RET_VAL
Salida
WORD
E, A, M, D, L, P
Da el valor W#16#0000 cuando la función se ejecuta sin errores; si los valores son distintos de W#16#0000 véase la información sobre errores.
Q
Salida
BOOL
A, M, D, L
Indica 0 cuando el valor de INDX es el del último elemento de la tabla.
INDX
Entrada_Salida
WORD
E, A, M, D, L
Número del elemento con el que se va a operar.
* Puntero en formato de palabra doble cuando se trata de direccionamiento interárea indirecto por registro.
Software estándar para S7-300 y S7-400 Funciones estándar, parte 2 A5E00066869-03
2-15
Funciones de tabla
Información sobre errores
La función no se ejecutará si se da alguna de las condiciones enumeradas en la tabla 2-10. El estado de señal de la salida de habilitación (ENO) se pone a cero y el valor de respuesta (RET_VAL) se ajusta como corresponde. Tabla 2-10
Condiciones de error en la función FC91
RET_VAL
Ejemplo
Significado
W#16#0007
El valor del índice es 0.
W#16#0008
CMD o E_TYPE no son válidos, o CMD y E_TYPE no son compatibles.
W#16#0009
INDX está más allá del final de la tabla.
La figura 2-7 muestra cómo opera la función ”Combinar lógicamente un valor con un elemento de una tabla y almacenarlo” (WRD_TBL). La función se ejecuta cuando el estado de señal de la entrada E 0.0 es 1 (activada). Al ser 6 el tipo de datos (E_TYPE = 06), los datos se almacenan en la tabla en palabras a partir de la dirección a la que apunta TABLE. La primera palabra de la tabla indica la longitud de la misma, en este caso tres palabras dobles. El valor de INDX apunta al elemento de la tabla que va a ser procesado. El valor de CMD es 8, por lo que se ejecutará una operación lógica O. Como el valor apuntado por INDX es 2, dicha operación se ejecuta con la segunda palabra doble (66665544) y con el valor apuntado por SRC (11111111). Una vez realizada, se vuelve a escribir en la tabla el resultado de la operación lógica O (77775555), y el valor de INDX se incrementa automáticamente en uno. Si el valor de INDX indicaba el último elemento de la tabla al llamar a la función, la salida A se pone a 0 después de ejecutar la función. Dicha condición no se da en este ejemplo, por lo que la salida A se pone a 1 después de la ejecución. Si la función se ejecuta sin errores, los estados de señal de la salida de habilitación (ENO) y de la salida A4.0 se ponen a 1 (activadas), y el valor de respuesta (RET_VAL) toma el valor W#16#0000.
E 0.0 P#DB2.DBX20.0 P#DB1.DBX0.0 B#16#08 B#16#06 MW1
WRD_TBL FC91 EN ENO SRC RET_VAL TABLE Q CMD E_TYPE INDX
A 4.0 MW0 M2.0
Antes de la ejecución: SRC DBD20 = DW#16#11111111 TABLE (long. de tabla) DBW0 = W#16#0003 DBD2 = DW#16#99998877 DBD6 = DW#16#66665544 DBD10 = DW#16#33332222 INDX
MW1 = W#16#0002 Después de la ejecución: TABLE (long. de tabla) DBW0 = W#16#0003 DBD2 = DW#16#99998877 DBD6 = DW#16#77775555 DBD10 = DW#16#33332222 INDX MW1 = W#16#0003 Figura 2-7
2-16
Combinar lógicamente un valor con un elemento de una tabla y almacenarlo (WRD_TBL)
Software estándar para S7-300 y S7-400 Funciones estándar, parte 2 A5E00066869-03
Funciones de tabla
2.8
Tabla de datos correlativos (CDT): FC103
Descripción
La función ”Tabla de Datos Correlativos” (CDT) compara un valor de entrada (IN) con una tabla de valores de entrada (IN_TBL) preexistente y localiza el primer valor de esa tabla que sea igual o mayor que el valor de entrada especificado. Una vez localizado, el índice de dicho valor se utiliza para copiar el valor correlativo de la tabla de salidas (OUT_TBL) en el valor de salida (OUT). •
Los valores de la tabla de entradas tienen que estar en orden creciente, es decir, el primer elemento de la tabla es el menor, y el último el mayor.
•
El tamaño del valor de entrada, de los valores de la tabla y del valor de salida los determina el parámetro E_TYPE.
•
El primer registro de la tabla indica la cantidad de elementos que tiene la tabla (longitud de la tabla).
•
El segundo registro contiene el primer elemento de la tabla.
•
La cantidad de elementos tiene que ser la misma en ambas tablas y mayor que cero.
Nota Al crear las tablas debe inicializar el primer registro de cada tabla.
Parámetros Tabla 2-11
Parámetro
En la tabla 2-11 se describen los parámetros de la función ”Tabla de Datos Correlativos” (CDT). Parámetros de la función CDT (FC103)
Declaración
Tipo de datos
Area de memoria
Descripción
EN
Entrada
BOOL
E, A, M, D, L
La entrada de habilitación con estado de señal 1 activa el cuadro.
ENO
Salida
BOOL
E, A, M, D, L
La salida de habilitación tiene el estado de señal 1 si la función se ejecuta sin errores.
IN_TBL
Entrada
Pointer*
E, A, M, D
Apunta al comienzo de la tabla de entradas.
OUT_TBL
Entrada
Pointer*
E, A, M, D
Apunta al comienzo de la tabla de salidas.
IN
Entrada
Pointer*
E, A, M, D
Apunta al valor de entrada.
OUT
Entrada
Pointer*
E, A, M, D
Apunta al valor de salida.
E_TYPE
Entrada
BYTE
E, A, M, D, L, P
Indica de qué tipo son los datos de la tabla. Los tipos válidos para la función CDT son: B#16#05 = INT B#16#07 = DINT B#16#08 = REAL
RET_VAL
Salida
WORD
E, A, M, D, L, P
Da el valor W#16#0000 cuando la función se ejecuta sin errores; si los valores son distintos de W#16#0000, véase la información sobre errores.
* Puntero en formato de palabra doble cuando se trata de direccionamiento interárea indirecto por registro.
Software estándar para S7-300 y S7-400 Funciones estándar, parte 2 A5E00066869-03
2-17
Funciones de tabla
Información sobre errores
La función no será ejecutada si se da una de las condiciones enumeradas en la tabla 2-12. En esos casos, el estado de señal de la salida de habilitación (ENO) se pone a 0 y el valor de respuesta RET_VAL se ajusta como corresponde. Tabla 2-12
Condiciones de error en la función FC103
RET_VAL
Ejemplo
Significado
W#16#0001
El área de memoria indicada para un parámetro de la función no es válida.
W#16#0002
El tipo de datos (E_TYPE) indicado no es válido.
W#16#0003
Las longitudes de las tablas de entradas y de salidas no son iguales.
W#16#0004
La longitud de una tabla es cero.
W#16#0007
En IN_TBL no hay ningún valor mayor o igual que el valor de entrada indicado.
La figura 2-8 muestra cómo opera la función ”Tabla de Datos Correlativos” (CDT). La función se ejecuta cuando el estado de señal de la entrada E 0.0 es 1 (activada). En este ejemplo ambas tablas, IN_TBL y OUT_TBL tienen cinco elementos cada una, tal como lo indica la primera palabra de cada tabla. El tipo de los datos de las tablas es ENTERO (E_TYPE = B#16#05). El valor de entrada (IN) es 22. Dentro de la tabla IN_TBL el primer valor igual o mayor que 22 es 64, y el índice de éste es 5. Su valor correlativo en la tabla OUT_TBL es 25; por tanto, en OUT se escribe también el valor 25. Si la función se ejecuta sin errores, los estados de señal de la salida de habilitación (ENO) y de la salida A4.0 se ponen a 1 (activadas), y RET_VAL toma el valor W#16#0000.
CDT FC103
E 0.0 P#DB1.DBX0.0 P#DB1.DBX100.0 P#DB1.DBX200.0 P#DB1.DBX210.0 B#16#05
EN ENO IN_TBL RET_VAL OUT_TBL IN OUT E_TYPE
Antes de la ejecución: IN_TBL (long. de tabla) DBW0 = DBW2 = DBW4 = DBW6 = DBW8 = DBW10 = OUT_TBL (long. de tabla) DBW100= DBW102= DBW104= DBW106= DBW108= DBW110 = IN DBW200= OUT DBW210= Después de la ejecución: OUT DBW210= Figura 2-8
2-18
A 4.0 MW0
W#16#0005 2 4 8 16 64 W#16#0005 5 10 15 20 25 22 0 25
Tabla de datos correlativos (CDT)
Software estándar para S7-300 y S7-400 Funciones estándar, parte 2 A5E00066869-03
Funciones de tabla
2.9
Enlace lógico de tablas (TBL_TBL): FC104
Descripción
La función ”Enlace lógico de tablas” (TBL_TBL) realiza la operación especificada (en el parámetro CMD) entre los elementos correspondientes de las dos tablas fuente (TBL1 y TBL2), y escribe el resultado en los correspondientes registros de la tabla destino (DEST_TBL). •
Con los tipos de datos INT, DINT y REAL únicamente se pueden realizar operaciones aritméticas.
•
El primer registro de la tabla indica la cantidad de elementos que tiene la tabla (longitud de la tabla).
•
Todas las tablas tienen que tener la misma cantidad de elementos, y ésta debe ser siempre mayor que cero.
Nota Al crear cada tabla debe inicializar el primer registro.
Parámetros Tabla 2-13
Parámetro
En la tabla 2-13 se describen los parámetros de la función ”Enlace lógico de tablas” (TBL_TBL). Parámetros de la función TBL_TBL (FC104)
Declaración
Tipo de datos
Area de memoria
Descripción
EN
Entrada
BOOL
E, A, M, D, L
La entrada de habilitación con estado de señal 1 activa el cuadro.
ENO
Salida
BOOL
E, A, M, D, L
La salida de habilitación tiene el estado de señal 1 si la función se ejecuta sin errores.
TBL1
Entrada
Pointer*
E, A, M, D
Apunta al comienzo de la primera tabla fuente.
TBL2
Entrada
Pointer*
E, A, M, D
Apunta al comienzo de la segunda tabla fuente.
DEST_TBL
Entrada
Pointer*
E, A, M, D
Apunta al comienzo de la tabla destino.
CMD
Entrada
BYTE
E, A, M, D, L, P
Indica el tipo de operación a ejecutar. Las operaciones válidas y sus valores son: B#16#07 = operación lógica Y B#16#08 = operación lógica O B#16#09 = operación lógica O EXCLUSIVA B#16#0a = sumar B#16#0b = restar B#16#0c = multiplicar B#16#0d = dividir
E_TYPE
Entrada
BYTE
E, A, M, D, L, P
Indica el tipo de datos de los elementos de las tablas. Los tipos válidos para la función TBL_TBL son: B#16#04 = WORD B#16#05 = INT B#16#06 = DWORD B#16#07 = DINT B#16#08 = REAL
RET_VAL
Salida
WORD
E, A, M, D, L, P
Da el valor W#16#0000 cuando la función se ejecuta sin errores; si los valores son distintos de W#16#0000, véase la información sobre errores.
* Puntero en formato de palabra doble cuando se trata de direccionamiento interárea indirecto por registro.
Software estándar para S7-300 y S7-400 Funciones estándar, parte 2 A5E00066869-03
2-19
Funciones de tabla
Información sobre errores
La función no será ejecutada si se da una de las condiciones enumeradas en la tabla 2-14. En esos casos, el estado de señal de la salida de habilitación (ENO) se pone a 0 y el valor de respuesta (RET_VAL) se ajusta como corresponde. Tabla 2-14
Condiciones de error en la función FC104
RET_VAL
Ejemplo
Significado
W#16#0001
El área de memoria indicada para un parámetro de la función no es válida.
W#16#0002
El tipo de datos (E_TYPE) indicado no es válido.
W#16#0003
Las longitudes de las tablas fuente y destino no son iguales.
W#16#0004
La longitud de una tabla es cero.
W#16#0005
E_TYPE y CMD no son compatibles.
W#16#0006
La operación indicada en CMD no es válida.
La figura 2-9 muestra cómo opera la función ”Enlace lógico de tablas” (TBL_TBL). La función se ejecuta cuando el estado de señal de la entrada E 0.0 es 1 (activada). En este ejemplo todas las tablas tiene tres elementos, tal como lo indica la primera palabra de cada tabla. E_TYPE indica que los elementos de las tablas son del tipo WORD. La operación a ejecutar en TBL1 y en TBL2, indicada por CMD, es la operación lógica Y. Si la función se ejecuta sin errores, los estados de señal de la salida de habilitación (ENO) y de la salida A4.0 se ponen a 1 (activadas), y el valor de respuesta (RET_VAL) toma el valor W#16#0000.
E 0.0
EN
P#DB1.DBX0.0 P#DB1.DBX20.0 P#DB1.DBX40.0 B#16#07 B#16#04
TBL_TBL FC104 ENO
TBL1 RET_VAL TBL2 DEST_TBL CMD E_TYPE
A 4.0 MW0
Antes de la ejecución: TBL1 (long. de tabla) DBW0 = W#16#0003 DBW2 = W#16#00FF DBW4 = W#16#FF00 DBW6 = W#16#FFFF TBL2 (long. de tabla) DBW20 = W#16#0003 DBW22 = W#16#1111 DBW24 = W#16#2222 DBW26 = W#16#3333 DEST_TBL (long. de tabla) DBW40 = W#16#0003 DBW42 = W#16#0000 DBW44 = W#16#0000 DBW46 = W#16#0000 Después de la ejecución: DEST_TBL (long. de tabla) DBW40 = W#16#0003 DBW42 = W#16#0011 DBW44 = W#16#2200 DBW46 = W#16#3333 Figura 2-9
2-20
Enlace lógico de tablas (TBL_TBL)
Software estándar para S7-300 y S7-400 Funciones estándar, parte 2 A5E00066869-03
Funciones de desplazamiento
3
En este capítulo se describen las funciones (FC) de desplazamiento que puede añadir a las operaciones estándar para obtener una mayor flexibilidad en la programación.
Apartado
Descripción
Página
3.1
Almacenar datos en el registro de desplazamiento (WSR): FC90
3-2
3.2
Desplazar un bit a un registro de desplazamiento (SHRB): FC92
3-4
Software estándar para S7-300 y S7-400 Funciones estándar, parte 2 A5E00066869-03
3-1
Funciones de desplazamiento
3.1
Almacenar datos en el registro de desplazamiento (WSR): FC90
Descripción
La función ”Almacenar datos en el registro de desplazamiento” (WSR) desplaza datos al registro de desplazamiento desde la fuente que se haya indicado. Cada uno de los valores desplazados pasa a la dirección siguiente. El parámetro LENGTH indica la cantidad de direcciones que deben desplazarse los datos. Una vez realizado el desplazamiento se pierden los datos que contenía la última dirección del registro de desplazamiento. Cada vez que se ejecuta la función se leen nuevos datos de la fuente (S_DATA); dichos datos son desplazados a la dirección inicial (START) del registro de desplazamiento siempre que la entrada RESET esté a 0; si se pone a 1 la entrada RESET, las direcciones del registro se ponen a 0 al ejecutarse la función. La salida A se activa cuando el registro de desplazamiento está vacío y cuando ha sido borrado (es decir, después de haber efectuado una puesta a cero o cuando el registro está ocupado con ceros).
Parámetros
En la tabla 3-1 se describen los parámetros de la función ”Almacenar datos en el registro de desplazamiento”.
Tabla 3-1
Parámetros de la función WSR (FC90)
Parámetro
Declaración
Tipo de datos
Area de memoria
EN
Entrada
BOOL
E, A, M, D, L
La entrada de habilitación con estado de señal 1 activa el cuadro.
ENO
Salida
BOOL
E, A, M, D, L
La salida de habilitación tiene el estado de señal 1 si la función se ejecuta sin errores.
RESET
Entrada
BOOL
E, A, M, D, L
Si el registro de desplazamiento estaba a 1 se pone a 0.
S_DATA
Entrada
Pointer*
E, A, M, D
Apunta al elemento fuente que debe insertarse en la tabla.
START
Entrada
Pointer*
E, A, M, D
Apunta al comienzo de la tabla.
LENGTH
Entrada
WORD
E, A, M, D, L, P
Cantidad de direcciones que deben desplazarse.
E_TYPE
Entrada
BYTE
E, A, M, D, L, P
Indica de qué tipo son los datos de la tabla. Los tipos válidos para la función WSR son: B#16#04 = WORD B#16#05 = INT B#16#06 = DWORD B#16#07 = DINT B#16#08 = REAL
Q
Salida
BOOL
A, M, D, L
Indica 0 si el parámetro RESET está activado (1) o todos los elementos a desplazar tienen el valor 0.
Descripción
* Puntero en formato de palabra doble cuando se trata de direccionamiento interárea indirecto por registro.
3-2
Software estándar para S7-300 y S7-400 Funciones estándar, parte 2 A5E00066869-03
Funciones de desplazamiento
Información sobre errores
La función no se ejecuta en caso de emplear un tipo de datos (E_TYPE) no válido; en este caso, el estado de señal de la salida de habilitación (ENO) se pone a 0.
Ejemplo
La figura 3-1 muestra cómo opera la función ”Almacenar datos en el registro de desplazamiento” (WSR). La función se ejecuta cuando el estado de señal de la entrada E 0.0 es 1 (activada). Al ser 4 el tipo de datos (E_TYPE = B#16#04), los datos se almacenan en la tabla en palabras a partir de la dirección de memoria que indica el puntero START. El parámetro LENGTH tiene el valor 4, lo cual significa que se desplazarán 4 direcciones de palabras, comenzando por la palabra que se encuentra en la dirección a la que apunta START. Después de desplazar el primer valor de la tabla a la siguiente dirección, la posición que ocupaba ese valor pasa a ser ocupada ahora por el elemento indicado por el puntero S_DATA. Al concluir el desplazamiento se ha perdido el valor que antes ocupaba el último lugar de la tabla. Siempre que la entrada RESET sea puesta a 1 las direcciones de la tabla no se desplazarán, sino que se pondrán a cero. Si la función se ejecuta sin errores, los estados de señal de la salida de habilitación (ENO) y de la salida A 4.0 se ponen a 1.
E 0.0 EN M1.0
RESET
P#DB2.DBX6.0
S_DATA
P#DB1.DBX0.0
START
B#16#04
LENGTH
B#16#04
E_TYPE
A 4.0 ENO Q
M2.0
S_DATA
Antes de la ejecución: DW0 = W#16#1111 DW2 = W#16#2222 DW4 = W#16#3333 DW6 = W#16#4444 DW6 = W#16#1234
RESET
M1.0 = FALSE
START
START
Figura 3-1
WSR FC90
Después de la ejecución: DW0 = W#16#1234 DW2 = W#16#1111 DW4 = W#16#2222 DW6 = W#16#3333
Almacenar datos en el registro de desplazamiento (WSR)
Software estándar para S7-300 y S7-400 Funciones estándar, parte 2 A5E00066869-03
3-3
Funciones de desplazamiento
3.2
Desplazar un bit a un registro de desplazamiento (SHRB): FC92
Descripción
La función ”Desplazar un bit a un registro de desplazamiento” (SHRB) desplaza un bit a un registro de desplazamiento desde la fuente especificada en el parámetro DATA. Cada vez que se ejecuta la función se leen nuevos datos de la fuente, los cuales son desplazados a la dirección inicial (S_BIT) del registro de desplazamiento, siempre que el estado de señal de la entrada RESET sea 0. Todos los demás bits son sometidos a un desplazamiento de una dirección respectivamente. Al concluir el desplazamiento se pierde el bit que antes contenía la última dirección (S_BIT+N). Siempre que la entrada RESET sea puesta a 1 las direcciones de la tabla no se desplazarán, sino que se pondrán a cero.
Parámetros
En la tabla 3-2 se describen los parámetros de la función ”Desplazar un bit a un registro de desplazamiento” (SHRB).
Tabla 3-2
Parámetro
Parámetros de la función SHRB (FC92)
Declaración
Tipo de datos
Area de memoria
Descripción
EN
Entrada
BOOL
E, A, M, D, L
La entrada de habilitación con estado de señal 1 activa el cuadro.
ENO
Salida
BOOL
E, A, M, D, L
La salida de habilitación tiene el estado de señal 1 si la función se ejecuta sin errores.
DATA
Entrada
BOOL
E, A, M, D, L
Bit de datos fuente.
RESET
Entrada
BOOL
E, A, M, D, L
Pone a 0 el registro de desplazamiento si estaba puesto a 1.
S_BIT
Entrada
Pointer*
E, A, M, D
Apunta al primer bit a desplazar en el registro de desplazamiento.
N
Entrada
WORD
E, A, M, D, L, P
Longitud del registro de desplazamiento (cantidad de bits a desplazar).
* Puntero en formato de palabra doble cuando se trata de direccionamiento interárea indirecto por registro.
3-4
Software estándar para S7-300 y S7-400 Funciones estándar, parte 2 A5E00066869-03
Funciones de desplazamiento
Información sobre errores
Esta función no detecta condiciones de error
Ejemplo
La figura 3-2 muestra cómo opera la función ”Desplazar un bit a un registro de desplazamiento” (SHRB). La función se ejecuta cuando el estado de señal de la entrada E 0.0 es 1 (activada). En este ejemplo, el parámetro de la longitud del registro de desplazamiento, N, está ajustado a 14 (E en la notación hexadecimal), lo cual indica que se desplazarán 14 direcciones; la primera de éstas será la del bit indicado por el puntero S_BIT. Una vez que los bits han sido desplazados, los datos que indica la entrada DATA ocupan la primera dirección donde ha habido un desplazamiento. El bit que antes ocupaba la última dirección del registro de desplazamiento se pierde una vez realizado el desplazamiento. Si la función se ejecuta sin errores, los estados de señal de la salida de habilitación (ENO) y de la salida A 4.0 se ponen a 1 (activadas).
SHRB FC92
E 0.0 EN 0
DATA
0
RESET
P#DB1.DBX1.4 B#16#0E
ENO
S_BIT N
Antes del desplazamiento: S_BIT 1.7 1.0 0 0 1 1 1 0 1 0 2.7 2.0 0 0 1 1 1 0 1 0 3.7 3.0 0 0 1 1 1 0 1 0
Figura Figura 3-2
A 4 .0
Después del desplazamiento: S_BIT 1.7 1.0 0 1 1 0 1 0 1 0 2.7 2.0 0 1 1 1 0 1 0 0 3.7 3.0 0 0 1 1 1 0 0 0
Desplazar Desplazar un bit a un un registro registro de desplazam desplazamiento iento (SHRB) (SHRB)
Software estándar para S7-300 y S7-400 Funciones estándar, parte 2 A5E00066869-03
3-5
Funciones de desplazamiento
3-6
Software estándar para S7-300 y S7-400 Funciones estándar, parte 2 A5E00066869-03
Funciones y bloques de función de transferencia
4
Este capítulo describe las funciones (FC) de transferencia y los bloques de función (FB) de transferencia que puede añadir a las operaciones estándar para obtener una mayor flexibilidad en la programación.
Apartado
Descripción
Página
4.1
Transfer Transferencia encia indirecta indirecta de un bloque bloque de datos (IBLKMOV) (IBLKMOV):: FC81
4-2
4.2
Acumular/ Acumular/Dist Distribu ribuir ir datos datos de tabla tabla (PACK) (PACK):: FB86
4-4
Software estándar para S7-300 y S7-400 Funciones estándar, parte 2 A5E00066869-03
4-1
Funciones y bloques de función de transferencia
4.1
Transferencia indirecta de un bloque de datos (IBLKMOV): FC81
Descripción
Aplicando la función ”Transferencia indirecta de un bloque de datos” (IBLKMOV) puede transferir un bloque de datos compuesto por bytes, palabras, enteros, palabras dobles o por enteros dobles desde un bloque fuente a un bloque destino. El parámetro LENGTH determina la cantidad de elementos a transferir; el parámetro E_TYPE define el tipo de datos. Los punteros S_DATA y D_DATA indican la dirección de punteros que, a su vez, indican las direcciones iniciales de los datos fuente y destino. Siendo éste un método de indicación y localización indirecta de los datos a transferir se le denomina ”transferencia indirecta de bloques”.
Parámetros
En la tabla 4-1 se describen los parámetros de la función ”Transferencia indirecta de un bloque de datos” (IBLKMOV).
Tabla 4-1
Parámetro
Parámetros de la función IBLKMOV (FC81)
Declaración
Tipo de datos
Area de memoria
Descripción
EN
Entrada
BOOL
E, A, M, D, L
La entrada de habilitación con estado de señal 1 activa el cuadro.
ENO
Salida
BOOL
E, A, M, D, L
La salida de habilitación tiene el estado de señal 1, si la funcion se ejecuta sin errores.
S_DATA
Entrada
Pointer*
E, A, M, D
Señala a un puntero que indica la dirección inicial de los datos fuente.
LENGTH
Entrada
Pointer*
E, A, M, D
Apunta a la longitud del bloque a transferir.
D_DATA
Entrada
Pointer*
E, A, M, D
Señala a un puntero que indica la dirección inicial de los datos destino.
E_TYPE
Entrada
BYTE
E, A, M, D, L
Indica el tipo de datos. Los tipos válidos para la función IBLKMOV son: B#16#02 = BYTE B#16#04 = WORD B#16#05 = INT B#16#06 = DWORD B#16#07 = DINT B#16#08 = REAL
* Puntero en formato de palabra doble cuando se trata de direccionamiento interárea indirecto por registro.
4-2
Software estándar para S7-300 y S7-400 Funciones estándar, parte 2 A5E00066869-03
Funciones y bloques de función de transferencia
Información sobre errores
La función no se ejecutará si se ha indicado un tipo de datos (E_TYPE) que no es válido; en ese caso, el estado de señal de la salida de habilitación (ENO) se pone a 0.
Ejemplo
La figura 4-1 muestra cómo opera la función ”Transferencia indirecta de un bloque de datos” (IBLKMOV). La función se ejecuta cuando el estado de señal de la entrada E 0.0 es 1 (activada). S_DATA apunta a DB1.DBX0.0, que contiene el puntero DB1.DBX50.0 (dirección inicial de los datos fuente). D_DATA apunta a DB1.DBX20.0, que contiene el puntero DB2.DBX10.0 (dirección inicial de los datos destino). Tras ejecutarse la función se ha transferido un bloque de dos palabras. Si la funcion se ejecuta sin errores, los estados de señal de la salida de habilitación (ENO) y de la salida A 4.0 se ponen a 1 (activadas).
IBLKMOV FC81 EN ENO
E 0.0 P#DB1.DBX0.0 P#DB1.DBX10.0 P#DB1.DBX20.0 B#16#04
S_DATA
Figura 4-1
S_DATA LENGTH D_DATA E_TYPE Antes de la ejecución: DBX0.0 = P#DB1.DBX50.0 DBW50 = W#16#2424 DBW52 = W#16#2525
LENGTH
DBW10 = W#16#0002
D_DATA
DBX20.0= P#DB2.DBX10.0 DBW10 = W#16#0000 DBW12 = W#16#0000
D_DATA
A 4.0
Después de la ejecución: DBW10 = W#16#2424 DBW12 = W#16#2525
Transferencia indirecta de un bloque de datos (IBLKMOV)
Software estándar para S7-300 y S7-400 Funciones estándar, parte 2 A5E00066869-03
4-3
Funciones y bloques de función de transferencia
4.2
Acumular/Distribuir datos de tabla (PACK): FB86
Descripción
La función ”Acumular/Distribuir datos de tabla” (PACK) transfiere datos intercalados entre direcciones aleatorias y una tabla. El parámetro DIR indica la dirección de la transferencia. Cada función PACK puede procesar hasta cinco bloques de datos (de P_DATA 1 a P_DATA 5). Si el parámetro DIR indica ” a”, la función PACK transfiere los datos desde las direcciones a la tabla indicada; si DIR indica ” desde”, la función PACK distribuye los datos desde la tabla a las direcciones. Las reglas para transferir datos ”a” una tabla son las siguientes: •
cada bit (BOOL) se transfieren al siguiente bit disponible en la tabla.
•
Los tipos de datos de 8 bits se transfieren al siguiente byte disponible en la tabla. Cuando se escribe un byte en la tabla, los bits no utilizados en el byte anterior son rellenados con ceros.
•
Los tipos de datos de 16 y 32 bits se transfieren a la siguiente palabra disponible en la tabla. Cuando se escribe una palabra en la tabla, los bits no utilizados en el byte anterior se rellenan con ceros.
Las reglas para transferir datos ”desde” una tabla son las siguientes: •
No se debe omitir (pasar por alto) ningún apartado de la tabla.
•
Todos los datos indicados del tipo BOOL se transfieren desde la tabla.
•
Los tipos de datos de 8 bits se transfieren desde el primer byte disponible en la tabla. Esto quiere decir que los bits no utilizados en el byte anterior de la tabla no se incluyen en un byte que se transfiere desde la tabla.
•
Los tipos de datos de 16 y de 32 bits se transfieren desde la primera palabra disponible de la tabla. Esto significa que los bits no utilizados en la palabra anterior de la tabla no se incluyen en una palabra que se transfiere desde la tabla.
Los tipos de datos válidos para el puntero ANY que soporta el bloque de función PACK son los siguientes:
4-4
•
BOOL
•
WORD
•
INT
•
BYTE
•
DINT
•
REAL
•
CHAR
•
DWORD
Software estándar para S7-300 y S7-400 Funciones estándar, parte 2 A5E00066869-03
Funciones y bloques de función de transferencia
Parámetros Tabla 4-2
Parámetro
En la tabla 4-2 se describen los parámetros de la función ”Acumular/Distribuir datos de tabla” (PACK). Parámetros de la función PACK (FB86)
Declaración
Tipo de datos
Area de memoria
Descripción
EN
Entrada
BOOL
E, A, M, D, L
La entrada de habilitación con estado de señal 1 activa el cuadro.
ENO
Salida
BOOL
E, A, M, D, L
La salida de habilitación tiene el estado de señal 1, si se ejecuta el bloque de función sin errores.
TABLE
Entrada
Pointer*
E, A, M, D
Apunta al comienzo de la tabla.
P_DATA1
Entrada
Any
E, A, M, D
Apunta al comienzo de un bloque con datos a transferir.
P_DATA2
Entrada
Any
E, A, M, D
Apunta al comienzo de un bloque con datos a transferir.
P_DATA3
Entrada
Any
E, A, M, D
Apunta al comienzo de un bloque con datos a transferir.
P_DATA4
Entrada
Any
E, A, M,D
Apunta al comienzo de un bloque con datos a transferir.
P_DATA5
Entrada
Any
E, A, M, D
Apunta al comienzo de un bloque con datos a transferir.
ERR_CODE
Salida
WORD
E, A, M, D, L, P
Da el valor W#16#0000 cuando se ejecuta el bloque de función sin errores; si los valores son distintos de W#16#0000, véase la información sobre errores.
DIR
Static
BOOL
E, A, M, D, L
Dirección de la transferencia. El estado de señal = 1 => ”a” y el estado de señal = 0 => ”desde”
* Puntero en formato de palabra doble cuando se trata de direccionamiento interárea indirecto por registro.
Información sobre errores
El bloque de función no será ejecutado si se da una de las condiciones enumeradas en la tabla 4-3. En esos casos, el estado de señal de la salida de habilitación (ENO) se pone a 0 y el código de error (ERR_CODE) se ajusta como corresponde. Tabla 4-3
Condiciones de error con el bloque de función FB86
ERR_CODE
Significado
W#16#0001
El área de memoria indicada para un parámetro de la función no es válida.
W#16#0002
El tipo de datos (E_TYPE) no es válido.
Software estándar para S7-300 y S7-400 Funciones estándar, parte 2 A5E00066869-03
4-5
Funciones y bloques de función de transferencia
Ejemplo
La figura 4-2 muestra cómo opera el bloque de función ”Acumular/Distribuir datos de tabla” (PACK). El bloque de función se ejecuta cuando el estado de señal de la entrada E 0.0 es 1 (activada). En este ejemplo se transfieren cuatro bloques de datos ”a” la tabla. Si el bloque de función se ejecuta sin errores, los estados de señal de la salida de habilitación (ENO) y de la salida A 4.0 se ponen a 1 (activadas), y el código de error (ERR_CODE) toma el valor W#16#0000.
Nota Puede inicializar los parámetros estáticos utilizando el editor de bloques de datos.
DB86 PACK FB86
E 0.0 EN P#DB1.DBX0.0
TABLE
P#M200.0 BOOL 2
P_DATA1
P#M210.0 BYTE 1
P_DATA2
P#M300.0 BOOL 2 P#M330.0 WORD 1
P_DATA3 P_DATA4
A 4.0 ENO
ERR_CODE
MW0
P_DATA5 Antes de la ejecución: DBB0 = B#16#00 DBB1 = B#16#00 DBB2 = B#16#00 DBB3 = B#16#00 DBB4 = B#16#00 DBB5 = B#16#00
TABLE
P_DATA1
M200.0 = TRUE M200.1 = TRUE
P_DATA2
MB210 = B#16#FF
P_DATA3
M300.0 = TRUE M300.1 = TRUE
P_DATA4
MW330 = W#16#FFFF
DIR
Instancia DB86 DBX58.0= FALSE
TABLE
Figura 4-2
4-6
Después de la ejecución: DBB0 = B#16#03 DBB1 = B#16#FF DBB2 = B#16#03 DBB3 = B#16#00 DBB4 = B#16#FF DBB5 = B#16#FF
Acumular/Distribuir datos de tabla (PACK)
Software estándar para S7-300 y S7-400 Funciones estándar, parte 2 A5E00066869-03
Funciones y bloques de función de temporización
5
Este capítulo describe las funciones (FC) de temporización y los bloques de función (FB) de temporización que puede añadir a las operaciones estándar para obtener una mayor flexibilidad en la programación.
Apartado
Descripción
Página
5.1
Activar un temporizador como retardo a la conexión con memoria (TONR): FC80
5-2
5.2
Alarma de tiempo para control discreto (DCAT): FB81
5-4
5.3
Alarma de tiempo para control motor (MCAT): FB82
5-7
5.4
Evento drum enmascarable (DRUM): FB85
5-10
Software estándar para S7-300 y S7-400 Funciones estándar, parte 2 A5E00066869-03
5-1
Funciones y bloques de función de temporización
5.1
Activar un temporizador como retardo a la conexión con memoria (TONR): FC80
Descripción
La función ”Activar un temporizador como retardo a la conexión con memoria” (TONR) acumula el tiempo hasta que el valor del tiempo transcurrido (ET) es igual o mayor que el valor de preselección (PV). Dado que, para acumular tiempo, la función TONR utiliza el tiempo de ejecución del último ciclo del OB (bloque de organización) en el que es procesada, esta función debe aplicarse únicamente en los OB que sean de ejecución repetitiva, tales como el OB1 y los OB cíclicos.
Nota Debe desplazar el tiempo de ciclo del OB desde las variables locales de arranque de la tabla de declaración de variables del OB a la variable global DELTA_T.
Mientras el estado de señal del parámetro RESET sea 0, el estado de señal de TMR_EN sea 1 y ET sea menor que PV, la función TONR añadirá el valor de DELTA_T al tiempo transcurrido (ET). Si el estado de señal de TMR_EN no es 1 no se añade tiempo a ET. Si el valor de ET alcanza o sobrepasa el valor de preselección (PV), el estado de señal de la salida A se pone a 1. Una vez activada A ésta permanece así y ET permanece con el último valor hasta la desactivación. La función pone ET a 0 y desactiva la salida A cuando el estado de señal de RESET es 1.
Parámetros Tabla 5-1
Parámetro
En la tabla 5-1 se describen los parámetros de la función ”Activar un temporizador como retardo a la conexión con memoria” (TONR). Parámetros de la función TONR (FC80)
Declaración
Tipo de datos
Area de memoria
Descripción
EN
Entrada
BOOL
E, A, M, D, L
La entrada de habilitación con estado de señal 1 activa el cuadro.
ENO
Salida
BOOL
E, A, M, D, L
La salida de habilitación tiene el estado de señal 1 si se ejecuta sin errores.
TMR_EN
Entrada
BOOL
E, A, M, D, L
Habilita el temporizador para acumular tiempo.
RESET
Entrada
BOOL
E, A, M, D, L
Si RESET = 1, el temporizador se pone a 0.
PV
Entrada
DINT
E, A, M, D, L, P o constante
Valor de preselección.
DELTA_T
Entrada
INT
E, A, M, D, L o constante
Tiempo de barrido del OB en el ciclo anterior.
Q
Salida
BOOL
A, M, D, L
Si ET es igual o mayor que PV, el estado de señal de A se pone a 1.
ET
Entrada_Salida
DINT
E, A, M, D, L
Valor actual del tiempo transcurrido.
5-2
Software estándar para S7-300 y S7-400 Funciones estándar, parte 2 A5E00066869-03
Funciones y bloques de función de temporización
Información sobre errores
Esta función no detecta condiciones de error.
Ejemplo
La figura 5-1 muestra cómo opera la función ”Activar un temporizador como retardo a la conexión con memoria” (TONR). La función se ejecuta cuando el estado de señal de la entrada E 0.0 es 1 (activada). Si el estado de señal de E 0.1 es 1 y el estado de señal de E 0.2 es 0 y ET es menor que PV, el valor de DELTA_T se añade a ET. Si ET es menor que PV, el estado de señal de A 1.1 seguirá siendo 0. Si la función se ejecuta sin errores, los estados de señal de la salida de habilitación (ENO) y de la salida A 4.0 se ponen a 1 (activadas).
TONR FC80
I 0.0 EN
Q 4.0 ENO
I 0.1
Q 1.1 TMR_EN
Q
I 0.2 RESET L#1000 #OB1_PREV_CYCLE MD100
Figura 5-1
PV DELTA_T ET
Activar un temporizador como retardo a la conexión con memoria (TONR)
Software estándar para S7-300 y S7-400 Funciones estándar, parte 2 A5E00066869-03
5-3
Funciones y bloques de función de temporización
5.2
Alarma de tiempo para control discreto (DCAT): FB81
Descripción
5-4
El bloque de función ”Alarma de tiempo para control discreto” (DCAT) acumula el tiempo desde el instante en que la entrada de la orden CMD da la señal de abrir (o de cerrar) hasta que se sobrepasa el tiempo preseleccionado (PT), o hasta que la entrada de acuse (O_FB ó C_FB) indica que el dispositivo ha sido abierto (o cerrado) dentro del tiempo prescrito. Si se excede el tiempo preseleccionado antes de haberse recibido el acuse se activa la alarma correspondiente. Si la entrada de la orden cambia su estado de señal antes del tiempo preseleccionado se reinicia el tiempo. •
Cuando el estado de señal de la entrada CMD cambia de 1 a 1, el estado de señal de A se pone a 1, ET (tiempo transcurrido) se pone a 0, los estados de señal de ambas salidas de alarma (OA, CA) se ponen a 0, y el estado de señal de CMD_HIS se pone igualmente a 0.
•
Cuando el estado de señal de la entrada CMD cambia de 1 a 0, el estado de señal de A se pone a 0, ET (tiempo transcurrido) se pone a 0, los estados de señal de ambas salidas de alarma (OA, CA) se ponen a 0, y el estado de señal de CMD_HIS se pone igualmente a 0.
•
Cuando el estado de señal de CMD y de CMD_HIS es 1 y el estado de señal de O_FB es 0, se añade al tiempo transcurrido (ET) la diferencia del tiempo (DELTA_T, en ms) desde la última ejecución del bloque de función. Si ET sobrepasa a PT el estado de señal de la salida de alarma OA se pone a 1; si no lo sobrepasa se pone a 0. El estado de señal de CMD_HIS toma el mismo valor que CMD.
•
Cuando el estado de señal de CMD y de CMD_HIS es 1, el estado de señal de O_FB es 1, y el estado de señal de C_FB es 0, el estado de señal de OA se pone a 0. ET (tiempo transcurrido) toma el mismo valor que PT (tiempo preseleccionado), de tal forma que, si el estado de señal de O_FB se pone a 0 más tarde, la alarma será activada la próxima vez que se ejecute este bloque de función. El estado de señal de CMD_HIS toma el mismo valor que CMD.
•
Cuando el estado de señal de CMD y de CMD_HIS es 0 y el estado de señal de C_FB es 0, se añade al tiempo transcurrido (ET) la diferencia del tiempo (DELTA_T, en ms) desde la última ejecución del bloque de función. Si ET sobrepasa a PT el estado de señal de CA se pone a 1; si no lo sobrepasa se pone a 0. El estado de señal de CMD_HIS toma el mismo valor que CMD.
•
Cuando el estado de señal de CMD y de CMD_HIS es 0, el estado de señal de O_FB es 0, y el de C_FB es 1, el estado de señal de CA se pone a 0. ET toma el mismo valor que PT, de tal forma que, si el estado de señal de C_FB se pone a 0 más tarde, la alarma será activada la próxima vez que se ejecute este bloque de función. El estado de señal de CMD_HIS toma el mismo valor que CMD.
•
Se considera que hay una condición de error cuando los estados de señal de O_FB y de C_FB son 1 en ambas entradas de acuse simultáneamente; en este caso, los estados de señal de las dos salidas de alarma (OA y CA) se ponen a 1.
Software estándar para S7-300 y S7-400 Funciones estándar, parte 2 A5E00066869-03
Funciones y bloques de función de temporización
Parámetros Tabla 5-2
Parámetro
En la tabla 5-2 se describen los parámetros del bloque de función ”Alarma de tiempo para control discreto” (DCAT). Parámetros del bloque de función DCAT (FB81)
Declaración
Tipo de datos
Area de memoria
Descripción
EN
Entrada
BOOL
E, A, M, D, L
La entrada de habilitación con estado de señal 1 activa el cuadro.
ENO
Salida
BOOL
E, A, M, D, L
La salida de habilitación tiene el estado de señal 1, si el bloque de función se ejecuta sin errores.
CMD
Entrada
BOOL
E, A, M, D, L
Con el estado de señal 0 da la orden de cerrar; con el estado de señal 1 da la orden de abrir.
O_FB
Entrada
BOOL
E, A, M, D, L
Entrada de acuse al abrir.
C_FB
Entrada
BOOL
E, A, M, D, L
Entrada de acuse al cerrar.
Q
Salida
BOOL
E, A, M, D, L
Sigue a la entrada CMD.
OA
Salida
BOOL
E, A, M, D, L
Salida de alarma al abrir.
CA
Salida
BOOL
E, A, M, D, L
Salida de alarma al cerrar.
ET
Estático
DINT
E, A, M, D, L
Valor actual del tiempo transcurrido (medido en ms).
PT
Estático
DINT
E, A, M, D, L
Valor de preselección del temporizador (medido en ms).
PREV_TIME
Estático
DWORD
E, A, M, D, L
Tiempo anterior del sistema.
CMD_HIS
Estático
BOOL
E, A, M, D, L
Bit de evolución de CMD.
Software estándar para S7-300 y S7-400 Funciones estándar, parte 2 A5E00066869-03
5-5
Funciones y bloques de función de temporización
Información sobre errores
Este bloque de función no detecta condiciones de error.
Ejemplo
La figura 5-2 muestra cómo opera el bloque de función ”Alarma de tiempo para control discreto” (DCAT). El bloque de función DCAT es ejecutado cuando el estado de señal de la entrada E 0.0 es 1 (activada). En este ejemplo, la entrada CMD está cambiando del estado de señal 0 al estado de señal 1, tal como lo indican CMD_HIS y CMD. Partiendo de estas condiciones dadas, la salida A y CMD_HIS toman ambas el estado de señal 1. ET se pone a 0, y ambas salidas de alarma, OA y CA, adquieren el estado de señal 0. Si el bloque de función se ejecuta sin errores, los estados de señal de la salida de habilitación (ENO) y de la salida A 4.0 se ponen a 1 (activadas).
Nota Puede inicializar los parámetros estáticos utilizando el editor de bloques de datos.
E 0.0
EN
M0.0 M1.0 M1.1
ENO Q
A 2.0
O_FB
OA
A 3.0
C_FB
CA
A 3.1
ET PT CMD_HIS
Antes de la ejecución: M0.0 = VERDADERO M1.0 = FALSO M1.1 = FALSO M2.0 = FALSO M3.0 = FALSO M3.1 = FALSO Instancia DB81 DBD4 = L#12 DBD8 = L#222 DBX16.0 = FALSO Después de la ejecución: M2.0 = VERDADERO M3.0 = FALSO M3.1 = FALSO
Q OA CA ET CMD_HIS
5-6
A 4.0
CMD
CMD O_FB C_FB Q OA CA
Figura 5-2
DB81 DCAT FB81
Instancia DB81 DBD4 = L#0 DBX16.0 = VERDADERO
Alarma de tiempo para control discreto (DCAT)
Software estándar para S7-300 y S7-400 Funciones estándar, parte 2 A5E00066869-03
Funciones y bloques de función de temporización
5.3
Alarma de tiempo para control motor (MCAT): FB82
Descripción
Tabla 5-3
El bloque de función ”Alarma de tiempo para control motor” (MCAT) acumula el tiempo desde el instante en que se activa una de las entradas de las órdenes (abrir o cerrar) hasta que se sobrepasa el tiempo preseleccionado o hasta que la entrada de acuse correspondiente indica que el dispositivo ha concluido dentro del tiempo prescrito la instrucción ordenada. Si se sobrepasa el tiempo predeterminado antes de haberse recibido el acuse se activa la alarma correspondiente. En la tabla de verdad MCAT, representada a continuación, se listan las descripciones con las reacciones del bloque de función MCAT a las diferentes condiciones de entrada (v. tabla 5-3). Tabla de verdad MCAT ENTRADAS
SALIDAS
ET
O_HIS
C_HIS
O_CMD
C_CMD
S_CMD
O_FB
C_FB
OO
CO
OA
CA
ET
O_HIS
C_HIS
Q
STATE
X
1
1
X
X
X
X
X
0
0
1
1
PT
0
0
0
Alarma
X
X
X
X
X
X
1
1
0
0
1
1
PT
0
0
0
Alarma
X
X
X
X
X
1
X
X
0
0
0
0
X
0
0
1
Stop
X
X
X
1
1
X
X
X
0
0
0
0
X
0
0
1
Stop
X
0
X
1
0
0
X
X
1
0
0
0
0
1
0
1
Comienzo apertura
1
0
X
0
0
0
X
1
0
0
0
INC
1
0
1
Abriendo
X
1
0
X
0
0
1
0
0
0
0
0
PT
1
0
1
Abierto
>=PT
1
0
X
0
0
0
X
0
0
1
0
PT
1
0
0
Alarma al abrir
X
X
0
0
1
0
X
X
0
1
0
0
0
0
1
1
Comienzo cierre
0
1
0
X
0
X
0
0
1
0
0
INC
0
1
1
Cerrando
X
0
1
0
X
0
0
1
0
0
0
0
PT
0
1
1
Cerrado
>=PT
0
1
0
X
0
X
0
0
0
0
1
PT
0
1
0
Alarma al cerrar
X
0
0
0
0
0
X
X
0
0
0
0
X
0
0
1
Parado
Explicación: INC
= Añade a ET (tiempo transcurrido) la diferencia del tiempo (en ms) desde la última ejecución del bloque de función PT = El tiempo preseleccionado (PT) toma el mismo valor que el tiempo transcurrido (ET) X = No aplicable
= PT = ET >= PT (tiempo transcurrido < tiempo preseleccionado)
Software estándar para S7-300 y S7-400 Funciones estándar, parte 2 A5E00066869-03
5-7
Funciones y bloques de función de temporización
Parámetros Tabla 5-4
Parámetro
En la tabla 5-4 se describen los parámetros del bloque de función ”Alarma de tiempo para control motor” (MCAT). Parámetros de MCAT (FB82)
Declaración
Tipo de datos
Area de memoria
Descripción
EN
Entrada
BOOL
E, A, M, D, L
La entrada de habilitación con estado de señal 1 activa el cuadro.
ENO
Salida
BOOL
E, A, M, D, L
La salida de habilitación tiene el estado de señal 1, si el bloque de función se ejecuta sin errores.
O_CMD
Entrada
BOOL
E, A, M, D, L
Entrada de la orden ”abrir”.
C_CMD
Entrada
BOOL
E, A, M, D, L
Entrada de la orden ”cerrar”.
S_CMD
Entrada
BOOL
E, A, M, D, L
Entrada de la orden ”stop”.
O_FB
Entrada
BOOL
E, A, M, D, L
Entrada de acuse al abrir.
C_FB
Entrada
BOOL
E, A, M, D, L
Entrada de acuse al cerrar.
OO
Salida
BOOL
E, A, M, D, L
Salida ”abrir”.
CO
Salida
BOOL
E, A, M, D, L
Salida ”cerrar”.
OA
Salida
BOOL
E, A, M, D, L
Salida de alarma al abrir.
CA
Salida
BOOL
E, A, M, D, L
Salida de alarma al cerrar.
Q
Salida
BOOL
E, A, M, D, L
El estado de señal 1 indica que existe una condición de alarma.
ET
Estático
DINT
E, A, M, D, L
Valor actual del tiempo transcurrido (medido en ms).
PT
Estático
DINT
E, A, M, D, L
Valor del tiempo preseleccionado (medido en ms).
PREV_TIME
Estático
DWORD
E, A, M, D, L
Tiempo anterior del sistema.
O_HIS
Estático
BOOL
E, A, M, D, L
Bit de evolución de ”abrir”.
C_HIS
Estático
BOOL
E, A, M, D, L
Bit de evolución de ”cerrar”.
Información sobre errores
Este bloque de función no detecta condiciones de error.
Ejemplo
La figura 5-3 muestra cómo opera el bloque de función MCAT. El bloque de función se ejecuta cuando el estado de señal de la entrada E 0.0 es 1 (activada). En este ejemplo, y como consecuencia de los estados que tienen las entradas, el bloque de función MCAT se encuentra en el estado ”ABRIENDO”, y las salidas están ajustadas como corresponde. Si el bloque de función se ejecuta sin errores, los estados de señal de la salida de habilitación (ENO) y de la salida A 4.0 se ponen a 1 (activadas).
Nota Puede inicializar los parámetros estáticos utilizando el editor de bloques de datos.
5-8
Software estándar para S7-300 y S7-400 Funciones estándar, parte 2 A5E00066869-03
Funciones y bloques de función de temporización
DB82 MCAT FB82
E 0.0 EN
A 4.0 ENO
M0.0 O_CMD
OO
M2.0
C_CMD
CO
M2.1
S_CMD
OA
M3.0
O_FB
CA
M3.1
C_FB
Q
M4.0
M0.1 M0.2 M1.0 M1.1
Antes de la ejecución: O_CMD M0.0 = VERDADERO C_CMD M0.1 = FALSO S_CMD M0.2 = FALSO O_FB M1.0 = FALSO C_FB M1.1 = FALSO OO M2.0 = FALSO CO M2.1 = FALSO OA M3.0 = FALSO CA M3.1 = FALSO Q M4.0 = FALSO Instancia DB82 DBD4 = L#2 DBD8 = L#22 DBX16.0 = VERDADERO DBX16.1 = FALSO
ET PT O_HIS C_HIS OO CO OA CA Q
Después de la ejecución: M2.0 = VERDADERO M2.1 = FALSO M3.0 = FALSO M3.1 = FALSO M4.0 = VERDADERO
ET O_HIS CMD_HIS Figura 5-3
Instancia DB82 DBD4 = L#4 DBX16.0 = VERDADERO DBX16.1 = FALSO
Alarma de tiempo para control motor (MCAT)
Software estándar para S7-300 y S7-400 Funciones estándar, parte 2 A5E00066869-03
5-9
Funciones y bloques de función de temporización
5.4
Evento drum enmascarable (DRUM): FB85
Descripción
El bloque de función ”Evento drum enmascarable” (DRUM) ocupa los bits de salida programados (de OUT1 a OUT16) y la palabra de salida (OUT_WORD) con los valores programados (OUT_VAL) del paso apropiado (esto es, del que cumple las condiciones de las máscaras de habilitación (S_MASK) para ese paso) mientras el bloque de función DRUM permanece en ese paso. El DRUM avanza al siguiente paso, o bien cuando el evento para el paso es verdadero y el tiempo programado para el paso actual ha terminado, o bien cuando la entrada JOG cambia de 0 a 1. Cuando el estado de señal del parámetro RESET es 1, DRUM se pone a 0, con lo cual el paso actual queda igual que el paso preseleccionado (DSP). El tiempo que se emplea en un paso está determinado por el producto de la base de tiempo predeterminada (DTBP) del DRUM multiplicado por el valor de contaje preseleccionado/los valores del paso (S_PRESET) correspondientes a cada paso. Al principio de cada nuevo paso se carga este valor calculado en DCC, el cual contiene el tiempo que queda para el paso actual. Por ejemplo: Si DTBP tiene un valor de 2, y el valor de preselección del paso 1 es de 100 ms, DCC tiene un valor de 200 ms. Los pasos se pueden programar con un valor de tiempo, con un evento, o con ambos. Los pasos con un bit de evento y un valor de tiempo igual a cero avanzan al siguiente paso en cuanto el estado de señal del bit del evento es 1. Los pasos que únicamente tienen un valor de tiempo inician la temporización inmediatamente. Aquellos pasos que tienen un bit de evento y un valor de tiempo mayor que cero comienzan la temporización cuando el estado de señal del bit de evento es 1. Los bits de evento se inicializan con el estado de señal 1. Cuando el puntero del paso está en el último paso programado (LST_STEP) y termina el tiempo para ese paso, el estado de señal de la salida (A) se pone a 1; si no ha terminado el tiempo se pone a 0. Una vez que la salida A se ha activado el bloque de función DRUM permanece en ese paso hasta la desactivación. La máscara configurable (S_MASK) permite seleccionar los distintos bits de la palabra de salida (OUT_WORD) y los bits de salida (de OUT1 a OUT16) que son activados/desactivados por los valores de salida (OUT_VAL). Cuando un bit de la máscara configurable tiene un estado de señal 1, el valor de salida (OUT_VAL) activa/desactiva el correspondiente bit. Cuando un bit de la máscara configurable tiene un estado de señal 0, el bit correspondiente no varía. Cada uno de los bits de la máscara configurable para los 16 pasos se inicializa con el estado de señal 1. El bit de salida OUT1 se corresponde con el bit menos significativo de la palabra de salida (OUT_WORD). El bit de salida OUT16 se corresponde con el bit más significativo de la palabra de salida (OUT_WORD).
5-10
Software estándar para S7-300 y S7-400 Funciones estándar, parte 2 A5E00066869-03
Funciones y bloques de función de temporización
Parámetros Tabla 5-5
Parámetro
En la tabla 5-5 se describen los parámetros del bloque de función ”Evento drum enmascarable” (DRUM). Parámetros del bloque de función DRUM (FB85)
Declaración
Tipo de datos
Area de memoria
Descripción
EN
Entrada
BOOL
E, A, M, D, L
La entrada de habilitación con estado de señal 1 activa el cuadro.
ENO
Salida
BOOL
E, A, M, D, L
La salida de habilitación tiene el estado de señal 1, si el bloque de función se ejecuta sin errores.
RESET
Entrada
BOOL
E, A, M, D, L
El estado de señal 1 indica que existe una condición de desactivación.
JOG
Entrada
BOOL
E, A, M, D, L
El cambio del estado de señal de 1 a 1 hace avanzar a DRUM al siguiente paso.
DRUM_EN
Entrada
BOOL
E, A, M, D, L
El estado de señal 1 habilita al bloque de función DRUM para que avance conforme al evento y a los criterios de temporización.
LST_STEP
Entrada
BYTE
E, A, M, D, L, o constante
Número del último paso programado.
EVENT1
Entrada
BOOL
E, A, M, D, L
Bit de evento 1; el estado de señal inicial es 1.
EVENT2
Entrada
BOOL
E, A, M, D, L
Bit de evento 2; el estado de señal inicial es 1.
EVENT3
Entrada
BOOL
E, A, M, D, L
Bit de evento 3; el estado de señal inicial es 1.
EVENT4
Entrada
BOOL
E, A, M, D, L
Bit de evento 4; el estado de señal inicial es 1.
EVENT5
Entrada
BOOL
E, A, M, D, L
Bit de evento 5; el estado de señal inicial es 1.
EVENT6
Entrada
BOOL
E, A, M, D, L
Bit de evento 6; el estado de señal inicial es 1.
EVENT7
Entrada
BOOL
E, A, M, D, L
Bit de evento 7; el estado de señal inicial es 1.
EVENT8
Entrada
BOOL
E, A, M, D, L
Bit de evento 8; el estado de señal inicial es 1.
EVENT9
Entrada
BOOL
E, A, M, D, L
Bit de evento 9; el estado de señal inicial es 1.
EVENT10
Entrada
BOOL
E, A, M, D, L
Bit de evento 10; el estado de señal inicial es 1.
EVENT11
Entrada
BOOL
E, A, M, D, L
Bit de evento 11; el estado de señal inicial es 1.
EVENT12
Entrada
BOOL
E, A, M, D, L
Bit de evento 12; el estado de señal inicial es 1.
EVENT13
Entrada
BOOL
E, A, M, D, L
Bit de evento 13; el estado de señal inicial es 1.
EVENT14
Entrada
BOOL
E, A, M, D, L
Bit de evento 14; el estado de señal inicial es 1.
EVENT15
Entrada
BOOL
E, A, M, D, L
Bit de evento 15; el estado de señal inicial es 1.
EVENT16
Entrada
BOOL
E, A, M, D, L
Bit de evento 16; el estado de señal inicial es 1.
OUT1
Salida
BOOL
E, A, M, D, L
Bit de salida 1.
OUT2
Salida
BOOL
E, A, M, D, L
Bit de salida 2.
OUT3
Salida
BOOL
E, A, M, D, L
Bit de salida 3.
OUT4
Salida
BOOL
E, A, M, D, L
Bit de salida 4.
OUT5
Salida
BOOL
E, A, M, D, L
Bit de salida 5.
OUT6
Salida
BOOL
E, A, M, D, L
Bit de salida 6.
OUT7
Salida
BOOL
E, A, M, D, L
Bit de salida 7.
OUT8
Salida
BOOL
E, A, M, D, L
Bit de salida 8.
OUT9
Salida
BOOL
E, A, M, D, L
Bit de salida 9.
OUT10
Salida
BOOL
E, A, M, D, L
Bit de salida 10.
OUT11
Salida
BOOL
E, A, M, D, L
Bit de salida 11.
Software estándar para S7-300 y S7-400 Funciones estándar, parte 2 A5E00066869-03
5-11
Funciones y bloques de función de temporización
Tabla 5-5
Parámetro
Parámetros del bloque de función DRUM (FB85)
Declaración
Tipo de datos
Area de memoria
Descripción
OUT12
Salida
BOOL
E, A, M, D, L
Bit de salida 12.
OUT13
Salida
BOOL
E, A, M, D, L
Bit de salida 13.
OUT14
Salida
BOOL
E, A, M, D, L
Bit de salida 14.
OUT15
Salida
BOOL
E, A, M, D, L
Bit de salida 15.
OUT16
Salida
BOOL
E, A, M, D, L
Bit de salida 16.
Q
Salida
BOOL
E, A, M, D, L
El estado de señal 1 indica que ha terminado el tiempo del último paso.
OUT_WORD
Salida
WORD
E, A, M, D, L, P
Dirección de la palabra en la que el bloque de función DRUM escribe los valores de salida.
ERR_CODE
Salida
WORD
E, A, M, D, L, P
Da el valor W#16#0000 cuando la función se ejecuta sin errores; si los valores son distintos de W#16#0000, véase la información sobre errores.
JOG_HIS
Estático
BOOL
E, A, M, D, L
Bit de evolución de JOG.
EOD
Estático
BOOL
E, A, M, D, L
El estado de señal 1 indica que se ha terminado el tiempo del último paso.
DSP
Estático
BYTE
E, A, M, D, L, P
Paso preseleccionado del contador.
DSC
Estático
BYTE
E, A, M, D, L, P
Paso actual del contador.
DCC
Estático
DWORD
E, A, M, D, L, P
Valor actual del contador.
DTBP
Estático
WORD
E, A, M, D, L, P
Base de tiempo predeterminada del contador.
PREV_TIME
Estático
DWORD
E, A, M, D, L
Tiempo anterior del sistema.
S_PRESET
Estático
ARRAY of E, A, M, D, L WORD
Valor de contaje preseleccionado para cada paso [de 1 a 16] (medido en ms).
OUT_VAL
Estático
ARRAY of E, A, M, D, L BOOL
Valores de salida para cada paso [de 1 a 16, de 1 a 15].
S_MASK
Estático
ARRAY of E, A, M, D, L BOOL
Máscara configurable para cada paso [de 1 a 16, de 1 a 15]. El estado de señal inicial es en todos 1.
Información sobre errores
Si se da alguna de las condiciones enumeradas en la tabla 5-6, el bloque de función DRUM permanece en el paso en el que se encuentra en ese momento. Si el bloque de función se ejecuta sin errores, el estado de señal de la salida de habilitación (ENO) se pone a 0, y el código de error (ERR_CODE) se ajusta como corresponde. Tabla 5-6
Condiciones de error con el bloque de función FB85
ERR_CODE
5-12
Significado
W#16#000B
El valor de LST_STEP es menor que 1 o mayor que 16.
W#16#000C
El valor de DSC es menor que 1 o mayor que LST_STEP.
W#16#000D
El valor de DSP es menor que 1 o mayor que LST_STEP.
Software estándar para S7-300 y S7-400 Funciones estándar, parte 2 A5E00066869-03
Funciones y bloques de función de temporización
Ejemplo
La figura 5-4 muestra cómo opera el bloque de función ”Evento drum enmascarable” (DRUM). El bloque de función se ejecuta cuando el estado de señal de la entrada E 0.0 es 1 (activada). En este ejemplo, el bloque de función DRUM avanza del paso 1 al paso 2. Los bits de salida (OUT1, etc.) y la palabra de salida (OUT_WORD) están ajustados en base a la máscara configurada para el paso 2 y a los bits de los valores de salida (OUT_VAL) para el paso 2. Si el bloque de función se ejecuta sin errores, los estados de señal de la salida de habilitación (ENO) y de la salida A 4.0 se ponen a 1 (activadas), y el código de error (ERR_CODE) toma el valor W#16#0000.
Nota Puede inicializar los parámetros estáticos utilizando el editor de bloques de datos.
E 0.0
EN
M0.0
JOG
M0.2
DRUM_EN MB1
M20.1 M20.2 M20.3 M20.4 M20.5 M20.6 M20.7
Figura 5-4
A 4.0
ENO
RESET
M0.1
M20.0
DB85 DRUM FB85
LST_STEP EVENT1 EVENT2 EVENT3 EVENT4 EVENT5 EVENT6 EVENT7 EVENT8 EVENT9 EVENT10 EVENT11 EVENT12 EVENT13
OUT1 OUT2 OUT3 OUT4 OUT5 OUT6 OUT7 OUT8 OUT9 OUT10 OUT11 OUT12 OUT13 OUT14 OUT15 OUT16 Q OUT_WORD
M4.0 M4.1 M4.2 M4.3 M4.4 M4.5 M4.6 M4.7 M5.0 M5.1 M5.2 M5.3 M5.4 M5.5 M5.6 M5.7 M6.0 MW8
ERR_CODE
MW10
EVENT14 EVENT15 EVENT16
Evento drum enmascarable (DRUM)
Software estándar para S7-300 y S7-400 Funciones estándar, parte 2 A5E00066869-03
5-13
Funciones y bloques de función de temporización
Antes de la ejecución: Entradas RESET JOG DRUM_EN LST_STEP EVENT2 EVENT4 EVENT6 EVENT8 EVENT10 EVENT12 EVENT14 EVENT16 JOG_HIS EOD DSP DSC DCC DTBP S_PRESET [1] S_PRESET [2] OUT_VAL [1,0] OUT_VAL [1,1] OUT_VAL [1,2] OUT_VAL [1,3] OUT_VAL [1,4] OUT_VAL [1,5] OUT_VAL [1,6] OUT_VAL [1,7] OUT_VAL [1,8] OUT_VAL [1,9] OUT_VAL [1,10] OUT_VAL [1,11] OUT_VAL [1,12] OUT_VAL [1,13] OUT_VAL [1,14] OUT_VAL [1,15] OUT_VAL [2,0] OUT_VAL [2,1] OUT_VAL [2,2] OUT_VAL [2,3] OUT_VAL [2,4] OUT_VAL [2,5] OUT_VAL [2,6] OUT_VAL [2,7] OUT_VAL [2,8] OUT_VAL [2,9] OUT_VAL [2,10] OUT_VAL [2,11] OUT_VAL [2,12] OUT_VAL [2,13] OUT_VAL [2,14] OUT_VAL [2,15]
Figura 5-4
5-14
M0.0 = FALSO M0.1 = FALSO M0.2 = VERDADERO MB1 = B#16#08 M20.0 = FALSO M20.1 = FALSO M20.2 = FALSO M20.3 = FALSO M20.4 = FALSO M20.5 = FALSO M20.6 = FALSO M20.7 = FALSO DB85 de instancia DBX12.0 = FALSO DBX12.1 = FALSO DBB13 = W#16#0001 DBB14 = W#16#0001 DBD16 = DW#16#0000000A DBW20 = W#16#0001 DBW26 = W#16#0064 DBW28 = W#16#00C8 DBX58.0 = VERDADERO DBX58.1 = VERDADERO DBX58.2 = VERDADERO DBX58.3 = VERDADERO DBX58.4 = VERDADERO DBX58.5 = VERDADERO DBX58.6 = VERDADERO DBX58.7 = VERDADERO DBX59.0 = VERDADERO DBX59.1 = VERDADERO DBX59.2 = VERDADERO DBX59.3 = VERDADERO DBX59.4 = VERDADERO DBX59.5 = VERDADERO DBX59.6 = VERDADERO DBX59.7 = VERDADERO DBX60.0 = FALSO DBX60.1 = FALSO DBX60.2 = FALSO DBX60.3 = FALSO DBX60.4 = FALSO DBX60.5 = FALSO DBX60.6 = FALSO DBX60.7 = FALSO DBX61.0 = FALSO DBX61.1 = FALSO DBX61.2 = FALSO DBX61.3 = FALSO DBX61.4 = FALSO DBX61.5 = FALSO DBX61.6 = FALSO DBX61.7 = FALSO
Antes de la ejecución (continuación): S_MASK [2,0] DBX92.0 = FALSO S_MASK [2,1] DBX92.1 = VERDADERO S_MASK [2,2] DBX92.2 = VERDADERO S_MASK [2,3] DBX92.3 = VERDADERO S_MASK [2,4] DBX92.4 = VERDADERO S_MASK [2,5] DBX92.5 = FALSO S_MASK [2,6] DBX92.6 = VERDADERO S_MASK [2,7] DBX92.7 = VERDADERO S_MASK [2,8] DBX93.0 = FALSO S_MASK [2,9] DBX93.1 = FALSO S_MASK [2,10] DBX93.2 = VERDADERO S_MASK [2,11] DBX93.3 = VERDADERO S_MASK [2,12] DBX93.4 = VERDADERO S_MASK [2,13] DBX93.5 = VERDADERO S_MASK [2,14] DBX93.6 = FALSO S_MASK [2,15] DBX93.7 = VERDADERO Salidas Q M6.0 = FALSO OUTWORD MW8 = W#16#FFFF OUT1 M4.0 = VERDADERO OUT2 M4.1 = VERDADERO OUT3 M4.2 = VERDADERO OUT4 M4.3 = VERDADERO OUT5 M4.4 = VERDADERO OUT6 M4.5 = VERDADERO OUT7 M4.6 = VERDADERO OUT8 M4.7 = VERDADERO OUT9 M5.0 = VERDADERO OUT10 M5.1 = VERDADERO OUT11 M5.2 = VERDADERO OUT12 M5.3 = VERDADERO OUT13 M5.4 = VERDADERO OUT14 M5.5 = VERDADERO OUT15 M5.6 = VERDADERO OUT16 M5.7 = VERDADERO Después de la ejecución: OUT1 M4.0 = VERDADERO OUT2 M4.1 = FALSO OUT3 M4.2 = FALSO OUT4 M4.3 = FALSO OUT5 M4.4 = FALSO OUT6 M4.5 = VERDADERO OUT7 M4.6 = FALSO OUT8 M4.7 = FALSO OUT9 M5.0 = VERDADERO OUT10 M5.1 = VERDADERO OUT11 M5.2 = FALSO OUT12 M5.3 = FALSO OUT13 M5.4 = FALSO OUT14 M5.5 = FALSO OUT15 M5.6 = VERDADERO OUT16 M5.7 = FALSO Q M6.0 = FALSO OUTWORD MW8 = W#16#4321 ERR_CODE MW10 = W#16#0000 DB85 de instancia JOG_HIS DBX12.0 = FALSO EOD DBX12.1 = FALSO DSC DBB14 = W#16#0002 DCC DBD16 = DW#16#000000C8
Evento drum enmascarable (DRUM) (continuación)
Software estándar para S7-300 y S7-400 Funciones estándar, parte 2 A5E00066869-03
Funciones y bloques de función de conversión
6
Este capítulo describe las funciones (FC) de conversión y los bloques de función (FB) de conversión que puede añadir a las operaciones estándar para obtener una mayor flexibilidad en la programación.
Apartado
Descripción
Página
6.1
Crear el patrón de bits para la visualización con siete segmentos (SEG): FC93
6-2
6.2
Convertir una cadena de caracteres ASCII en una cifra hexadecimal (ATH): FC94
6-4
6.3
Convertir una cifra hexadecimal en una cadena de caracteres ASCII (HTA): FC95
6-6
6.4
Codificar una posición binaria (ENCO): FC96
6-8
6.5
Decodificar una posición binaria (DECO): FC97
6-9
6.6
Generar el complemento a diez (BCDCPL): FC98
6-10
6.7
Sumar la cantidad de bits activados (BITSUM): FC99
6-11
6.8
Escalar valores (SCALE): FC105
6-12
6.9
Desescalar valores (UNSCALE): FC106
6-14
Algoritmo avance/retardo (LEAD_LAG): FB80
6-16
6.10
Software estándar para S7-300 y S7-400 Funciones estándar, parte 2 A5E00066869-03
6-1
Funciones y bloques de función de conversión
6.1
Crear el patrón de bits para el display de 7 segmentos (SEG): FC93
Descripción
La función ”Crear el patrón de bits para el display de siete segmentos” (SEG) convierte los cuatro dígitos hexadecimales de una determinada palabra fuente (IN) en cuatro códigos equivalentes para hacer posible el display de siete segmentos, y escribe el resultado en la palabra doble de salida (OUT). La figura 6-1 representa la relación entre los dígitos hexadecimales de entrada y los patrones de bits de salida.
Dígito 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 Figura 6-1
Parámetros Tabla 6-1
Parámetro
–gf edcba 00111111 00000110 01011011 01001111 01100110 01101101 01111101 00000111 01111111 01100111 01110111 01111100 00111001 01011110 01111001 01110001
Display 0 1 2 3 4 5 6 7 8 9 A b C d E F
Display de 7 segmentos a f
e
g
d
b
c
Patrones de bits de salida para el display de siete segmentos
En la tabla 6-1 se describen los parámetros de la función ”Crear el patrón de bits para el display de siete segmentos” (SEG). Parámetros de la función SEG (FC93)
Declaración
Tipo de datos
Area de memoria
Descripción
EN
Entrada
BOOL
E, A, M, D, L
La entrada de habilitación con estado de señal 1 activa el cuadro.
ENO
Salida
BOOL
E, A, M, D, L
La salida de habilitación tiene el estado de señal 1 si la función se ejecuta sin errores.
IN
Entrada
WORD
E, M, D, P, o constante
Palabra fuente con cuatro dígitos hexadecimales.
OUT
Salida
DWORD
A, M, D, L, P
Patrón de bits destino con cuatro bytes.
6-2
Software estándar para S7-300 y S7-400 Funciones estándar, parte 2 A5E00066869-03
Funciones y bloques de función de conversión
Información sobre errores
Esta función no detecta condiciones de error.
Ejemplo
La figura 6-2 muestra cómo opera la función ”Crear el patrón de bits para el display de siete segmentos” (SEG). La función se ejecuta cuando el estado de señal de la entrada E 0.0 es 1 (activada). Si la función se ejecuta sin errores, los estados de señal de la salida de habilitación (ENO) y de la salida A 4.0 se ponen a 1 (activadas).
SEG FC93
E 0.0 W#16#1234
ENO
IN
OUT
OUT
Figura 6-2
A 4.0
EN
MD0
MD0 = DW#16#065B4F66
Crear el patrón de bits para el display de siete segmentos (SEG)
Software estándar para S7-300 y S7-400 Funciones estándar, parte 2 A5E00066869-03
6-3
Funciones y bloques de función de conversión
6.2
Convertir una cadena de caracteres ASCII en una cifra hexadecimal (ATH): FC94
Descripción
La función ”Convertir una cadena de caracteres ASCII en una cifra hexadecimal” (ATH) convierte la cadena de caracteres ASCII indicada por el puntero IN en dígitos hexadecimales, y almacena éstos en la tabla destino que indica el puntero OUT. Como el carácter ASCII requiere 8 bits y la cifra hexadecimal sólo necesita 4 bits, la palabra de salida tiene la mitad de longitud que la palabra de entrada. Los caracteres ASCII se convierten y disponen en la salida hexadecimal siguiendo el mismo orden en que se han leído. En caso de que la cantidad de caracteres ASCII sea impar, el cuarteto derecho del byte de la última cifra hexadecimal que se ha convertido se rellena con ceros.
Parámetros
En la tabla 6-2 se describen los parámetros de la función ”Convertir una cadena de caracteres ASCII en una cifra hexadecimal” (ATH).
Tabla 6-2
Parámetro
Parámetros de la función ATH (FC94)
Declaración
Tipo de datos
Area de memoria
Descripción
EN
Entrada
BOOL
E, A, M, D, L
La entrada de habilitación con estado de señal 1 activa el cuadro.
ENO
Salida
BOOL
E, A, M, D, L
La salida de habilitación tiene el estado de señal 1 si la función se ejecuta sin errores.
IN
Entrada
Pointer*
E, A, M, D, L
Apunta a la dirección inicial de una cadena ASCII.
N
Entrada
INT
E, A, M, L, P
Cantidad de caracteres ASCII a convertir.
RET_VAL
Salida
WORD
E, A, M, D, L, P
Da el valor W#16#0000 cuando la función se ejecuta sin errores; si los valores son distintos de W#16#0000, véase la información sobre errores.
OUT
Salida
Pointer*
A, M, D, L
Apunta a la dirección inicial de la tabla.
* Puntero en formato de palabra doble cuando se trata de direccionamiento interárea indirecto por registro.
Información sobre errores
Si se encuentra algún carácter ASCII que no es válido se convierte como si fuera 0. En este caso, el estado de señal de la salida de habilitación (ENO) se pone a 0, y el valor de respuesta (RET_VAL) toma el valor W#16#0007.
Ejemplo
La figura 6-3 muestra cómo opera la función ”Convertir una cadena de caracteres ASCII en una cifra hexadecimal” (ATH). La función se ejecuta cuando el estado de señal de la entrada E 0.0 es 1 (activada). El parámetro de entrada N = 5 indica que son cinco los caracteres ASCII a convertir. Estos caracteres están almacenados en el bloque de datos 1 a partir de la dirección que indica el puntero IN, DB1.DBX10.0. La cadena de salida será colocada a partir de la dirección que indica el puntero OUT, DB2.DBX0.0 (bloque de datos 2). Como en este caso hay una cantidad impar de caracteres ASCII de entrada, la mitad derecha del byte se rellena con ceros, dando como resultado el valor hexadecimal 0xC0. (La figura 6-4 muestra cuál es el valor hexadecimal equivalente de cada carácter ASCII). Si la función se ejecuta sin errores, los estados de señal de la salida de habilitación (ENO) y de la salida A 4.0 se ponen a 1 (activadas), y el valor de respuesta (RET_VAL) toma el valor W#16#0000.
6-4
Software estándar para S7-300 y S7-400 Funciones estándar, parte 2 A5E00066869-03
Funciones y bloques de función de conversión
ATH FC94
E 0.0 EN
A 4.0 ENO
P#DB1.DBX10.0
IN
RET_VAL
W#16#05
N
OUT
MW0 P#DB2.DBX0.0
Antes de la ejecución: Representación de la cadena ASCII: ‘‘B90AC’’ IN
DBB10 = B#16#42 DBB11 = B#16#39 DBB12 = B#16#30 DBB13 = B#16#41 DBB14 = B#16#43
Después de la ejecución: Representación del byte hexadecimal: B90AC0 OUT
Figura 6-3
Convertir una cadena de caracteres ASCII en una cifra hexadecimal (ATH)
Carácter ASCII 0 1 2 3 4 5 6 7 8 9 A B C D E F
Figura 6-4
DBB0 = B#16#B9 DBB1 = B#16#0A DBB2 = B#16#C0
Valor hexadecimal ASCII 30 31 32 33 34 35 36 37 38 39 41 42 43 44 45 46
Cifra hexadecimal convertida 0 1 2 3 4 5 6 7 8 9 A B C D E F
Caracteres ASCII y sus valores hexadecimales equivalentes
Software estándar para S7-300 y S7-400 Funciones estándar, parte 2 A5E00066869-03
6-5
Funciones y bloques de función de conversión
6.3
Convertir una cifra hexadecimal en una cadena de caracteres ASCII (HTA): FC95
Descripción
La función ”Convertir una cifra hexadecimal en una cadena de caracteres ASCII” (HTA) convierte las cifras hexadecimales indicadas por el puntero IN y las almacena en la cadena de caracteres que indica el puntero OUT. Como la cifra hexadecimal sólo necesita 4 bits y el carácter ASCII requiere 8 bits, la palabra de salida tiene, lógicamente, una longitud dos veces mayor que la palabra de entrada. Cada cuarteto de la cifra decimal se convierte en un carácter colocándose en la salida ASCII en el mismo orden en que se ha leído (primero se convierte el cuarteto de la cifra hexadecimal que está situado más a la izquierda, y a continuación el cuarteto situado a la derecha en la misma cifra.
Parámetros
En la tabla 6-3 se describen los parámetros de la función ”Convertir una cifra hexadecimal en una cadena de caracteres ASCII” (HTA).
Tabla 6-3
Parámetro
Parámetros de la función HTA (FC95)
Declaración
Tipo de datos
Area de memoria
Descripción
EN
Entrada
BOOL
E, A, M, D, L
La entrada de habilitación con estado de señal 1 activa el cuadro.
ENO
Salida
BOOL
E, A, M, D, L
La salida de habilitación tiene el estado de señal 1 si la función se ejecuta sin errores.
IN
Entrada
Pointer*
E, A, M, D
Apunta a la dirección inicial de las cifras hexadecimales.
N
Entrada
WORD
E, A, M, L, P
Cantidad de bytes hexadecimales a convertir.
OUT
Salida
Pointer*
A, M, D, L
Apunta a la dirección inicial de la tabla destino.
* Puntero en formato de palabra doble cuando se trata de direccionamiento interárea indirecto por registro.
Información sobre errores
6-6
Esta función no detecta condiciones de error.
Software estándar para S7-300 y S7-400 Funciones estándar, parte 2 A5E00066869-03
Funciones y bloques de función de conversión
Ejemplo
La figura 6-5 muestra cómo opera la función ”Convertir una cifra hexadecimal en una cadena de caracteres ASCII” (HTA). La función se ejecuta cuando el estado de señal de la entrada E 0.0 es 1 (activada). El parámetro de entrada N = 3 indica que hay tres caracteres decimales a convertir. Los bytes hexadecimales están almacenados en el bloque de datos 1, a partir de la dirección que indica el puntero IN, DB1.DBX10.0. La cadena de salida será colocada a partir de la dirección que indica el puntero OUT, DB2.DBX0.0 (bloque de datos 2). (La figura 6-6 muestra cuál es el equivalente ASCII de cada valor hexadecimal). Si la función se ejecuta sin errores, los estados de señal de la salida de habilitación (ENO) y de la salida A 4.0 se ponen a 1 (activadas).
HTA FC95
E 0.0
A 4.0
EN
ENO
P#DB1.DBX10.0
IN
OUT
W#16#03
N
P#DB2.DBX0.0
Antes de la ejecución: Representación del byte hexadecimal: F97AC1 IN DBB10 = B#16#F9 DBB11 = B#16#7A DBB12 = B#16#C1 Después de la ejecución: Representación de la cadena ASCII: ‘‘F97AC1’’ OUT DBB0 = B#16#46 DBB1 = B#16#39 DBB2 = B#16#37 DBB3 = B#16#41 DBB4 = B#16#43 DBB5 = B#16#31 Figura 6-5
Convertir una cifra hexadecimal en una cadena de caracteres ASCII (HTA)
Dígito hexadecimal 0 1 2 3 4 5 6 7 8 9 A B C D E F
Figura 6-6
Valor hexadecimal ASCII 30 31 32 33 34 35 36 37 38 39 41 42 43 44 45 46
Caracter ASCII convertido 0 1 2 3 4 5 6 7 8 9 A B C D E F
Cifras hexadecimales y sus valores equivalentes ASCII
Software estándar para S7-300 y S7-400 Funciones estándar, parte 2 A5E00066869-03
6-7
Funciones y bloques de función de conversión
6.4
Codificar una posición binaria (ENCO): FC96
Descripción
La función ”Codificar una posición binaria” (ENCO) convierte el contenido del parámetro IN codificándolo en una cifra binaria de 5 bits que corresponde a la posición del bit situado a la derecha del todo en el parámetro IN, y devuelve el resultado como valor de la función. Cuando el parámetro IN tiene el valor 0000 0001 ó el valor 0000 0000, se devuelve el valor 0.
Parámetros
En la tabla 6-4 se describen los parámetros de la función ”Codificar una posición binaria” (ENCO).
Tabla 6-4
Parámetro
Parámetros de la función ENCO (FC96)
Declaración
Tipo de datos
Area de memoria
Descripción
EN
Entrada
BOOL
E, A, M, D, L
La entrada de habilitación con estado de señal 1 activa el cuadro.
ENO
Salida
BOOL
E, A, M, D, L
La salida de habilitación tiene el estado de señal 1 si la función se ejecuta sin errores.
IN
Entrada
DWORD
E, M, D, L, P, o constante
Valor a codificar.
RET_VAL
Salida
INT
A, M, D, L, P
Valor de respuesta (conteniendo una cifra binaria de 5 bits).
Información sobre errores
Esta función no detecta condiciones de error.
Ejemplo
La figura 6-7 muestra cómo opera la función ”Codificar una posición binaria” (ENCO). La función se ejecuta cuando el estado de señal de la entrada E 0.0 es 1 (activada). Si la función se ejecuta sin errores, los estados de señal de la salida de habilitación (ENO) y de la salida A 4.0 se ponen a 1 (activadas).
ENCO FC96 EN ENO
E 0.0
RET_VAL DW#16#12345678
6-8
MW0
IN
RET_VAL
Figura 6-7
A 4.0
MW0 = 3
Codificar una posición binaria (ENCO)
Software estándar para S7-300 y S7-400 Funciones estándar, parte 2 A5E00066869-03
Funciones y bloques de función de conversión
6.5
Decodificar una posición binaria (DECO): FC97
Descripción
La función ”Decodificar una posición binaria” (DECO) convierte una cifra binaria de 5 bits (0-31) especificada en la entrada IN decodificándola en un valor, que es el valor de respuesta de la función correspondiente a la posición del bit. Cuando el valor de la entrada IN es mayor que 31 se realiza una operación módulo 32 para obtener una cifra binaria de 5 bits.
Parámetros
En la tabla 6-5 se describen los parámetros de la función ”Decodificar una posición binaria” (DECO).
Tabla 6-5
Parámetro
Parámetros de la función DECO (FC97)
Declaración
Tipo de datos
Area de memoria
Descripción
EN
Entrada
BOOL
E, A, M, D, L
La entrada de habilitación con estado de señal 1 activa el cuadro.
ENO
Salida
BOOL
E, A, M, D, L
La salida de habilitación tiene el estado de señal 1 si la función se ejecuta sin errores.
IN
Entrada
WORD
E, M, D, L, P, o constante
Variable a decodificar.
RET_VAL
Salida
DWORD
A, M, D, L, P
Valor de respuesta.
Información sobre errores
Esta función no detecta condiciones de error.
Ejemplo
La figura 6-8 muestra cómo opera la función ”Decodificar una posición binaria” (DECO). La función se ejecuta cuando el estado de señal de la entrada E 0.0 es 1 (activada). Si la función se ejecuta sin errores, los estados de señal de la salida de habilitación (ENO) y de la salida A 4.0 se ponen a 1 (activadas).
DECO FC97 EN ENO
E 0.0
RET_VAL W#16#0003
MD0
IN
RET_VAL
Figura 6-8
A 4.0
MD0 = DW#16#00000008
Decodificar una posición binaria (DECO)
Software estándar para S7-300 y S7-400 Funciones estándar, parte 2 A5E00066869-03
6-9
Funciones y bloques de función de conversión
6.6
Generar el complemento a diez (BCDCPL): FC98
Descripción
La función ”Generar el complemento a diez” (BCDCPL) devuelve como valor de respuesta el complemento a diez de la cifra BCD de 7 dígitos que se haya indicado en la entrada IN. La fórmula aritmética de esta operación es la siguiente: 10000000 (en BCD) – valor BCD de 7 dígitos = complemento a diez (en BCD)
Parámetros
Tabla 6-6
Parámetro
En la tabla 6-6 se describen los parámetros de la función ”Generar el complemento a diez” (BCDCPL). Parámetros de la función BCDCPL (FC98)
Declaración
Tipo de datos
Area de memoria
Descripción
EN
Entrada
BOOL
E, A, M, D, L
La entrada de habilitación con estado de señal 1 activa el cuadro.
ENO
Salida
BOOL
E, A, M, D, L
La salida de habilitación tiene el estado de señal 1 si la función se ejecuta sin errores.
IN
Entrada
DWORD
E, M, D, L, P, o constante
Cifra BCD de 7 dígitos.
RET_VAL
Salida
DWORD
A, M, D, L, P
Valor de respuesta.
Información sobre errores
Esta función no detecta condiciones de error.
Ejemplo
La figura 6-9 muestra cómo opera la función ”Generar el complemento a diez” (BCDCPL). La función se ejecuta cuando el estado de señal de la entrada E 0.0 es 1 (activada). Si la función se ejecuta sin errores, los estados de señal de la salida de habilitación (ENO) y de la salida A 4.0 se ponen a 1 (activadas).
BCDCPL FC98 EN ENO
E 0.0
RET_VAL DW#16#01234567
6-10
MD0
IN
RET_VAL Figura 6-9
A 4.0
MD0 = DW#16#08765433
Generar el complemento a diez (BCDCPL)
Software estándar para S7-300 y S7-400 Funciones estándar, parte 2 A5E00066869-03
Funciones y bloques de función de conversión
6.7
Sumar la cantidad de bits activados (BITSUM): FC99
Descripción
La función ”Sumar la cantidad de bits activados” (BITSUM) cuenta qué cantidad de bits hay puestos a 1 (activados) en la entrada IN y devuelve dicha cantidad como valor de respuesta.
Parámetros
En la tabla 6-7 se describen los parámetros de la función ”Sumar la cantidad de bits activados” (BITSUM).
Tabla 6-7
Parámetro
Parámetros de la función BITSUM (FC99)
Declaración
Tipo de datos
Area de memoria
Descripción
EN
Entrada
BOOL
E, A, M, D, L
La entrada de habilitación con estado de señal 1 activa el cuadro.
ENO
Salida
BOOL
E, A, M, D, L
La salida de habilitación tiene el estado de señal 1 si la función se ejecuta sin errores.
IN
Entrada
DWORD
E, M, D, L, P, o constante
Variable en la que se van a contar los bits.
RET_VAL
Salida
INT
A, M, D, L, P
Valor de respuesta.
Información sobre errores
Esta función no detecta condiciones de error.
Ejemplo
La figura 6-10 muestra cómo opera la función ”Sumar la cantidad de bits activados” (BITSUM). La función se ejecuta cuando el estado de señal de la entrada E 0.0 es 1 (activada). En este ejemplo, el valor devuelto en MW0 es 13 (D en la notación hexadecimal), valor igual a la suma de bits activados en la palabra doble DW#16#12345678 (valor hexadecimal). Si la función se ejecuta sin errores, los estados de señal de la salida de habilitación (ENO) y de la salida A 4.0 se ponen a 1 (activadas).
BITSUM FC99 EN ENO
E 0.0
RET_VAL DW#16#12345678
MW0
IN
RET_VAL
Figura 6-10
A 4.0
MW0 = W#16#000D
Sumar la cantidad de bits activados (BITSUM)
Software estándar para S7-300 y S7-400 Funciones estándar, parte 2 A5E00066869-03
6-11
Funciones y bloques de función de conversión
6.8
Escalar valores (SCALE): FC105
Descripción
La función ”Escalar valores” (SCALE) toma un valor entero en la entrada IN y lo convierte en un valor real, convirtiéndolo a escala en un rango comprendido entre un límite inferior y un límite superior (LO_LIM y HI_LIM). El resultado se escribe en la salida OUT. La función SCALE aplica la fórmula siguiente: OUT = [ ((FLOAT (IN) – K1)/(K2–K1)) * (HI_LIM–LO_LIM)] + LO_LIM Las constantes K1 y K2 se aplican de forma diferente, dependiendo de si el valor de entrada es BIPOLAR o UNIPOLAR. •
BIPOLAR:
Se supone que el valor entero de entrada debe estar entre –27648 y 27648, por lo tanto, K1 = –27648,0 y K2 = +27648,0
•
UNIPOLAR: Se supone que el valor entero de entrada debe estar entre 0 y 27648, por lo tanto, K1 = 0,0 y K2 = +27648,0
Si el valor entero de entrada es mayor que K2, la salida (OUT) se une a HI_LIM y se indica un error. Si el valor entero de entrada es menor que K1, la salida se une a LO_LIM y se indica un error. Se puede efectuar la conversión escalar inversa programando los límites de tal forma que el límite inferior sea mayor que el límite superior (LO_LIM > HI_LIM). En la conversión escalar inversa el valor de la salida disminuye cuando aumenta el valor de la entrada.
Parámetros Tabla 6-8
Parámetro
En la tabla 6-8 se describen los parámetros de la función ”Escalar valores” (SCALE). Parámetros de la función SCALE (FC105)
Declaración
Tipo de datos
Area de memoria
Descripción
EN
Entrada
BOOL
E, A, M, D, L
La entrada de habilitación con estado de señal 1 activa el cuadro.
ENO
Salida
BOOL
E, A, M, D, L
La salida de habilitación tiene el estado de señal 1 si la función se ejecuta sin errores.
IN
Entrada
INT
E, A, M, D, L, P, o constante
Valor de entrada a convertir a escala en valor REAL.
HI_LIM
Entrada
REAL
E, A, M, D, L, P, o constante
Límite superior del rango escalar.
LO_LIM
Entrada
REAL
E, A, M, D, L, P, o constante
Límite inferior del rango escalar.
BIPOLAR
Entrada
BOOL
E, A, M, D, L
El estado de señal 1 indica que el valor de entrada es bipolar; con el estado de señal 0 indica que es unipolar.
OUT
Salida
REAL
E, A, M, D, L, P
Resultado de la conversión a escala.
RET_VAL
Salida
WORD
E, A, M, D, L, P
Da el valor W#16#0000 cuando la función se ejecuta sin errores; si los valores son distintos de W#16#0000, véase la información sobre errores.
6-12
Software estándar para S7-300 y S7-400 Funciones estándar, parte 2 A5E00066869-03
Funciones y bloques de función de conversión
Información sobre errores
Si el valor entero de entrada es mayor que K2, la salida (OUT) se une a HI_LIM y se indica un error. Si el valor entero de entrada es menor que K1, la salida se une a LO_LIM y se indica un error. El estado de señal de la salida de habilitación (ENO) se pone a 1 y el valor de respuesta (RET_VAL) toma el valor W#16#0008.
Ejemplo
La figura 6-11 muestra cómo opera la función ”Escalar valores” (SCALE). La función se ejecuta cuando el estado de señal de la entrada E 0.0 es 1 (activada). En este ejemplo, el valor entero 22 se convierte en un valor REAL escalar entre 0.0 y 100.0, y éste se escribe en la salida OUT. El valor de entrada es BIPOLAR, tal como lo indica el estado de señal de la entrada E2.0. Si la función se ejecuta sin errores, los estados de señal de la salida de habilitación (ENO) y de la salida A 4.0 se ponen a 1 (activadas), y el valor de respuesta toma el valor W#16#0000.
E 0.0 EN
SCALE FC105
MW10
IN
MD20
HI_LIM
MD30
LO_LIM
A 4.0 ENO
RET_VAL
MW0
OUT
MD40
E 2.0 BIPOLAR
IN HI_LIM
MD20 = 100.0
LO_LIM
MD30 = 0.0
OUT
MD40 = 0.0
BIPOLAR
E 2.0 = TRUE
OUT Figura 6-11
Antes de la ejecución: MW10 = 22
Después de la ejecución: MD40 = 50.03978588
Escalar valores (SCALE)
Software estándar para S7-300 y S7-400 Funciones estándar, parte 2 A5E00066869-03
6-13
Funciones y bloques de función de conversión
6.9
Desescalar valores (UNSCALE): FC106
Descripción
La función ”Desescalar valores” (UNSCALE) toma en la entrada IN un valor real que está ajustado a escala en un rango comprendido entre un límite inferior y un límite superior (LO_LIM y HI_LIM), y lo convierte en un valor entero. El resultado se escribe en la salida OUT. La función UNSCALE aplica la fórmula siguiente: OUT = [ ((IN–LO_LIM)/(HI_LIM–LO_LIM)) * (K2–K1) ] + K1 Las constantes K1 y K2 se aplican de forma diferente, dependiendo de si el valor de entrada es BIPOLAR o UNIPOLAR. •
BIPOLAR:
Se supone que el valor entero de salida debe estar entre –27648 y 27648, por lo tanto, K1 = –27648,0 y K2 = +27648,0
•
UNIPOLAR: Se supone que el valor entero de salida debe estar entre 0 y 27648, por lo tanto, K1 = 0,0 y K2 = +27648,0
Si el valor real de entrada queda fuera del rango comprendido entre los límites inferior y superior de su tipo (BIPOLAR o UNIPOLAR), la salida (OUT) se fija al valor límite más cercano (a LO_LIM o a HI_LIM), y se devuelve un error.
Parámetros Tabla 6-9
Parámetro
En la tabla 6-9 se describen los parámetros de la función ”Desescalar valores” (UNSCALE). Parámetros de la función UNSCALE (FC106)
Declaración
Tipo de datos
Area de memoria
Descripción
EN
Entrada
BOOL
E, A, M, D, L
La entrada de habilitación con estado de señal 1 activa el cuadro.
ENO
Salida
BOOL
E, A, M, D, L
La salida de habilitación tiene el estado de señal 1 si la función se ejecuta sin errores.
IN
Entrada
REAL
E, A, M, D, L, P, o constante
Valor de entrada a desescalar convirtiéndolo en un valor entero.
HI_LIM
Entrada
REAL
E, A, M, D, L, P, o constante
Límite superior del rango escalar.
LO_LIM
Entrada
REAL
E, A, M, D, L, P, o constante
Límite inferior del rango escalar.
BIPOLAR
Entrada
BOOL
E, A, M, D, L
El estado de señal 1 indica que el valor de entrada es bipolar; con el estado de señal 0 indica que es unipolar.
OUT
Salida
INT
E, A, M, D, L, P
Resultado del desescalado.
RET_VAL
Salida
WORD
E, A, M, D, L, P
Da el valor W#16#0000 cuando la función se ejecuta sin errores; si los valores son distintos de W#16#0000, véase la información sobre errores.
6-14
Software estándar para S7-300 y S7-400 Funciones estándar, parte 2 A5E00066869-03
Funciones y bloques de función de conversión
Información sobre errores
Si el valor real de entrada queda fuera del rango comprendido entre los límites inferior y superior de su tipo (BIPOLAR o UNIPOLAR), la salida (OUT) se une al valor límite más cercano (a LO_LIM o a HI_LIM), y se devuelve un error. El estado de señal de la salida de habilitación (ENO) se pone a 0, y el valor de respuesta (RET_VAL) toma el valor W#16#0008.
Ejemplo
La figura 6-12 muestra cómo opera la función ”Desescalar valores” (UNSCALE). La función se ejecuta cuando el estado de señal de la entrada E 0.0 es 1 (activada). En este ejemplo, el valor REAL 50.03978588, escalado entre 0.0 y 100.0 se convierte en un valor INTEGER, y éste se escribe en la salida OUT. El valor de entrada es BIPOLAR, tal como lo indica el estado de señal de la entrada E2.0. Si la función se ejecuta sin errores, los estados de señal de la salida de habilitación (ENO) y de la salida A 4.0 se ponen a 1 (activadas), y el valor de respuesta (RET_VAL) toma el valor W#16#0000.
E 0.0 EN
UNSCALE FC106
MD10
IN
MD20
HI_LIM
MD30
LO_LIM
A 4.0 ENO
RET_VAL OUT
MW0 MW40
E 2.0 BIPOLAR
IN HI_LIM
MD20 = 100.0
LO_LIM
MD30 = 0.0
OUT
MW40 = 0
BIPOLAR
E 2.0 = TRUE
OUT Figura 6-12
Antes de la ejecución: MD10 = 50.03978588
Después de la ejecución: MW40 = 22
Desescalar valores (UNSCALE)
Software estándar para S7-300 y S7-400 Funciones estándar, parte 2 A5E00066869-03
6-15
Funciones y bloques de función de conversión
6.10 Algoritmo avanve/retardo (LEAD_LAG): FB80 Descripción
El bloque de función ”Algoritmo avance/retardo” (LEAD_LAG) permite procesar señales con una variable analógica. Una salida (OUT) se calcula en base a una entrada (IN) y a los valores indicados para la ganancia (GAIN), el avance (LD_TIME) y el retardo (LG_TIME). El valor de la ganancia tiene que ser mayor que cero. El algoritmo LEAD_LAG aplica la siguiente ecuación: siendo OUT =
LG_TIME LG_TIME + SAMPLE_T
LD_TIME + SAMPLE_T PREV_OUT + GAIN
LG_TIME + SAMPLE_T
LD_TIME IN – GAIN
LG_TIME + SAMPLE_T
PREV_IN
El bloque de función LEAD_LAG se utiliza comúnmente junto con lazos para que sirva de compensador en el control anticipativo. El LEAD_LAG está dividido en dos partes. La fase de avance (lead) desplaza la fase de la salida del bloque de función anticipando la entrada; por el contrario, la fase de retardo (lag) desplaza la salida retardando la entrada. Como la función LAG equivale a una integración, se puede emplear como supresor de interferencias o como filtro de paso bajo. La función LEAD equivale a una diferenciación y es como un filtro de paso alto. La combinación de ambas fases (LEAD_LAG) hace que la fase de salida retarde la entrada a bajas frecuencias y la anticipe a altas frecuencias. Por eso, LEAD_LAG puede usarse como si fuera un filtro de paso de banda.
6-16
Software estándar para S7-300 y S7-400 Funciones estándar, parte 2 A5E00066869-03
Funciones y bloques de función de conversión
Parámetros
Tabla 6-10
Parámetro
En la tabla 6-10 se describen los parámetros del bloque de función ”Algoritmo avance/retardo” (LEAD_LAG). Parámetros del bloque de función LEAD_LAG (FB80)
Declaración
Tipo de datos
Area de memoria
Descripción
EN
Entrada
BOOL
E, A, M, D, L
La entrada de habilitación con estado de señal 1 activa el cuadro.
ENO
Salida
BOOL
E, A, M, D, L
La salida de habilitación tiene el estado de señal ”1” si se ejecuta el bloque de función sin errores.
IN
Entrada
REAL
E, A, M, D, L, P, o constante
Valor de entrada del periodo actual de muestreo a procesar.
SAMPLE_T
Entrada
INT
E, A, M, D, L, P, o constante
Tiempo de muestreo.
OUT
Salida
REAL
E, A, M, D, L, P, o constante
Resultado de la función LEAD_LAG.
ERR_CODE
Salida
WORD
E, A, M, D, L, P
Da el valor W#16#0000 cuando se ejecuta el bloque de función sin errores; si los valores son distintos de W#16#0000 véase la información sobre errores.
LD_TIME
Estático
REAL
E, A, M, D, L, P, o constante
Tiempo de avance en minutos.
LG_TIME
Estático
REAL
E, A, M, D, L, P, o constante
Tiempo de retardo en minutos.
GAIN
Estático
REAL
E, A, M, D, L, P, o constante
Ganancia en % / % (relación del cambio en la salida con respecto al cambio en la entrada como estado constante).
PREV_IN
Estático
REAL
E, A, M, D, L, P, o constante
Entrada anterior.
PREV_OUT
Estático
REAL
E, A, M, D, L, P, o constante
Salida anterior.
Información sobre errores
El bloque de función LEAD_LAG no se ejecuta si GAIN es igual o menor que cero. En ese caso, el estado de señal de la salida de habilitación (ENO) se pone a 0 y el código de error ERR_CODE toma el valor W#16#0009.
Software estándar para S7-300 y S7-400 Funciones estándar, parte 2 A5E00066869-03
6-17
Funciones y bloques de función de conversión
Ejemplo
La figura 6-13 muestra cómo opera el bloque de función ”Algoritmo avance/retardo” (LEAD_LAG). El bloque de función se ejecuta cuando el estado de señal de la entrada E 0.0 es 1 (activada). En este ejemplo, el valor de entrada (IN) 2.0 se procesa aplicando el algoritmo LEAD_LAG y se obtiene como resultado la salida (OUT). Si el bloque de función se ejecuta sin errores, los estados de señal de la salida de habilitación (ENO) y de la salida A 4.0 se ponen a 1 (activadas), y el código de error (ERR_CODE) toma el valor W#16#0000.
Nota Puede inicializar los parámetros estáticos utilizando el editor de bloques de datos.
DB80 LEAD_LAG FB80
E 0.0 MD10 10
A 4.0
EN
ENO
IN
OUT
MD20
ERR_CODE
MW0
SAMPLE_T
Antes de la ejecución: MD10 =2.0
IN OUT
MD20 =0.0 Instancia DB80
LD_TIME
DBD12 =2.0
LG_TIME
DBD16 =2.0
GAIN
DBD20 =1.0
PREV_IN
DBD24 =6.0
PREV_OUT
DBD28 = 6.0
Después de la ejecución: Instancia DB80
Figura 6-13
6-18
PREV_IN
DBD24 =2.0
PREV_OUT
DBD28 = 2.0
OUT
MD20 =2.0
Algoritmo avance/retardo (LEAD_LAG)
Software estándar para S7-300 y S7-400 Funciones estándar, parte 2 A5E00066869-03
7
Función en coma flotante
Este capítulo describe la función (FC) en coma flotante, que puede añadir a las operaciones estándar para obtener una mayor flexibilidad en la programación.
Apartado 7.1
Descripción Desviación típica (DEV): FC102
Software estándar para S7-300 y S7-400 Funciones estándar, parte 2 A5E00066869-03
Página 7-2
7-1
Función en coma flotante
7.1
Desviación típica (DEV): FC102
Descripción
La función ”Desviación típica” (DEV) calcula la desviación típica de un grupo de valores que están almacenados en una tabla (TBL), y almacena el resultado en la salida (OUT). La desviación típica se calcula aplicando la siguiente fórmula: (N * SqSum) – Sum2 N * (N – 1)
Desviación = típica siendo:
Sum = la suma de valores de TBL N = la cantidad de valores de TBL SqSum = el cuadrado de la suma de todos los valores de TBL
En todos los cálculos se utilizan valores en coma flotante IEEE, realizándose automáticamente las conversiones de los tipos de datos que sean necesarias en cuanto se llama a la función.
Parámetros Tabla 7-1
Parámetro
•
El primer registro de la tabla indica la cantidad de elementos que tiene la tabla (longitud de la tabla).
•
El segundo registro de la tabla indica el primer valor de la tabla.
•
El tamaño de los registros de la tabla y del valor calculado (OUT) los determina el tipo de datos (E_TYPE).
En la tabla 7-1 se describen los parámetros de la función ”Desviación típica” (DEV). Parámetros de la función DEV (FC102)
Declaración
Tipo de datos
Area de memoria
Descripción
EN
Entrada
BOOL
E, A, M, D, L
La entrada de habilitación con estado de señal 1 activa el cuadro.
ENO
Salida
BOOL
E, A, M, D, L
La salida de habilitación tiene el estado de señal 1 si la función se ejecuta sin errores.
TBL
Entrada
Pointer*
E, A, M, D
Apunta a la dirección inicial de la tabla de valores.
OUT
Entrada
Pointer*
E, A, M, D
Apunta a la dirección del valor de desviación típica que se ha calculado.
E_TYPE
Entrada
BYTE
E, A, M, D, L,P
Indica de qué tipo son los datos de la tabla. Los tipos válidos en la función DEV son: B#16#05 = INT B#16#07 = DINT B#16#08 = REAL
RET_VAL
Salida
WORD
E, A, M, D, L, P
Da el valor W#16#0000 cuando la función se ejecuta sin errores; si los valores son distintos de W#16#0000, véase la información sobre errores.
* Puntero en formato de palabra doble cuando se trata de direccionamiento interárea indirecto por registro.
7-2
Software estándar para S7-300 y S7-400 Funciones estándar, parte 2 A5E00066869-03
Función en coma flotante
Información sobre errores
La función no será ejecutada si se da una de las condiciones enumeradas en la tabla 7-2. En ese caso, el estado de señal de la salida de habilitación (ENO) se pone a 0 y el valor de respuesta (RET_VAL) se ajusta como corresponde. Tabla 7-2
Condiciones de error con la función FC102
RET_VAL
Ejemplo
Significado
W#16#0001
El área de memoria indicada para un parámetro de la función no es válida.
W#16#0002
El tipo de datos (E_TYPE) no es válido.
W#16#0004
La longitud de la tabla es cero.
La figura 7-1 muestra cómo opera la función ”Desviación típica” (DEV). La función se ejecuta cuando el estado de señal de la entrada E 0.0 es 1 (activada). En este ejemplo la tabla tiene cinco elementos, tal como indica la primera palabra de la tabla. El parámetro E_TYPE indica que los elementos de la tabla son del tipo REAL. Si la función se ejecuta sin errores, los estados de señal de la salida de habilitación (ENO) y de la salida A 4.0 se ponen a 1 (activadas), y el valor de respuesta (RET_VAL) toma el valor W#16#0000.
DEV FC102
E 0.0
EN
P#DB1.DBX100.0
TBL
P#DB1.DBX130.0
OUT
B#16#08
TBL (long. de tabla)
OUT OUT Figura 7-1
A 4.0
ENO RET_VAL
MW0
E_TYPE Antes de la ejecución: DBW100=W#16#0005 DBD102 = 2.0 DBD106 = 4.0 DBD110 = 8.0 DBD114 = 16.0 DBD118 = 32.0 DBD130 = 0.0 Después de la ejecución: DBD130 = 12.19836055
Desviación típica (DEV)
Software estándar para S7-300 y S7-400 Funciones estándar, parte 2 A5E00066869-03
7-3
Función en coma flotante
7-4
Software estándar para S7-300 y S7-400 Funciones estándar, parte 2 A5E00066869-03
Bloques de función de comparación
8
Este capítulo describe los bloques de función (FB) de comparación que puede añadir a las operaciones estándar de que ya dispone, aumentando así la flexibilidad en la programación.
Apartado
Descripción
Página
8.1
Comparar índice matriz (IMC): FB83
8-2
8.2
Barrido de matriz (SMC): FB84
8-6
Software estándar para S7-300 y S7-400 Funciones estándar, parte 2 A5E00066869-03
8-1
Bloques de función de comparación
8.1
Comparar índice matriz (IMC): FB83
Descripción
8-2
El bloque de función ”Comparar índice matriz” (IMC) compara el estado de señal de hasta 16 bits de entrada (de IN_BIT0 a IN_BIT15) programados con los correspondientes bits de una máscara de comparación. Se pueden programar hasta un máximo de 16 pasos con las máscaras. El bit IN_BIT0 es comparado con CMP_VAL[x, 0], siendo x el número de paso; el bit IN_BIT1 es comparado con CMP_VAL [x, 1], y así sucesivamente. El valor de CMP_STEP indica el número de paso de la máscara con la que se realiza la comparación. Los bits de entrada no programados y los bits no programados de las máscaras tienen preseleccionado el estado de señal FALSE. Si se encuentra una correspondencia al realizar la comparación, el estado de señal de la salida (OUT) se pone a 1; en caso contrario se pondrá a 0.
Software estándar para S7-300 y S7-400 Funciones estándar, parte 2 A5E00066869-03
Bloques de función de comparación
Parámetros Tabla 8-1
Parámetro
En la tabla 8-1 se describen los parámetros del bloque de función ”Comparar índice matriz” (IMC). Parámetros del bloque de función IMC (FB83)
Declaración
Tipo de datos
Area de memoria
Descripción
EN
Entrada
BOOL
E, A, M, D, L
La entrada de habilitación con estado de señal 1 activa el cuadro.
ENO
Salida
BOOL
E, A, M, D, L
La salida de habilitación tiene el estado de señal 1 si se ejecuta el bloque de función sin errores.
IN_BIT0
Entrada
BOOL
E, A, M, D, L
Bit de entrada 0 a comparar con el bit 0 de la máscara.
IN_BIT1
Entrada
BOOL
E, A, M, D, L
Bit de entrada 1 a comparar con el bit 1 de la máscara.
IN_BIT2
Entrada
BOOL
E, A, M, D, L
Bit de entrada 2 a comparar con el bit 2 de la máscara.
IN_BIT3
Entrada
BOOL
E, A, M, D, L
Bit de entrada 3 a comparar con el bit 3 de la máscara.
IN_BIT4
Entrada
BOOL
E, A, M, D, L
Bit de entrada 4 a comparar con el bit 4 de la máscara.
IN_BIT5
Entrada
BOOL
E, A, M, D, L
Bit de entrada 5 a comparar con el bit 5 de la máscara.
IN_BIT6
Entrada
BOOL
E, A, M, D, L
Bit de entrada 6 a comparar con el bit 6 de la máscara.
IN_BIT7
Entrada
BOOL
E, A, M, D, L
Bit de entrada 7 a comparar con el bit 7 de la máscara.
IN_BIT8
Entrada
BOOL
E, A, M, D, L
Bit de entrada 8 a comparar con el bit 8 de la máscara.
IN_BIT9
Entrada
BOOL
E, A, M, D, L
Bit de entrada 9 a comparar con el bit 9 de la máscara.
IN_BIT10
Entrada
BOOL
E, A, M, D, L
Bit de entrada 10 a comparar con el bit 10 de la máscara.
IN_BIT11
Entrada
BOOL
E, A, M, D, L
Bit de entrada 11 a comparar con el bit 11 de la máscara.
IN_BIT12
Entrada
BOOL
E, A, M, D, L
Bit de entrada 12 a comparar con el bit 12 de la máscara.
IN_BIT13
Entrada
BOOL
E, A, M, D, L
Bit de entrada 13 a comparar con el bit 13 de la máscara.
IN_BIT14
Entrada
BOOL
E, A, M, D, L
Bit de entrada 14 a comparar con el bit 14 de la máscara.
IN_BIT15
Entrada
BOOL
E, A, M, D, L
Bit de entrada 15 a comparar con el bit 15 de la máscara.
CMP_STEP
Entrada
BYTE
E, A, M, D, L, P
Número de paso de la máscara con la que se efectúa la comparación.
OUT
Salida
BOOL
E, A, M, D, L
El estado de señal 1 indica que se ha encontrado una correspondencia en la comparación; el estado de señal 0 indica que no se ha encontrado ninguna.
ERR_CODE
Salida
WORD
E, A, M, D, L, P
Da el valor W#16#0000 cuando la función se ejecuta sin errores; si los valores son distintos de W#16#0000, véase la información sobre errores.
CMP_VAL
Estático
ARRAY OF BOOL
E, A, M, D, L
Máscaras de comparación [de 1 a 15, de 1 a 15]: el primer número del índice es el del paso, el segundo es el número de bit de la máscara.
Software estándar para S7-300 y S7-400 Funciones estándar, parte 2 A5E00066869-03
8-3
Bloques de función de comparación
Información sobre errores
El bloque de función no se ejecutará si el valor de CMP_STEP es mayor que 15. En ese caso, el estado de señal de la salida de habilitación (ENO) se pone a 0 y el código de error ERR_CODE toma el valor W#16#000A.
Ejemplo
La figura 8-1 muestra cómo opera el bloque de función ”Comparar índice matriz” (IMC). El bloque de función se ejecuta cuando el estado de señal de la entrada E 0.0 es 1 (activada). En este ejemplo, los 16 bits de entrada se comparan con la máscara para el paso 2, tal como lo indica el parámetro CMP_STEP. Una vez ejecutada la función, el estado de señal de OUT se pone en TRUE, ya que los bits de entrada se corresponden con la máscara para el paso 2. Si la función se ejecuta sin errores, los estados de señal de la salida de habilitación (ENO) y de la salida A 4.0 se ponen a 1 (activadas), y el código de error (ERR_CODE) toma el valor W#16#0000.
Nota Puede inicializar los parámetros estáticos utilizando el editor de bloques de datos.
8-4
Software estándar para S7-300 y S7-400 Funciones estándar, parte 2 A5E00066869-03
Bloques de función de comparación
E 0.0 EN
DB83 IMC FB83
A 4.0 ENO
M0.0 M0.1
IN_BIT0
OUT
A 2.0
IN_BIT1
ERR_CODE
MW0
M0.2 IN_BIT2
M0.3
IN_BIT3 M0.4
IN_BIT4
M0.5 IN_BIT5 M0.6 IN_BIT6
M0.7
IN_BIT7 M1.0 IN_BIT8
M1.1
IN_BIT9 M1.2
IN_BIT10
M1.3 IN_BIT11 M1.4 IN_BIT12 M1.5 IN_BIT13
M1.6
IN_BIT14 M1.7 IN_BIT15 B#16#02
CMP_STEP
Antes de la ejecución: IN_BIT0 IN_BIT1 IN_BIT2 IN_BIT3 IN_BIT4 IN_BIT5 IN_BIT6 IN_BIT7 IN_BIT8 IN_BIT9 IN_BIT10 IN_BIT11 IN_BIT12 IN_BIT13 IN_BIT14 IN_BIT15
M0.0 M0.1 M0.2 M0.3 M0.4 M0.5 M0.6 M0.7 M1.0 M1.1 M1.2 M1.3 M1.4 M1.5 M1.6 M1.7
= = = = = = = = = = = = = = = =
TRUE TRUE FALSE TRUE TRUE FALSE TRUE TRUE FALSE TRUE TRUE FALSE TRUE TRUE FALSE TRUE
OUT
A 2.0 = FALSE
Instancia DB83 CMP_VAL [2, 0] CMP_VAL [2, 1] CMP_VAL [2, 2] CMP_VAL [2, 3] CMP_VAL [2, 4] CMP_VAL [2, 5] CMP_VAL [2, 6] CMP_VAL [2, 7] CMP_VAL [2, 8] CMP_VAL [2, 9] CMP_VAL [2, 10] CMP_VAL [2, 11] CMP_VAL [2, 12] CMP_VAL [2, 13] CMP_VAL [2, 14] CMP_VAL [2, 15]
DBX12.0 DBX12.1 DBX12.2 DBX12.3 DBX12.4 DBX12.5 DBX12.6 DBX12.7 DBX13.0 DBX13.1 DBX13.2 DBX13.3 DBX13.4 DBX13.5 DBX13.6 DBX13.7
=TRUE =TRUE = FALSE =TRUE =TRUE = FALSE =TRUE =TRUE = FALSE =TRUE = TRUE = FALSE = TRUE = TRUE = FALSE = TRUE
Nota: Se muestran únicamente los valores que forman la máscara para el paso 2. Los otros pasos se programan de forma similar. Después de la ejecución: OUT Figura 8-1
A 2.0 = TRUE
Comparar índice matriz (IMC)
Software estándar para S7-300 y S7-400 Funciones estándar, parte 2 A5E00066869-03
8-5
Bloques de función de comparación
8.2
Barrido de matriz (SMC): FB84
Descripción
El bloque de función ”Barrido de matriz” (SMC) compara el estado de señal de hasta 16 bits de entrada (de IN_BIT0 a IN_BIT15) programados con los correspondientes bits de la máscara de comparación de cada paso, comenzando por el paso 1 y continuando la comparación sucesivamente hasta el último paso programado (LAST), o hasta que se haya encontrado una correspondencia. El bit IN_BIT0 es comparado con CMP_VAL[x, 0], siendo x el número del paso; el bit IN_BIT1 es comparado con CMP_VAL [x, 1], y así sucesivamente. Cuando se encuentra una correspondencia, el estado de señal de la salida (OUT) se pone a 1 y se escribe en OUT_STEP la máscara en la que se ha encontrado la correspondencia. Los bits de entrada no programados y los bits no programados de las máscaras tienen preseleccionado el estado de señal FALSE. Si hay más de un paso que tiene una máscara correspondiente OUT_STEP indica solamente la primera correspondencia que se ha encontrado. Si no se ha encontrado ninguna correspondencia, el estado de señal de la salida (OUT) se pone a 0 y OUT_STEP tiene el valor LAST + 1.
Parámetros
En la tabla 8-2 se describen los parámetros de la función ”Barrido de matriz” (SMC).
Tabla 8-2
Parámetro
Parámetros de la función SMC (FB84)
Declaración
Tipo de datos
Area de memoria
Descripción
EN
Entrada
BOOL
E, A, M, D, L
La entrada de habilitación con estado de señal 1 activa el cuadro.
ENO
Salida
BOOL
E, A, M, D, L
La salida de habilitación tiene el estado de señal 1 si se ejecuta el bloque de función sin errores.
IN_BIT0
Entrada
BOOL
E, A, M, D, L
Bit de entrada 0 a comparar con el bit 0 de la máscara.
IN_BIT1
Entrada
BOOL
E, A, M, D, L
Bit de entrada 1 a comparar con el bit 1 de la máscara.
IN_BIT2
Entrada
BOOL
E, A, M, D, L
Bit de entrada 2 a comparar con el bit 2 de la máscara.
IN_BIT3
Entrada
BOOL
E, A, M, D, L
Bit de entrada 3 a comparar con el bit 3 de la máscara.
IN_BIT4
Entrada
BOOL
E, A, M, D, L
Bit de entrada 4 a comparar con el bit 4 de la máscara.
IN_BIT5
Entrada
BOOL
E, A, M, D, L
Bit de entrada 5 a comparar con el bit 5 de la máscara.
IN_BIT6
Entrada
BOOL
E, A, M, D, L
Bit de entrada 6 a comparar con el bit 6 de la máscara.
IN_BIT7
Entrada
BOOL
E, A, M, D, L
Bit de entrada 7 a comparar con el bit 7 de la máscara.
IN_BIT8
Entrada
BOOL
E, A, M, D, L
Bit de entrada 8 a comparar con el bit 8 de la máscara.
IN_BIT9
Entrada
BOOL
E, A, M, D, L
Bit de entrada 9 a comparar con el bit 9 de la máscara.
IN_BIT10
Entrada
BOOL
E, A, M, D, L
Bit de entrada 10 a comparar con el bit 10 de la máscara.
IN_BIT11
Entrada
BOOL
E, A, M, D, L
Bit de entrada 11 a comparar con el bit 11 de la máscara.
IN_BIT12
Entrada
BOOL
E, A, M, D, L
Bit de entrada 12 a comparar con el bit 12 de la máscara.
IN_BIT13
Entrada
BOOL
E, A, M, D, L
Bit de entrada 13 a comparar con el bit 13 de la máscara.
IN_BIT14
Entrada
BOOL
E, A, M, D, L
Bit de entrada 14 a comparar con el bit 14 de la máscara.
IN_BIT15
Entrada
BOOL
E, A, M, D, L
Bit de entrada 15 a comparar con el bit 15 de la máscara.
OUT
Salida
BOOL
E, A, M, D, L
El estado de señal 1 indica que se ha encontrado una correspondencia en la comparación; el estado de señal 0 indica que no se ha encontrado ninguna.
8-6
Software estándar para S7-300 y S7-400 Funciones estándar, parte 2 A5E00066869-03
Bloques de función de comparación
Tabla 8-2
Parámetro
Parámetros de la función SMC (FB84) (continuación)
Declaración
Tipo de datos
Area de memoria
Descripción
ERR_CODE
Salida
WORD
E, A, M, D, L, P
Devuelve el valor W#16#0000 cuando la función se ejecuta sin errores; si los valores son distintos de W#16#0000, véase la información sobre errores.
OUT_STEP
Salida
BOOL
E, A, M, D, L, P
Contiene el número del paso con la máscara que se corresponde o, si no se ha encontrado correspondencia, contiene un número de paso igual a LAST + 1.
LAST
Estático
BYTE
E, A, M, D, L, P
Indica el número del último paso en que se tiene que buscar una máscara correspondiente.
CMP_VAL
Estático
ARRAY OF BOOL
E, A, M, D, L
Máscaras de comparación [de 1 a 15, de 1 a 15]: el primer número del índice es el del paso, el segundo es el número del bit de la máscara.
Información sobre errores
El bloque de función no se ejecutará si el valor de LAST es mayor que 15. En este caso, el estado de señal de la salida de habilitación (ENO) se pone a 0 y el código de error ERR_CODE toma el valor W#16#000E.
Ejemplo
La figura 8-2 muestra cómo opera el bloque de función ”Barrido de matriz” (SMC). El bloque de función se ejecuta cuando el estado de señal de la entrada E 0.0 es 1 (activada). En este ejemplo, los 16 bits de entrada se compararán con las máscaras para los pasos 0 a 5 (tal como lo indica el parámetro LAST), o hasta que se haya encontrado una correspondencia. De hecho, sólo se realiza el barrido de las máscaras 0 a 2, ya que la máscara para el paso 2 se corresponde con los bits de entrada. Si se ejecuta el bloque de función sin errores, los estados de señal de la salida de habilitación (ENO) y de la salida A 4.0 se ponen a 1 (activadas), y el código de error (ERR_CODE) toma el valor W#16#0000.
Nota Puede inicializar los parámetros estáticos utilizando el editor de bloques de datos.
Software estándar para S7-300 y S7-400 Funciones estándar, parte 2 A5E00066869-03
8-7
Bloques de función de comparación
E 0.0 EN
DB84 SMC FB84
A 4.0 ENO
M0.0 M0.1 M0.2
IN_BIT0
OUT
IN_BIT1
OUT_ OUT_ST STEP EP
A 2.0 MB10 MB10
IN_BIT2
M0.3
IN_BIT3
M0.4
IN_BIT4
M0.5
IN_BIT5
M0.6 IN_BIT6
M0.7
IN_BIT7
M1.0
IN_BIT8
M1.1
IN_BIT9 M1.2
IN_BIT10
M1.3
IN_BIT11
M1.4
IN_BIT12
M1.5 IN_BIT13
M1.6
IN_BIT14
M1.7
IN_BIT15
Antes de la ejecución: IN_BIT0 IN_BIT1 IN_BIT2 IN_BIT3 IN_BIT4 IN_BIT5 IN_BIT6 IN_BIT7 IN_BIT8 IN_BIT9 IN_BIT10 IN_BIT11 IN_BIT12 IN_BIT13 IN_BIT14 IN_BIT15
M0.0 M0.1 M0.2 M0.3 M0.4 M0.5 M0.6 M0.7 M1.0 M1.1 M1.2 M1.3 M1.4 M1.5 M1.6 M1.7
OUT OUT_STEP
= = = = = = = = = = = = = = = =
TRUE TRUE FALSE TRUE TRUE FALSE TRUE TRUE FALSE TRUE TRUE FALSE TRUE TRUE FALSE TRUE
Instancia DB84 CMP_VAL [2, 0] CMP_VAL [2, 1] CMP_VAL [2, 2] CMP_VAL [2, 3] CMP_VAL [2, 4] CMP_VAL [2, 5] CMP_VAL [2, 6] CMP_VAL [2, 7] CMP_VAL [2, 8] CMP_VAL [2, 9] CMP_VAL [2, 10] CMP_VAL [2, 11] CMP_VAL [2, 12] CMP_VAL [2, 13] CMP_VAL [2, 14] CMP_VAL [2, 15]
DBX12.0 DBX12.1 DBX12.2 DBX12.3 DBX12.4 DBX12.5 DBX12.6 DBX12.7 DBX13.0 DBX13.1 DBX13.2 DBX13.3 DBX13.4 DBX13.5 DBX13.6 DBX13.7
= = = = = = = = = = = = = = = =
TRUE TRUE FALSE TRUE TRUE FALSE TRUE TRUE FALSE TRUE TRUE FALSE TRUE TRUE FALSE TRUE
A2.0 = FALSE MB10 = B#16#00
Instancia DB84 LAST DB84 = B#16#05 Nota: Se muestran únicamente los valores que forman la máscara para el paso 2. Los otros pasos se programar de forma similar. Después de la ejecución: OUT A2.0 = TRUE OUT_STEP MB10 = B#16#02 Figura Figura 8-2
8-8
Barr Barrido ido de matri matrizz (SMC) (SMC)
Software estándar para S7-300 y S7-400 Funciones estándar, parte 2 A5E00066869-03
Glosario A Area de memoria
Un área de memoria es el área de la CPU donde una instrucción encuentra un valor (objeto de datos) con el que realizar una operación. Su autómata programable tiene las siguientes áreas de memoria, áreas que puede definir como parte del operando de una instrucción: •
Imagen del proceso de las entradas
•
Imagen del proceso de las salidas
•
Marcas
•
Periferia
•
Temporizadores
•
Contadores
•
Bloques de datos
•
Datos temporales (datos locales dinámicos)
B Bit de resultado binario
Al bit 8 de la palabra de estado se le denomina bit de resultado binario (bit RB). El bit RB establece un enlace entre el procesamiento de bits y palabras. Con este bit, su programa puede interpretar el resultado de una operación con palabras como un resultado binario e integrar el resultado en una cadena binaria. El bit RB le permite, por ejemplo, escribir un bloque de función (FB) o una función (FC) en la Lista de Instrucciones (AWL, véase manual de referencia STEP 7 Lista de instrucciones AWL), y llamar luego a ese FB o a esa FC desde el Esquema de contactos KOP Cuando usted escribe un bloque de función (FB) o una función (FC) que quiere llamar luego desde KOP, tiene que gestionar el bit RB, tanto si escribe el FB (o la FC) en AWL como si lo hace en KOP. El bit RB corresponde a la salida de habilitación (ENO) de un cuadro de KOP. Deberá usar la operación SAVE (en AWL) o la bobina -(SAVE) (en KOP) para almacenar el RLO en el bit RB atendiendo a los siguientes criterios: •
En el bit RB se almacenará el RLO ”1” si el FB o la FC se ha ejecutado sin errores.
•
En el bit RB se almacenará el RLO ”0” si al ejecutar el FB o la FC ha habido algún error.
Software estándar para S7-300 y S7-400 Funciones estándar, parte 2 A5E00066869-03
Glosario-1
Glosario
Debe programar estas operaciones al final del FB o de la FC de tal modo que éstas sean realmente las últimas operaciones que se ejecuten en el bloque.
!
Precaución Puede ocurrir que el bit RB sea puesto a 0 involuntariamente. Si al escribir bloques de función y funciones en KOP no gestiona el bit RB del modo arriba descrito, un FB o una FC pueden sobrescribir el bit RB de otro FB u otra FC. Con el fin de evitar que ello pueda ocurrir, almacene el RLO al final de cada FB o FC del modo arriba descrito.
Bloque de datos (DB)
Un bloque de datos (DB) almacena los datos del programa de usuario. Es usted mismo quien define la estructura de la información que se almacena en el DB. Esta información se puede utilizar , o bien de forma ”compartida”, es decir, de modo que todos los bloques lógicos de un programa tengan acceso a ella, o bien empleándola como instancia específica de un determinado FB (de tal forma que la estructura del DB está vinculada a la tabla de declaración de variables del FB).
Bloque de datos de instancia (DB)
Un bloque de datos (DB) de instancia aporta memoria para una determinada llamada de un FB. Creando instancias múltiples (bloques de datos de instancia) de un FB puede usar un FB para controlar varios elementos. En la estructura de un DB de instancia se refleja la tabla de declaración de variables de un FB. El DB de instancia almacena los parámetros actuales de las variables in, out, in_out y var.
Bloque de función (FB)
Un bloque de función (FB) es un bloque lógico que contiene un segmento de un programa y tiene asociado un área de memoria. Cada vez que se llama a un FB hay que aportar un bloque de datos (DB de instancia). Se puede llamar al mismo FB varias veces utilizando siempre un DB de instancia diferente. Los parámetros y las variables estáticas del FB se almacenan en el DB de instancia.
Bloque de función del sistema (SFB)
Un bloque de función del sistema (SFB) es un tipo de bloque de función (FB) que está integrado en el sistema operativo de STEP 7. Puede llamar a los SFB desde su programa. De forma similar a un FB, el SFB tiene su propia memoria de trabajo, en la cual se pueden almacenar los datos hasta que se vuelva a llamar otra vez a ese mismo SFB. Dicha memoria está implementada en forma de bloque de datos de instancia (DB de instancia). Este DB de instancia lo tiene que crear usted mismo (se abre durante la instrucción de llamada). Dado que los SFB forman parte del sistema operativo no necesita cargarlos.
Bloque lógico
Los bloques lógicos son bloques de STEP 7 que contienen el programa para la lógica de control. Se distinguen cinco subtipos: los bloques de organización (OB), las funciones (FC), los bloques de función (FB), las funciones de sistema (SFC) y los bloques de función del sistema (SFB). Los bloques de datos (DB), que contienen únicamente datos, no forman parte del grupo de los bloques lógicos.
Glosario-2
Software estándar para S7-300 y S7-400 Funciones estándar, parte 2 A5E00066869-03
Glosario
C Circuito excitado
Un circuito excitado (línea de corriente) es una hilera con instrucciones KOP que generalmente incluye contactos de entradas y cuadros con instrucciones, y que termina con una operación de salida al final de la línea. En el Esquema de contactos KOP de STEP 7, un circuito constituye un segmento.
CPU
La unidad central de procesamiento o módulo central contiene el programa de usuario y procesa los datos del autómata programable (PLC).
D Direccionamiento absoluto
Tipo de direccionamiento que indica la dirección real que tiene una determinada unidad de datos dentro de la memoria de una CPU. El direccionamiento absoluto permite referenciar una señal en la periferia, por ejemplo utilizando una dirección que incluya el tipo de señal (E si es una entrada, A si es una salida), el número del módulo periférico y la señal concreta. Ej.: A 4.0. El autómata programable evalúa las direcciones absolutas sin tener que recurrir a una tabla de símbolos. Véase Direccionamiento simbólico.
Direccionamiento directo
Tipo de direccionamiento en el que el operando de una instrucción señala directamente la dirección del valor con el que se debe realizar la operación. Compárese con Direccionamiento inmediato.
Direccionamiento inmediato
Tipo de direccionamiento en el cual el valor con el que debe operar la instrucción está indicado como parámetro de entrada. Este valor es el operando de la instrucción. Compárese con Direccionamiento directo.
Direccionamiento simbólico
Si bien todos los elementos de la CPU tienen una dirección absoluta (p. ej.: E 0.0), también les puede dar un nombre simbólico, que luego podrá emplear para el direccionamiento. A la entrada E 1.3 le podría dar, por ejemplo, el nombre ”bomba_2_acuse”. Los nombres simbólicos se definen dentro de una tabla de símbolos, que puede crear utilizando el Editor de Símbolos.
E Esquema de contactos (KOP)
El Esquema de contactos (KOP) es uno de los dos lenguajes del software de programación STEP 7 que puede aplicar para programar su autómata programable S7-300/S7-400. KOP es un lenguaje gráfico cuyos elementos se asemejan a los de un esquema de control de circuitos.
Software estándar para S7-300 y S7-400 Funciones estándar, parte 2 A5E00066869-03
Glosario-3
Glosario
F Función (FC)
Una función (FC) es un bloque lógico que contiene un segmento de un programa pero que no tiene asociada ningún área de memoria. Una FC actúa como una subrutina en un programa de computadora. Usted crea funciones y las llama desde su programa. Como su programa puede llamar repetidas veces a una FC (aplicando valores diferentes en cada llamada), la FC ha sido definida como un bloque”reutilizable”. Cuando la FC termina el procesamiento se vuelven a reasignar los datos locales temporales que ha utilizado.
Función de sistema (SFC)
Una función de sistema (SFC) es una función preprogramada, cuya funcionalidad ya ha sido comprobada, y que está integrada en el sistema operativo de STEP 7. Puede llamar a las SFC desde su programa. Como estas funciones forman parte del sistema operativo no ocupan espacio en la memoria principal. Al igual que las FC, las SFC no requieren un DB de instancia para aplicarlas.
I Identificador del operando
El identificador del operando es la parte del operando de una instrucción que contiene la información sobre aquel área de memoria donde la instrucción encuentra el valor (objeto de datos) con el que debe ejecutar la operación. Ejemplo: En el operando ”EB10”, ”EB” es el identificador del operando (”E” indica el área de memoria de las entradas y ”B” indica un byte dentro de ese área).
L Lista de instrucciones
La lista de instrucciones AWL es uno de los dos lenguajes del software de programación STEP 7 mediante los cuales puede comunicar con su autómata programable S7-300/S7-400. Cada instrucción del programa de usuario incluye una operación en la cual se usa un nemónico para representar una función del autómata programable.
M Master Control Relay
Glosario-4
El Master Control Relay (MCR) es un interruptor principal del esquema de contactos (KOP) que sirve para energizar (activar) y desenergizar (desactivar) el flujo de corriente en el circuito. A un circuito desenergizado le corresponde una secuencia de operaciones que escribe ceros en vez del valor calculado, o una secuencia de operaciones que hacen que el valor existente en la memoria no cambie.
Software estándar para S7-300 y S7-400 Funciones estándar, parte 2 A5E00066869-03
Glosario
N Nemónicos
Modo de representación abreviada de los operandos y las operaciones en el programa (Ej.: ”E” significa entrada, ”U ” es la representación nemónica de la operación lógica Y). STEP 7 soporta la representación internacional (basada en el modo de representación alemán del juego de operaciones y convenciones SIMATIC para el direccionamiento).
O Operación
Una operación del Esquema de contactos KOP ordena a la CPU de su autómata programable qué función debe realizar éste. Las operaciones KOP pueden ser elementos y cuadros.
Operando
El operando de una instrucción del Esquema de contactos (KOP) indica una constante o la dirección donde la instrucción encuentra el valor con el que tiene que ejecutar la operación. El operando puede tener un nombre simbólico, una designación absoluta, o una combinación de los dos anteriores. El operando puede remitir a: •
una constante, el valor de un temporizador o de un contador, o una cadena de caracteres ASCII;
•
una dirección en la palabra de estado del autómata programable;
•
un bloque de datos y una dirección dentro del área de memoria del bloque de datos;
•
una función (FC), un bloque de función (FB), una función de sistema (SFC) integrada, un bloque de función del sistema (SFB) integrado y el número de la función o del bloque;
•
una meta para una operación de salto;
•
un identificador del operando y una dirección del área de memoria indicada por el identificador (p. ej.: E 1.0);
•
el número de un temporizador o de un contador.
La dirección de una operación también se denomina ”operando”.
P Parámetro actual
Un parámetro actual es un operando o un valor que se suministra como entrada o como salida cuando se llama a un bloque de función (FB) o a una función (FC). Los parámetros actuales corresponden a los respectivos parámetros formales que están declarados en la tabla de declaración de variables del FB o de la FC en cuestión.
Parámetro formal
Los parámetros formales están declarados en la tabla de declaración de variables de un FB o de una FC. Al llamar a un FB o a una FC hay que asignar a cada parámetro formal un parámetro actual (que puede ser, o un operando, o un valor).
Software estándar para S7-300 y S7-400 Funciones estándar, parte 2 A5E00066869-03
Glosario-5
Glosario
Programa de usuario
El programa de usuario contiene la lógica de control para poder realizar un proyecto de automatización. Dicha lógica de control se almacena en forma de instrucciones dirigidas al autómata programable (PLC) que está controlando la planta industrial o el proceso.
Puntero
Un puntero es un registro que apunta a la dirección de una variable. En vez de un valor, un puntero tiene un operando. Al asignar a un parámetro actual el tipo de datos ”puntero” se le indica el operando. En STEP 7 puede entrar el puntero, o bien en formato de puntero, o simplemente como operando (p. ej.: M 50.0). El siguiente es un ejemplo de formato de puntero para acceder a los datos a partir de M 50.0: P#M50.0
R Resultado lógico (RLO)
Al bit 1 de la palabra de estado se le denomina resultado lógico (bit RLO). El bit RLO almacena el resultado de una operación lógica o de una comparación aritmética. El estado de señal del bit RLO suministra información sobre el sentido de circulación de la corriente. El estado de señal 1 indica que hay flujo de corriente (activado); el estado de señal 0 indica que no hay flujo (desactivado). Por ejemplo: la primera operación en un circuito de KOP comprueba el estado de señal de un contacto y da el resultado 1 ó 0, según haya flujo o no. La operación almacena entonces el resultado de esta comprobación en el bit RLO. La segunda operación que se realiza en un circuito de KOP también comprueba el estado de señal de un contacto y da un resultado. A continuación, la operación compara el resultado con el valor almacenado en el bit RLO de la palabra de estado, siguiendo los principios de la lógica de Boole. El resultado de esta operación lógica se almacena en el bit RLO de la palabra de estado, reemplazando al valor que había antes en el bit RLO. Todas las operaciones subsiguientes que se ejecuten en el circuito realizarán una operación lógica con dos valores: el del resultado dado cuando la operación comprueba el estado de señal del contacto, y el resultado del RLO actual. Puede utilizar las operaciones lógicas booleanas para asignar al RLO el estado del contenido de una dirección de operando. También puede usar el RLO para iniciar operaciones de salto.
S Segmento
En un esquema de contactos KOP de STEP 7 se llama segmento a un circuito energizado que contiene operaciones KOP. Compárese con Circuito .
T Tabla de declaración de variables
Glosario-6
Todos los bloques lógicos tienen una tabla de declaración de variables. Al introducir información en dicha tabla usted declara (es decir, define) los parámetros y variables que utiliza el bloque.
Software estándar para S7-300 y S7-400 Funciones estándar, parte 2 A5E00066869-03
Glosario
Tipos de datos
A los datos que se van a usar en un programa se les asigna un tipo de datos determinado. Al definir nombres simbólicos en el editor de símbolos, o al definir variables locales de un bloque en la tabla de declaración de variables, tiene que especificar de qué tipo de datos se trata. El tipo de datos define la longitud y el modo de organización de los bits en la memoria reservada para la CPU. Se distingue entre tipos de datos simples y compuestos. •
Tipos de datos simples: BOOL, BYTE, WORD (palabra), DWORD (palabra doble), CHAR (carácter), INT (entero, 16 bits), DINT (entero doble, 32 bits), REAL (coma flotante), TIME (hora), DATE (fecha), TOD (hora del día) y S5TIME. El sistema operativo asigna a cada tipo de datos simple una determinada longitud en la memoria. Por ejemplo, un tipo de datos booleano (BOOL) tiene un bit, un byte (BYTE) tiene 8 bits, una palabra (WORD) tiene 2 bytes (o 16 bits) y una palabra doble (DWORD) tiene 4 bytes (o 32 bits).
•
Tipos de datos compuestos: DT (DATE_AND_TIME, fecha y hora), STRING (con un máximo de 255 caracteres), STRUCT (estructura) y ARRAY (array o matriz). Característica común de los tipos de datos compuestos es que su longitud es mayor de 32 bits (4 bytes). Puede realizar combinaciones de distintos tipos de datos, definiendo un grupo de tipos de datos en una estructura, o definiendo una cantidad determinada de tipos de datos en un array.
•
Parameter types: TIMER (timer number), COUNTER (counter number), BLOCK_[DB, FB, FC, SDB, SFC, SFB] (number of the type of block identified), POINTER (pointer reference to an address), or ANY (allows an undefined, or “any,” data type).
Software estándar para S7-300 y S7-400 Funciones estándar, parte 2 A5E00066869-03
Glosario-7
Glosario
Glosario-8
Software estándar para S7-300 y S7-400 Funciones estándar, parte 2 A5E00066869-03
Índice alfabético A Activar inmediatamente un área de salida (SETI), 1-8–1-10 Activar un área de marcas o de periferia en la imagen del proceso (SET), 1-6–1-7 Activar un temporizador como retardo a la conexión con memoria (TONR), 5-2–5-3 Acumular/distribuir datos de tabla (PACK), 4-4 Alarma de tiempo para control discreto (DCAT), 5-4 Alarma de tiempo para control motor (MCAT), 5-7 Algoritmo avance/retardo (LEAD_LAG), 6-16 Almacenamiento de las funciones (FCs), iii Almacenar datos en el registro de desplazamiento (WSR), 3-2–3-3 Añadir un elemento a una tabla (ATT), 2-2–2-3 Asistencia técnica, v
B Barrido de matriz (SMC), 8-6 Bloques de función de comparación barrido de matriz (SMC), 8-6 comparar índice matriz (IMC), 8-2 Buscar un valor en una tabla (TBL_FIND), 2-6–2-8
C Codificar una posición binaria (ENCO), 6-8 Combinar lógicamente un valor con un elemento de una tabla y almacenarlo (WRD_TBL), 2-15–2-16 Comparar índice matriz (IMC), 8-2 Convertir una cadena de caracteres ASCII en una cifra hexadecimal (ATH), 6-4–6-5 Convertir una cifra hexadecimal en una cadena de caracteres (HTA), 6-6–6-7
Copiar un valor de una tabla (TBL_WRD), 2-13–2-14 Crear el patrón de bits para el display de 7 segmentos (SEG), 6-2–6-3
D Decodificar una posición binaria (DECO), 6-9 Desescalar valores (UNSCALE), 6-14 Desplazar un bit a un registro de desplazamiento (SHRB), 3-4–3-6 Desviación típica (DEV), 7-2
E Enlace lógico de tablas (TBL_TBL), 2-19 Escalar valores (SCALE), 6-12 Evento drum enmascarable (DRUM), 5-10 Extraer el elemento más antiguo de una tabla (FIFO), 2-4–2-5 Extraer el elemento más reciente de una tabla (LIFO), 2-9–2-10
F Función en coma flotante, desviación típica (DEV), 7-2 Función y bloque de función de conversión, sumar la cantidad de bits activados (BITSUM), 6-11 Funciones (FCs) almacenamiento, iii lista, vi Funciones de desplazamiento almacenar datos en el registro de desplazamiento (WSR), 3-2–3-3 desplazar un bit a un registro de desplazamiento (SHRB), 3-4–3-6
Software estándar para S7-300 y S7-400 Funciones estándar, parte 2 A5E00066869-03
Índice-1
Índice alfabético
Funciones de tabla añadir un elemento a una tabla (ATT), 2-2–2-3 buscar un valor en una tabla (TBL_FIND), 2-6–2-8 combinar lógicamente un valor con un elemento de una tabla y almacenarlo (WRD_TBL), 2-15–2-16 copiar un valor de una tabla (TBL_WRD), 2-13–2-14 enlace lógico de tablas (TBL_TBL), 2-19 extraer el elemento más antiguo de una tabla (FIFO), 2-4–2-5 extraer el elemento más reciente de una tabla (LIFO), 2-9–2-10 realizar una operación en una tabla (TBL), 2-11–2-12 tabla de datos correlativos (CDT), 2-17 Funciones lógicas de bit activar inmediatamente un área de salida (SETI), 1-8–1-10 activar un área de marcas o de periferia en la imagen del proceso (SET), 1-6–1-7 poner a cero inmediatamente un área de salida (RSETI), 1-4–1-5 poner a cero un área de periferia o de marcas en la imagen del proceso (RSET), 1-2–1-3 Funciones y bloques de conversión, decodificar una posición binaria (DECO), 6-9 Funciones y bloques de función de conversión algoritmo avance/retardo (LEAD_LAG), 6-16 codificar una posición binaria (ENCO), 6-8 convertir una cadena de caracteres ASCII en una cifra hexadecimal (ATH), 6-4–6-5 convertir una cifra hexadecimal en una cadena de caracteres ASCII (HTA), 6-6–6-7 crear el patrón de bits para el display de 7 segmentos (SEG), 6-2–6-3 desescalar valores (UNSCALE), 6-14 escalar valores (SCALE), 6-12 generar el complemento a diez (BCDCPL), 6-10 Funciones y bloques de función de temporización alarma de tiempo para control discreto (DCAT), 5-4 alarna de tiempo para control motor (MCAT), 5-7 evento drum enmascarable (DRUM), 5-10
Índice-2
Funciones y bloques de función de transferencia acumular/distribuir datos de tabla (PACK), 4-4 transferencia indirecta de un bloque de datos (IBLKMOV), 4-2–4-3 Funciones y bloques de temporización, activar un temporizador como retardo a la conexión con memoria (TONR), 5-2–5-3
G Generar el complemento a diez (BCDCPL), 6-10
M Manuales, iv–vi
P Poner a cero inmediatamente un área de salida (RSETI), 1-4–1-5 Poner a cero un área de periferia o de marcas en la imagen del proceso (RSET), 1-2–1-3
R Realizar una operación en una tabla (TBL), 2-11–2-12
S Sumar la cantidad de bits activados (BITSUM), 6-11
T Tabla de datos correlativos (CDT), 2-17 Transferencia indirecta de un bloque de datos (IBLKMOV), 4-2–4-3
Software estándar para S7-300 y S7-400 Funciones estándar, parte 2 A5E00066869-03
Siemens AG A&D AS E 81 Oestliche Rheinbrueckenstr. 50 D-76181 Karlsruhe R.F.A.
Remitente: Nombre:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Cargo: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ Empresa:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Calle: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _
Código postal: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ Población: País:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Teléfono:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Indique el ramo de la industria al que pertenece: Ì
Industria del automóvil
Ì
Industria farmacéutica
Ì
Industria química
Ì
Industria del plástico
Ì
Industria eléctrica
Ì
Industria papelera
Ì
Industria alimentaria
Ì
Industria textil
Ì
Control e instrumentación
Ì
Transportes
Ì
Industria mecánica
Ì
Otros _ _ _ _ _ _ _ _ _ _ _
Ì
Industria petroquímica
£ Software estándar para S7-300 y S7-400 Funciones estándar, parte 2 A5E00066869-03
1