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* |
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:
|
"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 |