SCALE: Escalar (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
SCALE: Escalar

Descripción

La instrucción "Escalar" convierte el entero del parámetro IN en un número en coma flotante que se escala en unidades físicas entre un límite inferior y uno superior. Los límites inferior y superior del rango de valores en el que se escala 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 "Escalar" utiliza la siguiente ecuación:

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

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 es mayor que el de la constante "K2", el resultado de la instrucción se pone al valor del límite superior (HI_LIM) y se emite un error.

Si el valor del parámetro IN es menor que el de la constante "K1", el resultado de la instrucción se pone al valor del límite inferior (LO_LIM) y se emite un error.

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

INT

I, Q, M, D, L, P

Valor de entrada que se escala.

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

REAL

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 27 648 o menor que 0 (unipolar) o -27 648 (bipolar).

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 en "Consulte también".

Ejemplo

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

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

"Tag_ErrorCode" := SCALE(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

22

HI_LIM

Tag_HighLimit

100.0

LO_LIM

Tag_LowLimit

0.0

BIPOLAR

Tag_Bipolar

1

OUT

Tag_Result

50.03978588

RET_VAL

Tag_ErrorCode

W#16#0000