standard software s7-300/400, teil 2 -...
Post on 13-Feb-2018
229 Views
Preview:
TRANSCRIPT
Prólogo, Índice
Funciones lógicas con bits 1
Funciones de tabla 2
Funciones de desplazamiento 3
Funciones y bloques de funciónde transferencia 4
Funciones y bloques de funciónde temporización 5
Funciones y bloques de funciónde conversión 6
Función en coma flotante 7
Bloques de función de comparación 8
Glosario, Índice alfabético
03/2000Edición 03
Software estándar para S7-300 y S7-400 Funciones estándar Parte 2
Manual de referencia
SIMATIC
�������������� ������� ������� ������������ �������������� ������������������������������������ ����������������� ��������� ������� ����������������������� ������� ���������������������� ������������������� ����������� ��� ���������������� �� ����������������� ����
!Peligro
� �� � �������� ��������������������� ����������� ������������������������������������ ����� ����������������������������������� �������� ��������
!Precaución
� �� � �������� ��������������������� ����������� ��������������������������������������� ����������������������������������� �������� ��������
!Cuidado
� �� � �������� ��������������������� ����������� ������������������������� ������ ����������������������������� ����
Nota
��������������� ������� ��� �������������������������������������������������� ������������������������������������������ ���������������� ���
��������������� ���� ����� ������� � ������� ������������������������������������������������ ����������������
������������� !������ ������� ������������ ����������� ��� �� ������������� ����������������������������������� ������������������ � �������"�� ����������� �������������������� ����� ������������������ ����� ���������������������� ������� �� �� ��������������������������������������������� ����
#��� �������� � �����
!Precaución
���� ������������������������ ��������������������� !���������������������� ��� ������� ����������������� ����������� �� ����"�� ���� �������������� ���� ���������������������� ��� ���������������������� �$��������������� ������
����� ���� �������������� ��������������������������������������������������� �������� ������ ��� ��������%��������������������� �������������� ���� ���������������������%�� �������� � ������ �������
�&'()&#����&'()#�*�)�� ��&'()#�+'&���������������� �������������&�'�*��(,
���������������������� ���� ���� ����������� ����������������������������������������������� ���������� ��� !�� ���������������������������� ���� ���������� ������������$�������������� ���� ���
Hemos probado el contenido de esta publicación con la concordan-cia descrita para el hardware y el software. Sin embargo, es posibleque se den algunas desviaciones que nos impiden tomar garantíacompleta de esta concordancia. El contenido de esta publicaciónestá sometido a revisiones regularmente y en caso necesario seincluyen las correcciones en la siguiente edición. Agradecemossugerencias.
�������������� ��������Copyright � Siemens AG 2000 All rights reserved
La divulgación y reproducción de este documento, así como el uso yla comunicación de su contenido, no están autorizados, a no ser quese obtenga el consentimiento expreso para ello. Los infractoresquedan obligados a la indemnización de los daños. Se reservantodos los derechos, en particular para el caso de concesión depatentes o de modelos de utilidad.
Siemens AGBereich Automatisierungs- und AntriebstechnikGeschaeftsgebiet Industrie-AutomatisierungssystemePostfach 4848, D-90327 Nuernberg
Siemens AG 2000Sujeto a cambios sin previo aviso.
Siemens Aktiengesellschaft A5E00066869
Consignas deseguridad para elusuario
Personal cualificado
Uso conforme
Marca registrada
iiiSoftware estándar para S7-300 y S7-400 Funciones estándar, parte 2A5E00066869-03
Prólogo
En el presente manual se describen las funciones (FC) y los bloques de función (FB)de S7, representados con ejemplos en el lenguaje de programación ”Esquema decontactos” (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 dereferencia que le proporciona la información necesaria sobre cada función y bloquede función.
Las FC y los FB descritos en este manual están almacenados en la librería estándarde STEP 7. Con el Administrador SIMATIC de STEP 7 puede copiar en el directoriode 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 mismonúmero que las que va a copiar desde la librería. Si encuentra alguna con la mismanumeración, antes de copiarla tendrá que cambiar la numeración de las FC o FB quedesea copiar, o la de las que ya estaban en su programa.
Este manual ha sido redactado para ingenieros, programadores y personal demantenimiento que tengan conocimientos generales sobre sistemas deautomatización.
Las FC y los FB aquí descritos han sido agrupados por capítulos atendiendo a lafinalidad 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.
Finalidad de estemanual
Dónde encontrarlas funciones S7
Destinatarios
Estructuración delmanual
ivSoftware estándar para S7-300 y S7-400 Funciones estándar, parte 2
A5E00066869-03
En cada capítulo se describen las FC y los FB que puede añadir a las operacionesestándar para aumentar la flexibilidad de la programación. Todas las funciones ybloques de función se enumeran con el nombre completo, los nemotécnicos y elnú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.
Este manual forma parte del paquete de documentación STEP 7, integrado por losmanuales que se enumeran a continuación.
Título Contenido
STEP 7: Introducción yejercicios prácticos
Ofrece una introducción básica a la metodología de la estructura y programación de unS7-300/S7-400. Resulta especialmente apropiado para aquellos usuarios que utilizan por pri-mera vez un sistema de automatización.
Programar con STEP 7Manual
Aporta la información básica sobre la estructura del sistema operativo y del programa de usuariode una CPU S7. Es recomendable que aquellos usuarios que utilizan un S7-300/S7-400 porprimera 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 paraS7-300 y S7400Funciones estándar yfunciones de sistemaManual de referencia
Las CPU S7 tienen incorporados con el sistema operativo una serie de funciones estándar y debloques de organización que pueden aplicarse para hacer más fácil la programación. Este ma-nual le ofrece una visión de conjunto de las funciones de sistema, los bloques de organización ylas funciones estándar de que se dispone en S7, incluyendo igualmente descripciones detalladasa modo de información de referencia para utilizarla al programar su programa de usuario.
Configurar el hardware yla communicación conSTEP 7Manual
Describe las principales aplicaciones y las funciones del software de automatización STEP 7.Recomendable tanto si es la primera vez que utiliza STEP 7 como si ya tiene experiencia conSTEP 5, este manual le proporciona una visión global de los procedimientos usados para confi-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 latransición
Necesitará este manual cuando desee convertir los programas que ya tenga programados enSTEP 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 funcionesconvertidas a STEP 7 disponibles en la ayuda online.
Resumen de la do-cumentaciónSTEP 7
Prólogo
vSoftware estándar para S7-300 y S7-400 Funciones estándar, parte 2A5E00066869-03
Título Contenido
Manuales de referenciaLista de instruccionesAWL, Esquema de con-tactos KOP, SCL1
Los manuales de los lenguajes de programación Lista de Instrucciones AWL, Esquema de con-tactos KOP y SCL (Lenguaje de Control Secuencial) contienen tanto la guía para el usuariocomo la descripción del lenguaje de programación o modo de representación. Para programarun S7-300/S7-400 sólo se requiere un lenguaje de programación, pero también puede mezclarlos diferentes lenguajes dentro de un proyecto, si así lo desea. Caso de que sea la primera vezque utiliza uno de estos lenguajes es recomendable que emplee el manual para aprender antes lametodologí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 ,S7-HiGraph1, CFC1
Los lenguajes GRAPH, HiGraph y CFC (para el cableado gráfico de funciones tecnológicas) leofrecen 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 ladescripció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 deprogramas 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
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 einstalació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 einstalación (datos de la CPU, datos de los módulos) y la lista de instrucciones.
Las ayudas en pantalla contienen información adicional.
Si tiene dudas sobre cualquier cuestión no tratada en este o en otros manualesSTEP 7, si necesita información para pedir más documentación o equipos, o si deseainformarse acerca de los cursillos de entrenamiento, no dude en dirigirse a su distri-buidor oficial de Siemens. Le atenderán de buen grado.
Otros manuales
Asistenciaadicional
Prólogo
viSoftware estándar para S7-300 y S7-400 Funciones estándar, parte 2
A5E00066869-03
En este manual se describen las funciones (FC) y los bloques de función (FB)siguientes:
Función o bloque de función Número Página
Activar un temporizador como retardo a la conexión conmemoria (TONR)
FC80 5-2
Transferencia indirecta de un bloque de datos (IBLKMOV) FC81 4-2
Poner a cero un área de periferia o de marcas en la imagendel proceso (RSET)
FC82 1-2
Activar un área de marcas o de periferia en la imagen del pro-ceso (SET)
FC83 1-6
Añadir un elemento a una tabla (ATT) FC84 2-2
Extraer el elemento más antiguo de una tabla (FIFO) FC85 2-4
Buscar un valor en una tabla (TBL_FIND) FC86 2-6
Extraer el elemento más reciente de una tabla (LIFO) FC87 2-9
Realizar una operación en una tabla (TBL) FC88 2-11
Copiar un valor de una tabla (TBL_WRD) FC89 2-13
Almacenar datos en el registro de desplazamiento (WSR) FC90 3-2
Relacionar lógicamente un valor con un elemento de una tabla yalmacenarlo (WRD_TBL)
FC91 2-15
Desplazar un bit a un registro de desplazamiento (SHRB) FC92 3-4
Crear el patrón de bits para la visualización con siete segmentos(SEG)
FC93 6-2
Convertir una cadena de caracteres ASCII en una cifrahexadecimal (ATH)
FC94 6-4
Convertir una cifra hexadecimal en una cadena de caracteresASCII (HTA)
FC95 6-6
Codificar una posición binaria (ENCO) FC96 6-8
Decodificar una posición binaria (DECO) FC97 6-9
Generar el complemento a diez (BCDCPL) FC98 6-10
Sumar la cantidad de bits activados (BITSUM) FC99 6-11
Poner a cero inmediatamente un área de salida (RSETI) FC100 1-4
Activar inmediatamente un área de salida (SETI) FC101 1-8
Desviación típica (DEV) FC102 7-2
Tabla de datos correlativos (CDT) FC103 2-17
Enlace lógico de tablas (TBL_TBL) FC104 2-19
Escalar valores (SCALE) FC105 6-12
Desescalar valores (UNSCALE) FC106 6-14
Algoritmo avance/retardo (LEAD_LAG) FB80 6-16
Alarma de tiempo para control discreto (DCAT) FB81 5-4
Alarma de tiempo para control motor (MCAT) FB82 5-7
Comparar índice matriz (IMC) FB83 8-2
Barrido de matriz (SMC) FB84 8-6
Evento drum enmascarable (DRUM) FB85 5-10
Acumular/Distribuir datos de tabla (PACK) FB86 4-4
Lista de funcionesy bloques defunción
Prólogo
viiSoftware estándar para S7-300 y S7-400 Funciones estándar, parte 2A5E00066869-03
Índice
1 Funciones lógicas con bits 1-1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1 Poner a cero un área de periferia o de marcas en la imagen del proceso (RSET): FC82 1-2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2 Poner a cero inmediatamente un área de salida (RSETI): FC100 1-4. . . . . .
1.3 Activar un área de marcas o de periferia en la imagen del proceso (SET): FC83 1-6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.4 Activar inmediatamente un área de salida (SETI): FC101 1-8. . . . . . . . . . . . .
2 Funciones de tabla 2-1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.1 Añadir un elemento a una tabla (ATT): FC84 2-2. . . . . . . . . . . . . . . . . . . . . . . .
2.2 Extraer el elemento más antiguo de una tabla (FIFO): FC85 2-4. . . . . . . . . .
2.3 Buscar un valor en una tabla (TBL_FIND): FC86 2-6. . . . . . . . . . . . . . . . . . . .
2.4 Extraer el elemento más reciente de una tabla (LIFO): FC87 2-9. . . . . . . . . .
2.5 Realizar una operación en una tabla (TBL): FC88 2-11. . . . . . . . . . . . . . . . . . . .
2.6 Copiar un valor de una tabla (TBL_WRD): FC89 2-13. . . . . . . . . . . . . . . . . . . . .
2.7 Combinar lógicamente un valor con un elemento de unatabla y almacenarlo (WRD_TBL): FC91 2-15. . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.8 Tabla de datos correlativos (CDT): FC103 2-17. . . . . . . . . . . . . . . . . . . . . . . . . .
2.9 Enlace lógico de tablas (TBL_TBL): FC104 2-19. . . . . . . . . . . . . . . . . . . . . . . . .
3 Funciones de desplazamiento 3-1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.1 Almacenar datos en el registro de desplazamiento (WSR): FC90 3-2. . . . . .
3.2 Desplazar un bit a un registro de desplazamiento (SHRB): FC92 3-4. . . . . .
4 Funciones y bloques de función de transferencia 4-1. . . . . . . . . . . . . . . . . . . . . . . . .
4.1 Transferencia indirecta de un bloque de datos (IBLKMOV): FC81 4-2. . . . . .
4.2 Acumular/Distribuir datos de tabla (PACK): FB86 4-4. . . . . . . . . . . . . . . . . . . .
5 Funciones y bloques de función de temporización 5-1. . . . . . . . . . . . . . . . . . . . . . . .
5.1 Activar un temporizador como retardo a la conexión con memoria (TONR): FC80 5-2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2 Alarma de tiempo para control discreto (DCAT): FB81 5-4. . . . . . . . . . . . . . . .
5.3 Alarma de tiempo para control motor (MCAT): FB82 5-7. . . . . . . . . . . . . . . . .
5.4 Evento drum enmascarable (DRUM): FB85 5-10. . . . . . . . . . . . . . . . . . . . . . . . .
viiiSoftware estándar para S7-300 y S7-400 Funciones estándar, parte 2
A5E00066869-03
6 Funciones y bloques de función de conversión 6-1. . . . . . . . . . . . . . . . . . . . . . . . . .
6.1 Crear el patrón de bits para el display de 7 segmentos (SEG): FC93 6-2. . .
6.2 Convertir una cadena de caracteres ASCII en una cifra hexadecimal (ATH): FC94 6-4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.3 Convertir una cifra hexadecimal en una cadena de caracteres ASCII (HTA): FC95 6-6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.4 Codificar una posición binaria (ENCO): FC96 6-8. . . . . . . . . . . . . . . . . . . . . . .
6.5 Decodificar una posición binaria (DECO): FC97 6-9. . . . . . . . . . . . . . . . . . . . .
6.6 Generar el complemento a diez (BCDCPL): FC98 6-10. . . . . . . . . . . . . . . . . . .
6.7 Sumar la cantidad de bits activados (BITSUM): FC99 6-11. . . . . . . . . . . . . . . .
6.8 Escalar valores (SCALE): FC105 6-12. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.9 Desescalar valores (UNSCALE): FC106 6-14. . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.10 Algoritmo avance/retardo (LEAD_LAG): FB80 6-16. . . . . . . . . . . . . . . . . . . . . . .
7 Función en coma flotante 7-1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.1 Desviación típica (DEV): FC102 7-2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8 Bloques de función de comparación 8-1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.1 Comparar índice matriz (IMC): FB83 8-2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.2 Barrido de matriz (SMC): FB84 8-6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Glosario Glosario-1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Índice alfabético Índice-1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Índice
1-1Software estándar para S7-300 y S7-400 Funciones estándar, parte 2A5E00066869-03
Funciones lógicas con bits
Este capítulo describe las funciones (FC) lógicas con bits que puede añadir a lasoperaciones estándar de que ya dispone, aumentando así la flexibilidad en la progra-mación.
Apartado Descripción Página
1.1 Poner a cero un área de periferia o de marcas en la imagen delproceso (RSET): FC82
1-2
1.2 Poner a cero inmediatamente un área de salida (RSETI): FC100 1-4
1.3 Activar un área de marcas o de periferia en la imagen del proceso(SET): FC83
1-6
1.4 Activar inmediatamente un área de salida (SETI): FC101 1-8
1
1-2Software estándar para S7-300 y S7-400 Funciones estándar, parte 2
A5E00066869-03
1.1 Poner a cero un área de periferia o de marcas en la imagen del proceso(RSET): FC82
La función RSET pone a cero el estado de señal de todos los bits que están dentrode un área especificada, siempre que el bit MCR sea 1. Si el bit MCR es 0, el estadode señal de los bits de ese área no cambia. El parámetro N indica la cantidad de bitsdel área a desactivar. El puntero S_BIT apunta al primer bit de ese área.
En la tabla 1-1 se describen los parámetros de la función ”Poner a cero un área deperiferia o de marcas en la imagen del proceso” (RSET).
Tabla 1-1 Parámetros de la función RSET (FC82)
Parámetro Declaración Tipo dedatos
Area de memoriaDescripción
EN Entrada BOOL E, A, M, D, L La entrada de habilitación con estado de señal 1 activa elcuadro.
ENO Salida BOOL E, A, M, D, L La salida de habilitación tiene el estado de señal 1 si lafunción se ejecuta sin errores.
S_BIT Entrada Pointer* E, A, M, D Apunta al primer bit del área.
N Entrada INT E, A, M, D, L, Po constante
Cantidad de bits a desactivar en el área.
* Puntero en formato de palabra doble cuando se trata de direccionamiento interárea indirecto por registro.
Descripción
Parámetros
Funciones lógicas con bits
1-3Software estándar para S7-300 y S7-400 Funciones estándar, parte 2A5E00066869-03
Si el puntero S_BIT apunta al área de memoria de la periferia externa (memoria P)no cambia el estado de señal de ningún bit dentro del área en cuestión, y el estadode señal de la salida de habilitación (ENO) se pone a 0.
La figura 1-1 muestra cómo opera la función RSET. La función se ejecuta cuando elestado 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 son10 los bits a desactivar. Una vez que se ha ejecutado la función, se pone a cero elestado 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).
E 0.0 A 4.0RSETFC82
EN ENO
S_BIT
N
P#M0.0
10
1
M0.0
antes de la ejecución:
1 1 1 1 1 1 1
1
M1.0
1 1 1 1 1 1 1
0
M0.0
después de la ejecución:
0 0 0 0 0 0 0
1
M1.0
1 1 1 1 1 0 0
M0.7
M1.7
M0.7
M1.7
Figura 1-1 Poner a cero un área de periferia o de marcas en la imagen del proceso (RSET)
Información sobreerrores
Ejemplo
Funciones lógicas con bits
1-4Software estándar para S7-300 y S7-400 Funciones estándar, parte 2
A5E00066869-03
1.2 Poner a cero inmediatamente un área de salida (RSETI): FC100
La función ”Poner a cero inmediatamente un área de salida” (RSETI) pone a cero elestado de señal de un área de bytes cuando el bit MCR es 1. Si el bit MCR es 0, elestado 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 expresacon la cantidad de bits del área. Por ejemplo: si se quiere indicar un área de 2 bytes,habrá que darle a N el valor 16 (16 bits).
Nota
El valor de N tiene que ser múltiplo de ocho (por ej. 8, 16, 24, etc.).
El puntero S_BYTE debe indicar al área de memoria de la periferia externa (memo-ria P). Dado que a la memoria P se accede por bytes, palabras y palabras dobles,S_BYTE debe apuntar a una dirección que sea límite de byte, lo cual significa queel número de bit del puntero tiene que ser 0.
Nota
El estado de señal de los bits correspondientes en la imagen de proceso de las sali-das (A) también se pone a 0.
En la tabla 1-2 se describen los parámetros de la función ”Poner a cero inmediata-mente un área de salida” (RSETI).
Tabla 1-2 Parámetros de la función RSETI (FC100)
Parámetro Declaración Tipo dedatos
Area de memoriaDescripción
EN Entrada BOOL E, A, M, D, L La entrada de habilitación con estado de señal 1 activa elcuadro.
ENO Salida BOOL E, A, M, D, L La salida de habilitación tiene el estado de señal 1 si lafunción se ejecuta sin errores.
S_BYTE Entrada Pointer* P Apunta al primer byte del área.
N Entrada INT E, A, M, D, L, Po constante
Tamaño del área de bytes a desactivar, indicado por lacantidad de bits del área (con un múltiplo de 8, por ej., 8,16, 24, etc.).
* Puntero en formato de palabra doble cuando se trata de direccionamiento interárea indirecto por registro.
Descripción
Parámetros
Funciones lógicas con bits
1-5Software estándar para S7-300 y S7-400 Funciones estándar, parte 2A5E00066869-03
Si se cumple alguna de las condiciones siguientes, el estado de señal de todos losbits dentro del área indicada permanece inalterado, y el estado de señal de la salidade habilitación (ENO) se pone a cero.
• El puntero S_BYTE apunta a un área de memoria distinta de la periferia externa(memoria P).
• El puntero S_BYTE apunta a una dirección que no es un valor límite de byte.
• El valor de N no es múltiplo de ocho.
La figura 1-2 muestra cómo opera la función RSETI. Si el estado de señal de la 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ámetroN 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 comprendidaentre 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).
E 0.0 A 4.0RSETIFC100
EN ENO
S_BYTE
N
P#P2.0
16
1
P1.0
antes de la ejecución:
1 1 1 1 1 1 1
1
P2.0
1 1 1 1 1 1 1
1
P3.0
1 1 1 1 1 1 1
1
P4.0
1 1 1 1 1 1 1
después de la ejecución:
1
P1.0
1 1 1 1 1 1 1
0
P2.0
0 0 0 0 0 0 0
0
P3.0
0 0 0 0 0 0 0
1
P4.0
1 1 1 1 1 1 1
P1.7
P2.7
P3.7
P4.7
P1.7
P2.7
P3.7
P4.7
Figura 1-2 Poner a cero inmediatamente un área de salida (RSETI)
Información sobreerrores
Ejemplo
Funciones lógicas con bits
1-6Software estándar para S7-300 y S7-400 Funciones estándar, parte 2
A5E00066869-03
1.3 Activar un área de marcas o de periferia en la imagen del proceso (SET):FC83
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 losbits 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.
En la tabla 1-3 se describen los parámetros de la función ”Activar un área de marcaso de periferia en la imagen del proceso” SET.
Tabla 1-3 Parámetros de la función SET (FC83)
Parámetro Declaración Tipo dedatos
Area de memoriaDescripción
EN Entrada BOOL E, A, M, D, L La entrada de habilitación con estado de señal 1 activa elcuadro.
ENO Salida BOOL E, A, M, D, L La salida de habilitación tiene el estado de señal 1 si lafunción se ejecuta sin errores.
S_BIT Entrada Pointer* E, A, M, D Apunta al primer bit del área.
N Entrada INT E, A, M, D, L, Po constante
Cantidad de bits a activar en el área.
* Puntero en formato de palabra doble cuando se trata de direccionamiento interárea indirecto por registro.
Descripción
Parámetros
Funciones lógicas con bits
1-7Software estándar para S7-300 y S7-400 Funciones estándar, parte 2A5E00066869-03
Si el puntero S_BIT apunta al área de memoria de la periferia externa (memoria P),no cambia el estado de señal de ningún bit dentro del área en cuestión, y el estadode señal de la salida de habilitación (ENO) se pone a 0.
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_BITapunta al primer bit en la dirección M0.0. El parámetro N indica que son 10 los bitsa desactivar. Una vez que se ha ejecutado la función se pone a 1 el estado de señalde 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).
E 0.0 A 4.0SETFC83
EN ENO
S_BIT
N
P#M0.0
10
0M0.0
antes de la ejecución:
0 0 0 0 0 0 0
0
M1.0
0 0 0 0 0 0 0
1M0.0
después de la ejecución:
1
0 0 0 0 1 10
M1.0
0
1 1 1 1 1 1M0.7
M1.7
M0.7
M1.7
Figura 1-3 Activar un área de marcas o de periferia en la imagen del proceso (SET)
Información sobreerrores
Ejemplo
Funciones lógicas con bits
1-8Software estándar para S7-300 y S7-400 Funciones estándar, parte 2
A5E00066869-03
1.4 Activar inmediatamente un área de salida (SETI): FC101
La función ”Activar inmediatamente un área de salida” (SETI) activa el estado deseñal de todos los bits dentro de un área de bytes especificada, siempre que el bitMCR sea 1. Si el bit MCR es 0, el estado de señal de los bytes de ese área no cam-bia. El puntero S_BYTE apunta al primer byte de ese área. La entrada N indica eltamaño del área; este tamaño se expresa con la cantidad de bits que contiene el área;por ejemplo: si se quiere indicar un área de 2 bytes, habrá que darle a N el valor 16(16 bits).
Nota
El valor de N tiene que ser múltiplo de ocho (por ej. 8, 16, 24, etc.).
El puntero S_BYTE debe apuntar al área de memoria de la periferia externa (memo-ria P). Dado que a la memoria P se accede por bytes, palabras y palabras dobles,S_BYTE debe apuntar a una dirección que sea límite de byte, lo cual significa queel número de bit del puntero tiene que ser 0.
Nota
El estado de señal de los bits correspondientes en la imagen de proceso de las sali-das (A) también se pone a 0.
En la tabla 1-4 se describen los parámetros de la función ”Activar inmediatamenteun área de salida”(SETI).
Tabla 1-4 Parámetros de la función SETI (FC101)
Parámetro Declaración Tipo dedatos
Area de memoriaDescripción
EN Entrada BOOL E, A, M, D, L La entrada de habilitación con estado de señal 1 activa elcuadro.
ENO Salida BOOL E, A, M, D, L La salida de habilitación tiene el estado de señal 1 si lafunción se ejecuta sin errores.
S_BYTE Entrada Pointer* P Apunta al primer byte del área.
N Entrada INT E, A, M, D, L, Po constante
Tamaño del área de bytes a desactivar, indicado por lacantidad de bits del área (con un múltiplo de 8, por ej., 8,16, 24, etc.).
* Puntero en formato de palabra doble cuando se trata de direccionamiento interárea indirecto por registro.
Descripción
Parámetros
Funciones lógicas con bits
1-9Software estándar para S7-300 y S7-400 Funciones estándar, parte 2A5E00066869-03
Si se cumple una de las condiciones siguientes, el estado de señal de todos los bitsdentro del área indicada permanece inalterado, y el estado de señal de la salida dehabilitación (ENO) se pone a cero.
• El puntero S_BYTE apunta a un área de memoria distinta de la periferia externa(memoria P).
• El puntero S_BYTE apunta a una dirección que no es un valor límite de byte.
• El valor de N no es múltiplo de ocho.
La figura 1-4 muestra cómo opera la función ”Activar inmediatamente un área desalida” (SETI). Si el estado de señal de la entrada E 0.0 es 1 (activada) y el bit MCRes 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 estadode señal de los 16 bits del área comprendida entre P2.0 y P3.7, es decir, se ponena 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).
E 0.0 A 4.0SETI
FC101EN ENO
S_BYTE
N
P#P2.0
16
P1.0
antes de la ejecución: después de la ejecución:
P2.0
P3.0
P4.0
1
P1.0
1 1 1 1 1 1 1
0
P2.0
0 0 0 0 0 0 0
0
P3.0
0 0 0 0 0 0 0
1
P4.0
1 1 1 1 1 1 1
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
P1.7
P2.7
P3.7
P4.7
P1.7
P2.7
P3.7
P4.7
Figura 1-4 Activar inmediatamente un área de salida (SETI)
Información sobreerrores
Ejemplo
Funciones lógicas con bits
1-10Software estándar para S7-300 y S7-400 Funciones estándar, parte 2
A5E00066869-03
Funciones lógicas con bits
2-1Software estándar para S7-300 y S7-400 Funciones estándar, parte 2A5E00066869-03
Funciones de tabla
Este capítulo describe las funciones (FC) de tabla que puede añadir a las operacio-nes estándar para aumentar la flexibilidad de la programación.
Apartado Descripción Página
2.1 Añadir un elemento a una tabla (ATT): FC84 2-2
2.2 Extraer el elemento más antiguo de una tabla (FIFO): FC85 2-4
2.3 Buscar un valor en una tabla (TBL_FIND): FC86 2-6
2.4 Extraer el elemento más reciente de una tabla (LIFO): FC87 2-9
2.5 Realizar una operación en una tabla (TBL): FC88 2-11
2.6 Copiar un valor de una tabla (TBL_WRD): FC89 2-13
2.7 Combinar lógicamente un valor con un elemento de una tabla yalmacenarlo (WRD_TBL): FC91
2-15
2.8 Tabla de datos correlativos (CDT): FC103 2-17
2.9 Enlace lógico de tablas (TBL_TBL): FC104 2-19
2
2-2Software estándar para S7-300 y S7-400 Funciones estándar, parte 2
A5E00066869-03
2.1 Añadir un elemento a una tabla (ATT): FC84
La función ”Añadir un elemento a una tabla” ATT añade el contenido del parámetroDATA como siguiente elemento de una tabla, e incrementa en uno el registro queindica 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 funcionesFIFO 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 latabla actualmente.
• El tercer registro contiene la primera palabra de datos.
Nota
Cuando cree la tabla debe inicializar los dos primeros registros.
En la tabla 2-1 se describen los parámetros de la función ”Añadir un elemento a unatabla” (ATT).
Tabla 2-1 Parámetros de la función ATT (FC84)
Parámetro Declaración Tipo dedatos
Area de memoriaDescripción
EN Entrada BOOL E, A, M, D, L La entrada de habilitación con estado de señal 1 activa elcuadro.
ENO Salida BOOL E, A, M, D, L La salida de habilitación tiene el estado de señal 1 si lafunción se ejecuta sin errores.
DATA Entrada WORD E, A, M, D, L, Po constante
Datos a añadir a la tabla.
TABLE Entrada Pointer* E, A, M, D Apunta al comienzo de la tabla FIFO o LIFO.
* Puntero en formato de palabra doble cuando se trata de direccionamiento interárea indirecto por registro.
Descripción
Parámetros
Funciones de tabla
2-3Software estándar para S7-300 y S7-400 Funciones estándar, parte 2A5E00066869-03
Si la cantidad de elementos es igual o mayor que la longitud de tabla, entonces no seañade el parámetro DATA (= nuevo elemento) a la tabla, y el estado de señal de lasalida de habilitación (ENO) se pone a cero.
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 elementode 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).
E 0.0 A 4.0ATT
FC84EN ENO
DATA
TABLE
W#16#0024
P#DB1.DBX10.0
Antes de la ejecución:
Tabla (long. de tabla) DBW10 = W#16#0006cantidad de elementos DBW12 = W#16#0004
DBW14 = W#16#0012DBW16 = W#16#0029DBW18 = W#16#0090DBW20 = W#16#0002DBW22 = W#16#0000DBW24 = W#16#0000
Después de la ejecución:
Tabla (long. de tabla) DBW10 = W#16#0006cantidad de elementos DBW12 = W#16#0005
DBW14 = W#16#0012DBW16 = W#16#0029DBW18 = W#16#0090DBW20 = W#16#0002DBW22 = W#16#0024DBW24 = W#16#0000
Figura 2-1 Añadir un elemento a una tabla (ATT)
Información sobreerrores
Ejemplo
Funciones de tabla
2-4Software estándar para S7-300 y S7-400 Funciones estándar, parte 2
A5E00066869-03
2.2 Extraer el elemento más antiguo de una tabla (FIFO): FC85
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 comovalor de respuesta de la función. La cantidad de elementos de la tabla se decrementaen 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 ATTpuede añadir elementos a la tabla FIFO.
• El primer registro de la tabla indica la cantidad máxima de elementos que puedetener (longitud de tabla).
• El segundo registro de la tabla indica la cantidad de elementos que contiene latabla actualmente.
• El tercer registro contiene la primera palabra de datos
En la tabla 2-2 se describen los parámetros de la función ”Extraer el elemento másantiguo de una tabla” FIFO.
Tabla 2-2 Parámetros de la función FIFO (FC85)
Parámetro Declaración Tipo dedatos
Area de memoriaDescripción
EN Entrada BOOL E, A, M, D, L La entrada de habilitación con estado de señal 1 activa elcuadro.
ENO Salida BOOL E, A, M, D, L La salida de habilitación tiene el estado de señal 1 si lafunción se ejecuta sin errores.
TABLE Entrada Pointer* E, A, M, D Apunta al comienzo de la tabla FIFO.
RET_VAL Salida WORD E, A, M, D, L, P Entrada más antigua de la tabla FIFO.
* Puntero en formato de palabra doble cuando se trata de direccionamiento interárea indirecto por registro.
Descripción
Parámetros
Funciones de tabla
2-5Software estándar para S7-300 y S7-400 Funciones estándar, parte 2A5E00066869-03
Si la tabla FIFO está vacía (número de elementos = 0), el valor de respuestaRET_VAL no cambia, y el estado de señal de la salida de habilitación (ENO) sepone a cero.
La figura 2-2 muestra cómo opera la función ”Extraer el elemento más antiguo deuna tabla” (FIFO). Si el estado de señal de la entrada E 0.0 es 1 (activada) se ejecutala función. En este ejemplo, el valor que se extrae como valor de la función esMW2, ya que éste corresponde al elemento más antiguo de la tabla. La cantidad deelementos es decrementada de 5 a 4, y los elementos que quedan son desplazadoshacia 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.
RET_VAL MW2 = W#16#0012
RET_VAL MW2 = W#16#0000
E 0.0 A 4.0
P#DB1.DBX10.0
FIFOFC85
TABLE
RET_VAL
EN ENO
MW2
Antes de la ejecución:
Tabla (long. de tabla) DBW10 = W#16#0006cantidad de elementos DBW12 = W#16#0005
DBW14 = W#16#0012DBW16 = W#16#0029DBW18 = W#16#0090DBW20 = W#16#0002DBW22 = W#16#0024DBW24 = W#16#0000
Después de la ejecución:
Tabla (long. de tabla) DBW10 = W#16#0006cantidad de elementos DBW12 = W#16#0004
DBW14 = W#16#0029DBW16 = W#16#0090DBW18 = W#16#0002DBW20 = W#16#0024DBW22 = W#16#0024DBW24 = W#16#0000
Figura 2-2 Extraer el elemento más antiguo de una tabla (FIFO)
Información sobreerrores
Ejemplo
Funciones de tabla
2-6Software estándar para S7-300 y S7-400 Funciones estándar, parte 2
A5E00066869-03
2.3 Buscar un valor en una tabla (TBL_FIND): FC86
La función ”Buscar un valor en una tabla” TBL_FIND sirve para buscar un patróndiferente 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 loselementos 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 lacomparació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 finalde 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 puedehaber 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.
Descripción
Funciones de tabla
2-7Software estándar para S7-300 y S7-400 Funciones estándar, parte 2A5E00066869-03
En la tabla 2-3 se describen los parámetros de la función ”Buscar un valor en unatabla” (TBL_FIND).
Tabla 2-3 Parámetros de la función TBL_FIND (FC86)
Parámetro Declaración Tipo dedatos
Area de memoriaDescripción
EN Entrada BOOL E, A, M, D, L La entrada de habilitación con estado de señal 1 activael cuadro.
ENO Salida BOOL E, A, M, D, L La salida de habilitación tiene el estado de señal 1 si lafunción se ejecuta sin errores.
SRC Entrada Pointer* E, A, M, D Apunta al comienzo de la tabla.
PATRN Entrada Pointer* E, A, M, D Apunta al patrón que hay que buscar.
CMD Entrada BYTE E, A, M, D, L, P Indica el tipo de operación a ejecutar:B#16#01 = igual queB#16#02 = distinto de
E_TYPE Entrada BYTE E, A, M, D, L, P Indica el tipo de datos de los elementos de la tabla. Lafunción TBL_FIND admite los siguientes tipos dedatos:
B#16#02 = BYTEB#16#04 = WORDB#16#05 = INTB#16#06 = DWORDB#16#07 = DINTB#16#08 = REAL
RET_VAL Salida WORD E, A, M, D, L, P Da el valor W#16#0000 cuando la función se ejecutasin errores; si los valores son distintos de W#16#0000,véase la información sobre errores.
INDX Entrada_Salida WORD E, A, M, D, L Indice de la tabla que señala:Entrada: número del elemento donde debe
empezar la búsquedaSalida: número del elemento que cumple
la condición
* Puntero en formato de palabra doble cuando se trata de direccionamiento interárea indirecto por registro.
Si se cumple alguna de las condiciones enumeradas en la tabla 2-4 no se modificanlos valores de la tabla. El estado de señal de la salida de habilitación (ENO) se ponea cero y el valor de respuesta se ajusta como corresponde (véase tabla 2-4).
Tabla 2-4 Condiciones de error en la función FC86
RET_VAL Significado
W#16#0008 No se han encontrado valores que cumplan la condición.
W#16#0009 Los parámetros E_TYPE y/o CMD no son válidos.
Parámetros
Información sobreerrores
Funciones de tabla
2-8Software estándar para S7-300 y S7-400 Funciones estándar, parte 2
A5E00066869-03
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.0es 1 (activada). En este ejemplo, al ser 4 el tipo de datos (E_TYPE = 04), los datosse 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 elejemplo el valor 1, la búsqueda localiza el primer valor de la tabla en SRC que seaigual 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.
E 0.0 A 4.0TBL_FIND
FC86EN ENO
SRC
PATRN
CMD
E_TYPE
RET_VALP#DB1.DBX0.0
P#DB2.DBX10.0
B#16#01
B#16#04
MW0El primer registro de la tabla indica lalongitud de la operación de búsqueda. Elvalor 0004 hace que se busquen en lossiguientes 4 elementos de la tabla.
El parámetro INDX pasa de DW0 (antesde la ejecución) a DW6 (después de laejecución), porque el patrón en la direc-ción DW6 corresponde con el patrón5555 en la dirección de puntero PATRN.
INDX
Antes de la ejecución:
SRC (long. de tabla) DBW0 = W#16#0004DBW2 = W#16#1111DBW4 = W#16#3333DBW6 = W#16#5555DBW8 = W#16#7777
INDX MW2 = W#16#0000
PATRN DBW10 = W#16#5555
Después de la ejecución:
INDX MW2 = W#16#0003
MW2
Figura 2-3 Buscar un valor en una tabla (TBL_FIND)
Ejemplo
Funciones de tabla
2-9Software estándar para S7-300 y S7-400 Funciones estándar, parte 2A5E00066869-03
2.4 Extraer el elemento más reciente de una tabla (LIFO): FC87
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 comovalor de respuesta de la función. La cantidad de elementos de la tabla se decrementaen uno. La tabla FIFO está compuesta por palabras. Aplicando la función ATTpuede añadir elementos a la tabla LIFO.
• El primer registro de la tabla indica la cantidad máxima de elementos que puedetener (longitud de tabla).
• El segundo registro de la tabla indica la cantidad de elementos que contiene latabla actualmente.
• El tercer registro contiene la primera palabra de datos.
En la tabla 2-5 se describen los parámetros de la función ”Extraer el elemento másreciente de una tabla” LIFO.
Tabla 2-5 Parámetros de la función LIFO (FC87)
Parámetro Declaración Tipo dedatos
Area de memoriaDescripción
EN Entrada BOOL E, A, M, D, L La entrada de habilitación con estado de señal 1 activa elcuadro.
ENO Salida BOOL E, A, M, D, L La salida de habilitación tiene el estado de señal 1 si lafunción se ejecuta sin errores.
TABLE Entrada Pointer* E, A, M, D Apunta al comienzo de la tabla LIFO.
RET_VAL Salida WORD E, A, M, D, L, P Elemento más reciente que se ha extraído de la tablaLIFO.
* Puntero en formato de palabra doble cuando se trata de direccionamiento interárea indirecto por registro.
Descripción
Parámetros
Funciones de tabla
2-10Software estándar para S7-300 y S7-400 Funciones estándar, parte 2
A5E00066869-03
Si la tabla LIFO está vacía (número de elementos = 0), entonces el valor de res-puesta RET_VAL no cambia, y el estado de señal de la salida de habilitación (ENO)se pone a cero.
La figura 2-4 muestra cómo opera la función ”Extraer el elemento más reciente deuna tabla” LIFO. La función se ejecuta cuando el estado de señal de la entrada E 0.0es 1 (activada). En este ejemplo, el valor que se extrae como valor de la función esMW2, 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.
E 0.0 A 4.0
P#DB1.DBX10.0
LIFOFC87
TABLE
RET_VAL
EN ENO
MW2
Antes de la ejecución:
Tabla (long. de tabla) DBW10 = W#16#0006cantidad de elementos DBW12 = W#16#0005
DBW14 = W#16#0012DBW16 = W#16#0029DBW18 = W#16#0090DBW20 = W#16#0002DBW22 = W#16#0024DBW24 = W#16#0000
RET_VAL MW2 = W#16#0000
Después de la ejecución:
Tabla (long. de tabla) DBW10 = W#16#0006cantidad de elementos DBW12 = W#16#0004
DBW14 = W#16#0012DBW16 = W#16#0029DBW18 = W#16#0090DBW20 = W#16#0002DBW22 = W#16#0024DBW24 = W#16#0000
RET_VAL MW2 = W#16#0024
Figura 2-4 Extraer el elemento más reciente de una tabla (LIFO)
Información sobreerrores
Ejemplo
Funciones de tabla
2-11Software estándar para S7-300 y S7-400 Funciones estándar, parte 2A5E00066869-03
2.5 Realizar una operación en una tabla (TBL): FC88
La función ”Realizar una operación en una tabla” TBL realiza en la tabla fuente laoperación especificada en el parámetro CMD, y escribe el resultado de la operaciónen el mismo elemento de la tabla.
• El primer registro de la tabla indica la cantidad máxima de elementos que puedetener (longitud de tabla).
• El segundo registro de la tabla indica la cantidad de elementos que contiene latabla actualmente.
• Si el tipo de datos (E_TYPE) se ha ajustado a REAL, el valor del parámetroCMD para la operación de complementar a uno no es válido.
Nota
Al crear la tabla tiene que inicializar el primer registro.
En la tabla 2-6 se describen los parámetros de la función ”Realizar una operación enuna tabla” (TBL).
Tabla 2-6 Parámetros de la función TBL (FC88)
Parámetro Declaración Tipo dedatos
Area de memoriaDescripción
EN Entrada BOOL E, A, M, D, L La entrada de habilitación con estado de señal 1 activa elcuadro.
ENO Salida BOOL E, A, M, D, L La salida de habilitación tiene el estado de señal 1 si lafunción se ejecuta sin errores.
SRC Entrada Pointer* E, A, M, D Apunta al comienzo de la tabla.
CMD Entrada BYTE E, A, M, D, L, P Indica el tipo de operación a ejecutar. Las operacionesválidas y sus valores son:
B#16#03 = complementar a unoB#16#04 = borrarB#16#05 = negarB#16#06 = raíz cuadrada
E_TYPE Entrada BYTE E, A, M, D, L, P Indica el tipo de datos de los elementos de la tabla.Los tipos válidos para la función TBL son:
B#16#04 = WORDB#16#05 = INTB#16#06 = DWORDB#16#07 = DINTB#16#08 = REAL
RET_VAL Salida WORD E, A, M, D, L, P Da el valor W#16#0000 si la función se ejecuta sinerrores; acerca de otros valores véase la informaciónsobre errores.
* Puntero en formato de palabra doble cuando se trata de direccionamiento interárea indirecto por registro.
Descripción
Parámetros
Funciones de tabla
2-12Software estándar para S7-300 y S7-400 Funciones estándar, parte 2
A5E00066869-03
Los valores de la tabla no se modificarán si CMD o E_TYPE no son válidos, y tam-poco cuando CMD y E_TYPE no sean compatibles. En estos casos, el estado deseñ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.
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 datoscon el que se va a ejecutar la función. Al ser 4 el tipo de datos (E_TYPE = 04), losdatos se almacenan en la tabla en las palabras a partir del elemento al que apunta elparámetro SRC. Como el valor del parámetro CMD es 4 (borrar), al ejecutarse lafunción son borradas (puestas a cero) todas las palabras de la tabla. En este caso, elprimer registro de la tabla, que indica la longitud de la misma, tiene el valor 5, porlo 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 valorW#16#0000.
TBLFC88
EN ENO
SRC
CMD
E_TYPE
E 0.0 A 4.0
RET_VALP#DB1.DBX0.0
B#16#04
B#16#04
MW0
Antes de la ejecución:
SRC (longitud de tabla) DBW0 = W#16#0005DBW2 = W#16#2000DBW4 = W#16#3000DBW6 = W#16#4000DBW8 = W#16#5000DBW10 = W#16#6000
Después de la ejecución:
SRC (longitud de tabla) DBW0 =W#16#0005DBW2 =W#16#0000DBW4 =W#16#0000DBW6 =W#16#0000DBW8 =W#16#0000DBW10 =W#16#0000
Figura 2-5 Realizar una operación en una tabla (TBL)
Información sobreerrores
Ejemplo
Funciones de tabla
2-13Software estándar para S7-300 y S7-400 Funciones estándar, parte 2A5E00066869-03
2.6 Copiar un valor de una tabla (TBL_WRD): FC89
La función ”Copiar un valor de una tabla” (TBL_WRD) copia el registro indicadopor 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 sellama 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 puedetener (longitud de tabla).
• El segundo registro indica el primer elemento de la tabla.
Nota
Cuando cree la tabla debe inicializar el primer registro.
En la tabla 2-7 se describen los parámetros de la función ”Copiar un valor de unatabla” (TBL_WRD).
Tabla 2-7 Parámetros de la función TBL_WRD (FC89)
Parámetro Declaración Tipo dedatos
Area de memoriaDescripción
EN Entrada BOOL E, A, M, D, L La entrada de habilitación con estado de señal 1 activa elcuadro.
ENO Salida BOOL E, A, M, D, L La salida de habilitación tiene el estado de señal 1 si lafunción se ejecuta sin errores.
SRC Entrada Pointer* E, A, M, D Apunta al comienzo de la tabla.
DEST Entrada Pointer* E, A, M, D Apunta al registro de destino.
E_TYPE Entrada BYTE E, A, M, D, L, P Indica el tipo de datos que tienen los elementos de latabla. Los tipos válidos para la función TBL_WRD son:
B#16#04 = WORDB#16#05 = INTB#16#06 = DWORDB#16#07 = DINTB#16#08 = REAL
RET_VAL Salida WORD E, A, M, D, L, P Da el valor W#16#0000 si la función se ejecuta sinerrores; acerca de otros valores véase la informaciónsobre errores.
Q Salida BOOL A, M, D, L Indica 0 si la variable INDX contiene el último elementode la tabla cuando se llama a la función.
INDX Entrada_Salida WORD E, A, M, L Número del elemento a copiar.
* Puntero en formato de palabra doble cuando se trata de direccionamiento interárea indirecto por registro.
Descripción
Parámetros
Funciones de tabla
2-14Software estándar para S7-300 y S7-400 Funciones estándar, parte 2
A5E00066869-03
La función no será ejecutada si se da una de las condiciones enumeradas en la tabla2-8. En esos casos, el estado de señal de la salida de habilitación (ENO) se pone a 0y el valor de respuesta (RET_VAL) se ajusta como corresponde.
Tabla 2-8 Condiciones de error en la función FC89
RET_VAL Significado
W#16#0007 INDX es 0.
W#16#0008 El tipo de datos (E_TYPE) no es válido.
W#16#0009 INDX está más allá del final de la tabla.
La figura 2-6 muestra cómo opera la función TBL_WRD. La función se ejecutacuando 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 deINDX 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 quese ha copiado. En este ejemplo, al llamar a la función, INDX no indica el últimoelemento 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.
E 0.0 A 4.0TBL_WRD
FC89EN ENO
SRC
DEST
E_TYPE
Q
INDX
RET_VALP#DB1.DBX0.0
P#DB2.DBX20.0
B#16#04
MW1
MW0
M2.0
Antes de la ejecución:SRC (longitud de tabla) DBW0 = W#16#0004
DBW2 = W#16#2000DBW4 = W#16#3000DBW6 = W#16#4000DBW8 = W#16#5000
INDX MW1 = W#16#0001
DEST DBW20 = W#16#0000
Después de la ejecución:INDX MW1 = W#16#0002
DEST DBW20 = W#16#2000
Figura 2-6 Copiar un valor de una tabla (TBL_WRD)
Información sobreerrores
Ejemplo
Funciones de tabla
2-15Software estándar para S7-300 y S7-400 Funciones estándar, parte 2A5E00066869-03
2.7 Combinar lógicamente un valor con un elemento de una tabla yalmacenarlo (WRD_TBL): FC91
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 quedicho valor sea menor que la longitud de la tabla.
• El primer registro de la tabla indica la cantidad máxima de elementos que puedehaber 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.
En la tabla 2-9 se describen los parámetros de la función ”Combinar lógicamente unvalor con un elemento de una tabla y almacenarlo” (WRD_TBL).
Tabla 2-9 Parámetros de la función WRD_TBL (FC91)
Parámetro Declaración Tipo dedatos
Area dememoria
Descripción
EN Entrada BOOL E, A, M, D, L La entrada de habilitación con estado de señal 1 activa elcuadro.
ENO Salida BOOL E, A, M, D, L La salida de habilitación tiene el estado de señal 1 si lafunción se ejecuta sin errores.
SRC Entrada Pointer* E, A, M, D Apunta al elemento fuente.
TABLE Entrada Pointer* E, A, M, D Apunta al comienzo de la tabla.
CMD Entrada BYTE E, A, M, D, L, P Indica qué operación debe ejecutarse. Las operaciones váli-das y sus valores correspondientes son:
B#16#0E = copiarB#16#07 = operación lógica YB#16#08 = operación lógica OB#16#09 = operación lógica O EXCLUSIVA
E_TYPE Entrada BYTE E, A, M, D, L, P Indica el tipo de los datos (elementos) de la tabla. Los tiposválidos para la función WRD_TBL son los siguientes:
B#16#04 = WORDB#16#05 = INTB#16#06 = DWORDB#16#07 = DINTB#16#08 = REAL
RET_VAL Salida WORD E, A, M, D, L, P Da el valor W#16#0000 cuando la función se ejecuta sinerrores; si los valores son distintos de W#16#0000 véasela información sobre errores.
Q Salida BOOL A, M, D, L Indica 0 cuando el valor de INDX es el del último elementode la tabla.
INDX Entrada_Salida WORD E, A, M, D, L Número del elemento con el que se va a operar.
* Puntero en formato de palabra doble cuando se trata de direccionamiento interárea indirecto por registro.
Descripción
Parámetros
Funciones de tabla
2-16Software estándar para S7-300 y S7-400 Funciones estándar, parte 2
A5E00066869-03
La función no se ejecutará si se da alguna de las condiciones enumeradas en la tabla2-10. El estado de señal de la salida de habilitación (ENO) se pone a cero y el valorde respuesta (RET_VAL) se ajusta como corresponde.
Tabla 2-10 Condiciones de error en la función FC91
RET_VAL Significado
W#16#0007 El valor del índice es 0.
W#16#0008 CMD o E_TYPE no son válidos, o CMD y E_TYPE no son compatibles.
W#16#0009 INDX está más allá del final de la tabla.
La figura 2-7 muestra cómo opera la función ”Combinar lógicamente un valor conun elemento de una tabla y almacenarlo” (WRD_TBL). La función se ejecutacuando el estado de señal de la entrada E 0.0 es 1 (activada). Al ser 6 el tipo dedatos (E_TYPE = 06), los datos se almacenan en la tabla en palabras a partir de ladirección a la que apunta TABLE. La primera palabra de la tabla indica la longitudde la misma, en este caso tres palabras dobles. El valor de INDX apunta al elementode 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 seejecuta 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 laoperación lógica O (77775555), y el valor de INDX se incrementa automáticamenteen uno. Si el valor de INDX indicaba el último elemento de la tabla al llamar a lafunción, la salida A se pone a 0 después de ejecutar la función. Dicha condición nose 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.
TABLE (long. de tabla) DBW0 = W#16#0003DBD2 = DW#16#99998877DBD6 = DW#16#66665544DBD10 = DW#16#33332222
SRC DBD20 = DW#16#11111111Antes de la ejecución:
E 0.0 A 4.0WRD_TBL
FC91EN ENO
SRC
TABLECMD
RET_VAL
E_TYPEINDX
P#DB2.DBX20.0
P#DB1.DBX0.0B#16#08B#16#06
MW1
MW0
Q M2.0
INDX MW1 = W#16#0002
Después de la ejecución:TABLE (long. de tabla) DBW0 = W#16#0003
DBD2 = DW#16#99998877DBD6 = DW#16#77775555DBD10 = 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)
Información sobreerrores
Ejemplo
Funciones de tabla
2-17Software estándar para S7-300 y S7-400 Funciones estándar, parte 2A5E00066869-03
2.8 Tabla de datos correlativos (CDT): FC103
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 valorde esa tabla que sea igual o mayor que el valor de entrada especificado. Una vezlocalizado, el índice de dicho valor se utiliza para copiar el valor correlativo de latabla 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 losdetermina 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 quecero.
Nota
Al crear las tablas debe inicializar el primer registro de cada tabla.
En la tabla 2-11 se describen los parámetros de la función ”Tabla de DatosCorrelativos” (CDT).
Tabla 2-11 Parámetros de la función CDT (FC103)
Parámetro Declaración Tipo dedatos
Area dememoria
Descripción
EN Entrada BOOL E, A, M, D, L La entrada de habilitación con estado de señal 1 activa elcuadro.
ENO Salida BOOL E, A, M, D, L La salida de habilitación tiene el estado de señal 1 si lafunción se ejecuta sin errores.
IN_TBL Entrada Pointer* E, A, M, D Apunta al comienzo de la tabla de entradas.
OUT_TBL Entrada Pointer* E, A, M, D Apunta al comienzo de la tabla de salidas.
IN Entrada Pointer* E, A, M, D Apunta al valor de entrada.
OUT Entrada Pointer* E, A, M, D Apunta al valor de salida.
E_TYPE Entrada BYTE E, A, M, D, L, P Indica de qué tipo son los datos de la tabla. Los tiposválidos para la función CDT son:
B#16#05 = INTB#16#07 = DINTB#16#08 = REAL
RET_VAL Salida WORD E, A, M, D, L, P Da el valor W#16#0000 cuando la función se ejecuta sinerrores; si los valores son distintos de W#16#0000, véase lainformación sobre errores.
* Puntero en formato de palabra doble cuando se trata de direccionamiento interárea indirecto por registro.
Descripción
Parámetros
Funciones de tabla
2-18Software estándar para S7-300 y S7-400 Funciones estándar, parte 2
A5E00066869-03
La función no será ejecutada si se da una de las condiciones enumeradas en la tabla2-12. En esos casos, el estado de señal de la salida de habilitación (ENO) se ponea 0 y el valor de respuesta RET_VAL se ajusta como corresponde.
Tabla 2-12 Condiciones de error en la función FC103
RET_VAL Significado
W#16#0001 El área de memoria indicada para un parámetro de la función no es válida.
W#16#0002 El tipo de datos (E_TYPE) indicado no es válido.
W#16#0003 Las longitudes de las tablas de entradas y de salidas no son iguales.
W#16#0004 La longitud de una tabla es cero.
W#16#0007 En IN_TBL no hay ningún valor mayor o igual que el valor de entrada indi-cado.
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 cadauna, tal como lo indica la primera palabra de cada tabla. El tipo de los datos de lastablas es ENTERO (E_TYPE = B#16#05). El valor de entrada (IN) es 22. Dentro dela 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 valorW#16#0000.
IN DBW200= 22OUT DBW210= 0
OUT_TBL (long. de tabla) DBW100= W#16#0005DBW102= 5DBW104= 10DBW106= 15DBW108= 20DBW110 = 25
E 0.0 A 4.0CDT
FC103EN ENOIN_TBLOUT_TBL
IN
OUT
RET_VALP#DB1.DBX0.0P#DB1.DBX100.0
P#DB1.DBX200.0
P#DB1.DBX210.0
B#16#05
MW0
E_TYPE
Antes de la ejecución:IN_TBL (long. de tabla) DBW0 = W#16#0005
DBW2 = 2DBW4 = 4DBW6 = 8DBW8 = 16DBW10 = 64
Después de la ejecución:OUT DBW210= 25
Figura 2-8 Tabla de datos correlativos (CDT)
Información sobreerrores
Ejemplo
Funciones de tabla
2-19Software estándar para S7-300 y S7-400 Funciones estándar, parte 2A5E00066869-03
2.9 Enlace lógico de tablas (TBL_TBL): FC104
La función ”Enlace lógico de tablas” (TBL_TBL) realiza la operación especificada(en el parámetro CMD) entre los elementos correspondientes de las dos tablas fuente(TBL1 y TBL2), y escribe el resultado en los correspondientes registros de la tabladestino (DEST_TBL).
• Con los tipos de datos INT, DINT y REAL únicamente se pueden realizar opera-ciones aritméticas.
• El primer registro de la tabla indica la cantidad de elementos que tiene la tabla(longitud de la tabla).
• Todas las tablas tienen que tener la misma cantidad de elementos, y ésta debe sersiempre mayor que cero.
Nota
Al crear cada tabla debe inicializar el primer registro.
En la tabla 2-13 se describen los parámetros de la función ”Enlace lógico de tablas”(TBL_TBL).
Tabla 2-13 Parámetros de la función TBL_TBL (FC104)
Parámetro Declara-ción
Tipo dedatos
Area dememoria
Descripción
EN Entrada BOOL E, A, M, D, L La entrada de habilitación con estado de señal 1 activa elcuadro.
ENO Salida BOOL E, A, M, D, L La salida de habilitación tiene el estado de señal 1 si la funciónse ejecuta sin errores.
TBL1 Entrada Pointer* E, A, M, D Apunta al comienzo de la primera tabla fuente.
TBL2 Entrada Pointer* E, A, M, D Apunta al comienzo de la segunda tabla fuente.
DEST_TBL Entrada Pointer* E, A, M, D Apunta al comienzo de la tabla destino.
CMD Entrada BYTE E, A, M, D, L, P Indica el tipo de operación a ejecutar. Las operaciones válidas ysus valores son:
B#16#07 = operación lógica YB#16#08 = operación lógica OB#16#09 = operación lógica O EXCLUSIVAB#16#0a = sumarB#16#0b = restarB#16#0c = multiplicarB#16#0d = dividir
E_TYPE Entrada BYTE E, A, M, D, L, P Indica el tipo de datos de los elementos de las tablas. Los tiposválidos para la función TBL_TBL son:
B#16#04 = WORDB#16#05 = INTB#16#06 = DWORDB#16#07 = DINTB#16#08 = REAL
RET_VAL Salida WORD E, A, M, D, L, P Da el valor W#16#0000 cuando la función se ejecuta sin erro-res; si los valores son distintos de W#16#0000, véase la infor-mación sobre errores.
* Puntero en formato de palabra doble cuando se trata de direccionamiento interárea indirecto por registro.
Descripción
Parámetros
Funciones de tabla
2-20Software estándar para S7-300 y S7-400 Funciones estándar, parte 2
A5E00066869-03
La función no será ejecutada si se da una de las condiciones enumeradas en la tabla2-14. En esos casos, el estado de señal de la salida de habilitación (ENO) se ponea 0 y el valor de respuesta (RET_VAL) se ajusta como corresponde.
Tabla 2-14 Condiciones de error en la función FC104
RET_VAL Significado
W#16#0001 El área de memoria indicada para un parámetro de la función no es válida.
W#16#0002 El tipo de datos (E_TYPE) indicado no es válido.
W#16#0003 Las longitudes de las tablas fuente y destino no son iguales.
W#16#0004 La longitud de una tabla es cero.
W#16#0005 E_TYPE y CMD no son compatibles.
W#16#0006 La operación indicada en CMD no es válida.
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 primerapalabra de cada tabla. E_TYPE indica que los elementos de las tablas son del tipoWORD. 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.
DEST_TBL (long. de tabla) DBW40 = W#16#0003DBW42 = W#16#0000DBW44 = W#16#0000DBW46 = W#16#0000
TBL2 (long. de tabla) DBW20 = W#16#0003DBW22 = W#16#1111DBW24 = W#16#2222DBW26 = W#16#3333
E 0.0 A 4.0TBL_TBL
FC104EN ENO
TBL1TBL2DEST_TBL
CMD
RET_VALP#DB1.DBX0.0P#DB1.DBX20.0P#DB1.DBX40.0
B#16#07B#16#04
MW0
E_TYPE
Antes de la ejecución:TBL1 (long. de tabla) DBW0 = W#16#0003
DBW2 = W#16#00FFDBW4 = W#16#FF00DBW6 = W#16#FFFF
Después de la ejecución:DEST_TBL (long. de tabla) DBW40 = W#16#0003
DBW42 = W#16#0011DBW44 = W#16#2200DBW46 = W#16#3333
Figura 2-9 Enlace lógico de tablas (TBL_TBL)
Información sobreerrores
Ejemplo
Funciones de tabla
3-1Software estándar para S7-300 y S7-400 Funciones estándar, parte 2A5E00066869-03
Funciones de desplazamiento
En este capítulo se describen las funciones (FC) de desplazamiento que puede aña-dir a las operaciones estándar para obtener una mayor flexibilidad en la programa-ción.
Apartado Descripción Página
3.1 Almacenar datos en el registro de desplazamiento (WSR): FC90 3-2
3.2 Desplazar un bit a un registro de desplazamiento (SHRB): FC92 3-4
3
3-2Software estándar para S7-300 y S7-400 Funciones estándar, parte 2
A5E00066869-03
3.1 Almacenar datos en el registro de desplazamiento (WSR): FC90
La función ”Almacenar datos en el registro de desplazamiento” (WSR) desplazadatos al registro de desplazamiento desde la fuente que se haya indicado. Cada unode los valores desplazados pasa a la dirección siguiente. El parámetro LENGTHindica la cantidad de direcciones que deben desplazarse los datos. Una vez realizadoel desplazamiento se pierden los datos que contenía la última dirección del registrode desplazamiento. Cada vez que se ejecuta la función se leen nuevos datos de lafuente (S_DATA); dichos datos son desplazados a la dirección inicial (START) delregistro de desplazamiento siempre que la entrada RESET esté a 0; si se pone a 1 laentrada RESET, las direcciones del registro se ponen a 0 al ejecutarse la función. Lasalida A se activa cuando el registro de desplazamiento está vacío y cuando ha sidoborrado (es decir, después de haber efectuado una puesta a cero o cuando el registroestá ocupado con ceros).
En la tabla 3-1 se describen los parámetros de la función ”Almacenar datos en elregistro de desplazamiento”.
Tabla 3-1 Parámetros de la función WSR (FC90)
Parámetro Declaración Tipo dedatos
Area de memoriaDescripción
EN Entrada BOOL E, A, M, D, L La entrada de habilitación con estado de señal 1 activa elcuadro.
ENO Salida BOOL E, A, M, D, L La salida de habilitación tiene el estado de señal 1 si lafunción se ejecuta sin errores.
RESET Entrada BOOL E, A, M, D, L Si el registro de desplazamiento estaba a 1 se pone a 0.
S_DATA Entrada Pointer* E, A, M, D Apunta al elemento fuente que debe insertarse en la tabla.
START Entrada Pointer* E, A, M, D Apunta al comienzo de la tabla.
LENGTH Entrada WORD E, A, M, D, L, P Cantidad de direcciones que deben desplazarse.
E_TYPE Entrada BYTE E, A, M, D, L, P Indica de qué tipo son los datos de la tabla. Los tiposválidos para la función WSR son:
B#16#04 = WORDB#16#05 = INTB#16#06 = DWORDB#16#07 = DINTB#16#08 = REAL
Q Salida BOOL A, M, D, L Indica 0 si el parámetro RESET está activado (1) o todoslos elementos a desplazar tienen el valor 0.
* Puntero en formato de palabra doble cuando se trata de direccionamiento interárea indirecto por registro.
Descripción
Parámetros
Funciones de desplazamiento
3-3Software estándar para S7-300 y S7-400 Funciones estándar, parte 2A5E00066869-03
La función no se ejecuta en caso de emplear un tipo de datos (E_TYPE) no válido;en este caso, el estado de señal de la salida de habilitación (ENO) se pone a 0.
La figura 3-1 muestra cómo opera la función ”Almacenar datos en el registro dedesplazamiento” (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 datosse almacenan en la tabla en palabras a partir de la dirección de memoria que indicael puntero START. El parámetro LENGTH tiene el valor 4, lo cual significa que sedesplazarán 4 direcciones de palabras, comenzando por la palabra que se encuentraen la dirección a la que apunta START. Después de desplazar el primer valor de latabla a la siguiente dirección, la posición que ocupaba ese valor pasa a ser ocupadaahora 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. Siempreque la entrada RESET sea puesta a 1 las direcciones de la tabla no se desplazarán,sino que se pondrán a cero.
Si la función se ejecuta sin errores, los estados de señal de la salida de habilitación(ENO) y de la salida A 4.0 se ponen a 1.
E 0.0 A 4.0WSRFC90
EN ENO
RESET
S_DATA
START
Q
LENGTH
E_TYPE
M1.0
P#DB2.DBX6.0
P#DB1.DBX0.0
B#16#04
B#16#04
M2.0
RESET M1.0 = FALSE
S_DATA DW6 = W#16#1234
Antes de la ejecución:START DW0 = W#16#1111
DW2 = W#16#2222DW4 = W#16#3333DW6 = W#16#4444
Después de la ejecución:START DW0 = W#16#1234
DW2 = W#16#1111DW4 = W#16#2222DW6 = W#16#3333
Figura 3-1 Almacenar datos en el registro de desplazamiento (WSR)
Información sobreerrores
Ejemplo
Funciones de desplazamiento
3-4Software estándar para S7-300 y S7-400 Funciones estándar, parte 2
A5E00066869-03
3.2 Desplazar un bit a un registro de desplazamiento (SHRB): FC92
La función ”Desplazar un bit a un registro de desplazamiento” (SHRB) desplaza unbit a un registro de desplazamiento desde la fuente especificada en el parámetroDATA. Cada vez que se ejecuta la función se leen nuevos datos de la fuente, loscuales son desplazados a la dirección inicial (S_BIT) del registro de desplazamiento,siempre que el estado de señal de la entrada RESET sea 0. Todos los demás bits sonsometidos a un desplazamiento de una dirección respectivamente. Al concluir eldesplazamiento se pierde el bit que antes contenía la última dirección (S_BIT+N).Siempre que la entrada RESET sea puesta a 1 las direcciones de la tabla no se des-plazarán, sino que se pondrán a cero.
En la tabla 3-2 se describen los parámetros de la función ”Desplazar un bit a unregistro de desplazamiento” (SHRB).
Tabla 3-2 Parámetros de la función SHRB (FC92)
Parámetro Declaración Tipo dedatos
Area de memoriaDescripción
EN Entrada BOOL E, A, M, D, L La entrada de habilitación con estado de señal 1 activa elcuadro.
ENO Salida BOOL E, A, M, D, L La salida de habilitación tiene el estado de señal 1 si lafunción se ejecuta sin errores.
DATA Entrada BOOL E, A, M, D, L Bit de datos fuente.
RESET Entrada BOOL E, A, M, D, L Pone a 0 el registro de desplazamiento si estaba puestoa 1.
S_BIT Entrada Pointer* E, A, M, D Apunta al primer bit a desplazar en el registro dedesplazamiento.
N Entrada WORD E, A, M, D, L, P Longitud del registro de desplazamiento (cantidad de bitsa desplazar).
* Puntero en formato de palabra doble cuando se trata de direccionamiento interárea indirecto por registro.
Descripción
Parámetros
Funciones de desplazamiento
3-5Software estándar para S7-300 y S7-400 Funciones estándar, parte 2A5E00066869-03
Esta función no detecta condiciones de error
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 entradaE 0.0 es 1 (activada). En este ejemplo, el parámetro de la longitud del registro dedesplazamiento, N, está ajustado a 14 (E en la notación hexadecimal), lo cual indicaque se desplazarán 14 direcciones; la primera de éstas será la del bit indicado por elpuntero S_BIT. Una vez que los bits han sido desplazados, los datos que indica laentrada DATA ocupan la primera dirección donde ha habido un desplazamiento. Elbit que antes ocupaba la última dirección del registro de desplazamiento se pierdeuna 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).
E 0.0 A 4.0SHRBFC92
EN ENO
DATA
RESET
S_BIT
N
P#DB1.DBX1.4
B#16#0E
0
0
0
1.7
Antes del desplazamiento:
0 1 1 1 0 1 0
0
2.7
0 1 1 1 0 1 0
0
1.7
Después del desplazamiento:
1
1 1 0 1 0 00
2.7
1
1 0 1 0 1 0
0
3.7
0 1 1 1 0 1 0 1 1 1 0 0 00
3.7
0
1.0
2.0
1.0
2.0
3.0 3.0
S_BIT S_BIT
Figura 3-2 Desplazar un bit a un registro de desplazamiento (SHRB)
Información sobreerrores
Ejemplo
Funciones de desplazamiento
3-6Software estándar para S7-300 y S7-400 Funciones estándar, parte 2
A5E00066869-03
Funciones de desplazamiento
4-1Software estándar para S7-300 y S7-400 Funciones estándar, parte 2A5E00066869-03
Funciones y bloques de función detransferencia
Este capítulo describe las funciones (FC) de transferencia y los bloques de función(FB) de transferencia que puede añadir a las operaciones estándar para obtener unamayor flexibilidad en la programación.
Apartado Descripción Página
4.1 Transferencia indirecta de un bloque de datos (IBLKMOV): FC81 4-2
4.2 Acumular/Distribuir datos de tabla (PACK): FB86 4-4
4
4-2Software estándar para S7-300 y S7-400 Funciones estándar, parte 2
A5E00066869-03
4.1 Transferencia indirecta de un bloque de datos (IBLKMOV): FC81
Aplicando la función ”Transferencia indirecta de un bloque de datos” (IBLKMOV)puede transferir un bloque de datos compuesto por bytes, palabras, enteros, palabrasdobles o por enteros dobles desde un bloque fuente a un bloque destino. El paráme-tro LENGTH determina la cantidad de elementos a transferir; el parámetro E_TYPEdefine el tipo de datos. Los punteros S_DATA y D_DATA indican la dirección depunteros que, a su vez, indican las direcciones iniciales de los datos fuente y des-tino. Siendo éste un método de indicación y localización indirecta de los datos atransferir se le denomina ”transferencia indirecta de bloques”.
En la tabla 4-1 se describen los parámetros de la función ”Transferencia indirecta deun bloque de datos” (IBLKMOV).
Tabla 4-1 Parámetros de la función IBLKMOV (FC81)
Parámetro Declaración Tipo dedatos
Area de memoriaDescripción
EN Entrada BOOL E, A, M, D, L La entrada de habilitación con estado de señal 1 activa elcuadro.
ENO Salida BOOL E, A, M, D, L La salida de habilitación tiene el estado de señal 1, si lafuncion se ejecuta sin errores.
S_DATA Entrada Pointer* E, A, M, D Señala a un puntero que indica la dirección inicial de losdatos fuente.
LENGTH Entrada Pointer* E, A, M, D Apunta a la longitud del bloque a transferir.
D_DATA Entrada Pointer* E, A, M, D Señala a un puntero que indica la dirección inicial de losdatos destino.
E_TYPE Entrada BYTE E, A, M, D, L Indica el tipo de datos. Los tipos válidos para la funciónIBLKMOV son:
B#16#02 = BYTEB#16#04 = WORDB#16#05 = INTB#16#06 = DWORDB#16#07 = DINTB#16#08 = REAL
* Puntero en formato de palabra doble cuando se trata de direccionamiento interárea indirecto por registro.
Descripción
Parámetros
Funciones y bloques de función de transferencia
4-3Software estándar para S7-300 y S7-400 Funciones estándar, parte 2A5E00066869-03
La función no se ejecutará si se ha indicado un tipo de datos (E_TYPE) que no esválido; en ese caso, el estado de señal de la salida de habilitación (ENO) se ponea 0.
La figura 4-1 muestra cómo opera la función ”Transferencia indirecta de un bloquede 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 punteroDB1.DBX50.0 (dirección inicial de los datos fuente). D_DATA apunta aDB1.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).
E 0.0 A 4.0IBLKMOV
FC81EN ENO
S_DATA
LENGTH
D_DATA
E_TYPE
P#DB1.DBX0.0
P#DB1.DBX10.0
P#DB1.DBX20.0
B#16#04
Antes de la ejecución:
S_DATA DBX0.0 = P#DB1.DBX50.0DBW50 = W#16#2424DBW52 = W#16#2525
LENGTH DBW10 = W#16#0002
D_DATA DBX20.0= P#DB2.DBX10.0DBW10 = W#16#0000DBW12 = W#16#0000
Después de la ejecución:
D_DATA DBW10 = W#16#2424DBW12 = W#16#2525
Figura 4-1 Transferencia indirecta de un bloque de datos (IBLKMOV)
Información sobreerrores
Ejemplo
Funciones y bloques de función de transferencia
4-4Software estándar para S7-300 y S7-400 Funciones estándar, parte 2
A5E00066869-03
4.2 Acumular/Distribuir datos de tabla (PACK): FB86
La función ”Acumular/Distribuir datos de tabla” (PACK) transfiere datos intercala-dos entre direcciones aleatorias y una tabla. El parámetro DIR indica la dirección dela transferencia. Cada función PACK puede procesar hasta cinco bloques de datos(de P_DATA 1 a P_DATA 5). Si el parámetro DIR indica ”a”, la función PACKtransfiere los datos desde las direcciones a la tabla indicada; si DIR indica ”desde”,la función PACK distribuye los datos desde la tabla a las direcciones.
Las reglas para transferir datos ”a” una tabla son las siguientes:
• cada bit (BOOL) se transfieren al siguiente bit disponible en la tabla.
• Los tipos de datos de 8 bits se transfieren al siguiente byte disponible en la tabla.Cuando se escribe un byte en la tabla, los bits no utilizados en el byte anteriorson rellenados con ceros.
• Los tipos de datos de 16 y 32 bits se transfieren a la siguiente palabra disponibleen la tabla. Cuando se escribe una palabra en la tabla, los bits no utilizados en elbyte anterior se rellenan con ceros.
Las reglas para transferir datos ”desde” una tabla son las siguientes:
• No se debe omitir (pasar por alto) ningún apartado de la tabla.
• Todos los datos indicados del tipo BOOL se transfieren desde la tabla.
• Los tipos de datos de 8 bits se transfieren desde el primer byte disponible en latabla. Esto quiere decir que los bits no utilizados en el byte anterior de la tablano se incluyen en un byte que se transfiere desde la tabla.
• Los tipos de datos de 16 y de 32 bits se transfieren desde la primera palabra dis-ponible de la tabla. Esto significa que los bits no utilizados en la palabra anteriorde la tabla no se incluyen en una palabra que se transfiere desde la tabla.
Los tipos de datos válidos para el puntero ANY que soporta el bloque de funciónPACK son los siguientes:
• BOOL
• WORD
• INT
• BYTE
• DINT
• REAL
• CHAR
• DWORD
Descripción
Funciones y bloques de función de transferencia
4-5Software estándar para S7-300 y S7-400 Funciones estándar, parte 2A5E00066869-03
En la tabla 4-2 se describen los parámetros de la función ”Acumular/Distribuir datosde tabla” (PACK).
Tabla 4-2 Parámetros de la función PACK (FB86)
Parámetro Declaración Tipo dedatos
Area de memoriaDescripción
EN Entrada BOOL E, A, M, D, L La entrada de habilitación con estado de señal 1 activa elcuadro.
ENO Salida BOOL E, A, M, D, L La salida de habilitación tiene el estado de señal 1, si seejecuta el bloque de función sin errores.
TABLE Entrada Pointer* E, A, M, D Apunta al comienzo de la tabla.
P_DATA1 Entrada Any E, A, M, D Apunta al comienzo de un bloque con datos a transferir.
P_DATA2 Entrada Any E, A, M, D Apunta al comienzo de un bloque con datos a transferir.
P_DATA3 Entrada Any E, A, M, D Apunta al comienzo de un bloque con datos a transferir.
P_DATA4 Entrada Any E, A, M,D Apunta al comienzo de un bloque con datos a transferir.
P_DATA5 Entrada Any E, A, M, D Apunta al comienzo de un bloque con datos a transferir.
ERR_CODE Salida WORD E, A, M, D, L, P Da el valor W#16#0000 cuando se ejecuta el bloque defunción sin errores; si los valores son distintos deW#16#0000, véase la información sobre errores.
DIR Static BOOL E, A, M, D, L Dirección de la transferencia. El estado de señal = 1 => ”a” y el estado de señal = 0 => ”desde”
* Puntero en formato de palabra doble cuando se trata de direccionamiento interárea indirecto por registro.
El bloque de función no será ejecutado si se da una de las condiciones enumeradasen la tabla 4-3. En esos casos, el estado de señal de la salida de habilitación (ENO)se pone a 0 y el código de error (ERR_CODE) se ajusta como corresponde.
Tabla 4-3 Condiciones de error con el bloque de función FB86
ERR_CODE Significado
W#16#0001 El área de memoria indicada para un parámetro de la función no es válida.
W#16#0002 El tipo de datos (E_TYPE) no es válido.
Parámetros
Información sobreerrores
Funciones y bloques de función de transferencia
4-6Software estándar para S7-300 y S7-400 Funciones estándar, parte 2
A5E00066869-03
La figura 4-2 muestra cómo opera el bloque de función ”Acumular/Distribuir datosde tabla” (PACK). El bloque de función se ejecuta cuando el estado de señal de laentrada 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 dehabilitación (ENO) y de la salida A 4.0 se ponen a 1 (activadas), y el código de error(ERR_CODE) toma el valor W#16#0000.
Nota
Puede inicializar los parámetros estáticos utilizando el editor de bloques de datos.
E 0.0 A 4.0PACKFB86
EN ENO
TABLE
P_DATA1
P_DATA2
ERR_CODE
P_DATA3
P_DATA4
P#DB1.DBX0.0
P#M200.0 BOOL 2
P#M210.0 BYTE 1
P#M300.0 BOOL 2
P#M330.0 WORD 1
MW0
DB86
P_DATA5
Antes de la ejecución:
TABLE DBB0 = B#16#00DBB1 = B#16#00DBB2 = B#16#00DBB3 = B#16#00DBB4 = B#16#00DBB5 = B#16#00
P_DATA1 M200.0 = TRUEM200.1 = TRUE
P_DATA2 MB210 = B#16#FF
P_DATA3 M300.0 = TRUEM300.1 = TRUE
P_DATA4 MW330 = W#16#FFFF
Instancia DB86DIR DBX58.0= FALSE
Después de la ejecución:
TABLE DBB0 = B#16#03DBB1 = B#16#FFDBB2 = B#16#03DBB3 = B#16#00DBB4 = B#16#FFDBB5 = B#16#FF
Figura 4-2 Acumular/Distribuir datos de tabla (PACK)
Ejemplo
Funciones y bloques de función de transferencia
5-1Software estándar para S7-300 y S7-400 Funciones estándar, parte 2A5E00066869-03
Funciones y bloques de función detemporización
Este capítulo describe las funciones (FC) de temporización y los bloques de función(FB) de temporización que puede añadir a las operaciones estándar para obtener unamayor flexibilidad en la programación.
Apartado Descripción Página
5.1 Activar un temporizador como retardo a la conexión con memoria(TONR): FC80
5-2
5.2 Alarma de tiempo para control discreto (DCAT): FB81 5-4
5.3 Alarma de tiempo para control motor (MCAT): FB82 5-7
5.4 Evento drum enmascarable (DRUM): FB85 5-10
5
5-2Software estándar para S7-300 y S7-400 Funciones estándar, parte 2
A5E00066869-03
5.1 Activar un temporizador como retardo a la conexión con memoria(TONR): FC80
La función ”Activar un temporizador como retardo a la conexión con memoria”(TONR) acumula el tiempo hasta que el valor del tiempo transcurrido (ET) es igualo mayor que el valor de preselección (PV). Dado que, para acumular tiempo, la fun-ción TONR utiliza el tiempo de ejecución del último ciclo del OB (bloque de orga-nización) en el que es procesada, esta función debe aplicarse únicamente en los OBque sean de ejecución repetitiva, tales como el OB1 y los OB cíclicos.
Nota
Debe desplazar el tiempo de ciclo del OB desde las variables locales de arranque dela tabla de declaración de variables del OB a la variable global DELTA_T.
Mientras el estado de señal del parámetro RESET sea 0, el estado de señal deTMR_EN sea 1 y ET sea menor que PV, la función TONR añadirá el valor deDELTA_T al tiempo transcurrido (ET). Si el estado de señal de TMR_EN no es 1 nose añade tiempo a ET. Si el valor de ET alcanza o sobrepasa el valor de preselección(PV), el estado de señal de la salida A se pone a 1. Una vez activada A ésta perma-nece así y ET permanece con el último valor hasta la desactivación. La funciónpone ET a 0 y desactiva la salida A cuando el estado de señal de RESET es 1.
En la tabla 5-1 se describen los parámetros de la función ”Activar un temporizadorcomo retardo a la conexión con memoria” (TONR).
Tabla 5-1 Parámetros de la función TONR (FC80)
Parámetro Declaración Tipo dedatos
Area dememoria
Descripción
EN Entrada BOOL E, A, M, D, L La entrada de habilitación con estado de señal 1 activa elcuadro.
ENO Salida BOOL E, A, M, D, L La salida de habilitación tiene el estado de señal 1 si seejecuta sin errores.
TMR_EN Entrada BOOL E, A, M, D, L Habilita el temporizador para acumular tiempo.
RESET Entrada BOOL E, A, M, D, L Si RESET = 1, el temporizador se pone a 0.
PV Entrada DINT E, A, M, D, L, Po constante
Valor de preselección.
DELTA_T Entrada INT E, A, M, D, Lo constante
Tiempo de barrido del OB en el ciclo anterior.
Q Salida BOOL A, M, D, L Si ET es igual o mayor que PV, el estado de señal de A sepone a 1.
ET Entrada_Salida DINT E, A, M, D, L Valor actual del tiempo transcurrido.
Descripción
Parámetros
Funciones y bloques de función de temporización
5-3Software estándar para S7-300 y S7-400 Funciones estándar, parte 2A5E00066869-03
Esta función no detecta condiciones de error.
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 estadode señal de la entrada E 0.0 es 1 (activada). Si el estado de señal de E 0.1 es 1 y elestado de señal de E 0.2 es 0 y ET es menor que PV, el valor de DELTA_T se añadea 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).
I 0.0 Q 4.0TONRFC80
EN
TMR_EN
RESET
PV
DELTA_T
ENO
Q
ET
I 0.1
I 0.2
L#1000
#OB1_PREV_CYCLE
MD100
Q 1.1
Figura 5-1 Activar un temporizador como retardo a la conexión con memoria (TONR)
Información sobreerrores
Ejemplo
Funciones y bloques de función de temporización
5-4Software estándar para S7-300 y S7-400 Funciones estándar, parte 2
A5E00066869-03
5.2 Alarma de tiempo para control discreto (DCAT): FB81
El bloque de función ”Alarma de tiempo para control discreto” (DCAT) acumula eltiempo desde el instante en que la entrada de la orden CMD da la señal de abrir (ode 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 haberserecibido 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ñalde A se pone a 1, ET (tiempo transcurrido) se pone a 0, los estados de señal deambas salidas de alarma (OA, CA) se ponen a 0, y el estado de señal deCMD_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ñalde A se pone a 0, ET (tiempo transcurrido) se pone a 0, los estados de señal deambas salidas de alarma (OA, CA) se ponen a 0, y el estado de señal deCMD_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 deO_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 losobrepasa se pone a 0. El estado de señal de CMD_HIS toma el mismo valor queCMD.
• Cuando el estado de señal de CMD y de CMD_HIS es 1, el estado de señal deO_FB es 1, y el estado de señal de C_FB es 0, el estado de señal de OA se ponea 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, laalarma será activada la próxima vez que se ejecute este bloque de función. Elestado 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 deC_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 ponea 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 deO_FB es 0, y el de C_FB es 1, el estado de señal de CA se pone a 0. ET toma elmismo valor que PT, de tal forma que, si el estado de señal de C_FB se pone a 0más tarde, la alarma será activada la próxima vez que se ejecute este bloque defunció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 deO_FB y de C_FB son 1 en ambas entradas de acuse simultáneamente; en estecaso, los estados de señal de las dos salidas de alarma (OA y CA) se ponen a 1.
Descripción
Funciones y bloques de función de temporización
5-5Software estándar para S7-300 y S7-400 Funciones estándar, parte 2A5E00066869-03
En la tabla 5-2 se describen los parámetros del bloque de función ”Alarma detiempo para control discreto” (DCAT).
Tabla 5-2 Parámetros del bloque de función DCAT (FB81)
Parámetro Declaración Tipo dedatos
Area de memoriaDescripción
EN Entrada BOOL E, A, M, D, L La entrada de habilitación con estado de señal 1 activa elcuadro.
ENO Salida BOOL E, A, M, D, L La salida de habilitación tiene el estado de señal 1, si elbloque de función se ejecuta sin errores.
CMD Entrada BOOL E, A, M, D, L Con el estado de señal 0 da la orden de cerrar; con elestado de señal 1 da la orden de abrir.
O_FB Entrada BOOL E, A, M, D, L Entrada de acuse al abrir.
C_FB Entrada BOOL E, A, M, D, L Entrada de acuse al cerrar.
Q Salida BOOL E, A, M, D, L Sigue a la entrada CMD.
OA Salida BOOL E, A, M, D, L Salida de alarma al abrir.
CA Salida BOOL E, A, M, D, L Salida de alarma al cerrar.
ET Estático DINT E, A, M, D, L Valor actual del tiempo transcurrido (medido en ms).
PT Estático DINT E, A, M, D, L Valor de preselección del temporizador (medido en ms).
PREV_TIME Estático DWORD E, A, M, D, L Tiempo anterior del sistema.
CMD_HIS Estático BOOL E, A, M, D, L Bit de evolución de CMD.
Parámetros
Funciones y bloques de función de temporización
5-6Software estándar para S7-300 y S7-400 Funciones estándar, parte 2
A5E00066869-03
Este bloque de función no detecta condiciones de error.
La figura 5-2 muestra cómo opera el bloque de función ”Alarma de tiempo paracontrol 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 CMDestá cambiando del estado de señal 0 al estado de señal 1, tal como lo indicanCMD_HIS y CMD. Partiendo de estas condiciones dadas, la salida A y CMD_HIStoman ambas el estado de señal 1. ET se pone a 0, y ambas salidas de alarma, OA yCA, 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 dehabilitación (ENO) y de la salida A 4.0 se ponen a 1 (activadas).
Nota
Puede inicializar los parámetros estáticos utilizando el editor de bloques de datos.
E 0.0 A 4.0DCATFB81
EN
CMD
O_FB
ENO
QM0.0
M1.0
A 2.0
OA A 3.0
C_FBM1.1
CA A 3.1
DB81
Antes de la ejecución:
CMD M0.0 = VERDADEROO_FB M1.0 = FALSOC_FB M1.1 = FALSOQ M2.0 = FALSOOA M3.0 = FALSOCA M3.1 = FALSO
Instancia DB81ET DBD4 = L#12PT DBD8 = L#222CMD_HIS DBX16.0 = FALSO
Después de la ejecución:Q M2.0 = VERDADEROOA M3.0 = FALSOCA M3.1 = FALSO
Instancia DB81ET DBD4 = L#0CMD_HIS DBX16.0 = VERDADERO
Figura 5-2 Alarma de tiempo para control discreto (DCAT)
Información sobreerrores
Ejemplo
Funciones y bloques de función de temporización
5-7Software estándar para S7-300 y S7-400 Funciones estándar, parte 2A5E00066869-03
5.3 Alarma de tiempo para control motor (MCAT): FB82
El bloque de función ”Alarma de tiempo para control motor” (MCAT) acumula eltiempo desde el instante en que se activa una de las entradas de las órdenes (abrir ocerrar) hasta que se sobrepasa el tiempo preseleccionado o hasta que la entrada deacuse correspondiente indica que el dispositivo ha concluido dentro del tiempo pres-crito la instrucción ordenada. Si se sobrepasa el tiempo predeterminado antes dehaberse recibido el acuse se activa la alarma correspondiente. En la tabla de verdadMCAT, representada a continuación, se listan las descripciones con las reaccionesdel bloque de función MCAT a las diferentes condiciones de entrada (v. tabla 5-3).
Tabla 5-3 Tabla de verdad MCAT
ENTRADAS SALIDAS
ET O_HIS C_HIS O_CMD C_CMD S_CMD O_FB C_FB OO CO OA CA ET O_HIS C_HIS Q STATE
X 1 1 X X X X X 0 0 1 1 PT 0 0 0 Alarma
X X X X X X 1 1 0 0 1 1 PT 0 0 0 Alarma
X X X X X 1 X X 0 0 0 0 X 0 0 1 Stop
X X X 1 1 X X X 0 0 0 0 X 0 0 1 Stop
X 0 X 1 0 0 X X 1 0 0 0 0 1 0 1 Co-mienzoapertura
<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 Alarmaal abrir
X X 0 0 1 0 X X 0 1 0 0 0 0 1 1 Co-mienzocierre
<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ónPT = 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)
Descripción
Funciones y bloques de función de temporización
5-8Software estándar para S7-300 y S7-400 Funciones estándar, parte 2
A5E00066869-03
En la tabla 5-4 se describen los parámetros del bloque de función ”Alarma detiempo para control motor” (MCAT).
Tabla 5-4 Parámetros de MCAT (FB82)
Parámetro Declaración Tipo dedatos
Area de memoriaDescripción
EN Entrada BOOL E, A, M, D, L La entrada de habilitación con estado de señal 1 activa elcuadro.
ENO Salida BOOL E, A, M, D, L La salida de habilitación tiene el estado de señal 1, si elbloque de función se ejecuta sin errores.
O_CMD Entrada BOOL E, A, M, D, L Entrada de la orden ”abrir”.
C_CMD Entrada BOOL E, A, M, D, L Entrada de la orden ”cerrar”.
S_CMD Entrada BOOL E, A, M, D, L Entrada de la orden ”stop”.
O_FB Entrada BOOL E, A, M, D, L Entrada de acuse al abrir.
C_FB Entrada BOOL E, A, M, D, L Entrada de acuse al cerrar.
OO Salida BOOL E, A, M, D, L Salida ”abrir”.
CO Salida BOOL E, A, M, D, L Salida ”cerrar”.
OA Salida BOOL E, A, M, D, L Salida de alarma al abrir.
CA Salida BOOL E, A, M, D, L Salida de alarma al cerrar.
Q Salida BOOL E, A, M, D, L El estado de señal 1 indica que existe una condición dealarma.
ET Estático DINT E, A, M, D, L Valor actual del tiempo transcurrido (medido en ms).
PT Estático DINT E, A, M, D, L Valor del tiempo preseleccionado (medido en ms).
PREV_TIME Estático DWORD E, A, M, D, L Tiempo anterior del sistema.
O_HIS Estático BOOL E, A, M, D, L Bit de evolución de ”abrir”.
C_HIS Estático BOOL E, A, M, D, L Bit de evolución de ”cerrar”.
Este bloque de función no detecta condiciones de error.
La figura 5-3 muestra cómo opera el bloque de función MCAT. El bloque de funciónse ejecuta cuando el estado de señal de la entrada E 0.0 es 1 (activada). En esteejemplo, y como consecuencia de los estados que tienen las entradas, el bloque defunció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 dehabilitació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.
Parámetros
Información sobreerrores
Ejemplo
Funciones y bloques de función de temporización
5-9Software estándar para S7-300 y S7-400 Funciones estándar, parte 2A5E00066869-03
O_CMD M0.0 = VERDADEROC_CMD M0.1 = FALSOS_CMD M0.2 = FALSOO_FB M1.0 = FALSOC_FB M1.1 = FALSOOO M2.0 = FALSOCO M2.1 = FALSOOA M3.0 = FALSOCA M3.1 = FALSOQ M4.0 = FALSO
Instancia DB82ET DBD4 = L#2PT DBD8 = L#22O_HIS DBX16.0 = VERDADEROC_HIS DBX16.1 = FALSO
E 0.0 A 4.0MCATFB82
EN
O_CMD
C_CMD
ENO
OOM0.0
M0.1
M2.0
CO M2.1
S_CMDM0.2
OA M3.0
DB82
Antes de la ejecución:
Después de la ejecución:
OO M2.0 = VERDADEROCO M2.1 = FALSOOA M3.0 = FALSOCA M3.1 = FALSOQ M4.0 = VERDADERO
Instancia DB82ET DBD4 = L#4O_HIS DBX16.0 = VERDADEROCMD_HIS DBX16.1 = FALSO
O_FBM1.0
CA M3.1
C_FBM1.1
Q M4.0
Figura 5-3 Alarma de tiempo para control motor (MCAT)
Funciones y bloques de función de temporización
5-10Software estándar para S7-300 y S7-400 Funciones estándar, parte 2
A5E00066869-03
5.4 Evento drum enmascarable (DRUM): FB85
El bloque de función ”Evento drum enmascarable” (DRUM) ocupa los bits de salidaprogramados (de OUT1 a OUT16) y la palabra de salida (OUT_WORD) con losvalores programados (OUT_VAL) del paso apropiado (esto es, del que cumple lascondiciones de las máscaras de habilitación (S_MASK) para ese paso) mientras elbloque de función DRUM permanece en ese paso. El DRUM avanza al siguientepaso, o bien cuando el evento para el paso es verdadero y el tiempo programadopara 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 locual 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 detiempo predeterminada (DTBP) del DRUM multiplicado por el valor de contaje pre-seleccionado/los valores del paso (S_PRESET) correspondientes a cada paso. Alprincipio de cada nuevo paso se carga este valor calculado en DCC, el cual contieneel 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 alsiguiente 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 cerocomienzan la temporización cuando el estado de señal del bit de evento es 1. Losbits 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 noha 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 configurabletiene un estado de señal 0, el bit correspondiente no varía. Cada uno de los bits de lamá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 desalida (OUT_WORD). El bit de salida OUT16 se corresponde con el bit más signifi-cativo de la palabra de salida (OUT_WORD).
Descripción
Funciones y bloques de función de temporización
5-11Software estándar para S7-300 y S7-400 Funciones estándar, parte 2A5E00066869-03
En la tabla 5-5 se describen los parámetros del bloque de función ”Evento drumenmascarable” (DRUM).
Tabla 5-5 Parámetros del bloque de función DRUM (FB85)
Parámetro Declaración Tipo dedatos
Area de memoriaDescripción
EN Entrada BOOL E, A, M, D, L La entrada de habilitación con estado de señal 1 activa elcuadro.
ENO Salida BOOL E, A, M, D, L La salida de habilitación tiene el estado de señal 1, si elbloque de función se ejecuta sin errores.
RESET Entrada BOOL E, A, M, D, L El estado de señal 1 indica que existe una condición dedesactivación.
JOG Entrada BOOL E, A, M, D, L El cambio del estado de señal de 1 a 1 hace avanzar aDRUM al siguiente paso.
DRUM_EN Entrada BOOL E, A, M, D, L El estado de señal 1 habilita al bloque de función DRUMpara que avance conforme al evento y a los criterios detemporización.
LST_STEP Entrada BYTE E, A, M, D, L,o constante
Número del último paso programado.
EVENT1 Entrada BOOL E, A, M, D, L Bit de evento 1; el estado de señal inicial es 1.
EVENT2 Entrada BOOL E, A, M, D, L Bit de evento 2; el estado de señal inicial es 1.
EVENT3 Entrada BOOL E, A, M, D, L Bit de evento 3; el estado de señal inicial es 1.
EVENT4 Entrada BOOL E, A, M, D, L Bit de evento 4; el estado de señal inicial es 1.
EVENT5 Entrada BOOL E, A, M, D, L Bit de evento 5; el estado de señal inicial es 1.
EVENT6 Entrada BOOL E, A, M, D, L Bit de evento 6; el estado de señal inicial es 1.
EVENT7 Entrada BOOL E, A, M, D, L Bit de evento 7; el estado de señal inicial es 1.
EVENT8 Entrada BOOL E, A, M, D, L Bit de evento 8; el estado de señal inicial es 1.
EVENT9 Entrada BOOL E, A, M, D, L Bit de evento 9; el estado de señal inicial es 1.
EVENT10 Entrada BOOL E, A, M, D, L Bit de evento 10; el estado de señal inicial es 1.
EVENT11 Entrada BOOL E, A, M, D, L Bit de evento 11; el estado de señal inicial es 1.
EVENT12 Entrada BOOL E, A, M, D, L Bit de evento 12; el estado de señal inicial es 1.
EVENT13 Entrada BOOL E, A, M, D, L Bit de evento 13; el estado de señal inicial es 1.
EVENT14 Entrada BOOL E, A, M, D, L Bit de evento 14; el estado de señal inicial es 1.
EVENT15 Entrada BOOL E, A, M, D, L Bit de evento 15; el estado de señal inicial es 1.
EVENT16 Entrada BOOL E, A, M, D, L Bit de evento 16; el estado de señal inicial es 1.
OUT1 Salida BOOL E, A, M, D, L Bit de salida 1.
OUT2 Salida BOOL E, A, M, D, L Bit de salida 2.
OUT3 Salida BOOL E, A, M, D, L Bit de salida 3.
OUT4 Salida BOOL E, A, M, D, L Bit de salida 4.
OUT5 Salida BOOL E, A, M, D, L Bit de salida 5.
OUT6 Salida BOOL E, A, M, D, L Bit de salida 6.
OUT7 Salida BOOL E, A, M, D, L Bit de salida 7.
OUT8 Salida BOOL E, A, M, D, L Bit de salida 8.
OUT9 Salida BOOL E, A, M, D, L Bit de salida 9.
OUT10 Salida BOOL E, A, M, D, L Bit de salida 10.
OUT11 Salida BOOL E, A, M, D, L Bit de salida 11.
Parámetros
Funciones y bloques de función de temporización
5-12Software estándar para S7-300 y S7-400 Funciones estándar, parte 2
A5E00066869-03
Tabla 5-5 Parámetros del bloque de función DRUM (FB85)
ParámetroDescripción
Area de memoriaTipo dedatos
Declaración
OUT12 Salida BOOL E, A, M, D, L Bit de salida 12.
OUT13 Salida BOOL E, A, M, D, L Bit de salida 13.
OUT14 Salida BOOL E, A, M, D, L Bit de salida 14.
OUT15 Salida BOOL E, A, M, D, L Bit de salida 15.
OUT16 Salida BOOL E, A, M, D, L Bit de salida 16.
Q Salida BOOL E, A, M, D, L El estado de señal 1 indica que ha terminado el tiempodel último paso.
OUT_WORD Salida WORD E, A, M, D, L, P Dirección de la palabra en la que el bloque de funciónDRUM escribe los valores de salida.
ERR_CODE Salida WORD E, A, M, D, L, P Da el valor W#16#0000 cuando la función se ejecutasin errores; si los valores son distintos de W#16#0000,véase la información sobre errores.
JOG_HIS Estático BOOL E, A, M, D, L Bit de evolución de JOG.
EOD Estático BOOL E, A, M, D, L El estado de señal 1 indica que se ha terminado el tiempodel último paso.
DSP Estático BYTE E, A, M, D, L, P Paso preseleccionado del contador.
DSC Estático BYTE E, A, M, D, L, P Paso actual del contador.
DCC Estático DWORD E, A, M, D, L, P Valor actual del contador.
DTBP Estático WORD E, A, M, D, L, P Base de tiempo predeterminada del contador.
PREV_TIME Estático DWORD E, A, M, D, L Tiempo anterior del sistema.
S_PRESET Estático ARRAY ofWORD
E, A, M, D, L Valor de contaje preseleccionado para cada paso [de 1a 16] (medido en ms).
OUT_VAL Estático ARRAY ofBOOL
E, A, M, D, L Valores de salida para cada paso [de 1 a 16, de 1 a 15].
S_MASK Estático ARRAY ofBOOL
E, A, M, D, L Máscara configurable para cada paso [de 1 a 16, de 1a 15]. El estado de señal inicial es en todos 1.
Si se da alguna de las condiciones enumeradas en la tabla 5-6, el bloque de funciónDRUM permanece en el paso en el que se encuentra en ese momento. Si el bloquede función se ejecuta sin errores, el estado de señal de la salida de habilitación(ENO) se pone a 0, y el código de error (ERR_CODE) se ajusta como corresponde.
Tabla 5-6 Condiciones de error con el bloque de función FB85
ERR_CODE Significado
W#16#000B El valor de LST_STEP es menor que 1 o mayor que 16.
W#16#000C El valor de DSC es menor que 1 o mayor que LST_STEP.
W#16#000D El valor de DSP es menor que 1 o mayor que LST_STEP.
Información sobreerrores
Funciones y bloques de función de temporización
5-13Software estándar para S7-300 y S7-400 Funciones estándar, parte 2A5E00066869-03
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 delpaso 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 alos 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 dehabilitación (ENO) y de la salida A 4.0 se ponen a 1 (activadas), y el código de error(ERR_CODE) toma el valor W#16#0000.
Nota
Puede inicializar los parámetros estáticos utilizando el editor de bloques de datos.
E 0.0 A 4.0DRUMFB85EN
RESET
JOG
ENO
OUT1
M0.0
M0.1
M4.0
DRUM_ENM0.2
DB85
LST_STEP
EVENT1
EVENT2M20.0
EVENT4M20.1
EVENT6M20.2
M20.3EVENT8
EVENT10M20.4
EVENT12M20.5
EVENT14
EVENT16
M20.6
M20.7
MB1
EVENT3
EVENT5
EVENT7
OUT2OUT3
OUT4
OUT5
OUT6
OUT7
OUT8
OUT9
OUT10
OUT11
OUT12
OUT13
OUT15
Q
ERR_CODE
M4.1M4.2
M4.3
M4.4
M4.5
M4.6
M4.7
M5.0
M5.1
M5.2
M5.3
M5.4
EVENT9
EVENT11
EVENT13
EVENT15
OUT14
OUT16
OUT_WORD
M5.5
M5.7
MW8
M5.6
M6.0
MW10
Figura 5-4 Evento drum enmascarable (DRUM)
Ejemplo
Funciones y bloques de función de temporización
5-14Software estándar para S7-300 y S7-400 Funciones estándar, parte 2
A5E00066869-03
Antes de la ejecución: Antes de la ejecución (continuación):
EntradasRESET M0.0 = FALSOJOG M0.1 = FALSODRUM_EN M0.2 = VERDADEROLST_STEP MB1 = B#16#08EVENT2 M20.0 = FALSOEVENT4 M20.1 = FALSOEVENT6 M20.2 = FALSOEVENT8 M20.3 = FALSOEVENT10 M20.4 = FALSOEVENT12 M20.5 = FALSOEVENT14 M20.6 = FALSOEVENT16 M20.7 = FALSO
DB85 de instanciaJOG_HIS DBX12.0 = FALSOEOD DBX12.1 = FALSODSP DBB13 = W#16#0001DSC DBB14 = W#16#0001DCC DBD16 = DW#16#0000000ADTBP DBW20 = W#16#0001S_PRESET [1] DBW26 = W#16#0064S_PRESET [2] DBW28 = W#16#00C8OUT_VAL [1,0] DBX58.0 = VERDADEROOUT_VAL [1,1] DBX58.1 = VERDADEROOUT_VAL [1,2] DBX58.2 = VERDADEROOUT_VAL [1,3] DBX58.3 = VERDADEROOUT_VAL [1,4] DBX58.4 = VERDADEROOUT_VAL [1,5] DBX58.5 = VERDADEROOUT_VAL [1,6] DBX58.6 = VERDADEROOUT_VAL [1,7] DBX58.7 = VERDADEROOUT_VAL [1,8] DBX59.0 = VERDADEROOUT_VAL [1,9] DBX59.1 = VERDADEROOUT_VAL [1,10] DBX59.2 = VERDADEROOUT_VAL [1,11] DBX59.3 = VERDADEROOUT_VAL [1,12] DBX59.4 = VERDADEROOUT_VAL [1,13] DBX59.5 = VERDADEROOUT_VAL [1,14] DBX59.6 = VERDADEROOUT_VAL [1,15] DBX59.7 = VERDADEROOUT_VAL [2,0] DBX60.0 = FALSOOUT_VAL [2,1] DBX60.1 = FALSOOUT_VAL [2,2] DBX60.2 = FALSOOUT_VAL [2,3] DBX60.3 = FALSOOUT_VAL [2,4] DBX60.4 = FALSOOUT_VAL [2,5] DBX60.5 = FALSOOUT_VAL [2,6] DBX60.6 = FALSOOUT_VAL [2,7] DBX60.7 = FALSOOUT_VAL [2,8] DBX61.0 = FALSOOUT_VAL [2,9] DBX61.1 = FALSOOUT_VAL [2,10] DBX61.2 = FALSOOUT_VAL [2,11] DBX61.3 = FALSOOUT_VAL [2,12] DBX61.4 = FALSOOUT_VAL [2,13] DBX61.5 = FALSOOUT_VAL [2,14] DBX61.6 = FALSOOUT_VAL [2,15] DBX61.7 = FALSO
S_MASK [2,0] DBX92.0 = FALSOS_MASK [2,1] DBX92.1 = VERDADEROS_MASK [2,2] DBX92.2 = VERDADEROS_MASK [2,3] DBX92.3 = VERDADEROS_MASK [2,4] DBX92.4 = VERDADEROS_MASK [2,5] DBX92.5 = FALSOS_MASK [2,6] DBX92.6 = VERDADEROS_MASK [2,7] DBX92.7 = VERDADEROS_MASK [2,8] DBX93.0 = FALSOS_MASK [2,9] DBX93.1 = FALSOS_MASK [2,10] DBX93.2 = VERDADEROS_MASK [2,11] DBX93.3 = VERDADEROS_MASK [2,12] DBX93.4 = VERDADEROS_MASK [2,13] DBX93.5 = VERDADEROS_MASK [2,14] DBX93.6 = FALSOS_MASK [2,15] DBX93.7 = VERDADEROSalidasQ M6.0 = FALSOOUTWORD MW8 = W#16#FFFFOUT1 M4.0 = VERDADEROOUT2 M4.1 = VERDADEROOUT3 M4.2 = VERDADEROOUT4 M4.3 = VERDADEROOUT5 M4.4 = VERDADEROOUT6 M4.5 = VERDADEROOUT7 M4.6 = VERDADEROOUT8 M4.7 = VERDADEROOUT9 M5.0 = VERDADEROOUT10 M5.1 = VERDADEROOUT11 M5.2 = VERDADEROOUT12 M5.3 = VERDADEROOUT13 M5.4 = VERDADEROOUT14 M5.5 = VERDADEROOUT15 M5.6 = VERDADEROOUT16 M5.7 = VERDADERO
OUT1 M4.0 = VERDADEROOUT2 M4.1 = FALSOOUT3 M4.2 = FALSOOUT4 M4.3 = FALSOOUT5 M4.4 = FALSOOUT6 M4.5 = VERDADEROOUT7 M4.6 = FALSOOUT8 M4.7 = FALSOOUT9 M5.0 = VERDADEROOUT10 M5.1 = VERDADEROOUT11 M5.2 = FALSOOUT12 M5.3 = FALSOOUT13 M5.4 = FALSOOUT14 M5.5 = FALSOOUT15 M5.6 = VERDADEROOUT16 M5.7 = FALSOQ M6.0 = FALSOOUTWORD MW8 = W#16#4321ERR_CODE MW10 = W#16#0000
DB85 de instanciaJOG_HIS DBX12.0 = FALSOEOD DBX12.1 = FALSODSC DBB14 = W#16#0002DCC DBD16 = DW#16#000000C8
Después de la ejecución:
Figura 5-4 Evento drum enmascarable (DRUM) (continuación)
Funciones y bloques de función de temporización
6-1Software estándar para S7-300 y S7-400 Funciones estándar, parte 2A5E00066869-03
Funciones y bloques de función deconversión
Este capítulo describe las funciones (FC) de conversión y los bloques de función(FB) de conversión que puede añadir a las operaciones estándar para obtener unamayor flexibilidad en la programación.
Apartado Descripción Página
6.1 Crear el patrón de bits para la visualización con siete segmentos(SEG): FC93
6-2
6.2 Convertir una cadena de caracteres ASCII en una cifra hexadeci-mal (ATH): FC94
6-4
6.3 Convertir una cifra hexadecimal en una cadena de caracteres AS-CII (HTA): FC95
6-6
6.4 Codificar una posición binaria (ENCO): FC96 6-8
6.5 Decodificar una posición binaria (DECO): FC97 6-9
6.6 Generar el complemento a diez (BCDCPL): FC98 6-10
6.7 Sumar la cantidad de bits activados (BITSUM): FC99 6-11
6.8 Escalar valores (SCALE): FC105 6-12
6.9 Desescalar valores (UNSCALE): FC106 6-14
6.10 Algoritmo avance/retardo (LEAD_LAG): FB80 6-16
6
6-2Software estándar para S7-300 y S7-400 Funciones estándar, parte 2
A5E00066869-03
6.1 Crear el patrón de bits para el display de 7 segmentos (SEG): FC93
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) encuatro 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 lospatrones de bits de salida.
Dígito Display
0 0 1 1 1 1 1 10 0 0 0 0
0 0 0 0 0 1 1 00 0 0 1 1
0 1 0 1 1 0 1 10 0 1 0 2
0 1 0 0 1 1 1 10 0 1 1 3
0 1 1 0 0 1 1 00 1 0 0 4
0 1 1 0 1 1 0 10 1 0 1 5
0 1 1 1 1 1 0 10 1 1 0 60 0 0 0 0 1 1 10 1 1 1 7
0 1 1 1 1 1 1 11 0 0 0 8
0 1 1 0 0 1 1 11 0 0 1 9
0 1 1 1 0 1 1 11 0 1 0 A
0 1 1 1 1 1 0 01 0 1 1 b
0 0 1 1 1 0 0 11 1 0 0 C0 1 0 1 1 1 1 01 1 0 1 d
0 1 1 1 1 0 0 11 1 1 0 E
0 1 1 1 0 0 0 11 1 1 1 F
Display de7 segmentos
b
c
f
e
a
g
d
– g f e d c b a
Figura 6-1 Patrones de bits de salida para el display de siete segmentos
En la tabla 6-1 se describen los parámetros de la función ”Crear el patrón de bitspara el display de siete segmentos” (SEG).
Tabla 6-1 Parámetros de la función SEG (FC93)
Parámetro Declaración Tipo dedatos
Area de memoriaDescripción
EN Entrada BOOL E, A, M, D, L La entrada de habilitación con estado de señal 1 activa elcuadro.
ENO Salida BOOL E, A, M, D, L La salida de habilitación tiene el estado de señal 1 si lafunción se ejecuta sin errores.
IN Entrada WORD E, M, D, P,o constante
Palabra fuente con cuatro dígitos hexadecimales.
OUT Salida DWORD A, M, D, L, P Patrón de bits destino con cuatro bytes.
Descripción
Parámetros
Funciones y bloques de función de conversión
6-3Software estándar para S7-300 y S7-400 Funciones estándar, parte 2A5E00066869-03
Esta función no detecta condiciones de error.
La figura 6-2 muestra cómo opera la función ”Crear el patrón de bits para el displayde siete segmentos” (SEG). La función se ejecuta cuando el estado de señal de laentrada 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).
E 0.0 A 4.0SEGFC93
EN ENO
INW#16#1234 OUT MD0
OUT MD0 = DW#16#065B4F66
Figura 6-2 Crear el patrón de bits para el display de siete segmentos (SEG)
Información sobreerrores
Ejemplo
Funciones y bloques de función de conversión
6-4Software estándar para S7-300 y S7-400 Funciones estándar, parte 2
A5E00066869-03
6.2 Convertir una cadena de caracteres ASCII en una cifra hexadecimal(ATH): FC94
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ígitoshexadecimales, 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, lapalabra de salida tiene la mitad de longitud que la palabra de entrada. Los caracteresASCII se convierten y disponen en la salida hexadecimal siguiendo el mismo ordenen que se han leído. En caso de que la cantidad de caracteres ASCII sea impar, elcuarteto derecho del byte de la última cifra hexadecimal que se ha convertido serellena con ceros.
En la tabla 6-2 se describen los parámetros de la función ”Convertir una cadena decaracteres ASCII en una cifra hexadecimal” (ATH).
Tabla 6-2 Parámetros de la función ATH (FC94)
Parámetro Declaración Tipo dedatos
Area de memoria Descripción
EN Entrada BOOL E, A, M, D, L La entrada de habilitación con estado de señal 1 activa elcuadro.
ENO Salida BOOL E, A, M, D, L La salida de habilitación tiene el estado de señal 1 si lafunción se ejecuta sin errores.
IN Entrada Pointer* E, A, M, D, L Apunta a la dirección inicial de una cadena ASCII.
N Entrada INT E, A, M, L, P Cantidad de caracteres ASCII a convertir.
RET_VAL Salida WORD E, A, M, D, L, P Da el valor W#16#0000 cuando la función se ejecuta sinerrores; si los valores son distintos de W#16#0000, véasela información sobre errores.
OUT Salida Pointer* A, M, D, L Apunta a la dirección inicial de la tabla.
* Puntero en formato de palabra doble cuando se trata de direccionamiento interárea indirecto por registro.
Si se encuentra algún carácter ASCII que no es válido se convierte como si fuera 0.En este caso, el estado de señal de la salida de habilitación (ENO) se pone a 0, y elvalor de respuesta (RET_VAL) toma el valor W#16#0007.
La figura 6-3 muestra cómo opera la función ”Convertir una cadena de caracteresASCII en una cifra hexadecimal” (ATH). La función se ejecuta cuando el estado deseñal de la entrada E 0.0 es 1 (activada). El parámetro de entrada N = 5 indica queson cinco los caracteres ASCII a convertir. Estos caracteres están almacenados en elbloque 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 punteroOUT, DB2.DBX0.0 (bloque de datos 2). Como en este caso hay una cantidad imparde 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 elvalor 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.
Descripción
Parámetros
Información sobreerrores
Ejemplo
Funciones y bloques de función de conversión
6-5Software estándar para S7-300 y S7-400 Funciones estándar, parte 2A5E00066869-03
E 0.0 A 4.0ATHFC94
EN ENO
IN
N
RET_VALP#DB1.DBX10.0
W#16#05
MW0
OUT P#DB2.DBX0.0
Antes de la ejecución:Representación de la cadena ASCII: ‘‘B90AC’’
IN DBB10 = B#16#42DBB11 = B#16#39DBB12 = B#16#30DBB13 = B#16#41DBB14 = B#16#43
Después de la ejecución:Representación del byte hexadecimal: B90AC0
OUT DBB0 = B#16#B9DBB1 = B#16#0ADBB2 = B#16#C0
Figura 6-3 Convertir una cadena de caracteres ASCII en una cifra hexadecimal (ATH)
Carácter ASCII Valor hexadecimalASCII
Cifra hexadecimalconvertida
0123456789ABCDEF
0123456789ABCDEF
30313233343536373839414243444546
Figura 6-4 Caracteres ASCII y sus valores hexadecimales equivalentes
Funciones y bloques de función de conversión
6-6Software estándar para S7-300 y S7-400 Funciones estándar, parte 2
A5E00066869-03
6.3 Convertir una cifra hexadecimal en una cadena de caracteres ASCII(HTA): FC95
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 salidatiene, lógicamente, una longitud dos veces mayor que la palabra de entrada. Cadacuarteto 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 cuartetosituado a la derecha en la misma cifra.
En la tabla 6-3 se describen los parámetros de la función ”Convertir una cifrahexadecimal en una cadena de caracteres ASCII” (HTA).
Tabla 6-3 Parámetros de la función HTA (FC95)
Parámetro Declaración Tipo dedatos
Area de memoria Descripción
EN Entrada BOOL E, A, M, D, L La entrada de habilitación con estado de señal 1 activa elcuadro.
ENO Salida BOOL E, A, M, D, L La salida de habilitación tiene el estado de señal 1 si lafunción se ejecuta sin errores.
IN Entrada Pointer* E, A, M, D Apunta a la dirección inicial de las cifras hexadecimales.
N Entrada WORD E, A, M, L, P Cantidad de bytes hexadecimales a convertir.
OUT Salida Pointer* A, M, D, L Apunta a la dirección inicial de la tabla destino.
* Puntero en formato de palabra doble cuando se trata de direccionamiento interárea indirecto por registro.
Esta función no detecta condiciones de error.
Descripción
Parámetros
Información sobreerrores
Funciones y bloques de función de conversión
6-7Software estándar para S7-300 y S7-400 Funciones estándar, parte 2A5E00066869-03
La figura 6-5 muestra cómo opera la función ”Convertir una cifra hexadecimal enuna cadena de caracteres ASCII” (HTA). La función se ejecuta cuando el estado deseñal de la entrada E 0.0 es 1 (activada). El parámetro de entrada N = 3 indica quehay 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 indicael puntero OUT, DB2.DBX0.0 (bloque de datos 2). (La figura 6-6 muestra cuál es elequivalente 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).
E 0.0 A 4.0HTAFC95
EN ENO
IN
N
OUTP#DB1.DBX10.0
W#16#03
P#DB2.DBX0.0
Antes de la ejecución:Representación del byte hexadecimal: F97AC1IN DBB10 = B#16#F9
DBB11 = B#16#7ADBB12 = B#16#C1Después de la ejecución:
Representación de la cadena ASCII: ‘‘F97AC1’’OUT DBB0 = B#16#46
DBB1 = B#16#39DBB2 = B#16#37DBB3 = B#16#41DBB4 = B#16#43DBB5 = B#16#31
Figura 6-5 Convertir una cifra hexadecimal en una cadena de caracteres ASCII (HTA)
Dígito hexadecimal Valor hexadecimalASCII
Caracter ASCIIconvertido
0123456789ABCDEF
0123456789ABCDEF
30313233343536373839414243444546
Figura 6-6 Cifras hexadecimales y sus valores equivalentes ASCII
Ejemplo
Funciones y bloques de función de conversión
6-8Software estándar para S7-300 y S7-400 Funciones estándar, parte 2
A5E00066869-03
6.4 Codificar una posición binaria (ENCO): FC96
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 resultadocomo 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.
En la tabla 6-4 se describen los parámetros de la función ”Codificar una posiciónbinaria” (ENCO).
Tabla 6-4 Parámetros de la función ENCO (FC96)
Parámetro Declaración Tipo dedatos
Area de memoria Descripción
EN Entrada BOOL E, A, M, D, L La entrada de habilitación con estado de señal 1 activa elcuadro.
ENO Salida BOOL E, A, M, D, L La salida de habilitación tiene el estado de señal 1 si lafunción se ejecuta sin errores.
IN Entrada DWORD E, M, D, L, P,o constante
Valor a codificar.
RET_VAL Salida INT A, M, D, L, P Valor de respuesta (conteniendo una cifra binaria de5 bits).
Esta función no detecta condiciones de error.
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).
E 0.0 A 4.0ENCOFC96
EN ENO
INRET_VAL
RET_VAL MW0 = 3
MW0DW#16#12345678
Figura 6-7 Codificar una posición binaria (ENCO)
Descripción
Parámetros
Información sobreerrores
Ejemplo
Funciones y bloques de función de conversión
6-9Software estándar para S7-300 y S7-400 Funciones estándar, parte 2A5E00066869-03
6.5 Decodificar una posición binaria (DECO): FC97
La función ”Decodificar una posición binaria” (DECO) convierte una cifra binariade 5 bits (0-31) especificada en la entrada IN decodificándola en un valor, que es elvalor de respuesta de la función correspondiente a la posición del bit. Cuando elvalor de la entrada IN es mayor que 31 se realiza una operación módulo 32 paraobtener una cifra binaria de 5 bits.
En la tabla 6-5 se describen los parámetros de la función ”Decodificar una posiciónbinaria” (DECO).
Tabla 6-5 Parámetros de la función DECO (FC97)
Parámetro Declaración Tipo dedatos
Area de memoria Descripción
EN Entrada BOOL E, A, M, D, L La entrada de habilitación con estado de señal 1 activa elcuadro.
ENO Salida BOOL E, A, M, D, L La salida de habilitación tiene el estado de señal 1 si lafunción se ejecuta sin errores.
IN Entrada WORD E, M, D, L, P,o constante
Variable a decodificar.
RET_VAL Salida DWORD A, M, D, L, P Valor de respuesta.
Esta función no detecta condiciones de error.
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).
RET_VAL MD0 = DW#16#00000008
E 0.0 A 4.0DECOFC97
EN ENO
INRET_VAL
W#16#0003MD0
Figura 6-8 Decodificar una posición binaria (DECO)
Descripción
Parámetros
Información sobreerrores
Ejemplo
Funciones y bloques de función de conversión
6-10Software estándar para S7-300 y S7-400 Funciones estándar, parte 2
A5E00066869-03
6.6 Generar el complemento a diez (BCDCPL): FC98
La función ”Generar el complemento a diez” (BCDCPL) devuelve como valor derespuesta el complemento a diez de la cifra BCD de 7 dígitos que se haya indicadoen la entrada IN. La fórmula aritmética de esta operación es la siguiente:
10000000 (en BCD)– valor BCD de 7 dígitos= complemento a diez (en BCD)
En la tabla 6-6 se describen los parámetros de la función ”Generar el complemento adiez” (BCDCPL).
Tabla 6-6 Parámetros de la función BCDCPL (FC98)
Parámetro Declaración Tipo dedatos
Area de memoria Descripción
EN Entrada BOOL E, A, M, D, L La entrada de habilitación con estado de señal 1 activa elcuadro.
ENO Salida BOOL E, A, M, D, L La salida de habilitación tiene el estado de señal 1 si lafunción se ejecuta sin errores.
IN Entrada DWORD E, M, D, L, P,o constante
Cifra BCD de 7 dígitos.
RET_VAL Salida DWORD A, M, D, L, P Valor de respuesta.
Esta función no detecta condiciones de error.
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).
E 0.0 A 4.0BCDCPLFC98
EN ENO
INRET_VAL
DW#16#01234567MD0
RET_VAL MD0 = DW#16#08765433
Figura 6-9 Generar el complemento a diez (BCDCPL)
Descripción
Parámetros
Información sobreerrores
Ejemplo
Funciones y bloques de función de conversión
6-11Software estándar para S7-300 y S7-400 Funciones estándar, parte 2A5E00066869-03
6.7 Sumar la cantidad de bits activados (BITSUM): FC99
La función ”Sumar la cantidad de bits activados” (BITSUM) cuenta qué cantidad debits hay puestos a 1 (activados) en la entrada IN y devuelve dicha cantidad comovalor de respuesta.
En la tabla 6-7 se describen los parámetros de la función ”Sumar la cantidad de bitsactivados” (BITSUM).
Tabla 6-7 Parámetros de la función BITSUM (FC99)
Parámetro Declaración Tipo dedatos
Area de memoria Descripción
EN Entrada BOOL E, A, M, D, L La entrada de habilitación con estado de señal 1 activa elcuadro.
ENO Salida BOOL E, A, M, D, L La salida de habilitación tiene el estado de señal 1 si lafunción se ejecuta sin errores.
IN Entrada DWORD E, M, D, L, P,o constante
Variable en la que se van a contar los bits.
RET_VAL Salida INT A, M, D, L, P Valor de respuesta.
Esta función no detecta condiciones de error.
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 dobleDW#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).
E 0.0 A 4.0BITSUMFC99
EN ENO
INRET_VAL
DW#16#12345678MW0
RET_VAL MW0 = W#16#000D
Figura 6-10 Sumar la cantidad de bits activados (BITSUM)
Descripción
Parámetros
Información sobreerrores
Ejemplo
Funciones y bloques de función de conversión
6-12Software estándar para S7-300 y S7-400 Funciones estándar, parte 2
A5E00066869-03
6.8 Escalar valores (SCALE): FC105
La función ”Escalar valores” (SCALE) toma un valor entero en la entrada IN y loconvierte en un valor real, convirtiéndolo a escala en un rango comprendido entreun límite inferior y un límite superior (LO_LIM y HI_LIM). El resultado se escribeen la salida OUT. La función SCALE aplica la fórmula siguiente:
OUT = [ ((FLOAT (IN) – K1)/(K2–K1)) * (HI_LIM–LO_LIM)] + LO_LIM
Las constantes K1 y K2 se aplican de forma diferente, dependiendo de si el valor deentrada es BIPOLAR o UNIPOLAR.
• BIPOLAR: Se supone que el valor entero de entrada debe estar entre –27648 y 27648, por lo tanto,K1 = –27648,0 y K2 = +27648,0
• UNIPOLAR: Se supone que el valor entero de entrada debe estar entre 0 y 27648, por lo tanto,K1 = 0,0 y K2 = +27648,0
Si el valor entero de entrada es mayor que K2, la salida (OUT) se une a HI_LIM yse indica un error. Si el valor entero de entrada es menor que K1, la salida se une aLO_LIM y se indica un error.
Se puede efectuar la conversión escalar inversa programando los límites de talforma que el límite inferior sea mayor que el límite superior (LO_LIM > HI_LIM).En la conversión escalar inversa el valor de la salida disminuye cuando aumenta elvalor de la entrada.
En la tabla 6-8 se describen los parámetros de la función ”Escalar valores”(SCALE).
Tabla 6-8 Parámetros de la función SCALE (FC105)
Parámetro Declaración Tipo dedatos
Area de memoria Descripción
EN Entrada BOOL E, A, M, D, L La entrada de habilitación con estado de señal 1 activa elcuadro.
ENO Salida BOOL E, A, M, D, L La salida de habilitación tiene el estado de señal 1 si lafunción se ejecuta sin errores.
IN Entrada INT E, A, M, D, L, P,o constante
Valor de entrada a convertir a escala en valor REAL.
HI_LIM Entrada REAL E, A, M, D, L, P,o constante
Límite superior del rango escalar.
LO_LIM Entrada REAL E, A, M, D, L, P,o constante
Límite inferior del rango escalar.
BIPOLAR Entrada BOOL E, A, M, D, L El estado de señal 1 indica que el valor de entrada esbipolar; con el estado de señal 0 indica que es unipolar.
OUT Salida REAL E, A, M, D, L, P Resultado de la conversión a escala.
RET_VAL Salida WORD E, A, M, D, L, P Da el valor W#16#0000 cuando la función se ejecuta sinerrores; si los valores son distintos de W#16#0000, véasela información sobre errores.
Descripción
Parámetros
Funciones y bloques de función de conversión
6-13Software estándar para S7-300 y S7-400 Funciones estándar, parte 2A5E00066869-03
Si el valor entero de entrada es mayor que K2, la salida (OUT) se une a HI_LIM yse indica un error. Si el valor entero de entrada es menor que K1, la salida se une aLO_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.
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 esteejemplo, 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 loindica 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 elvalor W#16#0000.
E 0.0 A 4.0SCALEFC105
EN ENO
IN
HI_LIM
LO_LIM
RET_VALMW10
MD20
MD30
MW0
BIPOLAR
Antes de la ejecución:
IN MW10 = 22
HI_LIM MD20 = 100.0
LO_LIM MD30 = 0.0
OUT MD40 = 0.0
BIPOLAR E 2.0 = TRUE
Después de la ejecución:
OUT MD40 = 50.03978588
E 2.0
OUT MD40
Figura 6-11 Escalar valores (SCALE)
Información sobreerrores
Ejemplo
Funciones y bloques de función de conversión
6-14Software estándar para S7-300 y S7-400 Funciones estándar, parte 2
A5E00066869-03
6.9 Desescalar valores (UNSCALE): FC106
La función ”Desescalar valores” (UNSCALE) toma en la entrada IN un valor realque está ajustado a escala en un rango comprendido entre un límite inferior y unlímite superior (LO_LIM y HI_LIM), y lo convierte en un valor entero. El resultadose escribe en la salida OUT. La función UNSCALE aplica la fórmula siguiente:
OUT = [ ((IN–LO_LIM)/(HI_LIM–LO_LIM)) * (K2–K1) ] + K1
Las constantes K1 y K2 se aplican de forma diferente, dependiendo de si el valor deentrada es BIPOLAR o UNIPOLAR.
• BIPOLAR: Se supone que el valor entero de salida debe estar entre –27648 y 27648, por lo tanto,K1 = –27648,0 y K2 = +27648,0
• UNIPOLAR: Se supone que el valor entero de salida debe estar entre 0 y 27648, por lo tanto,K1 = 0,0 y K2 = +27648,0
Si el valor real de entrada queda fuera del rango comprendido entre los límites infe-rior y superior de su tipo (BIPOLAR o UNIPOLAR), la salida (OUT) se fija al valorlímite más cercano (a LO_LIM o a HI_LIM), y se devuelve un error.
En la tabla 6-9 se describen los parámetros de la función ”Desescalar valores”(UNSCALE).
Tabla 6-9 Parámetros de la función UNSCALE (FC106)
Parámetro Declaración Tipo dedatos
Area de memoria Descripción
EN Entrada BOOL E, A, M, D, L La entrada de habilitación con estado de señal 1 activa elcuadro.
ENO Salida BOOL E, A, M, D, L La salida de habilitación tiene el estado de señal 1 si lafunción se ejecuta sin errores.
IN Entrada REAL E, A, M, D, L, P,o constante
Valor de entrada a desescalar convirtiéndolo en un valorentero.
HI_LIM Entrada REAL E, A, M, D, L, P,o constante
Límite superior del rango escalar.
LO_LIM Entrada REAL E, A, M, D, L, P,o constante
Límite inferior del rango escalar.
BIPOLAR Entrada BOOL E, A, M, D, L El estado de señal 1 indica que el valor de entrada esbipolar; con el estado de señal 0 indica que es unipolar.
OUT Salida INT E, A, M, D, L, P Resultado del desescalado.
RET_VAL Salida WORD E, A, M, D, L, P Da el valor W#16#0000 cuando la función se ejecuta sinerrores; si los valores son distintos de W#16#0000, véasela información sobre errores.
Descripción
Parámetros
Funciones y bloques de función de conversión
6-15Software estándar para S7-300 y S7-400 Funciones estándar, parte 2A5E00066869-03
Si el valor real de entrada queda fuera del rango comprendido entre los límites infe-rior y superior de su tipo (BIPOLAR o UNIPOLAR), la salida (OUT) se une al valorlímite más cercano (a LO_LIM o a HI_LIM), y se devuelve un error. El estado deseñ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.
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 entradaes BIPOLAR, tal como lo indica el estado de señal de la entrada E2.0.
Si la función se ejecuta sin errores, los estados de señal de la salida de habilitación(ENO) y de la salida A 4.0 se ponen a 1 (activadas), y el valor de respuesta(RET_VAL) toma el valor W#16#0000.
E 0.0 A 4.0UNSCALE
FC106EN ENO
IN
HI_LIM
LO_LIM
RET_VALMD10
MD20
MD30
MW0
BIPOLAR
Antes de la ejecución:
IN MD10 = 50.03978588
HI_LIM MD20 = 100.0
LO_LIM MD30 = 0.0
OUT MW40 = 0
BIPOLAR E 2.0 = TRUE
Después de la ejecución:
OUT MW40 = 22
E 2.0
OUT MW40
Figura 6-12 Desescalar valores (UNSCALE)
Información sobreerrores
Ejemplo
Funciones y bloques de función de conversión
6-16Software estándar para S7-300 y S7-400 Funciones estándar, parte 2
A5E00066869-03
6.10 Algoritmo avanve/retardo (LEAD_LAG): FB80
El bloque de función ”Algoritmo avance/retardo” (LEAD_LAG) permite procesarseñales con una variable analógica. Una salida (OUT) se calcula en base a una en-trada (IN) y a los valores indicados para la ganancia (GAIN), el avance (LD_TIME)y el retardo (LG_TIME). El valor de la ganancia tiene que ser mayor que cero. Elalgoritmo LEAD_LAG aplica la siguiente ecuación:
LG_TIME + SAMPLE_T
siendo OUT =
LG_TIMEPREV_OUT + GAIN
LG_TIME + SAMPLE_T
LD_TIME + SAMPLE_TIN – GAIN
LG_TIME + SAMPLE_T
LD_TIMEPREV_IN
El bloque de función LEAD_LAG se utiliza comúnmente junto con lazos para quesirva de compensador en el control anticipativo. El LEAD_LAG está dividido endos 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, sepuede 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 entradaa bajas frecuencias y la anticipe a altas frecuencias. Por eso, LEAD_LAG puedeusarse como si fuera un filtro de paso de banda.
Descripción
Funciones y bloques de función de conversión
6-17Software estándar para S7-300 y S7-400 Funciones estándar, parte 2A5E00066869-03
En la tabla 6-10 se describen los parámetros del bloque de función ”Algoritmo avan-ce/retardo” (LEAD_LAG).
Tabla 6-10 Parámetros del bloque de función LEAD_LAG (FB80)
Parámetro Declaración Tipo dedatos
Area de memoria Descripción
EN Entrada BOOL E, A, M, D, L La entrada de habilitación con estado de señal 1 activa elcuadro.
ENO Salida BOOL E, A, M, D, L La salida de habilitación tiene el estado de señal ”1” si seejecuta el bloque de función sin errores.
IN Entrada REAL E, A, M, D, L, P,o constante
Valor de entrada del periodo actual de muestreo aprocesar.
SAMPLE_T Entrada INT E, A, M, D, L, P,o constante
Tiempo de muestreo.
OUT Salida REAL E, A, M, D, L, P,o constante
Resultado de la función LEAD_LAG.
ERR_CODE Salida WORD E, A, M, D, L, P Da el valor W#16#0000 cuando se ejecuta el bloque defunción sin errores; si los valores son distintos deW#16#0000 véase la información sobre errores.
LD_TIME Estático REAL E, A, M, D, L, P,o constante
Tiempo de avance en minutos.
LG_TIME Estático REAL E, A, M, D, L, P,o constante
Tiempo de retardo en minutos.
GAIN Estático REAL E, A, M, D, L, P,o constante
Ganancia en % / % (relación del cambio en la salida conrespecto al cambio en la entrada como estado constante).
PREV_IN Estático REAL E, A, M, D, L, P,o constante
Entrada anterior.
PREV_OUT Estático REAL E, A, M, D, L, P,o constante
Salida anterior.
El bloque de función LEAD_LAG no se ejecuta si GAIN es igual o menor que cero.En ese caso, el estado de señal de la salida de habilitación (ENO) se pone a 0 y elcódigo de error ERR_CODE toma el valor W#16#0009.
Parámetros
Información sobreerrores
Funciones y bloques de función de conversión
6-18Software estándar para S7-300 y S7-400 Funciones estándar, parte 2
A5E00066869-03
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 dela 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 dehabilitació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.
Instancia DB80
LD_TIME DBD12 =2.0
LG_TIME DBD16 =2.0
GAIN DBD20 =1.0
PREV_IN DBD24 =6.0
PREV_OUT DBD28 =6.0
E 0.0 A 4.0LEAD_LAG
FB80EN ENO
IN
SAMPLE_T
OUTMD10
10
MD20
ERR_CODE
DB80
Antes de la ejecución:
IN MD10 =2.0
OUT MD20 =0.0
Después de la ejecución:
Instancia DB80
PREV_IN DBD24 =2.0
PREV_OUT DBD28 =2.0
OUT MD20 =2.0
MW0
Figura 6-13 Algoritmo avance/retardo (LEAD_LAG)
Ejemplo
Funciones y bloques de función de conversión
7-1Software estándar para S7-300 y S7-400 Funciones estándar, parte 2A5E00066869-03
Función en coma flotante
Este capítulo describe la función (FC) en coma flotante, que puede añadir a las ope-raciones estándar para obtener una mayor flexibilidad en la programación.
Apartado Descripción Página
7.1 Desviación típica (DEV): FC102 7-2
7
7-2Software estándar para S7-300 y S7-400 Funciones estándar, parte 2
A5E00066869-03
7.1 Desviación típica (DEV): FC102
La función ”Desviación típica” (DEV) calcula la desviación típica de un grupo devalores que están almacenados en una tabla (TBL), y almacena el resultado en lasalida (OUT). La desviación típica se calcula aplicando la siguiente fórmula:
(N * SqSum) – Sum2
N * (N – 1)Desviacióntípica
=
siendo: Sum = la suma de valores de TBLN = la cantidad de valores de TBLSqSum = el cuadrado de la suma de todos los valores de TBL
En todos los cálculos se utilizan valores en coma flotante IEEE, realizándose auto-máticamente las conversiones de los tipos de datos que sean necesarias en cuanto sellama a la función.
• El primer registro de la tabla indica la cantidad de elementos que tiene la tabla(longitud de la tabla).
• El segundo registro de la tabla indica el primer valor de la tabla.
• El tamaño de los registros de la tabla y del valor calculado (OUT) los determinael tipo de datos (E_TYPE).
En la tabla 7-1 se describen los parámetros de la función ”Desviación típica” (DEV).
Tabla 7-1 Parámetros de la función DEV (FC102)
Parámetro Declaración Tipo dedatos
Area de memoriaDescripción
EN Entrada BOOL E, A, M, D, L La entrada de habilitación con estado de señal 1 activa elcuadro.
ENO Salida BOOL E, A, M, D, L La salida de habilitación tiene el estado de señal 1 si lafunción se ejecuta sin errores.
TBL Entrada Pointer* E, A, M, D Apunta a la dirección inicial de la tabla de valores.
OUT Entrada Pointer* E, A, M, D Apunta a la dirección del valor de desviación típica quese ha calculado.
E_TYPE Entrada BYTE E, A, M, D, L,P Indica de qué tipo son los datos de la tabla. Los tiposválidos en la función DEV son:
B#16#05 = INTB#16#07 = DINTB#16#08 = REAL
RET_VAL Salida WORD E, A, M, D, L, P Da el valor W#16#0000 cuando la función se ejecuta sinerrores; si los valores son distintos de W#16#0000, véasela información sobre errores.
* Puntero en formato de palabra doble cuando se trata de direccionamiento interárea indirecto por registro.
Descripción
Parámetros
Función en coma flotante
7-3Software estándar para S7-300 y S7-400 Funciones estándar, parte 2A5E00066869-03
La función no será ejecutada si se da una de las condiciones enumeradas en la tabla7-2. En ese caso, el estado de señal de la salida de habilitación (ENO) se pone a 0 yel valor de respuesta (RET_VAL) se ajusta como corresponde.
Tabla 7-2 Condiciones de error con la función FC102
RET_VAL Significado
W#16#0001 El área de memoria indicada para un parámetro de la función no es válida.
W#16#0002 El tipo de datos (E_TYPE) no es válido.
W#16#0004 La longitud de la tabla es cero.
La figura 7-1 muestra cómo opera la función ”Desviación típica” (DEV). La funciónse ejecuta cuando el estado de señal de la entrada E 0.0 es 1 (activada). En esteejemplo 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.
OUT DBD130 = 12.19836055
DEVFC102
EN ENO
TBL
OUT
E_TYPE
E 0.0 A 4.0
RET_VALP#DB1.DBX100.0
P#DB1.DBX130.0
B#16#08
MW0
Antes de la ejecución:
TBL (long. de tabla) DBW100=W#16#0005DBD102 = 2.0DBD106 = 4.0DBD110 = 8.0DBD114 = 16.0DBD118 = 32.0
OUT DBD130 = 0.0
Después de la ejecución:
Figura 7-1 Desviación típica (DEV)
Información sobreerrores
Ejemplo
Función en coma flotante
7-4Software estándar para S7-300 y S7-400 Funciones estándar, parte 2
A5E00066869-03
Función en coma flotante
8-1Software estándar para S7-300 y S7-400 Funciones estándar, parte 2A5E00066869-03
Bloques de función de comparación
Este capítulo describe los bloques de función (FB) de comparación que puede añadira las operaciones estándar de que ya dispone, aumentando así la flexibilidad en laprogramación.
Apartado Descripción Página
8.1 Comparar índice matriz (IMC): FB83 8-2
8.2 Barrido de matriz (SMC): FB84 8-6
8
8-2Software estándar para S7-300 y S7-400 Funciones estándar, parte 2
A5E00066869-03
8.1 Comparar índice matriz (IMC): FB83
El bloque de función ”Comparar índice matriz” (IMC) compara el estado de señalde 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 losbits no programados de las máscaras tienen preseleccionado el estado de señalFALSE. Si se encuentra una correspondencia al realizar la comparación, el estado deseñal de la salida (OUT) se pone a 1; en caso contrario se pondrá a 0.
Descripción
Bloques de función de comparación
8-3Software estándar para S7-300 y S7-400 Funciones estándar, parte 2A5E00066869-03
En la tabla 8-1 se describen los parámetros del bloque de función ”Comparar índicematriz” (IMC).
Tabla 8-1 Parámetros del bloque de función IMC (FB83)
Parámetro Declaración Tipo dedatos
Area de memoriaDescripción
EN Entrada BOOL E, A, M, D, L La entrada de habilitación con estado de señal 1 activa elcuadro.
ENO Salida BOOL E, A, M, D, L La salida de habilitación tiene el estado de señal 1 si seejecuta el bloque de función sin errores.
IN_BIT0 Entrada BOOL E, A, M, D, L Bit de entrada 0 a comparar con el bit 0 de la máscara.
IN_BIT1 Entrada BOOL E, A, M, D, L Bit de entrada 1 a comparar con el bit 1 de la máscara.
IN_BIT2 Entrada BOOL E, A, M, D, L Bit de entrada 2 a comparar con el bit 2 de la máscara.
IN_BIT3 Entrada BOOL E, A, M, D, L Bit de entrada 3 a comparar con el bit 3 de la máscara.
IN_BIT4 Entrada BOOL E, A, M, D, L Bit de entrada 4 a comparar con el bit 4 de la máscara.
IN_BIT5 Entrada BOOL E, A, M, D, L Bit de entrada 5 a comparar con el bit 5 de la máscara.
IN_BIT6 Entrada BOOL E, A, M, D, L Bit de entrada 6 a comparar con el bit 6 de la máscara.
IN_BIT7 Entrada BOOL E, A, M, D, L Bit de entrada 7 a comparar con el bit 7 de la máscara.
IN_BIT8 Entrada BOOL E, A, M, D, L Bit de entrada 8 a comparar con el bit 8 de la máscara.
IN_BIT9 Entrada BOOL E, A, M, D, L Bit de entrada 9 a comparar con el bit 9 de la máscara.
IN_BIT10 Entrada BOOL E, A, M, D, L Bit de entrada 10 a comparar con el bit 10 de la máscara.
IN_BIT11 Entrada BOOL E, A, M, D, L Bit de entrada 11 a comparar con el bit 11 de la máscara.
IN_BIT12 Entrada BOOL E, A, M, D, L Bit de entrada 12 a comparar con el bit 12 de la máscara.
IN_BIT13 Entrada BOOL E, A, M, D, L Bit de entrada 13 a comparar con el bit 13 de la máscara.
IN_BIT14 Entrada BOOL E, A, M, D, L Bit de entrada 14 a comparar con el bit 14 de la máscara.
IN_BIT15 Entrada BOOL E, A, M, D, L Bit de entrada 15 a comparar con el bit 15 de la máscara.
CMP_STEP Entrada BYTE E, A, M, D, L, P Número de paso de la máscara con la que se efectúa lacomparación.
OUT Salida BOOL E, A, M, D, L El estado de señal 1 indica que se ha encontrado una co-rrespondencia en la comparación; el estado de señal 0indica que no se ha encontrado ninguna.
ERR_CODE Salida WORD E, A, M, D, L, P Da el valor W#16#0000 cuando la función se ejecuta sinerrores; si los valores son distintos de W#16#0000, véasela información sobre errores.
CMP_VAL Estático ARRAYOF BOOL
E, A, M, D, L Máscaras de comparación [de 1 a 15, de 1 a 15]: elprimer número del índice es el del paso, el segundo es elnúmero de bit de la máscara.
Parámetros
Bloques de función de comparación
8-4Software estándar para S7-300 y S7-400 Funciones estándar, parte 2
A5E00066869-03
El bloque de función no se ejecutará si el valor de CMP_STEP es mayor que 15. Enese caso, el estado de señal de la salida de habilitación (ENO) se pone a 0 y elcódigo de error ERR_CODE toma el valor W#16#000A.
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.0es 1 (activada). En este ejemplo, los 16 bits de entrada se comparan con la máscarapara el paso 2, tal como lo indica el parámetro CMP_STEP. Una vez ejecutada lafunción, el estado de señal de OUT se pone en TRUE, ya que los bits de entrada secorresponden 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.
Información sobreerrores
Ejemplo
Bloques de función de comparación
8-5Software estándar para S7-300 y S7-400 Funciones estándar, parte 2A5E00066869-03
IN_BIT0 M0.0 = TRUE <comparar> CMP_VAL [2, 0] DBX12.0 =TRUEIN_BIT1 M0.1 = TRUE <comparar> CMP_VAL [2, 1] DBX12.1 =TRUEIN_BIT2 M0.2 = FALSE <comparar> CMP_VAL [2, 2] DBX12.2 =FALSEIN_BIT3 M0.3 = TRUE <comparar> CMP_VAL [2, 3] DBX12.3 =TRUEIN_BIT4 M0.4 = TRUE <comparar> CMP_VAL [2, 4] DBX12.4 =TRUEIN_BIT5 M0.5 = FALSE <comparar> CMP_VAL [2, 5] DBX12.5 =FALSEIN_BIT6 M0.6 = TRUE <comparar> CMP_VAL [2, 6] DBX12.6 =TRUEIN_BIT7 M0.7 = TRUE <comparar> CMP_VAL [2, 7] DBX12.7 =TRUEIN_BIT8 M1.0 = FALSE <comparar> CMP_VAL [2, 8] DBX13.0 =FALSEIN_BIT9 M1.1 = TRUE <comparar> CMP_VAL [2, 9] DBX13.1 =TRUEIN_BIT10 M1.2 = TRUE <comparar> CMP_VAL [2, 10] DBX13.2 =TRUEIN_BIT11 M1.3 = FALSE <comparar> CMP_VAL [2, 11] DBX13.3 =FALSEIN_BIT12 M1.4 = TRUE <comparar> CMP_VAL [2, 12] DBX13.4 =TRUEIN_BIT13 M1.5 = TRUE <comparar> CMP_VAL [2, 13] DBX13.5 =TRUEIN_BIT14 M1.6 = FALSE <comparar> CMP_VAL [2, 14] DBX13.6 =FALSEIN_BIT15 M1.7 = TRUE <comparar> CMP_VAL [2, 15] DBX13.7 =TRUE
OUT A 2.0 = FALSE
Antes de la ejecución: Instancia DB83
OUT A 2.0 = TRUE
Después de la ejecución:
E 0.0 A 4.0IMCFB83EN
IN_BIT0
IN_BIT1
ENO
OUT
CMP_STEP
M0.0
M0.1
B#16#02
A 2.0
ERR_CODE MW0
IN_BIT2M0.2
DB83
IN_BIT3M0.3
IN_BIT4M0.4
IN_BIT5
IN_BIT6
M0.5
M0.6
IN_BIT7M0.7
IN_BIT8M1.0
M1.1IN_BIT9
IN_BIT10M1.2
IN_BIT11M1.3
IN_BIT12
IN_BIT13
M1.4
M1.5
IN_BIT14M1.6
IN_BIT15M1.7
Nota: Se muestran únicamente los valores que forman la máscara para el paso 2. Los otros pasos seprograman de forma similar.
Figura 8-1 Comparar índice matriz (IMC)
Bloques de función de comparación
8-6Software estándar para S7-300 y S7-400 Funciones estándar, parte 2
A5E00066869-03
8.2 Barrido de matriz (SMC): FB84
El bloque de función ”Barrido de matriz” (SMC) compara el estado de señal dehasta 16 bits de entrada (de IN_BIT0 a IN_BIT15) programados con los correspon-dientes bits de la máscara de comparación de cada paso, comenzando por el paso 1y continuando la comparación sucesivamente hasta el último paso programado(LAST), o hasta que se haya encontrado una correspondencia. El bit IN_BIT0 escomparado con CMP_VAL[x, 0], siendo x el número del paso; el bit IN_BIT1 escomparado con CMP_VAL [x, 1], y así sucesivamente. Cuando se encuentra unacorrespondencia, el estado de señal de la salida (OUT) se pone a 1 y se escribe enOUT_STEP la máscara en la que se ha encontrado la correspondencia. Los bits deentrada no programados y los bits no programados de las máscaras tienen preselec-cionado el estado de señal FALSE. Si hay más de un paso que tiene una máscaracorrespondiente OUT_STEP indica solamente la primera correspondencia que se haencontrado. Si no se ha encontrado ninguna correspondencia, el estado de señal dela salida (OUT) se pone a 0 y OUT_STEP tiene el valor LAST + 1.
En la tabla 8-2 se describen los parámetros de la función ”Barrido de matriz”(SMC).
Tabla 8-2 Parámetros de la función SMC (FB84)
Parámetro Declaración Tipo dedatos
Area de memoriaDescripción
EN Entrada BOOL E, A, M, D, L La entrada de habilitación con estado de señal 1 activa elcuadro.
ENO Salida BOOL E, A, M, D, L La salida de habilitación tiene el estado de señal 1 si seejecuta el bloque de función sin errores.
IN_BIT0 Entrada BOOL E, A, M, D, L Bit de entrada 0 a comparar con el bit 0 de la máscara.
IN_BIT1 Entrada BOOL E, A, M, D, L Bit de entrada 1 a comparar con el bit 1 de la máscara.
IN_BIT2 Entrada BOOL E, A, M, D, L Bit de entrada 2 a comparar con el bit 2 de la máscara.
IN_BIT3 Entrada BOOL E, A, M, D, L Bit de entrada 3 a comparar con el bit 3 de la máscara.
IN_BIT4 Entrada BOOL E, A, M, D, L Bit de entrada 4 a comparar con el bit 4 de la máscara.
IN_BIT5 Entrada BOOL E, A, M, D, L Bit de entrada 5 a comparar con el bit 5 de la máscara.
IN_BIT6 Entrada BOOL E, A, M, D, L Bit de entrada 6 a comparar con el bit 6 de la máscara.
IN_BIT7 Entrada BOOL E, A, M, D, L Bit de entrada 7 a comparar con el bit 7 de la máscara.
IN_BIT8 Entrada BOOL E, A, M, D, L Bit de entrada 8 a comparar con el bit 8 de la máscara.
IN_BIT9 Entrada BOOL E, A, M, D, L Bit de entrada 9 a comparar con el bit 9 de la máscara.
IN_BIT10 Entrada BOOL E, A, M, D, L Bit de entrada 10 a comparar con el bit 10 de la máscara.
IN_BIT11 Entrada BOOL E, A, M, D, L Bit de entrada 11 a comparar con el bit 11 de la máscara.
IN_BIT12 Entrada BOOL E, A, M, D, L Bit de entrada 12 a comparar con el bit 12 de la máscara.
IN_BIT13 Entrada BOOL E, A, M, D, L Bit de entrada 13 a comparar con el bit 13 de la máscara.
IN_BIT14 Entrada BOOL E, A, M, D, L Bit de entrada 14 a comparar con el bit 14 de la máscara.
IN_BIT15 Entrada BOOL E, A, M, D, L Bit de entrada 15 a comparar con el bit 15 de la máscara.
OUT Salida BOOL E, A, M, D, L El estado de señal 1 indica que se ha encontrado unacorrespondencia en la comparación; el estado de señal 0indica que no se ha encontrado ninguna.
Descripción
Parámetros
Bloques de función de comparación
8-7Software estándar para S7-300 y S7-400 Funciones estándar, parte 2A5E00066869-03
Tabla 8-2 Parámetros de la función SMC (FB84) (continuación)
ParámetroDescripción
Area de memoriaTipo dedatos
Declaración
ERR_CODE Salida WORD E, A, M, D, L, P Devuelve el valor W#16#0000 cuando la función seejecuta sin errores; si los valores son distintos deW#16#0000, véase la información sobre errores.
OUT_STEP Salida BOOL E, A, M, D, L, P Contiene el número del paso con la máscara que se co-rresponde o, si no se ha encontrado correspondencia,contiene un número de paso igual a LAST + 1.
LAST Estático BYTE E, A, M, D, L, P Indica el número del último paso en que se tiene quebuscar una máscara correspondiente.
CMP_VAL Estático ARRAYOF BOOL
E, A, M, D, L Máscaras de comparación [de 1 a 15, de 1 a 15]: elprimer número del índice es el del paso, el segundo es elnúmero del bit de la máscara.
El bloque de función no se ejecutará si el valor de LAST es mayor que 15. En estecaso, el estado de señal de la salida de habilitación (ENO) se pone a 0 y el código deerror ERR_CODE toma el valor W#16#000E.
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áscaraspara los pasos 0 a 5 (tal como lo indica el parámetro LAST), o hasta que se hayaencontrado 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 dehabilitació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.
Información sobreerrores
Ejemplo
Bloques de función de comparación
8-8Software estándar para S7-300 y S7-400 Funciones estándar, parte 2
A5E00066869-03
OUT A2.0 = FALSEOUT_STEP MB10 = B#16#00
Instancia DB84LAST DB84 = B#16#05
IN_BIT0 M0.0 = TRUE <compare to> CMP_VAL [2, 0] DBX12.0 = TRUEIN_BIT1 M0.1 = TRUE <compare to> CMP_VAL [2, 1] DBX12.1 = TRUEIN_BIT2 M0.2 = FALSE <compare to> CMP_VAL [2, 2] DBX12.2 = FALSEIN_BIT3 M0.3 = TRUE <compare to> CMP_VAL [2, 3] DBX12.3 = TRUEIN_BIT4 M0.4 = TRUE <compare to> CMP_VAL [2, 4] DBX12.4 = TRUEIN_BIT5 M0.5 = FALSE <compare to> CMP_VAL [2, 5] DBX12.5 = FALSEIN_BIT6 M0.6 = TRUE <compare to> CMP_VAL [2, 6] DBX12.6 = TRUEIN_BIT7 M0.7 = TRUE <compare to> CMP_VAL [2, 7] DBX12.7 = TRUEIN_BIT8 M1.0 = FALSE <compare to> CMP_VAL [2, 8] DBX13.0 = FALSEIN_BIT9 M1.1 = TRUE <compare to> CMP_VAL [2, 9] DBX13.1 = TRUEIN_BIT10 M1.2 = TRUE <compare to> CMP_VAL [2, 10] DBX13.2 = TRUEIN_BIT11 M1.3 = FALSE <compare to> CMP_VAL [2, 11] DBX13.3 = FALSEIN_BIT12 M1.4 = TRUE <compare to> CMP_VAL [2, 12] DBX13.4 = TRUEIN_BIT13 M1.5 = TRUE <compare to> CMP_VAL [2, 13] DBX13.5 = TRUEIN_BIT14 M1.6 = FALSE <compare to> CMP_VAL [2, 14] DBX13.6 = FALSEIN_BIT15 M1.7 = TRUE <compare to> CMP_VAL [2, 15] DBX13.7 = TRUE
Antes de la ejecución: Instancia DB84
OUT A2.0 = TRUEOUT_STEP MB10 = B#16#02
Después de la ejecución:
E 0.0 A 4.0SMCFB84EN
IN_BIT0
IN_BIT1
ENO
OUTM0.0
M0.1A 2.0
OUT_STEP MB10
IN_BIT2M0.2
DB84
IN_BIT3M0.3
IN_BIT4M0.4
IN_BIT5
IN_BIT6
M0.5
M0.6
IN_BIT7M0.7
IN_BIT8M1.0
M1.1IN_BIT9
IN_BIT10M1.2
IN_BIT11M1.3
IN_BIT12
IN_BIT13
M1.4
M1.5
IN_BIT14M1.6
IN_BIT15M1.7
Nota: Se muestran únicamente los valores que forman la máscara para el paso 2. Los otros pasos seprogramar de forma similar.
Figura 8-2 Barrido de matriz (SMC)
Bloques de función de comparación
Glosario-1Software estándar para S7-300 y S7-400 Funciones estándar, parte 2A5E00066869-03
Glosario
A
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 tienelas siguientes áreas de memoria, áreas que puede definir como parte del operando deuna instrucción:
• Imagen del proceso de las entradas
• Imagen del proceso de las salidas
• Marcas
• Periferia
• Temporizadores
• Contadores
• Bloques de datos
• Datos temporales (datos locales dinámicos)
B
Al bit 8 de la palabra de estado se le denomina bit de resultado binario (bit RB). Elbit RB establece un enlace entre el procesamiento de bits y palabras. Con este bit, suprograma 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 Listade instrucciones AWL), y llamar luego a ese FB o a esa FC desde el Esquema decontactos 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 siguientescriterios:
• 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 habidoalgún error.
Area de memoria
Bit de resultadobinario
Glosario-2Software estándar para S7-300 y S7-400 Funciones estándar, parte 2
A5E00066869-03
Debe programar estas operaciones al final del FB o de la FC de tal modo que éstassean 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 delmodo arriba descrito, un FB o una FC pueden sobrescribir el bit RB de otro FB uotra FC.
Con el fin de evitar que ello pueda ocurrir, almacene el RLO al final de cada FB oFC del modo arriba descrito.
Un bloque de datos (DB) almacena los datos del programa de usuario. Es ustedmismo quien define la estructura de la información que se almacena en el DB. Estainformación se puede utilizar , o bien de forma ”compartida”, es decir, de modo quetodos los bloques lógicos de un programa tengan acceso a ella, o bien empleándolacomo instancia específica de un determinado FB (de tal forma que la estructura delDB está vinculada a la tabla de declaración de variables del FB).
Un bloque de datos (DB) de instancia aporta memoria para una determinada llamadade un FB. Creando instancias múltiples (bloques de datos de instancia) de un FBpuede usar un FB para controlar varios elementos.
En la estructura de un DB de instancia se refleja la tabla de declaración de variablesde un FB. El DB de instancia almacena los parámetros actuales de las variablesin, out, in_out y var.
Un bloque de función (FB) es un bloque lógico que contiene un segmento de un pro-grama y tiene asociado un área de memoria. Cada vez que se llama a un FB hay queaportar un bloque de datos (DB de instancia). Se puede llamar al mismo FB variasveces 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.
Un bloque de función del sistema (SFB) es un tipo de bloque de función (FB) queestá integrado en el sistema operativo de STEP 7. Puede llamar a los SFB desde suprograma. De forma similar a un FB, el SFB tiene su propia memoria de trabajo, enla cual se pueden almacenar los datos hasta que se vuelva a llamar otra vez a esemismo 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 (seabre durante la instrucción de llamada). Dado que los SFB forman parte del sistemaoperativo no necesita cargarlos.
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), lasfunciones (FC), los bloques de función (FB), las funciones de sistema (SFC) y losbloques 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.
Bloque de datos(DB)
Bloque de datosde instancia (DB)
Bloque de función(FB)
Bloque de funcióndel sistema (SFB)
Bloque lógico
Glosario
Glosario-3Software estándar para S7-300 y S7-400 Funciones estándar, parte 2A5E00066869-03
C
Un circuito excitado (línea de corriente) es una hilera con instrucciones KOP quegeneralmente 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 contactosKOP de STEP 7, un circuito constituye un segmento.
La unidad central de procesamiento o módulo central contiene el programa de usua-rio y procesa los datos del autómata programable (PLC).
D
Tipo de direccionamiento que indica la dirección real que tiene una determinadaunidad de datos dentro de la memoria de una CPU. El direccionamiento absolutopermite referenciar una señal en la periferia, por ejemplo utilizando una direcciónque incluya el tipo de señal (E si es una entrada, A si es una salida), el número delmódulo periférico y la señal concreta. Ej.: A 4.0. El autómata programable evalúalas direcciones absolutas sin tener que recurrir a una tabla de símbolos. Véase Direc-cionamiento simbólico.
Tipo de direccionamiento en el que el operando de una instrucción señala directa-mente la dirección del valor con el que se debe realizar la operación. Compáresecon Direccionamiento inmediato.
Tipo de direccionamiento en el cual el valor con el que debe operar la instrucciónestá indicado como parámetro de entrada. Este valor es el operando de la instruc-ción. Compárese con Direccionamiento directo.
Si bien todos los elementos de la CPU tienen una dirección absoluta (p. ej.: E 0.0),también les puede dar un nombre simbólico, que luego podrá emplear para el 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.
E
El Esquema de contactos (KOP) es uno de los dos lenguajes del software de progra-mación STEP 7 que puede aplicar para programar su autómata programableS7-300/S7-400. KOP es un lenguaje gráfico cuyos elementos se asemejan a los deun esquema de control de circuitos.
Circuito excitado
CPU
Direccionamientoabsoluto
Direccionamientodirecto
Direccionamientoinmediato
Direccionamientosimbólico
Esquema de con-tactos (KOP)
Glosario
Glosario-4Software estándar para S7-300 y S7-400 Funciones estándar, parte 2
A5E00066869-03
F
Una función (FC) es un bloque lógico que contiene un segmento de un programapero 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 valoresdiferentes en cada llamada), la FC ha sido definida como un bloque”reutilizable”.Cuando la FC termina el procesamiento se vuelven a reasignar los datos localestemporales que ha utilizado.
Una función de sistema (SFC) es una función preprogramada, cuya funcionalidad yaha sido comprobada, y que está integrada en el sistema operativo de STEP 7. Puedellamar a las SFC desde su programa. Como estas funciones forman parte del sistemaoperativo no ocupan espacio en la memoria principal. Al igual que las FC, las SFCno requieren un DB de instancia para aplicarlas.
I
El identificador del operando es la parte del operando de una instrucción que con-tiene la información sobre aquel área de memoria donde la instrucción encuentra elvalor (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).
L
La lista de instrucciones AWL es uno de los dos lenguajes del software de progra-mación STEP 7 mediante los cuales puede comunicar con su autómata programableS7-300/S7-400. Cada instrucción del programa de usuario incluye una operación enla cual se usa un nemónico para representar una función del autómata programable.
M
El Master Control Relay (MCR) es un interruptor principal del esquema de contac-tos (KOP) que sirve para energizar (activar) y desenergizar (desactivar) el flujo decorriente en el circuito. A un circuito desenergizado le corresponde una secuenciade 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.
Función (FC)
Función de sis-tema (SFC)
Identificador deloperando
Lista de instruc-ciones
Master ControlRelay
Glosario
Glosario-5Software estándar para S7-300 y S7-400 Funciones estándar, parte 2A5E00066869-03
N
Modo de representación abreviada de los operandos y las operaciones en el pro-grama (Ej.: ”E” significa entrada, ”U ” es la representación nemónica de la opera-ción lógica Y). STEP 7 soporta la representación internacional (basada en el modode representación alemán del juego de operaciones y convenciones SIMATIC parael direccionamiento).
O
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.
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ónabsoluta, 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 decaracteres 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 dedatos;
• 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 porel identificador (p. ej.: E 1.0);
• el número de un temporizador o de un contador.
La dirección de una operación también se denomina ”operando”.
P
Un parámetro actual es un operando o un valor que se suministra como entrada ocomo salida cuando se llama a un bloque de función (FB) o a una función (FC). Losparámetros actuales corresponden a los respectivos parámetros formales que estándeclarados en la tabla de declaración de variables del FB o de la FC en cuestión.
Los parámetros formales están declarados en la tabla de declaración de variables deun FB o de una FC. Al llamar a un FB o a una FC hay que asignar a cada parámetroformal un parámetro actual (que puede ser, o un operando, o un valor).
Nemónicos
Operación
Operando
Parámetro actual
Parámetro formal
Glosario
Glosario-6Software estándar para S7-300 y S7-400 Funciones estándar, parte 2
A5E00066869-03
El programa de usuario contiene la lógica de control para poder realizar un proyectode automatización. Dicha lógica de control se almacena en forma de instruccionesdirigidas al autómata programable (PLC) que está controlando la planta industrial oel proceso.
Un puntero es un registro que apunta a la dirección de una variable. En vez de unvalor, un puntero tiene un operando. Al asignar a un parámetro actual el tipo de da-tos ”puntero” se le indica el operando. En STEP 7 puede entrar el puntero, o bien enformato de puntero, o simplemente como operando (p. ej.: M 50.0). El siguiente esun ejemplo de formato de puntero para acceder a los datos a partir de M 50.0:
P#M50.0
R
Al bit 1 de la palabra de estado se le denomina resultado lógico (bit RLO). El bitRLO almacena el resultado de una operación lógica o de una comparaciónaritmética. El estado de señal del bit RLO suministra información sobre el sentidode 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 deseñal de un contacto y da el resultado 1 ó 0, según haya flujo o no. La operaciónalmacena entonces el resultado de esta comprobación en el bit RLO. La segundaoperación que se realiza en un circuito de KOP también comprueba el estado deseñal de un contacto y da un resultado. A continuación, la operación compara elresultado con el valor almacenado en el bit RLO de la palabra de estado, siguiendolos 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 antesen el bit RLO. Todas las operaciones subsiguientes que se ejecuten en el circuitorealizarán una operación lógica con dos valores: el del resultado dado cuando laoperació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 delcontenido de una dirección de operando. También puede usar el RLO para iniciaroperaciones de salto.
S
En un esquema de contactos KOP de STEP 7 se llama segmento a un circuito ener-gizado que contiene operaciones KOP. Compárese con Circuito.
T
Todos los bloques lógicos tienen una tabla de declaración de variables. Al introducirinformación en dicha tabla usted declara (es decir, define) los parámetros y variablesque utiliza el bloque.
Programa deusuario
Puntero
Resultado lógico(RLO)
Segmento
Tabla de declara-ción de variables
Glosario
Glosario-7Software estándar para S7-300 y S7-400 Funciones estándar, parte 2A5E00066869-03
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 variableslocales de un bloque en la tabla de declaración de variables, tiene que especificar dequé 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 dedatos simples y compuestos.
• Tipos de datos simples: BOOL, BYTE, WORD (palabra), DWORD (palabradoble), CHAR (carácter), INT (entero, 16 bits), DINT (entero doble, 32 bits),REAL (coma flotante), TIME (hora), DATE (fecha), TOD (hora del día) yS5TIME. 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 (o16 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 omatriz). 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).
Tipos de datos
Glosario
Glosario-8Software estándar para S7-300 y S7-400 Funciones estándar, parte 2
A5E00066869-03
Glosario
Índice-1Software estándar para S7-300 y S7-400 Funciones estándar, parte 2A5E00066869-03
Índice alfabético
AActivar inmediatamente un área de salida (SETI),
1-8–1-10Activar un área de marcas o de periferia en la ima-
gen del proceso (SET), 1-6–1-7Activar un temporizador como retardo a la cone-
xión con memoria (TONR), 5-2–5-3Acumular/distribuir datos de tabla (PACK), 4-4Alarma de tiempo para control discreto (DCAT),
5-4Alarma de tiempo para control motor (MCAT), 5-7Algoritmo avance/retardo (LEAD_LAG), 6-16Almacenamiento de las funciones (FCs), iiiAlmacenar datos en el registro de desplazamiento
(WSR), 3-2–3-3Añadir un elemento a una tabla (ATT), 2-2–2-3Asistencia técnica, v
BBarrido de matriz (SMC), 8-6Bloques de función de comparación
barrido de matriz (SMC), 8-6comparar índice matriz (IMC), 8-2
Buscar un valor en una tabla (TBL_FIND), 2-6–2-8
CCodificar una posición binaria (ENCO), 6-8Combinar lógicamente un valor con un elemento de
una tabla y almacenarlo (WRD_TBL),2-15–2-16
Comparar índice matriz (IMC), 8-2Convertir una cadena de caracteres ASCII en una
cifra hexadecimal (ATH), 6-4–6-5Convertir una cifra hexadecimal en una cadena de
caracteres (HTA), 6-6–6-7
Copiar un valor de una tabla (TBL_WRD),2-13–2-14
Crear el patrón de bits para el display de 7 segmen-tos (SEG), 6-2–6-3
DDecodificar una posición binaria (DECO), 6-9Desescalar valores (UNSCALE), 6-14Desplazar un bit a un registro de desplazamiento
(SHRB), 3-4–3-6Desviación típica (DEV), 7-2
EEnlace lógico de tablas (TBL_TBL), 2-19Escalar valores (SCALE), 6-12Evento drum enmascarable (DRUM), 5-10Extraer el elemento más antiguo de una tabla
(FIFO), 2-4–2-5Extraer el elemento más reciente de una tabla
(LIFO), 2-9–2-10
FFunción en coma flotante, desviación típica (DEV),
7-2Función y bloque de función de conversión, sumar
la cantidad de bits activados (BITSUM), 6-11Funciones (FCs)
almacenamiento, iiilista, vi
Funciones de desplazamientoalmacenar datos en el registro de desplaza-
miento (WSR), 3-2–3-3desplazar un bit a un registro de desplazamiento
(SHRB), 3-4–3-6
Índice-2Software estándar para S7-300 y S7-400 Funciones estándar, parte 2
A5E00066869-03
Funciones de tablaañadir un elemento a una tabla (ATT), 2-2–2-3buscar un valor en una tabla (TBL_FIND),
2-6–2-8combinar lógicamente un valor con un elemento
de una tabla y almacenarlo (WRD_TBL),2-15–2-16
copiar un valor de una tabla (TBL_WRD),2-13–2-14
enlace lógico de tablas (TBL_TBL), 2-19extraer el elemento más antiguo de una tabla
(FIFO), 2-4–2-5extraer el elemento más reciente de una tabla
(LIFO), 2-9–2-10realizar una operación en una tabla (TBL),
2-11–2-12tabla de datos correlativos (CDT), 2-17
Funciones lógicas de bitactivar inmediatamente un área de salida
(SETI), 1-8–1-10activar un área de marcas o de periferia en la
imagen del proceso (SET), 1-6–1-7poner a cero inmediatamente un área de salida
(RSETI), 1-4–1-5poner a cero un área de periferia o de marcas en
la imagen del proceso (RSET), 1-2–1-3Funciones y bloques de conversión, decodificar una
posición binaria (DECO), 6-9Funciones y bloques de función de conversión
algoritmo avance/retardo (LEAD_LAG), 6-16codificar una posición binaria (ENCO), 6-8convertir una cadena de caracteres ASCII en
una cifra hexadecimal (ATH), 6-4–6-5convertir una cifra hexadecimal en una cadena
de caracteres ASCII (HTA), 6-6–6-7crear el patrón de bits para el display de 7 seg-
mentos (SEG), 6-2–6-3desescalar valores (UNSCALE), 6-14escalar valores (SCALE), 6-12generar el complemento a diez (BCDCPL), 6-10
Funciones y bloques de función de temporizaciónalarma de tiempo para control discreto (DCAT),
5-4alarna de tiempo para control motor (MCAT),
5-7evento drum enmascarable (DRUM), 5-10
Funciones y bloques de función de transferenciaacumular/distribuir datos de tabla (PACK), 4-4transferencia indirecta de un bloque de datos
(IBLKMOV), 4-2–4-3Funciones y bloques de temporización, activar un
temporizador como retardo a la conexión conmemoria (TONR), 5-2–5-3
GGenerar el complemento a diez (BCDCPL), 6-10
MManuales, iv–vi
PPoner a cero inmediatamente un área de salida
(RSETI), 1-4–1-5Poner a cero un área de periferia o de marcas en la
imagen del proceso (RSET), 1-2–1-3
RRealizar una operación en una tabla (TBL),
2-11–2-12
SSumar la cantidad de bits activados (BITSUM),
6-11
TTabla de datos correlativos (CDT), 2-17Transferencia indirecta de un bloque de datos
(IBLKMOV), 4-2–4-3
Índice alfabético
1Software estándar para S7-300 y S7-400 Funciones estándar, parte 2A5E00066869-03
✄
Remitente:
Nombre: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Cargo: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Empresa: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Calle: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Código postal:_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Población: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
País: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Teléfono: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Indique el ramo de la industria al que pertenece:
❒ Industria del automóvil
❒ Industria química
❒ Industria eléctrica
❒ Industria alimentaria
❒ Control e instrumentación
❒ Industria mecánica
❒ Industria petroquímica
❒ Industria farmacéutica
❒ Industria del plástico
❒ Industria papelera
❒ Industria textil
❒ Transportes
❒ Otros _ _ _ _ _ _ _ _ _ _ _
Siemens AG
A&D AS E 81
Oestliche Rheinbrueckenstr. 50
D-76181 Karlsruhe
R.F.A.
2Software estándar para S7-300 y S7-400 Funciones estándar, parte 2
A5E00066869-03
En las líneas siguientes puede exponer los problemas concretos que se le hayan planteadoal manejar el manual:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Observaciones/sugerencias
Sus observaciones y sugerencias nos permiten mejorar la calidad y utilidad de nuestradocumentación. Por ello le rogamos que rellene el presente formulario y lo envíe aSiemens.
Responda por favor a las siguientes preguntas dando una puntuación comprendida entre1 = 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 ?
top related