Documentos de Académico
Documentos de Profesional
Documentos de Cultura
CD - 2 - Manuals - Espanol - STEP 7 - Funciones de Sistema y Funciones Estándar para El TI-S7-Converter PDF
CD - 2 - Manuals - Espanol - STEP 7 - Funciones de Sistema y Funciones Estándar para El TI-S7-Converter PDF
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
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.
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.
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.
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.
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.
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.
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
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).
* Puntero en formato de palabra doble cuando se trata de direccionamiento interárea indirecto por registro.
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
Figura 1-1 Poner a cero un área de periferia o de marcas en la imagen del proceso (RSET)
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.).
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).
* 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 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
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.
* Puntero en formato de palabra doble cuando se trata de direccionamiento interárea indirecto por registro.
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
Figura 1-3 Activar un área de marcas o de periferia en la imagen del proceso (SET)
Nota
El valor de N tiene que ser múltiplo de ocho (por ej. 8, 16, 24, etc.).
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.
* Puntero en formato de palabra doble cuando se trata de direccionamiento interárea indirecto por registro.
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
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).
* Puntero en formato de palabra doble cuando se trata de direccionamiento interárea indirecto por registro.
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
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.
* Puntero en formato de palabra doble cuando se trata de direccionamiento interárea indirecto por registro.
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
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.
Parámetros En la tabla 2-3 se describen los parámetros de la función ”Buscar un valor en una
tabla” (TBL_FIND).
* 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).
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.
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
Después de la ejecución:
INDX MW2 = W#16#0003
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.
* Puntero en formato de palabra doble cuando se trata de direccionamiento interárea indirecto por registro.
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
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
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).
* Puntero en formato de palabra doble cuando se trata de direccionamiento interárea indirecto por registro.
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
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
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).
* Puntero en formato de palabra doble cuando se trata de direccionamiento interárea indirecto por registro.
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.
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
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.
* Puntero en formato de palabra doble cuando se trata de direccionamiento interárea indirecto por registro.
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)
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.
* Puntero en formato de palabra doble cuando se trata de direccionamiento interárea indirecto por registro.
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.
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
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).
* Puntero en formato de palabra doble cuando se trata de direccionamiento interárea indirecto por registro.
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.
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
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
* Puntero en formato de palabra doble cuando se trata de direccionamiento interárea indirecto por registro.
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
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
* Puntero en formato de palabra doble cuando se trata de direccionamiento interárea indirecto por registro.
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
* Puntero en formato de palabra doble cuando se trata de direccionamiento interárea indirecto por registro.
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
Después de la ejecución:
D_DATA DBW10 = W#16#2424
DBW12 = W#16#2525
* 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.
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.
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
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
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
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.
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)
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.
Parámetros En la tabla 5-2 se describen los parámetros del bloque de función ”Alarma de
tiempo para control discreto” (DCAT).
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
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).
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)
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)
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.
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
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).
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)
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.
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.
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
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.
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).
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
Figura 6-2 Crear el patrón de bits para el display de siete segmentos (SEG)
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).
* 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.
ATH
E 0.0 FC94 A 4.0
EN ENO
P#DB1.DBX10.0 IN RET_VAL MW0
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
Figura 6-3 Convertir una cadena de caracteres ASCII en una cifra hexadecimal (ATH)
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).
* Puntero en formato de palabra doble cuando se trata de direccionamiento interárea indirecto por registro.
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)
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).
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
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).
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
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
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).
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
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
Antes de la ejecución:
IN MW10 = 22
Después de la ejecución:
OUT MD40 = 50.03978588
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
Antes de la ejecución:
IN MD10 = 50.03978588
OUT MW40 = 0
Después de la ejecución:
OUT MW40 = 22
siendo OUT =
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.
Parámetros En la tabla 6-10 se describen los parámetros del bloque de función ”Algoritmo avan-
ce/retardo” (LEAD_LAG).
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.
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
Antes de la ejecución:
IN MD10 =2.0
Después de la ejecución:
Instancia DB80
Parámetros En la tabla 7-1 se describen los parámetros de la función ”Desviación típica” (DEV).
* Puntero en formato de palabra doble cuando se trata de direccionamiento interárea indirecto por registro.
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.
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.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
Después de la ejecución:
OUT DBD130 = 12.19836055
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.
Parámetros En la tabla 8-1 se describen los parámetros del bloque de función ”Comparar índice
matriz” (IMC).
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.
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
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.
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
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.
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.
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.
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 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.
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.
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).
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.
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.
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.
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).
Oestliche Rheinbrueckenstr. 50
D-76181 Karlsruhe
R.F.A.
Remitente:
Nombre: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Cargo: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Empresa: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Calle: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Código postal: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __
Población: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
País: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Teléfono: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
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:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _