Mostrar lista de artículos
STEP 7 -- Creación de programas S7 -- Ejecutar operación
¿Cómo se realiza en STEP 7 V5.x la programación para la creación de una señal (rectangular, con forma de diente de sierra, triangular y senoidal) con ayuda de una alarma de tiempo?
¿Cómo se puede averiguar la velocidad, la aceleración y la distancia recorrida?
¿Cómo se pueden direccionar los bytes completos y los bits individuales a través de la periferia?
¿Cómo se puede implementar la "diferenciación numérica" en STEP 7 V5.5?
¿Cómo se puede convertir en el STEP 7 V5.5 un número hexadecimal en caracteres ASCII ?
Representación de valores enteros negativos en la supervisión con el editor KOP/AWL/FUP
Información sobre el tema "Ejecución de operaciones"
¿Cómo se realiza el cálculo de valores lineales, de potencias, exponenciales, de raíces, polinómicos y logarítmicos, así como la conversión de las funciones de ángulos en grados?
¿Cómo se puede convertir un número de tipo INT en una cadena de caracteres, un tipo S5TIME, o un tipo BCD y REAL?
¿Cómo se puede retrasar temporalmente la señal de salida respecto de la señal de entrada?
¿Cómo se pueden acumular en un valor total las medidas físicas de caudal (por ejemplo, cantidad de caudal, velocidad de caudal)?
¿Cómo se puede supervisar un campo de 32 bits, evaluar la posición de bit de un bit activo, y acceder a cada uno de los bits de una doble palabra?
¿Cómo se pueden asignar variables y parámetros de módulo entre sí?
¿Cómo se puede comprobar la igualdad de números reales?
¿Cómo se implementa la programación de la integración numérica en S7-SCL y en STEP 7?
¿Cuándo se realiza la primera consulta en las cadenas de asignación?
¿Cuál es el significado de la instrucción NOP en el editor AWL del STEP 7?
¿Con qué exactitud se realizan los cálculos utilizando números REALES en fórmulas grandes?
¿Qué funciones estándar e IEC están disponibles en el STEP 7 para la conversión y comparación de variables STRING?
¿Cómo se pueden programar los registros de desplazamiento con las instrucciones KOP/FUP en STEP 7 V5.5 y STEP 7 (TIA-Portal)?
¿Cómo se puede supervisar un campo de 32 bits, evaluar la posición de bit de un bit activo, y acceder a cada uno de los bits de una doble palabra?
Referencia:

Instrucciones:  
La siguiente tabla contiene las descripciones para poder evaluar la posición de bit de un bit activo en una palabra de marcas, poder supervisar un campo de 32 bits de eventos entrantes y salientes, y poder acceder a cada uno de los bits de una variable de tipo DWORD, las cuales están declaradas dentro de un módulo de código.
 
Ejemplos:
1 Evaluación de la posición de bit de un bit activo en una palabra de marcas
Para tener un proceso secuencial en el STEP 7, hay que programar una cadena de control con ayuda de una palabra de marcas. En esta palabra de marcas, el paso activo actualmente en la cadena de pasos se corresonde sólo con un único bit activo. Contando la posición de los bits, el paso activo se puede visualizar en forma de texto (por ejemplo en el ProTool) con ayuda de una lista de símbolos. Para realizar la visualización, es una gran ventaja tener la posición del bit y por tanto el paso activo actualmente en forma de valor entero. Sí siempre existe un bit activo, se cumple la siguiente relación:
  • 2X = Y
    X = lnY / ln2

Donde X es la posición del bit e Y el valor de la palabra de marcas. Para obtener la posición del bit, sólo hay que aumentar X en uno. Además, siempre hay que tener en cuenta 2 casos especiales: El valor Y no puede ser cero ni negativo (signo). A continuación, se puede descargar un programa ejemplo en AWL para averiguar la posición del bit según la definición arriba descrita.

El Download "bitpos_c" contiene la funcionalidad arriba descrita dentro de la función FC1 y una llamada ejemplo en el OB1.

bitpos_c.zip ( 28 KB )

2 Supervisión de un campo de 32 bits
Para supervisar un campo de 32 bits de eventos entrantes y salientes, se puede evaluar cada bit a supervisar respecto a flancos positivos y negativos. Tal como se muestra en el ejemplo arriba indicado, aquí la palabra también se define como entero y se calcula el bit activado.

Este programa ejemplo funciona exactamente igual para una doble palabra. La programación se basa en lo siguiente:
  1. Para filtrar un bit que se ha activado en este ciclo, de entre los muchos que pueden estar activados, se utiliza una asignación “OR EXCLUSIVA para DOBLEPALABRA” entre el valor del último ciclo y del ciclo actual. Esta asignación da como resultado el único bit que cambia exclusivamente en uno de ambos valores. Con una consulta AND adicional, se averigua si se trata de un bit de una señal entrante o saliente.
  2. Si en un entero doble sólo se activa un bit, para el valor “Y” de dicho entero doble se cumple la ecuación: Y = 2 x 
    La posición del bit es por tanto X + 1. Dicha posición "X" se calcula del valor de doble entero con ayuda de la siguiente conversión:
    X = lnY / ln2

 

El Download "Monitor_de" contiene un proyecto de STEP 7 con la funcionalidad arriba descrita en el módulo de función FB1 y una llamada ejemplo desde el módulo de organización OB1. Además, en el OB1 también se han programado 2 ejemplos con los que se puede comprobar la función.


Monitor_de.zip ( 41 KB )  

3 Acceso a cada uno de los bits de una variable de tipo DWORD
Sólo se puede acceder a una variable tal como se ha definido en el módulo. Si la variable se ha declarado de tipo "DWORD", sólo se puede acceder a dicha variable en modo "DWORD" y no como Bit.

Pero se puede acceder a cada uno de los bits de las direcciones absolutas. Esto es posible en las entradas, las salidas, las marcas, y las variables de los módulos de datos. Si se conocen las direcciones absolutas, se puede acceder a cada uno de los bits de la variable por medio de dichas direcciones.

La figura 01 muestra un ejemplo de cómo cargar el contenido de la variable estática "Variable" de tipo "DWORD" en el AKKU 1, y a continuación transferirla a la variable "ValueRange" del módulo de datos DB5. La dirección de la variable "ValueRange" en el DB5 es la "0" (DB5.DBD0 de tipo "DWORD"). En este caso, se puede acceder a la variable bit a bit con ayuda de la instrucción U DB5.DBX 0.1.


Figura 01

Advertencia:
Para evitar un acceso a través de direcciones absolutas, el acceso bit a bit a una variable se puede implementar por medio de variables locales. Con esto se tienen una serie de ventajas:

  • La solución funciona en todos los tipos de módulos de código, y el código es legible,
  • No se necesita ningún DB,
  • Mejor rendimiento gracias al acceso local,
  • La solución sigue funcionando tras modificaciones o ampliaciones de las estructuras, sin adaptaciones adicionales.

Defina 32 variables TEMP de tipo BOOL, para manipular bit a bit una variable de tipo "DWORD". Con ayuda de las instrucciones del siguiente ejemplo, la variable / parámetro a manipular (en este caso, la MD 10) se transfiere a las variables temporales "bitvar_0" hasta "bitvar_31". Por medio de estas 32 variables de tipo Bit, la variable se puede manipular por medio del direccionamiento simbólico y guardar los resultados.


Figura 02

Por favor, tenga en cuenta que las variables temporales sólo son válidas durante la elaboración del módulo y siempre se tienen que inicializar antes del primer acceso de lectura.

Copie el archivo EXE correspondiente en un directorio aparte y arránquelo haciendo doble clic sobre él. Con ello, se descomprime automáticamente el proyecto de STEP 7 con todos sus subdirectorios y ya se puede abrir y elaborar con el administrador SIMATIC.

Advertencia:
Tenga en cuenta los diferentes tiempos de ejecución típicos para el LN (Logaritmo natural) en cada CPU.

 
CPUs

Tiempo de ejecución típico en µs

CPU312 455
CPU313, CPU314 < 650
CPU315, CPU315-2, CPU316-2 < 650
CPU317 14,97
CPU318-2 35
CPU412 63
CPU414 35
CPU416 33
CPU417 35

Conceptos de búsqueda:
Cadena de marcas, cadena de ejecución

 Nr. de identificación (ID):18771489   Fecha:2007-03-09 
Este artículo...me ayudóno me ayudó                                 
mySupport
My Documentation Manager 
Boletín 
CAx-Download-Manager 
Support Request
Sobre este artículo
Imprimir
Crear PDF 
Enviar artículo
QuickLinks
Herramienta de compatibilidad 
Temas
Ayuda
Ayuda en línea
Guided Tour