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 programarlos registros de desplazamiento con las instrucciones KOP/FUP en STEP 7 V5.5 y en V11?
¿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?
Referencia:

Instrucciones:
Con ayuda de las funciones de conversión, se puede convertir el tipo de datos del valor contenido en el AKKU 1. Dependiendo de la función utilizada, sólo afecta a la palabra derecha (los bits 0 a 15) o todo su contenido. El contenido del resto de acumuladores no se modifica. El contenido del AKKU 1 se puede utilizar para varias conversiones sucesivas y de esta forma realizar la conversión en varios pasos, sin tener que guardar temporalmente los valores convertidos entre medias. La figura 01 muestra un resumen de las conversiones de tipos de datos descritas en este artículo.


Figura 01

La siguiente tabla contiene algunos ejemplos para la conversión del tipo de datos del valor contenido en el AKKU 1:
 
Ejemplos para la conversión del tipo de datos del valor contenido en el AKKU 1:
1 Conversión de números de tipo INT, DINT, REAL y BCD:
Para la conversión de números INT, DINT, REAL y BCD, el STEP 7 dispone de las siguientes funciones.

Conversión de números de tipo INT y DINT:

  1. ITD: Conversión de datos de tipo INT a tipo DINT,
  2. ITB: Conversión de datos de tipo INT a tipo BCD,
  3. DTB: Conversión de datos de tipo DINT a tipo BCD,
  4. DTR: Conversión de datos de tipo DINT a tipo REAL.

Conversión de números de tipo BCD:

  1. BTI: Conversión de datos de tipo BCD a tipo INT,
  2. BTD: Conversión de datos de tipo BCD a tipo DINT.

Conversión de números de tipo REAL:

  1. RND+: Redondeo al número entero inmediatamente superior,
  2. RND-: Redondeo al número entero inmediatamente inferior,
  3. RND: Redondeo al número entero más próximo,
  4. TRUNC: Sin redondeo.

La figuera 02 muestra un ejemplo para la conversión de tipo de un número codificado en BCD a un número REAL. Tal como se muestra en la figura 01, el número en BCD se tiene que convertir primero al formato INT o DINT, antes convertirlo al formato REAL.


Figura 02

Advertencia:
En los siguientes manuales, se dispone de información adicional al respecto:

  • Lista de operaciones del S7-300: Datos de la CPU - CPUs de la 312 IFM a la 318-2 DP, (capítulo: "Tipo de datos - Funciones de conversión"), página del Customer Support con número ID 31977679.
  • Lista de operaciones del S7-400: CPUs 412, 414, 416, 417, (capítulo: "Tipo de datos - Funciones de conversión"), página del Customer Support con número ID 23904435.
2 Conversión del tipo de datos INT (INTEGER) o REAL al tipo de datos S5TIME:
El requerimiento previo necesario es que el valor suministrado tenga el tiempo en milisegundos. En este caso, la conversión se puede realizar en 2 pasos:
  1. El valor indicado primero se convierte al formato DINT (Doble entero) y luego se guarda temporalmente en una variable de tipo TIME. Los valores de tipo INT se convierten al formato DINT con la instrucción "ITD", y los valores de tipo REAL se convierten al formato DINT con la instrucción "RND".
  2. Con la llamada y la parametrización de la función FC40 (TIM_S5TI) de la librería estándar IEC del STEP 7, el formato TIME se convierte al formato S5TIME.

La figura 03 muestra un ejemplo de programación para la conversión del tipo de datos INT al tipo de datos S5TIME.


Figura 03

3 Conversión de un número codificado en ASCII por un número de tipo INT (INTEGER):
El proyecto de STEP 7 "Char_Int" contiene el FC1, con el cual se puede convertir un número ASCII de 4 dígitos en un número entero. Como parámetro de entrada, el módulo necesita el carácter ASCII en forma de tipo "CHAR" y con los siguientes valores:
  • Variable IN: Char1 = Dígito de las unidades,
  • Variable IN: Char2 = Dígito de las decenas,
  • Variable IN: Char3 = Dígito de las centenas,
  • Variable IN: Char4 = Dígito de los millares.

La función FC1 se llama en el OB1. Como salida, se obtiene el número entero "Result". Con ayuda de la tabla de variables "VAT_1" se puede visualizar el resultado.


Figura 04

Advertencia:
La variable de salida "Error" (bit de fallo) del FC1 se ajusta a TRUE si el carácter ASCII no contiene ningún dígito. En este caso, el resultado "Result" también se pone a "0".

Char_Int.zip ( 299 KB )  

Copie el archivo "Char_Int.zip" en un directorio aparte y arránquelo haciendo doble clic sobre él. Con ello se descomprime el proyecto de STEP 7 con todos sus subdirectorios. A continuación ya se puede abrir y elaborar el proyecto descomprimido con ayuda del administrador SIMATIC.

4 Conversión de un número decimal a un número ASCII:
Para convertir números decimales en caracteres ASCII, se dispone de la función FC5 en la librería ICE, la cual realiza la conversión. El módulo se parametriza con 2 parámetros:
  1. Parámetro "i":
    Número a convertir en formato de doble palabra.
  2. Parámetro "RetVal":
    Tipo de datos String, en el cual se escribe el carácter ASCII.

La función FC5 se llama en el OB1 y los parámetros se tiene que asignar adecuadamente. El resultado de la conversión está disponible en el DB1, a partir del byte 2 del módulo de datos. Con ayuda de una tabla de variables se puede visualizar el resultado.

S7iec.zip ( 135 KB )  

Copie el archivo "DIString.zip" en un directorio aparte y arránquelo haciendo doble clic sobre él. Con ello se descomprime el proyecto de STEP 7 con todos sus subdirectorios. A continuación ya se puede abrir y elaborar el proyecto descomprimido con ayuda del administrador SIMATIC.

5 Funciones IEC estándar para las variables STRING:
Con ayuda de las funciones IEC estándar FC5, FC16, FC30, FC37, FC38 y FC39, las variables de formato DINT se pueden convertir a una cadena de caracteres y viceversa.
  1. FC5 DI_STRNG: Conversión de una variable de tipo DINT a una variable de tipo STRING,
  2. FC16 I_STRNG: Conversión de una variable de tipo INT a una variable de tipo STRING,
  3. FC30 R_STRNG: Conversión de una variable de tipo REAL a una variable de tipo STRING,
  4. FC37 STRNG_DI: Conversión de una variable de tipo STRING a una variable de tipo DINT,
  5. FC38 STRNG_I: Conversión de una variable de tipo STRING a una variable de tipo INT,
  6. FC39 STRNG_R: Conversión de una variable de tipo STRING a una variable de tipo REAL.

Información adicinal al respecto está disponible en la página del Customer Support "¿Qué funciones estándar existen en el STEP 7 para la conversión y comparación de variables tipo STRING o caracteres ASCII?", número ID 10913338.

Conceptos de búsqueda:
Formato de números, conversión, evaluación de datos, transferencia de datos 

 Nr. de identificación (ID):1851190   Fecha:2011-05-12 
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 
Ayuda
Ayuda en línea
Guided Tour