escala do

8
Instrucciones La representación de los valores de entrada y salida analógicos en los módulos de ampliación EM 231, EM 232 y EM 235, así como en la CPU 224XP, se realiza de forma digital con el formato de tipo palabra INTEGER. Para la interpretación correcta y consiguiente elaboración de los datos, es necesaria una conversión. Con ayuda del Download abajo indicado, se aclaran estas conversiones. El Download contiene tanto la librería "Scale" con las funciones de conversión, como el programa ejemplo "Tip038" para una mejor comprensión. 1. Escalado El escalado de los valores de entrada y salida se puede tomar de los siguientes diagramas. Aquí se explican los conceptos "unipolar", "bipolar" y "20% de desviación". Especialmente importante para el STEP 7-Micro/Win - Asistente de operaciones PID (Herramientas -> Asistente de operaciones -> Regulador PID). El escalado unipolar sólo se desarrolla en el rango de valores positivos o negativos (la figura 01 muestra un ejemplo para valores de entradas analógicas de 0 a 32000). Figura 01 Con un escalado unipolar con una desviación del 20%, el límite inferior del rango de valores está al 20% del valor superior (la figura 02 muestra un ejemplo de un valor de entrada analógica que va de 6400 a 32000). Figura 02 El escalado bipolar se desarrolla en el rango de valores positivo y negativo (la figura 03 muestra un ejemplo de un valor de entrada analógica que va de -32000 a 32000).

Upload: mayte-garcia

Post on 05-Aug-2015

69 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Escala Do

InstruccionesLa representación de los valores de entrada y salida analógicos en los módulos de ampliación EM 231, EM 232 y EM 235, así como en la CPU 224XP, se realiza de forma digital con el formato de tipo palabra INTEGER. Para la interpretación correcta y consiguiente elaboración de los datos, es necesaria una conversión. Con ayuda del Download abajo indicado, se aclaran estas conversiones. El Download contiene tanto la librería "Scale" con las funciones de conversión, como el programa ejemplo "Tip038" para una mejor comprensión.

1. EscaladoEl escalado de los valores de entrada y salida se puede tomar de los siguientes diagramas.

Aquí se explican los conceptos "unipolar", "bipolar" y "20% de desviación". Especialmente importante para el STEP 7-Micro/Win - Asistente de operaciones PID (Herramientas -> Asistente de operaciones -> Regulador PID).El escalado unipolar sólo se desarrolla en el rango de valores positivos o negativos (la figura 01 muestra un ejemplo para valores de entradas analógicas de 0 a 32000).

Figura 01

Con un escalado unipolar con una desviación del 20%, el límite inferior del rango de valores está al 20% del valor superior (la figura 02 muestra un ejemplo de un valor de entrada analógica que va de 6400 a 32000).

Figura 02

El escalado bipolar se desarrolla en el rango de valores positivo y negativo (la figura 03 muestra un ejemplo de un valor de entrada analógica que va de -32000 a 32000).

Page 2: Escala Do

Figura 03

La siguiente tabla da información sobre las abreviaturas utilizadas:

Parámetro

Descripción

Ov Valor de salida escalado (Output value)

Iv Valor de entrada analógico (Input value)

Osh Valor límite superior de la escala para el valor de salida escalado (Output scale high)

Osl Valor límite inferior de la escala para el valor de salida escalado (Output scale low)

Ish Valor límite superior de la escala para el valor de entrada analógico (Input scale high)

Isl Valor límite inferior de la escala para el valor de entrada analógico (Input scale low)

Tabla 01

2. FórmulaLa siguiente fórmula se deduce del diagrama para el cálculo del valor escalado:

Ov = (Osh - Osl) / (Ish - Isl) * (Iv - Isl) + Osl

3. Librería

3.1 Descripción de la librería "Scale"La librería "scale.mwl" contiene módulos de función para convertir el escalado de tipo INTEGER a REAL (S_ITR), de tipo REAL a REAL (S_RTR) y de tipo REAL a INTEGER (S_RTI).

Page 3: Escala Do

Figura 04

3.2 Escalado de la entrada analógica al formato de datos de salida REAL (S_ITR)Las funciones S_ITR ofrecen la posibilidad de convertir señales de entradas analógicas en valores normalizados entre 0.0 y 1.0 (tipo REAL).

Figura 05

3.3 Modificación del escalado al formato de tipo de datos REAL (S_RTR)Las funciones S_RTR ofrecen la posibilidad de convertir rangos de valores enteros de formato REAL (por ejemplo, los valores de entrada entre 0.0 y 1.0 a la zona de salida en porcentaje).

Page 4: Escala Do

Figura 06

3.4 Conversión al formato de escalado de salidas analógicas INTEGER (S_RTI)Las funciones S_RTI convierten un número real en el tipo de datos de salida analógica INTEGER.

Figura 07

4. Programa ejemplo

4.1 Descripción del programa ejemplo "Tip038"Se tiene un fluido determinado dentro de un contenedor cerrado.

El conversor de medida de diferencia de presión suministra una intensidad (4 - 20 mA) a la entrada del módulo de entradas analógicas. La intensidad es proporcional al nivel de llenado del contenedor.

El módulo analógico EM 235 se tiene que calibrar de tal manera que el valor analógico de 20 mA, con un nivel de llenado de 10 m, se convierta al valor digital 32.000. Con un nivel de llenado de 0 m, el valor analógico de 4 mA se convierte al valor digital 6.400. El programa realiza la escala de los valores digitales convertidos en altura en metros.

La tensión para el señalizador del nivel de llenado se tiene que crear a través del módulo de salidas analógicas. Esta tensión se crea escribiendo el valor digital correspondiente en una palabra de salidas analógicas (AAW).

El módulo de salidas analógicas suministra la altura del nivel de llenado (entre 0 y 10 metros) al equipo de medida en forma de una tensión entre 0 V y 10 V. La señalización analógica del equipo de medida reacciona a la tensión con un movimiento de la aguja que es proporcional al nivel de llenado.

La fórmula escala cada valor que se encuentra entre un valor de escalado máximo y mínimo. Este programa recibe la palabra de entradas analógicas (AEW) y la escala para el módulo de salidas analógicas. Primero, el programa lee la palabra AEW, es decir un valor entre 4 y 20 mA (6.400 y 32.000), y escala el valor a un número normalizado entre 0.0 y 1.0 (consulte la figura 05). Este valor se escala para el rango de 0.0 a 100.0 (consulte la figura 06) y de 0 a 32.000 (consulte la figura 07).

Page 5: Escala Do

4.2 La librería de STEP 7-Micro/WIN como archivo ZIPCopie el archivo "scale.zip" en un directorio aparte y descomprímalo. A continuación, la librería "scale_d.mwl" y el programa ejemplo "Tip038_D.mwp" ya se pueden integrar en el S7-200 a partir de la versión 4.0.7.10 del STEP 7-Micro/WIN. El archivo "scale.zip" contiene la librería y el programa ejemplo en alemán ("scale_d.mwl" und "Tip038_D.mwp") e inglés ("scale_e.mwl" und "Tip038_E.mwp").

Page 6: Escala Do

Describo un poco lo que quiero hacer y con lo que cuento: Necesito tomar la lectura de una entrada analógica de un módulo EM 231 de 4 entradas analógicas para PLC Siemens S7-200. La señal analógica proviene de un transductor de corriente de entre 0 y 20 A (dc), con una salida de 0 a 10 V. Sé que el módulo de entradas analógicas tiene un formato de la palabra de datos (unipolar) de 0 a 32000, y ya he hecho los calculos para el escalado: (Y = 1600 X), donde Y es el valor de la palabra (entre 0 y 32000) y X es el valor de la medición analógica (entre 0 y 20 A).

Para tratar la señal analogica, puedes hacerlo así :

Transferir Byte ( Mov W ) en la entrada del bloque , pones la direccion de la entrada analogica In : aiw0 y en la salida , pones la palabra de memoria donde guardas el valor de la analogica Out : vw100 p.ej Ya tienes el valor en palabra de memoria . Como el valor que tu quieres usar ,Y, sera mayor de 32000, y puede ser igual a 1600 x32000, lo que puedes hacer es convertir el valor entero de vw100 en entero doble con : I_DI , donde in : vw100 y out : vd104, donde el valor maximo es mucho mayor y ahi puedes meter el escalado . Piensa pero que ese valor esta en formato entero . Si necesitas que ese valor sea real, puedes convertirlo con : DI_R , donde in : vd104 (entero)y out vd 110 ( real) ,todo dependera de las operaciones que quieras realizar .

No entiendo lo de que el valor de Y puede ser mayor a 32000, si [1600 * 20 (V) = 32000], para X=20A, Y=32000. Te cuento lo que he deducido, supongamos que la lectura analógica se guardaría en VW1, lo que se guarda es una palabra (16 bits), pero según he leido, cuando trabajamos con datos unipolares, el formato de la palabra es 0--- ---- ---- -000, donde los ceros que he puesto no se variarían y lo que modificamos en función del valor analógico son los otros 12 bits. Lo que no entiendo es que cuando escalo el valor analógico en función de esos 32000 que me da el rango unipolar y obtengo lo que indique en la pregunta Y=1600 X, qué hago con esa ecuación, cómo interpreto el valor que aparezca en VW1 ? Te pongo un ejemplo: el sensor de corriente comunica que ha detectado 16.3 A, dando una señal de 8.15 V. ¿Qué valor aparecería en VW1 ? ¿Cómo haría para saber si el valor almacenado en VW1 es mayor o menor a 15 A ?

Hola , yo lo que haria , quizas ya lo haces , es saber entre que niveles te mueves de analogica, es decir , a nivel minimo de señal analogica , que valor visualizas en vw1 , y a continuacion , ver a nivel maximo de analogica, que valor visualizas en vw1. Si 16,3A te dan 8,5 V , el valor que muestra el automata sera p. ej. 16544.Es con ese valor con el que has de trabajar.

si el valor minimo es por ejemplo 0 y el maximo 32000 y tu mides corriente entre 0 y 20A , cada Amperio seran un valor de 1600 guardado en vw1 Para comparar ese valor , en el apartado de comparacion , tienes las funciones comparar W : menor que, mayor que , igual que , mayor o menor que ..... si coges la funcion que mejor te convenga , en esa funcion p.ej mayor que , tiene dos datos , el superior , donde pondrias la direccion vw1 y el inferior , donde puedes poner un valor numerico . Cuando se cumpla , esa funcion se

Page 7: Escala Do

comporta como un contacto . Si programas comp vw1 mayor que 16000 , y en es linea haces un set de una marca, podrias tener un alarma de limite de corriente , por ejemplo . A partir de ahi , pudes complicar el programa tanto como quieras .Es cuestion de pasar tiempo y probar . El dato a comparar tambien podria ser una direccion de memoria que podrias editar por pantalla

Con tu ayuda y con todas las "vueltas" que le he dado al asunto, creo que he resuelto mis dudas, dime si me equivoco.

El rango del amperaje medido es 0-20 A, con lo que un valor en VW1 de 0 corresponde a 0 A, mientras que un valor de 32000 corresponde a 20 A. Como la resolución en la entrada analógica para la configuración 0-10 V es de 2.5 mV, resulta que tenemos 4000 pasos (de 2.5 mV) para llegar de 0 a 10 V, por lo que si divido 32000 entre 4000 pasos resulta que cada uno de esos pasos representa un incremento de 8 en el valor de VW1. Por otro lado si divido los 20 A entre 4000 resulta que cada paso representa 5 mA. Concluyendo, si tomo el valor almacenado en VW1, lo divido entre 8 (obtengo el número de pasos) y el resultado lo multiplico por 5 mA, obtengo el amperaje que se ha registrado.

Hola Jotatejada . Evidentemente , los calculos que haces son correctos . Ahora bien, nunca he trabajado con entrada 0-10v y supongo que la resolucion de la que partes es real. Realmente , lo que tienes, es que valor vw1 : 0 , 0v= 0 Amp. y valor vw1: 32000 , 10v = 20 A Si haces los calculos que tu dices , te funcionara bien siempre y cuando trabajes con numeros enteros.Te digo esto , porque si tu quieres dividir el valor de vw1 , solo puedes hacerlo en aritmetica fija

No se si para incrementos pequeños de vw1 tendras la resolucion que necesitas , si segun tu , tendras 4000 pasos, el valor maximo de 32000 /4000 pasos, te dara incrementos teoricos de vw1 de 8 en 8 . Al tratar vw , solo puedes dividir enteros en aritmetica fija . Si luego quieres multiplicar es valor por 0,005, tampoco puedes hacerlo pues en aritmetica fija solo puedes multiplicar enteros. Si tienes un valor de 16000 /8 x 5/1000 = 10 A Si tienes un valor de 16056/8 x 5/1000 = 10.04 A

Lo que no se yo , es si el resultado de las operaciones te dara resultado en decimales , pues multiplicas enteros.Puedes probar poniendo tu valores en el 200 ,para probar .

Para tener resultados en decimales , creo que tendrias que convertir el vw1 con I-DI de entero a entero doble y despues con DI-R de doble entero a real.Con los dator en real , podras sumar , dividir,multiplicar en aritmetica en coma flotante, y ahi si que tendras decimales .

Piensa que si divides en real un numero entero , pondrias p.ej 8,0

Si quieres mover los dato en real , puedes hacerlo con mov_R .

Al ser datos en palabra doble , deberas guardarlos como VD - VD0 : Byte 0,1,2 y 3 -