UNSCALE: Desescalar (S7-300, S7-400) - STEP 7

SCL (S7-300, S7-400)

ft:publication_title
SCL (S7-300, S7-400)
Product
STEP 7
Version
V20
Publication date
11/2024
Language
es-ES
UNSCALE: Desescalar

Descripción

La instrucción "Desescalar" permite desescalar el número en coma flotante del parámetro IN en unidades físicas comprendidas entre un límite inferior y uno superior y convertirlo en un número entero. Los límites inferior y superior del rango de valores en el que se desescala el valor de entrada se definen mediante los parámetros LO_LIM y HI_LIM. El resultado de la instrucción se devuelve en el parámetro OUT.

La instrucción "Desescalar" utiliza la siguiente ecuación:

OUT = [((IN–LO_LIM)/(HI_LIM–LO_LIM)) ∗ (K2–K1)] + K1

El estado lógico del parámetro BIPOLAR determina los valores de las constantes "K1" y "K2". El parámetro BIPOLAR puede tener los siguientes estados lógicos:

  • Estado lógico "1": se presupone que el valor del parámetro IN es bipolar y está comprendido en un rango de valores entre -27648 y 27648. En este caso, la constante "K1" tiene el valor "-27648,0" y la constante "K2", el valor "+27648,0".

  • Estado lógico "0": se presupone que el valor del parámetro IN es unipolar y está comprendido en un rango de valores entre 0 y 27648. En este caso, la constante "K1" tiene el valor "0,0" y la constante "K2", el valor "+27648,0".

Si el valor del parámetro IN no se encuentra dentro de los límites definidos por HI_LIM y LO_LIM, se emite un error. El resultado se ajusta al límite más próximo.

Si el límite inferior indicado es mayor que el límite superior (LO_LIM > HI_LIM), el resultado se escala de forma inversamente proporcional al valor de entrada.

Parámetro

La tabla siguiente muestra los parámetros de la instrucción:

Parámetros

Declaración

Tipo de datos

Área de memoria

Descripción

IN

Input

REAL

I, Q, M, D, L, P

Valor de entrada que se desescala en un valor entero.

HI_LIM

Input

REAL

I, Q, M, D, L, P

Valor límite superior

LO_LIM

Input

REAL

I, Q, M, D, L, P

Valor límite inferior

BIPOLAR

Input

BOOL

I, Q, M, D, L

Indica si el valor del parámetro IN se interpreta como bipolar o unipolar. El parámetro puede adoptar los valores siguientes:

1: Bipolar

0: Unipolar

OUT

Output

INT

I, Q, M, D, L, P

Resultado de la instrucción

Valor de función (RET_VAL)

WORD

I, Q, M, D, L, P

Información de error

Encontrará más información sobre los tipos de datos válidos en "Consulte también".

Parámetro RET_VAL

La tabla siguiente muestra el significado de los valores del parámetro RET_VAL:

Código de error*
(W#16#...)

Explicación

0000

Ningún error

0008

El valor del parámetro IN es mayor que el del límite superior (HI_LIM) o menor que el del límite inferior (LO_LIM).

8xyy

Encontrará más información de error en "Consulte también".

*En el editor de programas, los códigos de error se pueden representar como valores enteros o hexadecimales. Encontrará más información sobre el cambio de los formatos de visualización aquí: Cambiar formatos de visualización en el estado del programa

Ejemplo

El siguiente ejemplo muestra el funcionamiento de la instrucción:

SCL Copia el código de programa siguiente en el portapapeles.

"Tag_ErrorCode" := UNSCALE(IN := "Tag_InputValue",

                           HI_LIM := "Tag_HighLimit"

                           LO_LIM := "Tag_LowLimit"

                           BIPOLAR := "Tag_Bipolar",

                           OUT => "Tag_Result");

La información de error de la instrucción se devuelve en el operando "Tag_ErrorCode" como valor de función.

La tabla siguiente muestra el funcionamiento de la instrucción con valores de operandos concretos:

Parámetro

Operando

Valor

IN

Tag_InputValue

50.03978588

HI_LIM

Tag_HighLimit

100.0

LO_LIM

Tag_LowLimit

0.0

BIPOLAR

Tag_Bipolar

1

OUT

Tag_Result

22

RET_VAL

Tag_ErrorCode

W#16#0000