You are on page 1of 106

Prólogo, Índice

SIMATIC Funciones lógicas con bits 1

Funciones de tabla 2
Software estándar para
S7-300 y S7-400 Funciones de desplazamiento 3
Funciones estándar Funciones y bloques de función
de transferencia 4
Parte 2
Funciones y bloques de función
de temporización 5
Manual de referencia 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 Este manual contiene las informaciones necesarias para la seguridad personal así como para la preĆ
seguridad para el vención de daños materiales. Las informaciones están puestas de relieve mediante señales de preĆ
usuario 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. 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 Hemos probado el contenido de esta publicación con la concordan-
la comunicación de su contenido, no están autorizados, a no ser que cia descrita para el hardware y el software. Sin embargo, es posible
se obtenga el consentimiento expreso para ello. Los infractores que se den algunas desviaciones que nos impiden tomar garantía
quedan obligados a la indemnización de los daños. Se reservan completa de esta concordancia. El contenido de esta publicación
todos los derechos, en particular para el caso de concesión de está sometido a revisiones regularmente y en caso necesario se
patentes o de modelos de utilidad. incluyen las correcciones en la siguiente edición. Agradecemos
sugerencias.
Siemens AG
Bereich Automatisierungs- und Antriebstechnik
Geschaeftsgebiet Industrie-Automatisierungssysteme  Siemens AG 2000
Postfach 4848, D-90327 Nuernberg Sujeto a cambios sin previo aviso.

Siemens Aktiengesellschaft A5E00066869


Prólogo

Finalidad de este En el presente manual se describen las funciones (FC) y los bloques de función (FB)
manual 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 FC y los FB descritos en este manual están almacenados en la librería estándar
las funciones S7 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 ope-
ració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 Las FC y los FB aquí descritos han sido agrupados por capítulos atendiendo a la
manual 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 defini-
ciones que son de importancia para la programación con el Esquema de contac-
tos.

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 si-
guientes:
• 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 des-
cripción de los parámetros.
• Información sobre errores: Indica aquellos errores que, caso de producirse, impe-
dirí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 elegi-
dos a modo de ejemplo y con el correspondiente resultado de la ejecución.

Resumen de la do- Este manual forma parte del paquete de documentación STEP 7, integrado por los
cumentación manuales que se enumeran a continuación.
STEP 7

Título Contenido
STEP 7: Introducción y Ofrece una introducción básica a la metodología de la estructura y programación de un
ejercicios prácticos S7-300/S7-400. Resulta especialmente apropiado para aquellos usuarios que utilizan por pri-
mera vez un sistema de automatización.
Programar con STEP 7 Aporta la información básica sobre la estructura del sistema operativo y del programa de usuario
Manual 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 progra-
mación y para tomarlo como base en el diseño de los programas de usuario.
Software de sistema para Las CPU S7 tienen incorporados con el sistema operativo una serie de funciones estándar y de
S7-300 y S7400 bloques de organización que pueden aplicarse para hacer más fácil la programación. Este ma-
Funciones estándar y nual le ofrece una visión de conjunto de las funciones de sistema, los bloques de organización y
funciones de sistema las funciones estándar de que se dispone en S7, incluyendo igualmente descripciones detalladas
Manual de referencia a modo de información de referencia para utilizarla al programar su programa de usuario.
Configurar el hardware y Describe las principales aplicaciones y las funciones del software de automatización STEP 7.
la communicación con Recomendable tanto si es la primera vez que utiliza STEP 7 como si ya tiene experiencia con
STEP 7 STEP 5, este manual le proporciona una visión global de los procedimientos usados para confi-
Manual gurar, 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 ayuda-
rán al aplicar el software.
Guía para facilitar la Necesitará este manual cuando desee convertir los programas que ya tenga programados en
transición STEP 5 para ejecutarlos con las CPU S7. El manual le proporciona una visión de conjunto so-
bre los procedimientos y la aplicación del convertidor; en la ayuda online encontrará una des-
cripció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


iv A5E00066869-03
Prólogo

Título Contenido
Manuales de referencia Los manuales de los lenguajes de programación Lista de Instrucciones AWL, Esquema de con-
Lista de instrucciones tactos KOP y SCL (Lenguaje de Control Secuencial) contienen tanto la guía para el usuario
AWL, Esquema de con- como la descripción del lenguaje de programación o modo de representación. Para programar
tactos KOP, SCL1 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 ayuda-
rán en el empleo de los editores/compiladores respectivos.
Manuales S7-GRAPH1 , Los lenguajes GRAPH, HiGraph y CFC (para el cableado gráfico de funciones tecnológicas) le
S7-HiGraph1, CFC1 ofrecen métodos adicionales para la programación de bloques en forma de controles secuencia-
les, 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 lengua-
jes 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 ayuda-
rá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 Si tiene dudas sobre cualquier cuestión no tratada en este o en otros manuales
adicional 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 distri-
buidor 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 En este manual se describen las funciones (FC) y los bloques de función (FB)
y bloques de siguientes:
función
Función o bloque de función Número Página
Activar un temporizador como retardo a la conexión con FC80 5-2
memoria (TONR)
Transferencia indirecta de un bloque de datos (IBLKMOV) FC81 4-2
Poner a cero un área de periferia o de marcas en la imagen FC82 1-2
del proceso (RSET)
Activar un área de marcas o de periferia en la imagen del pro- FC83 1-6
ceso (SET)
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 FC91 2-15
almacenarlo (WRD_TBL)
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 FC93 6-2
(SEG)
Convertir una cadena de caracteres ASCII en una cifra FC94 6-4
hexadecimal (ATH)
Convertir una cifra hexadecimal en una cadena de caracteres FC95 6-6
ASCII (HTA)
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


vi A5E00066869-03
Índice

1 Funciones lógicas con bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-1


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
2 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
3 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
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
5 Funciones y bloques de función de temporización . . . . . . . . . . . . . . . . . . . . . . . . 5-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
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
6.10 Algoritmo avance/retardo (LEAD_LAG): FB80 . . . . . . . . . . . . . . . . . . . . . . . 6-16
7 Función en coma flotante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-1
7.1 Desviación típica (DEV): FC102 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-2
8 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
Glosario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Glosario-1
Índice alfabético . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Índice-1

Software estándar para S7-300 y S7-400 Funciones estándar, parte 2


viii A5E00066869-03
Funciones lógicas con bits 1
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 progra-
mación.

Apartado Descripción Página


1.1 Poner a cero un área de periferia o de marcas en la imagen del 1-2
proceso (RSET): FC82
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 1-6
(SET): FC83
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ámetros de la función RSET (FC82)

Parámetro Declaración Tipo de Area de memoria


Descripción
datos
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 Cantidad de bits a desactivar en el área.
o constante

* 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


1-2 A5E00066869-03
Funciones lógicas con bits

Información sobre Si el puntero S_BIT apunta al área de memoria de la periferia externa (memoria P)
errores 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 ejem-
plo, 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
E 0.0 FC82 A 4.0
EN ENO

P#M0.0 S_BIT
10 N

antes de la ejecución: después de la ejecución:

M0.7 M0.0 M0.7 M0.0


1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0

M1.7 M1.0 M1.7 M1.0


1 1 1 1 1 1 1 1 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 pri-
mer 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 (memo-


ria 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 sali-
das (A) también se pone a 0.

Parámetros En la tabla 1-2 se describen los parámetros de la función ”Poner a cero inmediata-
mente un área de salida” (RSETI).

Tabla 1-2 Parámetros de la función RSETI (FC100)

Parámetro Declaración Tipo de Area de memoria


Descripción
datos
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 Tamaño del área de bytes a desactivar, indicado por la
o constante 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.

Software estándar para S7-300 y S7-400 Funciones estándar, parte 2


1-4 A5E00066869-03
Funciones lógicas con bits

Información sobre Si se cumple alguna de las condiciones siguientes, el estado de señal de todos los
errores 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.

Ejemplo La figura 1-2 muestra cómo opera la función RSETI. Si el estado de señal de la en-
trada 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 ejecu-
tado 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
E 0.0 FC100 A 4.0
EN ENO
P#P2.0 S_BYTE
16 N

antes de la ejecución: después de la ejecución:


P1.7 P1.0 P1.7 P1.0
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

P2.7 P2.0 P2.7 P2.0


1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0
P3.7 P3.0 P3.7 P3.0
1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0
P4.7 P4.0 P4.7 P4.0
1 1 1 1 1 1 1 1 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 especi-
ficada, 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 den-
tro 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ámetros de la función SET (FC83)

Parámetro Declaración Tipo de Area de memoria


Descripción
datos
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 Cantidad de bits a activar en el área.
o constante

* 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


1-6 A5E00066869-03
Funciones lógicas con bits

Información sobre Si el puntero S_BIT apunta al área de memoria de la periferia externa (memoria P),
errores 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 peri-
feria 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
E 0.0 FC83 A 4.0
EN ENO

P#M0.0 S_BIT
10 N

antes de la ejecución: después de la ejecución:

M0.7 M0.0 M0.7 M0.0


0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1

M1.7 M1.0 M1.7 M1.0


0 0 0 0 0 0 0 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 cam-
bia. 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 (memo-


ria 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 sali-
das (A) también se pone a 0.

Parámetros En la tabla 1-4 se describen los parámetros de la función ”Activar inmediatamente


un área de salida”(SETI).

Tabla 1-4 Parámetros de la función SETI (FC101)

Parámetro Declaración Tipo de Area de memoria


Descripción
datos
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 Tamaño del área de bytes a desactivar, indicado por la
o constante 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.

Software estándar para S7-300 y S7-400 Funciones estándar, parte 2


1-8 A5E00066869-03
Funciones lógicas con bits

Información sobre Si se cumple una de las condiciones siguientes, el estado de señal de todos los bits
errores 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.

Ejemplo 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 pri-
mer byte en la dirección P 2.0. El parámetro N indica que son 16 los bits a desacti-
var, 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
E 0.0 FC101 A 4.0
EN ENO

P#P2.0 S_BYTE
16 N

antes de la ejecución: después de la ejecución:


P1.7 P1.0 P1.7 P1.0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

P2.7 P2.0 P2.7 P2.0


0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1

P3.7 P3.0 P3.7 P3.0


0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
P4.7 P4.0 P4.7 P4.0
0 0 0 0 0 0 0 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

Software estándar para S7-300 y S7-400 Funciones estándar, parte 2


1-10 A5E00066869-03
Funciones de tabla 2
Este capítulo describe las funciones (FC) de tabla que puede añadir a las operacio-
nes 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 2-15
almacenarlo (WRD_TBL): FC91
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 ele-
mentos 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 En la tabla 2-1 se describen los parámetros de la función ”Añadir un elemento a una
tabla” (ATT).

Tabla 2-1 Parámetros de la función ATT (FC84)

Parámetro Declaración Tipo de Area de memoria


Descripción
datos
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 Datos a añadir a la tabla.
o constante
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.

Software estándar para S7-300 y S7-400 Funciones estándar, parte 2


2-2 A5E00066869-03
Funciones de tabla

Información sobre Si la cantidad de elementos es igual o mayor que la longitud de tabla, entonces no se
errores 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
E 0.0 FC84 A 4.0
EN ENO

W#16#0024 DATA
P#DB1.DBX10.0 TABLE

Antes 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#0000
DBW24 = 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 ha-
cia abajo. La tabla FIFO está compuesta por palabras. Aplicando la función ATT
puede añadir elementos a la tabla FIFO.
• 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

Parámetros En la tabla 2-2 se describen los parámetros de la función ”Extraer el elemento más
antiguo de una tabla” FIFO.

Tabla 2-2 Parámetros de la función FIFO (FC85)

Parámetro Declaración Tipo de Area de memoria


Descripción
datos
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.

Software estándar para S7-300 y S7-400 Funciones estándar, parte 2


2-4 A5E00066869-03
Funciones de tabla

Información sobre Si la tabla FIFO está vacía (número de elementos = 0), el valor de respuesta
errores 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
E 0.0 FC85 A 4.0
EN ENO

P#DB1.DBX10.0 TABLE
RET_VAL MW2

Antes 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
RET_VAL MW2 = 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 fun-
ció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 indi-
zado 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 ele-
mento 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.

Software estándar para S7-300 y S7-400 Funciones estándar, parte 2


2-6 A5E00066869-03
Funciones de tabla

Parámetros En la tabla 2-3 se describen los parámetros de la función ”Buscar un valor en una
tabla” (TBL_FIND).

Tabla 2-3 Parámetros de la función TBL_FIND (FC86)

Parámetro Declaración Tipo de Area de memoria


Descripción
datos
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 Si se cumple alguna de las condiciones enumeradas en la tabla 2-4 no se modifican
errores 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áme-
tro SRC. Estas palabras se comparan con el valor del patrón 5555, que está almace-
nado 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 comen-
zar la búsqueda. Una vez que se ha ejecutado la operación, el parámetro INDX in-
dica 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.

TBL_FIND
E 0.0 FC86 A 4.0
EN ENO
El primer registro de la tabla indica la
P#DB1.DBX0.0 SRC RET_VAL MW0 longitud de la operación de búsqueda. El
P#DB2.DBX10.0 PATRN valor 0004 hace que se busquen en los
siguientes 4 elementos de la tabla.
B#16#01 CMD
El parámetro INDX pasa de DW0 (antes
B#16#04 E_TYPE de la ejecución) a DW6 (después de la
ejecución), porque el patrón en la direc-
MW2 INDX
ción DW6 corresponde con el patrón
5555 en la dirección de puntero PATRN.

Antes de la ejecución:
SRC (long. de tabla) DBW0 = W#16#0004
DBW2 = W#16#1111
DBW4 = W#16#3333
DBW6 = W#16#5555
DBW8 = W#16#7777

INDX MW2 = W#16#0000

PATRN DBW10 = W#16#5555

Después de la ejecución:
INDX MW2 = W#16#0003

Figura 2-3 Buscar un valor en una tabla (TBL_FIND)

Software estándar para S7-300 y S7-400 Funciones estándar, parte 2


2-8 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.
• 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.

Parámetros En la tabla 2-5 se describen los parámetros de la función ”Extraer el elemento más
reciente de una tabla” LIFO.

Tabla 2-5 Parámetros de la función LIFO (FC87)

Parámetro Declaración Tipo de Area de memoria


Descripción
datos
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 Si la tabla LIFO está vacía (número de elementos = 0), entonces el valor de res-
errores puesta 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 úl-
timo elemento que se introdujo en la tabla. La cantidad de elementos es decremen-
tada 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
E 0.0 FC87 A 4.0
EN ENO

P#DB1.DBX10.0 TABLE
RET_VAL MW2

Antes 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

RET_VAL MW2 = 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 MW2 = W#16#0024

Figura 2-4 Extraer el elemento más reciente de una tabla (LIFO)

Software estándar para S7-300 y S7-400 Funciones estándar, parte 2


2-10 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 En la tabla 2-6 se describen los parámetros de la función ”Realizar una operación en
una tabla” (TBL).

Tabla 2-6 Parámetros de la función TBL (FC88)

Parámetro Declaración Tipo de Area de memoria


Descripción
datos
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 Los valores de la tabla no se modificarán si CMD o E_TYPE no son válidos, y tam-
errores poco 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 (ac-
tivada). 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
E 0.0 FC88 A 4.0
EN ENO

P#DB1.DBX0.0 SRC RET_VAL MW0

B#16#04 CMD

B#16#04 E_TYPE

Antes de la ejecución:
SRC (longitud de tabla) DBW0 = W#16#0005
DBW2 = W#16#2000
DBW4 = W#16#3000
DBW6 = W#16#4000
DBW8 = W#16#5000
DBW10 = 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 Realizar una operación en una tabla (TBL)

Software estándar para S7-300 y S7-400 Funciones estándar, parte 2


2-12 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 pun-
tero DEST; a continuación incrementa el valor de INDX siempre que éste fuera me-
nor 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 En la tabla 2-7 se describen los parámetros de la función ”Copiar un valor de una
tabla” (TBL_WRD).

Tabla 2-7 Parámetros de la función TBL_WRD (FC89)

Parámetro Declaración Tipo de Area de memoria


Descripción
datos
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 La función no será ejecutada si se da una de las condiciones enumeradas en la tabla
errores 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 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.

Ejemplo 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 da-
tos (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 eje-
cutado satisfactoriamente la función, el valor de INDX se incrementa automática-
mente 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
E 0.0 FC89 A 4.0
EN ENO
RET_VAL MW0
P#DB1.DBX0.0 SRC
Q M2.0
P#DB2.DBX20.0 DEST
B#16#04 E_TYPE
MW1 INDX

Antes de la ejecución:
SRC (longitud de tabla) DBW0 = W#16#0004
DBW2 = W#16#2000
DBW4 = W#16#3000
DBW6 = W#16#4000
DBW8 = W#16#5000

INDX MW1 = W#16#0001

DEST DBW20 = W#16#0000


Después de la ejecución:
INDX MW1 = W#16#0002

DEST DBW20 = W#16#2000

Figura 2-6 Copiar un valor de una tabla (TBL_WRD)

Software estándar para S7-300 y S7-400 Funciones estándar, parte 2


2-14 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 alma-
cenarlo” (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 in-
dica 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 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).

Tabla 2-9 Parámetros de la función WRD_TBL (FC91)


Parámetro Declaración Tipo de Area de
Descripción
datos 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.
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áli-
das 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 La función no se ejecutará si se da alguna de las condiciones enumeradas en la tabla


errores 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 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.

Ejemplo 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.

WRD_TBL
E 0.0 FC91 A 4.0
EN ENO
P#DB2.DBX20.0 SRC RET_VAL MW0
P#DB1.DBX0.0 TABLE Q M2.0
B#16#08 CMD
B#16#06 E_TYPE
MW1 INDX

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 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


2-16 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 En la tabla 2-11 se describen los parámetros de la función ”Tabla de Datos


Correlativos” (CDT).

Tabla 2-11 Parámetros de la función CDT (FC103)


Parámetro Declaración Tipo de Area de
Descripción
datos 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.
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 La función no será ejecutada si se da una de las condiciones enumeradas en la tabla
errores 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 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 indi-
cado.

Ejemplo 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 tam-
bié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
E 0.0 FC103 A 4.0
EN ENO
P#DB1.DBX0.0 IN_TBL RET_VAL MW0
P#DB1.DBX100.0 OUT_TBL
P#DB1.DBX200.0 IN
P#DB1.DBX210.0 OUT
B#16#05 E_TYPE
Antes de la ejecución:
IN_TBL (long. de tabla) DBW0 = W#16#0005
DBW2 = 2
DBW4 = 4
DBW6 = 8
DBW8 = 16
DBW10 = 64
OUT_TBL (long. de tabla) DBW100 = W#16#0005
DBW102 = 5
DBW104 = 10
DBW106 = 15
DBW108 = 20
DBW110 = 25
IN DBW200 = 22
OUT DBW210 = 0
Después de la ejecución:
OUT DBW210 = 25

Figura 2-8 Tabla de datos correlativos (CDT)

Software estándar para S7-300 y S7-400 Funciones estándar, parte 2


2-18 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 opera-
ciones 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 En la tabla 2-13 se describen los parámetros de la función ”Enlace lógico de tablas”
(TBL_TBL).

Tabla 2-13 Parámetros de la función TBL_TBL (FC104)

Parámetro Declara- Tipo de Area de


Descripción
ción datos 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.
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 erro-
res; si los valores son distintos de W#16#0000, véase la infor-
mació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 La función no será ejecutada si se da una de las condiciones enumeradas en la tabla
errores 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 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.

Ejemplo 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 ope-
ració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.

TBL_TBL
E 0.0 FC104 A 4.0
EN ENO

P#DB1.DBX0.0 TBL1 RET_VAL MW0


P#DB1.DBX20.0 TBL2
P#DB1.DBX40.0 DEST_TBL
B#16#07 CMD
B#16#04 E_TYPE

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 Enlace lógico de tablas (TBL_TBL)

Software estándar para S7-300 y S7-400 Funciones estándar, parte 2


2-20 A5E00066869-03
Funciones de desplazamiento 3
En este capítulo se describen las funciones (FC) de desplazamiento que puede aña-
dir a las operaciones estándar para obtener una mayor flexibilidad en la programa-
ció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 Area de memoria


Descripción
datos
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.

* 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


3-2 A5E00066869-03
Funciones de desplazamiento

Información sobre La función no se ejecuta en caso de emplear un tipo de datos (E_TYPE) no válido;
errores 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 en-
trada 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 desplaza-
miento 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.

WSR
E 0.0 FC90 A 4.0
EN ENO

M1.0 RESET Q M2.0

P#DB2.DBX6.0 S_DATA
P#DB1.DBX0.0 START

B#16#04 LENGTH
B#16#04 E_TYPE

Antes de la ejecución:
START DW0 = W#16#1111
DW2 = W#16#2222
DW4 = W#16#3333
DW6 = W#16#4444
S_DATA DW6 = W#16#1234
RESET M1.0 = FALSE

Después de la ejecución:
START DW0 = W#16#1234
DW2 = W#16#1111
DW4 = W#16#2222
DW6 = W#16#3333

Figura 3-1 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 des-
plazará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ámetros de la función SHRB (FC92)

Parámetro Declaración Tipo de Area de memoria


Descripción
datos
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.

Software estándar para S7-300 y S7-400 Funciones estándar, parte 2


3-4 A5E00066869-03
Funciones de desplazamiento

Información sobre Esta función no detecta condiciones de error


errores

Ejemplo La figura 3-2 muestra cómo opera la función ”Desplazar un bit a un registro de des-
plazamiento” (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
E 0.0 FC92 A 4.0
EN ENO

0 DATA

0 RESET
P#DB1.DBX1.4 S_BIT

B#16#0E N

Antes del desplazamiento: Después del desplazamiento:


S_BIT S_BIT
1.7 1.0 1.7 1.0
0 0 1 1 1 0 1 0 0 1 1 0 1 0 1 0
2.7 2.0 2.7 2.0
0 0 1 1 1 0 1 0 0 1 1 1 0 1 0 0
3.7 3.0 3.7 3.0
0 0 1 1 1 0 1 0 0 0 1 1 1 0 0 0

Figura 3-2 Desplazar un bit a un registro de desplazamiento (SHRB)

Software estándar para S7-300 y S7-400 Funciones estándar, parte 2


A5E00066869-03 3-5
Funciones de desplazamiento

Software estándar para S7-300 y S7-400 Funciones estándar, parte 2


3-6 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 Transferencia indirecta de un bloque de datos (IBLKMOV): FC81 4-2
4.2 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 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áme-
tro 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 des-
tino. 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ámetros de la función IBLKMOV (FC81)

Parámetro Declaración Tipo de Area de memoria


Descripción
datos
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.

Software estándar para S7-300 y S7-400 Funciones estándar, parte 2


4-2 A5E00066869-03
Funciones y bloques de función de transferencia

Información sobre La función no se ejecutará si se ha indicado un tipo de datos (E_TYPE) que no es


errores 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 en-
trada 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 da-
tos 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
E 0.0 FC81 A 4.0
EN ENO

P#DB1.DBX0.0 S_DATA
P#DB1.DBX10.0 LENGTH
P#DB1.DBX20.0 D_DATA
B#16#04 E_TYPE

Antes de la ejecución:
S_DATA 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

Después de la ejecución:
D_DATA DBW10 = W#16#2424
DBW12 = W#16#2525

Figura 4-1 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 intercala-


dos 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 dis-
ponible 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:
• BOOL
• WORD
• INT
• BYTE
• DINT
• REAL
• CHAR
• DWORD

Software estándar para S7-300 y S7-400 Funciones estándar, parte 2


4-4 A5E00066869-03
Funciones y bloques de función de transferencia

Parámetros En la tabla 4-2 se describen los parámetros de la función ”Acumular/Distribuir datos


de tabla” (PACK).

Tabla 4-2 Parámetros de la función PACK (FB86)

Parámetro Declaración Tipo de Area de memoria


Descripción
datos
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 El bloque de función no será ejecutado si se da una de las condiciones enumeradas
errores 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
E 0.0 FB86 A 4.0
EN ENO

P#DB1.DBX0.0 TABLE ERR_CODE MW0


P#M200.0 BOOL 2 P_DATA1
P#M210.0 BYTE 1 P_DATA2

P#M300.0 BOOL 2 P_DATA3


P#M330.0 WORD 1 P_DATA4
P_DATA5

Antes de la ejecución:
TABLE DBB0 = B#16#00
DBB1 = B#16#00
DBB2 = B#16#00
DBB3 = B#16#00
DBB4 = B#16#00
DBB5 = B#16#00

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

Instancia DB86
DIR DBX58.0= FALSE

Después de la ejecución:
TABLE DBB0 = B#16#03
DBB1 = B#16#FF
DBB2 = B#16#03
DBB3 = B#16#00
DBB4 = B#16#FF
DBB5 = B#16#FF

Figura 4-2 Acumular/Distribuir datos de tabla (PACK)

Software estándar para S7-300 y S7-400 Funciones estándar, parte 2


4-6 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 5-2
(TONR): FC80
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 fun-
ción TONR utiliza el tiempo de ejecución del último ciclo del OB (bloque de orga-
nizació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 perma-
nece 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 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).
Tabla 5-1 Parámetros de la función TONR (FC80)

Parámetro Declaración Tipo de Area de


Descripción
datos 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 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 Valor de preselección.
o constante
DELTA_T Entrada INT E, A, M, D, L Tiempo de barrido del OB en el ciclo anterior.
o constante
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.

Software estándar para S7-300 y S7-400 Funciones estándar, parte 2


5-2 A5E00066869-03
Funciones y bloques de función de temporización

Información sobre Esta función no detecta condiciones de error.


errores

Ejemplo La figura 5-1 muestra cómo opera la función ”Activar un temporizador como re-
tardo 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
I 0.0 FC80 Q 4.0
EN ENO

I 0.1 Q 1.1
TMR_EN Q

I 0.2
RESET
L#1000 PV
#OB1_PREV_CYCLE DELTA_T
MD100 ET

Figura 5-1 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 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 en-
trada 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 cam-
bia 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 so-
brepasa 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 preseleccio-
nado), 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 so-
brepasa 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


5-4 A5E00066869-03
Funciones y bloques de función de temporización

Parámetros En la tabla 5-2 se describen los parámetros del bloque de función ”Alarma de
tiempo para control discreto” (DCAT).

Tabla 5-2 Parámetros del bloque de función DCAT (FB81)

Parámetro Declaración Tipo de Area de memoria


Descripción
datos
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 Este bloque de función no detecta condiciones de error.


errores

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 es-
tado 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.

DB81
DCAT A 4.0
E 0.0 FB81
EN ENO
M0.0
CMD Q A 2.0
M1.0
O_FB OA A 3.0
M1.1
C_FB CA A 3.1

Antes de la ejecución:
CMD M0.0 = VERDADERO
O_FB M1.0 = FALSO
C_FB M1.1 = FALSO
Q M2.0 = FALSO
OA M3.0 = FALSO
CA M3.1 = FALSO

Instancia DB81
ET DBD4 = L#12
PT DBD8 = L#222
CMD_HIS DBX16.0 = FALSO

Después de la ejecución:
Q M2.0 = VERDADERO
OA M3.0 = FALSO
CA M3.1 = FALSO

Instancia DB81
ET DBD4 = L#0
CMD_HIS DBX16.0 = VERDADERO

Figura 5-2 Alarma de tiempo para control discreto (DCAT)

Software estándar para S7-300 y S7-400 Funciones estándar, parte 2


5-6 A5E00066869-03
Funciones y bloques de función de temporización

5.3 Alarma de tiempo para control motor (MCAT): FB82

Descripción 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 pres-
crito 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 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 Co-
mienzo
apertura
<PT 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 Co-
mienzo
cierre
<PT 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)
>= 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 En la tabla 5-4 se describen los parámetros del bloque de función ”Alarma de
tiempo para control motor” (MCAT).
Tabla 5-4 Parámetros de MCAT (FB82)

Parámetro Declaración Tipo de Area de memoria


Descripción
datos
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 Este bloque de función no detecta condiciones de error.


errores

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 ajusta-
das 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.

Software estándar para S7-300 y S7-400 Funciones estándar, parte 2


5-8 A5E00066869-03
Funciones y bloques de función de temporización

DB82
MCAT
E 0.0 FB82 A 4.0
EN ENO
M0.0
O_CMD OO M2.0
M0.1
C_CMD CO M2.1
M0.2
S_CMD OA M3.0
M1.0
O_FB CA M3.1
M1.1
C_FB Q M4.0

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
ET DBD4 = L#2
PT DBD8 = L#22
O_HIS DBX16.0 = VERDADERO
C_HIS DBX16.1 = FALSO

Después de la ejecución:
OO M2.0 = VERDADERO
CO M2.1 = FALSO
OA M3.0 = FALSO
CA M3.1 = FALSO
Q M4.0 = VERDADERO

Instancia DB82
ET DBD4 = L#4
O_HIS DBX16.0 = VERDADERO
CMD_HIS DBX16.1 = FALSO

Figura 5-3 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 pre-
seleccionado/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 am-
bos. 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 ter-
mina 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 blo-
que 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 pa-
labra de salida (OUT_WORD) y los bits de salida (de OUT1 a OUT16) que son acti-
vados/desactivados por los valores de salida (OUT_VAL). Cuando un bit de la más-
cara 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 signifi-
cativo de la palabra de salida (OUT_WORD).

Software estándar para S7-300 y S7-400 Funciones estándar, parte 2


5-10 A5E00066869-03
Funciones y bloques de función de temporización

Parámetros En la tabla 5-5 se describen los parámetros del bloque de función ”Evento drum
enmascarable” (DRUM).
Tabla 5-5 Parámetros del bloque de función DRUM (FB85)

Parámetro Declaración Tipo de Area de memoria


Descripción
datos
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, Número del último paso programado.
o constante
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ámetros del bloque de función DRUM (FB85)

Parámetro Declaración Tipo de Area de memoria


Descripción
datos
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 Valor de contaje preseleccionado para cada paso [de 1
WORD a 16] (medido en ms).
OUT_VAL Estático ARRAY of E, A, M, D, L Valores de salida para cada paso
BOOL [de 1 a 16, de 1 a 15].
S_MASK Estático ARRAY of E, A, M, D, L Máscara configurable para cada paso [de 1 a 16, de 1
BOOL a 15]. El estado de señal inicial es en todos 1.

Información sobre Si se da alguna de las condiciones enumeradas en la tabla 5-6, el bloque de función
errores 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 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


5-12 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 enmascara-
ble” (DRUM). El bloque de función se ejecuta cuando el estado de señal de la en-
trada 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.

DB85
E 0.0 DRUM A 4.0
EN FB85 ENO
M0.0
RESET

M0.1
JOG OUT1 M4.0
M0.2 OUT2 M4.1
DRUM_EN OUT3 M4.2
OUT4 M4.3
MB1 LST_STEP OUT5 M4.4
M20.0 EVENT1 OUT6 M4.5
EVENT2 OUT7 M4.6
EVENT3 OUT8 M4.7
M20.1
EVENT4 OUT9 M5.0
EVENT5 OUT10 M5.1
M20.2
EVENT6 OUT11 M5.2

M20.3 EVENT7 OUT12 M5.3


EVENT8 OUT13 M5.4
EVENT9 OUT14 M5.5
M20.4
EVENT10 OUT15 M5.6
EVENT11 OUT16 M5.7
M20.5
EVENT12 Q M6.0
EVENT13 OUT_WORD MW8
M20.6
EVENT14 ERR_CODE MW10
EVENT15
M20.7
EVENT16

Figura 5-4 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: Antes de la ejecución (continuación):


Entradas S_MASK [2,0] DBX92.0 = FALSO
RESET M0.0 = FALSO S_MASK [2,1] DBX92.1 = VERDADERO
JOG M0.1 = FALSO S_MASK [2,2] DBX92.2 = VERDADERO
DRUM_EN M0.2 = VERDADERO S_MASK [2,3] DBX92.3 = VERDADERO
LST_STEP MB1 = B#16#08 S_MASK [2,4] DBX92.4 = VERDADERO
EVENT2 M20.0 = FALSO S_MASK [2,5] DBX92.5 = FALSO
EVENT4 M20.1 = FALSO S_MASK [2,6] DBX92.6 = VERDADERO
EVENT6 M20.2 = FALSO S_MASK [2,7] DBX92.7 = VERDADERO
EVENT8 M20.3 = FALSO S_MASK [2,8] DBX93.0 = FALSO
EVENT10 M20.4 = FALSO S_MASK [2,9] DBX93.1 = FALSO
EVENT12 M20.5 = FALSO S_MASK [2,10] DBX93.2 = VERDADERO
EVENT14 M20.6 = FALSO S_MASK [2,11] DBX93.3 = VERDADERO
EVENT16 M20.7 = FALSO S_MASK [2,12] DBX93.4 = VERDADERO
DB85 de instancia S_MASK [2,13] DBX93.5 = VERDADERO
JOG_HIS DBX12.0 = FALSO S_MASK [2,14] DBX93.6 = FALSO
EOD DBX12.1 = FALSO S_MASK [2,15] DBX93.7 = VERDADERO
DSP DBB13 = W#16#0001 Salidas
DSC DBB14 = W#16#0001 Q M6.0 = FALSO
DCC DBD16 = DW#16#0000000A OUTWORD MW8 = W#16#FFFF
DTBP DBW20 = W#16#0001 OUT1 M4.0 = VERDADERO
S_PRESET [1] DBW26 = W#16#0064 OUT2 M4.1 = VERDADERO
S_PRESET [2] DBW28 = W#16#00C8 OUT3 M4.2 = VERDADERO
OUT_VAL [1,0] DBX58.0 = VERDADERO OUT4 M4.3 = VERDADERO
OUT_VAL [1,1] DBX58.1 = VERDADERO OUT5 M4.4 = VERDADERO
OUT_VAL [1,2] DBX58.2 = VERDADERO OUT6 M4.5 = VERDADERO
OUT_VAL [1,3] DBX58.3 = VERDADERO OUT7 M4.6 = VERDADERO
OUT_VAL [1,4] DBX58.4 = VERDADERO OUT8 M4.7 = VERDADERO
OUT_VAL [1,5] DBX58.5 = VERDADERO OUT9 M5.0 = VERDADERO
OUT_VAL [1,6] DBX58.6 = VERDADERO OUT10 M5.1 = VERDADERO
OUT_VAL [1,7] DBX58.7 = VERDADERO OUT11 M5.2 = VERDADERO
OUT_VAL [1,8] DBX59.0 = VERDADERO OUT12 M5.3 = VERDADERO
OUT_VAL [1,9] DBX59.1 = VERDADERO OUT13 M5.4 = VERDADERO
OUT_VAL [1,10] DBX59.2 = VERDADERO OUT14 M5.5 = VERDADERO
OUT_VAL [1,11] DBX59.3 = VERDADERO OUT15 M5.6 = VERDADERO
OUT_VAL [1,12] DBX59.4 = VERDADERO OUT16 M5.7 = VERDADERO
OUT_VAL [1,13] DBX59.5 = VERDADERO Después de la ejecución:
OUT_VAL [1,14] DBX59.6 = VERDADERO
OUT_VAL [1,15] DBX59.7 = VERDADERO OUT1 M4.0 = VERDADERO
OUT_VAL [2,0] DBX60.0 = FALSO OUT2 M4.1 = FALSO
OUT_VAL [2,1] DBX60.1 = FALSO OUT3 M4.2 = FALSO
OUT_VAL [2,2] DBX60.2 = FALSO OUT4 M4.3 = FALSO
OUT_VAL [2,3] DBX60.3 = FALSO OUT5 M4.4 = FALSO
OUT_VAL [2,4] DBX60.4 = FALSO OUT6 M4.5 = VERDADERO
OUT_VAL [2,5] DBX60.5 = FALSO OUT7 M4.6 = FALSO
OUT_VAL [2,6] DBX60.6 = FALSO OUT8 M4.7 = FALSO
OUT_VAL [2,7] DBX60.7 = FALSO OUT9 M5.0 = VERDADERO
OUT_VAL [2,8] DBX61.0 = FALSO OUT10 M5.1 = VERDADERO
OUT_VAL [2,9] DBX61.1 = FALSO OUT11 M5.2 = FALSO
OUT_VAL [2,10] DBX61.2 = FALSO OUT12 M5.3 = FALSO
OUT_VAL [2,11] DBX61.3 = FALSO OUT13 M5.4 = FALSO
OUT_VAL [2,12] DBX61.4 = FALSO OUT14 M5.5 = FALSO
OUT_VAL [2,13] DBX61.5 = FALSO OUT15 M5.6 = VERDADERO
OUT_VAL [2,14] DBX61.6 = FALSO OUT16 M5.7 = FALSO
OUT_VAL [2,15] DBX61.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

Figura 5-4 Evento drum enmascarable (DRUM) (continuación)

Software estándar para S7-300 y S7-400 Funciones estándar, parte 2


5-14 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 6-2
(SEG): FC93
6.2 Convertir una cadena de caracteres ASCII en una cifra hexadeci- 6-4
mal (ATH): FC94
6.3 Convertir una cifra hexadecimal en una cadena de caracteres AS- 6-6
CII (HTA): FC95
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

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) con-
vierte 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 es-
cribe 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 –g f edc ba Display


0000 00111111 0
0001 00000110 1
0010 01011011 2 Display de
7 segmentos
0011 01001111 3
a
0100 01100110 4
0101 01101101 5
0110 01111101 6 f b
g
0111 00000111 7
1000 01111111 8
1001 01100111 9 e c
d
1010 01110111 A
1011 01111100 b
1100 00111001 C
1101 01011110 d
1110 01111001 E
1111 01110001 F

Figura 6-1 Patrones de bits de salida para el display de siete segmentos

Parámetros 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).

Tabla 6-1 Parámetros de la función SEG (FC93)

Parámetro Declaración Tipo de Area de memoria


Descripción
datos
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, Palabra fuente con cuatro dígitos hexadecimales.
o constante
OUT Salida DWORD A, M, D, L, P Patrón de bits destino con cuatro bytes.

Software estándar para S7-300 y S7-400 Funciones estándar, parte 2


6-2 A5E00066869-03
Funciones y bloques de función de conversión

Información sobre Esta función no detecta condiciones de error.


errores

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
E 0.0 FC93 A 4.0
EN ENO

W#16#1234 IN OUT MD0

OUT MD0 = DW#16#065B4F66

Figura 6-2 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ámetros de la función ATH (FC94)


Parámetro Declaración Tipo de Area de memoria Descripción
datos
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 Si se encuentra algún carácter ASCII que no es válido se convierte como si fuera 0.
errores 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.

Software estándar para S7-300 y S7-400 Funciones estándar, parte 2


6-4 A5E00066869-03
Funciones y bloques de función de conversión

ATH
E 0.0 FC94 A 4.0
EN ENO
P#DB1.DBX10.0 IN RET_VAL MW0

W#16#05 N OUT 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 DBB0 = B#16#B9


DBB1 = B#16#0A
DBB2 = B#16#C0

Figura 6-3 Convertir una cadena de caracteres ASCII en una cifra hexadecimal (ATH)

Carácter ASCII Valor hexadecimal Cifra hexadecimal


ASCII convertida
0 30 0
1 31 1
2 32 2
3 33 3
4 34 4
5 35 5
6 36 6
7 37 7
8 38 8
9 39 9
A 41 A
B 42 B
C 43 C
D 44 D
E 45 E
F 46 F

Figura 6-4 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 alma-
cena en la cadena de caracteres que indica el puntero OUT. Como la cifra hexadeci-
mal 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 AS-
CII en el mismo orden en que se ha leído (primero se convierte el cuarteto de la ci-
fra 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ámetros de la función HTA (FC95)

Parámetro Declaración Tipo de Area de memoria Descripción


datos
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 Esta función no detecta condiciones de error.


errores

Software estándar para S7-300 y S7-400 Funciones estándar, parte 2


6-6 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 almacena-
dos 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
E 0.0 FC95 A 4.0
EN ENO
P#DB1.DBX10.0 IN OUT P#DB2.DBX0.0

W#16#03 N

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 Valor hexadecimal Caracter ASCII


ASCII convertido
0 30 0
1 31 1
2 32 2
3 33 3
4 34 4
5 35 5
6 36 6
7 37 7
8 38 8
9 39 9
A 41 A
B 42 B
C 43 C
D 44 D
E 45 E
F 46 F

Figura 6-6 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 pa-
rámetro IN codificándolo en una cifra binaria de 5 bits que corresponde a la posi-
ció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 va-
lor 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ámetros de la función ENCO (FC96)

Parámetro Declaración Tipo de Area de memoria Descripción


datos
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, Valor a codificar.
o constante
RET_VAL Salida INT A, M, D, L, P Valor de respuesta (conteniendo una cifra binaria de
5 bits).

Información sobre Esta función no detecta condiciones de error.


errores

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
E 0.0 A 4.0
FC96
EN ENO
RET_VAL MW0
DW#16#12345678 IN

RET_VAL MW0 = 3

Figura 6-7 Codificar una posición binaria (ENCO)

Software estándar para S7-300 y S7-400 Funciones estándar, parte 2


6-8 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ámetros de la función DECO (FC97)

Parámetro Declaración Tipo de Area de memoria Descripción


datos
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, Variable a decodificar.
o constante
RET_VAL Salida DWORD A, M, D, L, P Valor de respuesta.

Información sobre Esta función no detecta condiciones de error.


errores

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
E 0.0 A 4.0
FC97
EN ENO
RET_VAL MD0
W#16#0003 IN

RET_VAL MD0 = DW#16#00000008

Figura 6-8 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 En la tabla 6-6 se describen los parámetros de la función ”Generar el complemento a


diez” (BCDCPL).

Tabla 6-6 Parámetros de la función BCDCPL (FC98)

Parámetro Declaración Tipo de Area de memoria Descripción


datos
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, Cifra BCD de 7 dígitos.
o constante
RET_VAL Salida DWORD A, M, D, L, P Valor de respuesta.

Información sobre Esta función no detecta condiciones de error.


errores

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
E 0.0 A 4.0
FC98
EN ENO
RET_VAL MD0
DW#16#01234567 IN

RET_VAL MD0 = DW#16#08765433

Figura 6-9 Generar el complemento a diez (BCDCPL)

Software estándar para S7-300 y S7-400 Funciones estándar, parte 2


6-10 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ámetros de la función BITSUM (FC99)

Parámetro Declaración Tipo de Area de memoria Descripción


datos
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, Variable en la que se van a contar los bits.
o constante
RET_VAL Salida INT A, M, D, L, P Valor de respuesta.

Información sobre Esta función no detecta condiciones de error.


errores

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 he-
xadecimal), 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
E 0.0 A 4.0
FC99
EN ENO
RET_VAL MW0
DW#16#12345678 IN

RET_VAL MW0 = W#16#000D

Figura 6-10 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 En la tabla 6-8 se describen los parámetros de la función ”Escalar valores”


(SCALE).

Tabla 6-8 Parámetros de la función SCALE (FC105)

Parámetro Declaración Tipo de Area de memoria Descripción


datos
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, Valor de entrada a convertir a escala en valor REAL.
o constante
HI_LIM Entrada REAL E, A, M, D, L, P, Límite superior del rango escalar.
o constante
LO_LIM Entrada REAL E, A, M, D, L, P, Límite inferior del rango escalar.
o constante
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.

Software estándar para S7-300 y S7-400 Funciones estándar, parte 2


6-12 A5E00066869-03
Funciones y bloques de función de conversión

Información sobre Si el valor entero de entrada es mayor que K2, la salida (OUT) se une a HI_LIM y
errores 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 fun-
ció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.

SCALE
E 0.0 FC105 A 4.0
EN ENO

MW10 IN RET_VAL MW0


MD20 HI_LIM OUT MD40
MD30 LO_LIM
E 2.0
BIPOLAR

Antes de la ejecución:
IN MW10 = 22

HI_LIM MD20 = 100.0

LO_LIM MD30 = 0.0

OUT MD40 = 0.0

BIPOLAR E 2.0 = TRUE

Después de la ejecución:
OUT MD40 = 50.03978588

Figura 6-11 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 infe-
rior 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 En la tabla 6-9 se describen los parámetros de la función ”Desescalar valores”


(UNSCALE).

Tabla 6-9 Parámetros de la función UNSCALE (FC106)

Parámetro Declaración Tipo de Area de memoria Descripción


datos
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, Valor de entrada a desescalar convirtiéndolo en un valor
o constante entero.
HI_LIM Entrada REAL E, A, M, D, L, P, Límite superior del rango escalar.
o constante
LO_LIM Entrada REAL E, A, M, D, L, P, Límite inferior del rango escalar.
o constante
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.

Software estándar para S7-300 y S7-400 Funciones estándar, parte 2


6-14 A5E00066869-03
Funciones y bloques de función de conversión

Información sobre Si el valor real de entrada queda fuera del rango comprendido entre los límites infe-
errores rior 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 con-
vierte 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.

UNSCALE
E 0.0 FC106 A 4.0
EN ENO

MD10 IN RET_VAL MW0


MD20 HI_LIM OUT MW40
MD30 LO_LIM
E 2.0
BIPOLAR

Antes de la ejecución:
IN MD10 = 50.03978588

HI_LIM MD20 = 100.0

LO_LIM MD30 = 0.0

OUT MW40 = 0

BIPOLAR E 2.0 = TRUE

Después de la ejecución:
OUT MW40 = 22

Figura 6-12 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 en-
trada (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 LD_TIME + SAMPLE_T LD_TIME


PREV_OUT + GAIN IN – GAIN PREV_IN
LG_TIME + SAMPLE_T LG_TIME + SAMPLE_T LG_TIME + SAMPLE_T

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 fun-
ción anticipando la entrada; por el contrario, la fase de retardo (lag) desplaza la sa-
lida 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 fun-
ción LEAD equivale a una diferenciación y es como un filtro de paso alto. La com-
binació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.

Software estándar para S7-300 y S7-400 Funciones estándar, parte 2


6-16 A5E00066869-03
Funciones y bloques de función de conversión

Parámetros En la tabla 6-10 se describen los parámetros del bloque de función ”Algoritmo avan-
ce/retardo” (LEAD_LAG).

Tabla 6-10 Parámetros del bloque de función LEAD_LAG (FB80)

Parámetro Declaración Tipo de Area de memoria Descripción


datos
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, Valor de entrada del periodo actual de muestreo a
o constante procesar.
SAMPLE_T Entrada INT E, A, M, D, L, P, Tiempo de muestreo.
o constante
OUT Salida REAL E, A, M, D, L, P, Resultado de la función LEAD_LAG.
o constante
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, Tiempo de avance en minutos.
o constante
LG_TIME Estático REAL E, A, M, D, L, P, Tiempo de retardo en minutos.
o constante
GAIN Estático REAL E, A, M, D, L, P, Ganancia en % / % (relación del cambio en la salida con
o constante respecto al cambio en la entrada como estado constante).
PREV_IN Estático REAL E, A, M, D, L, P, Entrada anterior.
o constante
PREV_OUT Estático REAL E, A, M, D, L, P, Salida anterior.
o constante

Información sobre El bloque de función LEAD_LAG no se ejecuta si GAIN es igual o menor que cero.
errores 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/re-
tardo” (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 pro-
cesa 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
E 0.0 FB80 A 4.0
EN ENO
MD10 IN OUT MD20

10 SAMPLE_T ERR_CODE MW0

Antes de la ejecución:
IN MD10 =2.0

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

PREV_IN DBD24 =2.0

PREV_OUT DBD28 =2.0

OUT MD20 =2.0

Figura 6-13 Algoritmo avance/retardo (LEAD_LAG)

Software estándar para S7-300 y S7-400 Funciones estándar, parte 2


6-18 A5E00066869-03
Función en coma flotante 7
Este capítulo describe la función (FC) en coma flotante, que puede añadir a las ope-
raciones estándar para obtener una mayor flexibilidad en la programación.

Apartado Descripción Página


7.1 Desviación típica (DEV): FC102 7-2

Software estándar para S7-300 y S7-400 Funciones estándar, parte 2


A5E00066869-03 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:

Desviación = (N * SqSum) – Sum2


típica N * (N – 1)

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 auto-
máticamente las conversiones de los tipos de datos que sean necesarias en cuanto se
llama a la función.
• 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).

Parámetros En la tabla 7-1 se describen los parámetros de la función ”Desviación típica” (DEV).

Tabla 7-1 Parámetros de la función DEV (FC102)

Parámetro Declaración Tipo de Area de memoria


Descripción
datos
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.

Software estándar para S7-300 y S7-400 Funciones estándar, parte 2


7-2 A5E00066869-03
Función en coma flotante

Información sobre La función no será ejecutada si se da una de las condiciones enumeradas en la tabla
errores 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 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.

Ejemplo 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 ta-
bla. 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
E 0.0 FC102 A 4.0
EN ENO

P#DB1.DBX100.0 TBL RET_VAL MW0

P#DB1.DBX130.0 OUT

B#16#08 E_TYPE

Antes de la ejecución:
TBL (long. de tabla) DBW100=W#16#0005
DBD102 = 2.0
DBD106 = 4.0
DBD110 = 8.0
DBD114 = 16.0
DBD118 = 32.0

OUT DBD130 = 0.0

Después de la ejecución:
OUT DBD130 = 12.19836055

Figura 7-1 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

Software estándar para S7-300 y S7-400 Funciones estándar, parte 2


7-4 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 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 corres-
pondientes 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ás-
cara 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


8-2 A5E00066869-03
Bloques de función de comparación

Parámetros En la tabla 8-1 se describen los parámetros del bloque de función ”Comparar índice
matriz” (IMC).

Tabla 8-1 Parámetros del bloque de función IMC (FB83)

Parámetro Declaración Tipo de Area de memoria


Descripción
datos
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 co-
rrespondencia 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 E, A, M, D, L Máscaras de comparación [de 1 a 15, de 1 a 15]: el
OF BOOL 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 El bloque de función no se ejecutará si el valor de CMP_STEP es mayor que 15. En
errores 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.

Software estándar para S7-300 y S7-400 Funciones estándar, parte 2


8-4 A5E00066869-03
Bloques de función de comparación

DB83
IMC A 4.0
E 0.0
EN FB83 ENO
M0.0
IN_BIT0 OUT A 2.0
M0.1
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: Instancia DB83
IN_BIT0 M0.0 = TRUE <comparar> CMP_VAL [2, 0] DBX12.0 =TRUE
IN_BIT1 M0.1 = TRUE <comparar> CMP_VAL [2, 1] DBX12.1 =TRUE
IN_BIT2 M0.2 = FALSE <comparar> CMP_VAL [2, 2] DBX12.2 =FALSE
IN_BIT3 M0.3 = TRUE <comparar> CMP_VAL [2, 3] DBX12.3 =TRUE
IN_BIT4 M0.4 = TRUE <comparar> CMP_VAL [2, 4] DBX12.4 =TRUE
IN_BIT5 M0.5 = FALSE <comparar> CMP_VAL [2, 5] DBX12.5 =FALSE
IN_BIT6 M0.6 = TRUE <comparar> CMP_VAL [2, 6] DBX12.6 =TRUE
IN_BIT7 M0.7 = TRUE <comparar> CMP_VAL [2, 7] DBX12.7 =TRUE
IN_BIT8 M1.0 = FALSE <comparar> CMP_VAL [2, 8] DBX13.0 =FALSE
IN_BIT9 M1.1 = TRUE <comparar> CMP_VAL [2, 9] DBX13.1 =TRUE
IN_BIT10 M1.2 = TRUE <comparar> CMP_VAL [2, 10] DBX13.2 =TRUE
IN_BIT11 M1.3 = FALSE <comparar> CMP_VAL [2, 11] DBX13.3 =FALSE
IN_BIT12 M1.4 = TRUE <comparar> CMP_VAL [2, 12] DBX13.4 =TRUE
IN_BIT13 M1.5 = TRUE <comparar> CMP_VAL [2, 13] DBX13.5 =TRUE
IN_BIT14 M1.6 = FALSE <comparar> CMP_VAL [2, 14] DBX13.6 =FALSE
IN_BIT15 M1.7 = TRUE <comparar> CMP_VAL [2, 15] DBX13.7 =TRUE

OUT A 2.0 = FALSE


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 A 2.0 = TRUE

Figura 8-1 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 correspon-
dientes 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 preselec-
cionado 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ámetros de la función SMC (FB84)

Parámetro Declaración Tipo de Area de memoria


Descripción
datos
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.

Software estándar para S7-300 y S7-400 Funciones estándar, parte 2


8-6 A5E00066869-03
Bloques de función de comparación

Tabla 8-2 Parámetros de la función SMC (FB84) (continuación)

Parámetro Declaración Tipo de Area de memoria


Descripción
datos
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 co-
rresponde 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 E, A, M, D, L Máscaras de comparación [de 1 a 15, de 1 a 15]: el
OF BOOL primer número del índice es el del paso, el segundo es el
número del bit de la máscara.

Información sobre El bloque de función no se ejecutará si el valor de LAST es mayor que 15. En este
errores 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ásca-
ras 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

DB84
E 0.0 SMC A 4.0
EN FB84 ENO
M0.0
IN_BIT0 OUT A 2.0
M0.1
IN_BIT1 OUT_STEP MB10
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
Antes de la ejecución: Instancia DB84
IN_BIT0 M0.0 = TRUE <compare to> CMP_VAL [2, 0] DBX12.0 = TRUE
IN_BIT1 M0.1 = TRUE <compare to> CMP_VAL [2, 1] DBX12.1 = TRUE
IN_BIT2 M0.2 = FALSE <compare to> CMP_VAL [2, 2] DBX12.2 = FALSE
IN_BIT3 M0.3 = TRUE <compare to> CMP_VAL [2, 3] DBX12.3 = TRUE
IN_BIT4 M0.4 = TRUE <compare to> CMP_VAL [2, 4] DBX12.4 = TRUE
IN_BIT5 M0.5 = FALSE <compare to> CMP_VAL [2, 5] DBX12.5 = FALSE
IN_BIT6 M0.6 = TRUE <compare to> CMP_VAL [2, 6] DBX12.6 = TRUE
IN_BIT7 M0.7 = TRUE <compare to> CMP_VAL [2, 7] DBX12.7 = TRUE
IN_BIT8 M1.0 = FALSE <compare to> CMP_VAL [2, 8] DBX13.0 = FALSE
IN_BIT9 M1.1 = TRUE <compare to> CMP_VAL [2, 9] DBX13.1 = TRUE
IN_BIT10 M1.2 = TRUE <compare to> CMP_VAL [2, 10] DBX13.2 = TRUE
IN_BIT11 M1.3 = FALSE <compare to> CMP_VAL [2, 11] DBX13.3 = FALSE
IN_BIT12 M1.4 = TRUE <compare to> CMP_VAL [2, 12] DBX13.4 = TRUE
IN_BIT13 M1.5 = TRUE <compare to> CMP_VAL [2, 13] DBX13.5 = TRUE
IN_BIT14 M1.6 = FALSE <compare to> CMP_VAL [2, 14] DBX13.6 = FALSE
IN_BIT15 M1.7 = TRUE <compare to> CMP_VAL [2, 15] DBX13.7 = TRUE

OUT A2.0 = FALSE


OUT_STEP 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 8-2 Barrido de matriz (SMC)

Software estándar para S7-300 y S7-400 Funciones estándar, parte 2


8-8 A5E00066869-03
Glosario

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)

Bit de resultado Al bit 8 de la palabra de estado se le denomina bit de resultado binario (bit RB). El
binario 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 re-
sultado 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 lla-
mar 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 erro-
res.
• 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 Un bloque de datos (DB) almacena los datos del programa de usuario. Es usted
(DB) 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 Un bloque de datos (DB) de instancia aporta memoria para una determinada llamada
de instancia (DB) 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 Un bloque de función (FB) es un bloque lógico que contiene un segmento de un pro-
(FB) grama 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 varia-
bles estáticas del FB se almacenan en el DB de instancia.

Bloque de función Un bloque de función del sistema (SFB) es un tipo de bloque de función (FB) que
del sistema (SFB) 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 ins-
tancia (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.

Software estándar para S7-300 y S7-400 Funciones estándar, parte 2


Glosario-2 A5E00066869-03
Glosario

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 ter-
mina 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 usua-


rio y procesa los datos del autómata programable (PLC).

Direccionamiento Tipo de direccionamiento que indica la dirección real que tiene una determinada
absoluto 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 Direc-
cionamiento simbólico.

Direccionamiento Tipo de direccionamiento en el que el operando de una instrucción señala directa-


directo mente la dirección del valor con el que se debe realizar la operación. Compárese
con Direccionamiento inmediato.

Direccionamiento Tipo de direccionamiento en el cual el valor con el que debe operar la instrucción
inmediato está indicado como parámetro de entrada. Este valor es el operando de la instruc-
ción. Compárese con Direccionamiento directo.

Direccionamiento Si bien todos los elementos de la CPU tienen una dirección absoluta (p. ej.: E 0.0),
simbólico también les puede dar un nombre simbólico, que luego podrá emplear para el direc-
cionamiento. 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ím-
bolos, que puede crear utilizando el Editor de Símbolos.

Esquema de con- El Esquema de contactos (KOP) es uno de los dos lenguajes del software de progra-
tactos (KOP) mació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

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 subru-
tina en un programa de computadora. Usted crea funciones y las llama desde su pro-
grama. 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 sis- Una función de sistema (SFC) es una función preprogramada, cuya funcionalidad ya
tema (SFC) 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.

Identificador del El identificador del operando es la parte del operando de una instrucción que con-
operando tiene 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 ope-
rando ”EB10”, ”EB” es el identificador del operando (”E” indica el área de memo-
ria de las entradas y ”B” indica un byte dentro de ese área).

Lista de instruc- La lista de instrucciones AWL es uno de los dos lenguajes del software de progra-
ciones mació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.

Master Control El Master Control Relay (MCR) es un interruptor principal del esquema de contac-
Relay tos (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 ope-
raciones 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


Glosario-4 A5E00066869-03
Glosario

Nemónicos Modo de representación abreviada de los operandos y las operaciones en el pro-


grama (Ej.: ”E” significa entrada, ”U ” es la representación nemónica de la opera-
ció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).

Operación Una operación del Esquema de contactos KOP ordena a la CPU de su autómata pro-
gramable qué función debe realizar éste. Las operaciones KOP pueden ser elemen-
tos y cuadros.

Operando El operando de una instrucción del Esquema de contactos (KOP) indica una cons-
tante o la dirección donde la instrucción encuentra el valor con el que tiene que eje-
cutar 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) inte-
grada, un bloque de función del sistema (SFB) integrado y el número de la fun-
ció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”.

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 El programa de usuario contiene la lógica de control para poder realizar un proyecto
usuario 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 da-
tos ”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

Resultado lógico Al bit 1 de la palabra de estado se le denomina resultado lógico (bit RLO). El bit
(RLO) 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 alma-
cena 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.

Segmento En un esquema de contactos KOP de STEP 7 se llama segmento a un circuito ener-


gizado que contiene operaciones KOP. Compárese con Circuito.

Tabla de declara- Todos los bloques lógicos tienen una tabla de declaración de variables. Al introducir
ción de variables 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


Glosario-6 A5E00066869-03
Glosario

Tipos de datos A los datos que se van a usar en un programa se les asigna un tipo de datos determi-
nado. 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 organiza-
ció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 determi-
nada 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 longi-
tud es mayor de 32 bits (4 bytes). Puede realizar combinaciones de distintos ti-
pos de datos, definiendo un grupo de tipos de datos en una estructura, o defi-
niendo 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 identi-
fied), 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

Software estándar para S7-300 y S7-400 Funciones estándar, parte 2


Glosario-8 A5E00066869-03
Índice alfabético

A Copiar un valor de una tabla (TBL_WRD),


2-13–2-14
Activar inmediatamente un área de salida (SETI),
Crear el patrón de bits para el display de 7 segmen-
1-8–1-10
tos (SEG), 6-2–6-3
Activar un área de marcas o de periferia en la ima-
gen del proceso (SET), 1-6–1-7
Activar un temporizador como retardo a la cone-
xión con memoria (TONR), 5-2–5-3 D
Acumular/distribuir datos de tabla (PACK), 4-4 Decodificar una posición binaria (DECO), 6-9
Alarma de tiempo para control discreto (DCAT), Desescalar valores (UNSCALE), 6-14
5-4 Desplazar un bit a un registro de desplazamiento
Alarma de tiempo para control motor (MCAT), 5-7 (SHRB), 3-4–3-6
Algoritmo avance/retardo (LEAD_LAG), 6-16 Desviación típica (DEV), 7-2
Almacenamiento de las funciones (FCs), iii
Almacenar datos en el registro de desplazamiento
(WSR), 3-2–3-3 E
Añadir un elemento a una tabla (ATT), 2-2–2-3
Enlace lógico de tablas (TBL_TBL), 2-19
Asistencia técnica, v
Escalar valores (SCALE), 6-12
Evento drum enmascarable (DRUM), 5-10
Extraer el elemento más antiguo de una tabla
B (FIFO), 2-4–2-5
Barrido de matriz (SMC), 8-6 Extraer el elemento más reciente de una tabla
Bloques de función de comparación (LIFO), 2-9–2-10
barrido de matriz (SMC), 8-6
comparar índice matriz (IMC), 8-2
Buscar un valor en una tabla (TBL_FIND), 2-6–2-8 F
Función en coma flotante, desviación típica (DEV),
7-2
C Función y bloque de función de conversión, sumar
Codificar una posición binaria (ENCO), 6-8 la cantidad de bits activados (BITSUM), 6-11
Combinar lógicamente un valor con un elemento de Funciones (FCs)
una tabla y almacenarlo (WRD_TBL), almacenamiento, iii
2-15–2-16 lista, vi
Comparar índice matriz (IMC), 8-2 Funciones de desplazamiento
Convertir una cadena de caracteres ASCII en una almacenar datos en el registro de desplaza-
cifra hexadecimal (ATH), 6-4–6-5 miento (WSR), 3-2–3-3
Convertir una cifra hexadecimal en una cadena de desplazar un bit a un registro de desplazamiento
caracteres (HTA), 6-6–6-7 (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 Funciones y bloques de función de transferencia


añadir un elemento a una tabla (ATT), 2-2–2-3 acumular/distribuir datos de tabla (PACK), 4-4
buscar un valor en una tabla (TBL_FIND), transferencia indirecta de un bloque de datos
2-6–2-8 (IBLKMOV), 4-2–4-3
combinar lógicamente un valor con un elemento Funciones y bloques de temporización, activar un
de una tabla y almacenarlo (WRD_TBL), temporizador como retardo a la conexión con
2-15–2-16 memoria (TONR), 5-2–5-3
copiar un valor de una tabla (TBL_WRD),
2-13–2-14
enlace lógico de tablas (TBL_TBL), 2-19 G
extraer el elemento más antiguo de una tabla
Generar el complemento a diez (BCDCPL), 6-10
(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), M
2-11–2-12 Manuales, iv–vi
tabla de datos correlativos (CDT), 2-17
Funciones lógicas de bit
activar inmediatamente un área de salida P
(SETI), 1-8–1-10
Poner a cero inmediatamente un área de salida
activar un área de marcas o de periferia en la
(RSETI), 1-4–1-5
imagen del proceso (SET), 1-6–1-7
Poner a cero un área de periferia o de marcas en la
poner a cero inmediatamente un área de salida
imagen del proceso (RSET), 1-2–1-3
(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 R
posición binaria (DECO), 6-9 Realizar una operación en una tabla (TBL),
Funciones y bloques de función de conversión 2-11–2-12
algoritmo avance/retardo (LEAD_LAG), 6-16
codificar una posición binaria (ENCO), 6-8
convertir una cadena de caracteres ASCII en S
una cifra hexadecimal (ATH), 6-4–6-5
Sumar la cantidad de bits activados (BITSUM),
convertir una cifra hexadecimal en una cadena
6-11
de caracteres ASCII (HTA), 6-6–6-7
crear el patrón de bits para el display de 7 seg-
mentos (SEG), 6-2–6-3
desescalar valores (UNSCALE), 6-14 T
escalar valores (SCALE), 6-12 Tabla de datos correlativos (CDT), 2-17
generar el complemento a diez (BCDCPL), 6-10 Transferencia indirecta de un bloque de datos
Funciones y bloques de función de temporización (IBLKMOV), 4-2–4-3
alarma de tiempo para control discreto (DCAT),
5-4
alarna de tiempo para control motor (MCAT),
5-7
evento drum enmascarable (DRUM), 5-10

Software estándar para S7-300 y S7-400 Funciones estándar, parte 2


Índice-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
Observaciones/sugerencias
Sus observaciones y sugerencias nos permiten mejorar la calidad y utilidad de nuestra
documentación. Por ello le rogamos que rellene el presente formulario y lo envíe a
Siemens.

Responda por favor a las siguientes preguntas dando una puntuación comprendida entre
1 = muy bien y 5 = muy mal
1. ¿ Corresponde el contenido del manual a sus exigencias ?
2. ¿ Resulta fácil localizar las informaciones requeridas ?
3. ¿ Es comprensible el texto ?
4. ¿ Corresponde el nivel de los detalles técnicos a sus exigencias ?
5. ¿ Qué opina de la calidad de las ilustraciones y tablas ?

En las líneas siguientes puede exponer los problemas concretos que se le hayan planteado
al manejar el manual:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

Software estándar para S7-300 y S7-400 Funciones estándar, parte 2


2 A5E00066869-03