10/11/14 Programación Avanzada. Visión Prác4ca con S7-­‐1200 PARTE 1: PROCESAMIENTO DE SEÑALES ANALÓGICAS TEMA 6 PROGRAMACIÓN AVANZADA. VISIÓN PRÁCTICA CON S7-­‐1200 Tema 7 1 10/11/14 Procesado de señales analógicas • A diferencia de una señal binaria, que solo puede adoptar los estados de señal "Tensión presente +24V" y "Tensión no presente 0V", las señales analógicas pueden adoptar cualquier valor dentro de un rango determinado. Un ejemplo ]pico de sensor analógico es un potenciómetro. En función de la posición del botón rota4vo, se puede ajustar cualquier resistencia hasta un valor máximo. • Ejemplos de magnitudes analógicas en la tecnología de control: • • • • Temperatura -­‐50 ... +150 °C Caudal 0 ... 200 l/min Velocidad 500 ... 1500 rpm Etc. TEMA 6 PROGRAMACIÓN AVANZADA. VISIÓN PRÁCTICA CON S7-­‐1200 • SEÑALES ANALÓGICAS 2 2 10/11/14 Procesado de señales analógicas • Estas magnitudes se transforman con un transductor de medida en tensiones, intensidades o resistencias eléctricas. Si se desea, p. ej., registrar una velocidad, el rango de velocidad de 500 ... 1500 rpm se puede conver4r en un rango de tensión de 0 ... +10 V con un transductor de medida. A una velocidad medida de 865 rpm, el transductor de medida emi4ría un valor de tensión de +3,65 V. 500 865 1500 U/min 365 10V: 1000 U/min = 0,01 V/U/min 1000 U/min 365 U/min x 0,01 V/U/min = 3,65 10V 0V +10V • Estas tensiones, intensidades y resistencias eléctricas se conectan a un módulo analógico que digitaliza esta señal. 3 ! TEMA 6 PROGRAMACIÓN AVANZADA. VISIÓN PRÁCTICA CON S7-­‐1200 • SEÑALES ANALÓGICAS 3 0A/0V 20mA/10V 10 V: 2048 10V: 2048==0,0048828 0,0048828 → espueden können Spannungsà Se detectar diferencias de <5 mV en la tensión<5mV erkannt unterschiede 11 Bit 0 2048 werden Resolución: Podemos definir la resolución como el número de valores discretos capaz de ser dis4nguidos de forma individual por el autómata en el rango de señal admisible por el conver4dor analógico / digital. 4 10/11/14 • SEÑALES ANALÓGICAS • Si se procesan magnitudes analógicas con un PLC, el valor de tensión, intensidad o resistencia leído debe conver4rse en información digital. Esta transformación se denomina conversión analógica-­‐digital (conversión A/D). Esto significa que, p. ej., el valor de tensión de 3,65 V se almacena como información en una serie de posiciones binarias. Cuantas más posiciones binarias se u4licen para la representación digital, más fina será la resolución. Si, por ejemplo, únicamente se dispone de 1 bit para el rango de tensión 0 ... +10 V, solo se podría hacer una afirmación: si la tensión medida se encuentra en el rango 0... +5 V o en el rango +5 V ... +10 V. Con 2 bits, el rango ya se puede dividir en 4 áreas individuales, es decir, 0 ... 2,5 / 2,5 ... 5 / 5 ... 7,5 / 7,5 ... 10 V. Los conver4dores A/D habituales en la tecnología de control trabajan con 8 o con 11 bits. • Así, 8 bits suponen una resolución de 256 áreas individuales y 11 bits, 2048 áreas individuales. TEMA 6 PROGRAMACIÓN AVANZADA. VISIÓN PRÁCTICA CON S7-­‐1200 Procesado de señales analógicas ! 4 • Tratar valores calculando la correspondencia entre la medida real, señal analógica y rango en el formato del PLC es extremadamente incómodo, ya que implica realizar varios cálculos previos de cara a realizar la comparación • SÓLO SERÍA RAZONABLE EN CASO DE POCOS VALORES Y CONOCIDOS (p.e. sensor ultrasónico que mide el nivel de un depósito y sólo toma decisiones respecto al rango de 50% del mismo). • En los demas casos -­‐> hay 2 posibilidades • Implementar las operaciones aritmé3cas correspondientes al tramiento de datos dentro de programa de control del PLC • Realizar un escalado y normalización de valores. • La realización de un escalado 4ene como obje4vo conver4r los datos en formato palabra del PLC(enteros) en valores reales del rango de medida del disposi4vo original (p.e. la temperatura de 0 a 760°C) de acuerdo a la resolución del mismo, y poder realizar operaciones de forma directa. 5 10/11/14 TEMA 6 PROGRAMACIÓN AVANZADA. VISIÓN PRÁCTICA CON S7-­‐1200 Procesado de señales analógicas 5 Parám. Descripción Ov Valor de salida escalado (Output value) lv Valor de entrada analógico (Input value) Osh Valor límite superior de la escala para el valor de salida escalado Osl Valor límite inferior de la escala para el valor de salida escalado lsh Valor límite superior de la escala para el valor de entrada analógico lsl Valor límite inferior de la escala para el valor de entrada analógico Valor de Salida Osh Escalado Valor de Salida Escalado Ov Osh Valor de Entrada Osl Analógico Ov Osl lsl lv lsh Valor de Entrada Analógico 6 lv lsl lsh 10/11/14 • La realización de un escalado 4ene como obje4vo conver4r los datos en formato palabra del PLC(enteros) en valores reales del rango de medida del disposi4vo original (p.e. la temperatura de 0 a 760°C) de acuerdo a la resolución del mismo, y poder realizar operaciones de forma directa. TEMA 6 PROGRAMACIÓN AVANZADA. VISIÓN PRÁCTICA CON S7-­‐1200 Procesado de señales analógicas 6 • En algunos casos incluso será necesario un escalado con desviación, p.e. si el rango de medida de disposi4vo de 4-­‐20 mA, y el del PLC sólo mide señales en corriente de 0 a 20 mA. • Esto significa que una medida de 4 mA del disposi4vo (cero en su medida), el PLC la interpreta como un dato de señal de valor entero (en palabra) de 6400 suponiendo un rango de (0,32000). • Esto implica que en el escalado de salida, éste valor deberá corresponder al dato de rango mínimo (0) de medida del disposi4vo. Valor de Salida Escalado Osh Ov Osl lsl lv Valor de Entrada lsh Analógico • Lo que significa que el valor escalado puede ser calculado mediante la recta de interpolación lineal entre Osh y Ish, e Osl y Isl. Podemos calcular por tanto el valor de acuerdo a la siguiente fórmula: 10/11/14 TEMA 6 PROGRAMACIÓN AVANZADA. VISIÓN PRÁCTICA CON S7-­‐1200 Procesado de señales analógicas 7 10/11/14 Procesado de señales analógicas • En el caso del S7-­‐1200 existen dos 4pos de elementos que realizan medidas / actuaciones analógicas: los módulos SM (1231, 1232, 1234) y las tarjetas Signal Board SB 1232. • En el caso de los módulos SM la diferencia entre los mismos es el número de E/S analógicas capaces de tratar. • Dado que hay CPUs que no son ampliables con módulo de señal (como la CPU 1211C), el S7-­‐1200 integran la posibilidad de acoplar una tarjeta de señal (Signal Board) que proporciona, además de las dos AI que integra la propia CPU, AO de 12 / 11 bits de resolución (U/I) o AI adicionales, o incluso DI y DO . Las tarjetas SB van integradas en el cuerpo del PLC, op4mizando de esta forma el espacio ocupado por el conjunto. TEMA 6 PROGRAMACIÓN AVANZADA. VISIÓN PRÁCTICA CON S7-­‐1200 • S7 1200 8 SM 1231 SB 1232 • En el caso del S7-­‐1200, como se ha comentado anteriormente, éste viene equipado con 2 AI en tensión, con rango 0-­‐10 V (no pueden ser configuradas como entradas en corriente ni en otro rango diferente), como puede verse en la imagen: En este caso, la resolución de las entradas analógicas integradas en el S7-­‐1200 es de 10 bits. Para el caso de las SB y los SM, la resolución de las AI y AQ aumenta hasta los 12 bits, admi4endo tanto entrada en tensión como en corriente. Esto significa que el rango de valores capaces de ser dis4nguidos por el PLC en base a los 10 bits de almacenamiento es de: 210 = 1024 No obstante estos 10 bits van integrados en una palabra de datos, por lo que su rango de variación en el PLC será mayor como podemos ver en las caracterís4cas: de 0 a 27648. 10/11/14 • S7 1200 TEMA 6 PROGRAMACIÓN AVANZADA. VISIÓN PRÁCTICA CON S7-­‐1200 Procesado de señales analógicas 9 10/11/14 Procesado de señales analógicas • En el caso de las entradas AI integradas del S7-­‐1200, se han eliminado los ajustes de ganancia y offset y aunque los 16 bits de la palabra de datos admiten un rango de variación de: 216 = 65536 • que se queda en únicamente de 0 a 32767 por ser unipolar (0 a 10 V), se ha modificado el rango para contemplar sobreimpulsos y excesos de señal (valores de entrada en tensión por encima de los 10 V). De esta forma, por ejemplo en el rango de 0-­‐10 Vcc comprende las señales entre 0 y 27648 (UNIPOLARES) y en el rango de ±10Vcc comprende las señales entre -­‐27648 y 27648 (BIPOLARES) TEMA 6 PROGRAMACIÓN AVANZADA. VISIÓN PRÁCTICA CON S7-­‐1200 • S7 1200 10 • Al agregar una CPU a STEP7, se asignan automá4camente las direcciones de entrada (I) y salida (Q). El direccionamiento predeterminado puede no obstante cambiarse seleccionando el campo de dirección en la ventana de configuración de la vista general de disposi4vos y tecleando números nuevos. • Con respecto a las entradas analógicas de la CPU, hay que tener en cuenta que se asignan en grupos de dos, y ocuparán por tanto 4 bytes: En el caso de emplear SBs o SMs con entradas / salidas analógicas adicionales, las mismas será igualmente configurables desde la vista general de disposi4vos: Por defecto vienen asignadas como AI2_1: 64...67. Esto quiere decir que las entradas analógicas en el S7-­‐1200 ocuparán los canales: IW64 y IW66 10/11/14 • S7 1200 TEMA 6 PROGRAMACIÓN AVANZADA. VISIÓN PRÁCTICA CON S7-­‐1200 Procesado de señales analógicas 11 • En este ejemplo, con un bit asociado en configuración de marcas de sistema y ciclo para siempre ON, se realiza un movimiento del dato de IW64 a un byte de un bloque de datos creado a tal fin (DB1) y denominado “entrada_analog”. • Posteriormente se compara el valor de este byte con consignas de referencia, ac4vando o desac4vando salidas consecuentemente: • -­‐ Si “entrada_analog” 4ene un valor menor o igual de 15000, se ac4vará la salida Q0.0. • -­‐ Si “entrada_analog” está en un rango (IN_RANGE) de entre 15001 y 20000, se ac4vará la salida Q0.1 (y se desac4vará la Q0.0 anterior). • -­‐ Si por úl4mo “entrada_analog” 4ene un valor superior a 20000 (y menor del rebase por exceso), se ac4vará la salida Q0.2 (y se desac4vará la Q0.1). 10/11/14 • S7 1200 TEMA 6 PROGRAMACIÓN AVANZADA. VISIÓN PRÁCTICA CON S7-­‐1200 Procesado de señales analógicas 12 • S7-­‐1200 viene con funciones integradas para realizar el escalado y normalización de valores, o bien para realizar el cálculo mediante la implementación de la recta de interpolación: • Funciones de normalización y escalado: NORM_X y SCALE_X. • La instrucción NORM_X normaliza el valor de las variables de la entrada VALUE mapeándolas en una escala lineal. Los parámetros MIN y MAX sirven para definir los límites de un rango de valores que se refleja en la escala. En función de la posición del valor que se debe normalizar en este rango de valores, el resultado se calcula y se deposita como número en coma flotante en la salida OUT. Si el valor que se debe normalizar es igual al valor de la entrada MIN, la salida OUT devuelve el valor "0.0". Si el valor que se debe normalizar adopta el valor de la entrada MAX, la salida OUT devuelve el valor "1.0". • En este caso se normaliza la entrada IW64, cuyos valores pueden tomarse en el rango entre 0 y 27648 (0 a 10 Vcc) a un número real entre 0 y 1 que se deposita en MD0. 10/11/14 • S7 1200 TEMA 6 PROGRAMACIÓN AVANZADA. VISIÓN PRÁCTICA CON S7-­‐1200 Procesado de señales analógicas 13 10/11/14 Procesado de señales analógicas • Funciones de normalización y escalado: NORM_X y SCALE_X. • La instrucción SCALE_X escala el valor de la entrada VALUE mapeándolo en un rango de valores determinado . Al ejecutar la instrucción, el número en coma flotante de la entrada VALUE se escala al rango de valores definido por los parámetros MIN y MAX. El resultado de la escala es un número entero que se deposita en la salida OUT. • En este caso se escala el valor almacenado en MD0 en el rango entre 0 y 760, almacenando este valor en formato real en el área de memoria en doble palabra MD10. • Dado que en el en las funciones NORM_X y SCALE_X del S7-­‐1200 es posible u4lizar las entradas y salidas de habilitación, todo el proceso puede recogerse en un solo Network de la siguiente forma: TEMA 6 PROGRAMACIÓN AVANZADA. VISIÓN PRÁCTICA CON S7-­‐1200 • S7 1200 14 10/11/14 Procesado de señales analógicas • Una entrada analógica de un módulo de señales analógicas o Signal Board que usa entrada de intensidad se encuentra en el rango de valores validos entre 0 y 27648. Suponiendo que una entrada analógica representa una temperatura en la que el valor 0 de la entrada analógica representa -­‐30,0 grados C y 27648 representa 70,0 grados C. • Para transformar el valor analógico en las correspondientes unidades de ingeniería, normalice la entrada a un valor entre 0,0 y 1,0 y a con4nuación escálelo entre -­‐30,0 y 70,0. El valor resultante es la temperatura representada por la entrada analógica en grados Celsius:" TEMA 6 PROGRAMACIÓN AVANZADA. VISIÓN PRÁCTICA CON S7-­‐1200 • EJEMPLO-­‐ NORMALIZADO Y ESCALADO 15 10/11/14 Procesado de señales analógicas • La instrucción CALCULATE permite crear una función matemá4ca que se ejecuta con múl4ples parámetros de entrada para obtener el resultado en función de la ecuación definida. • La función es accesible desde el árbol de instrucciones básicas de las Task Cards, dentro de Funciones matemá3cas, o bien directamente insertando un bloque de función sin definir y escribiendo el nombre de la misma. • La instrucción no configurada ofrece dos parámetros de entrada y uno de salida. El primer paso es seleccionar el 4po de datos con el que se va a realizar la operación, desplegando el menú presente en “???”. En el caso de realizar escalado de valores analógicos, la operación deberá realizarse en formato real. TEMA 6 PROGRAMACIÓN AVANZADA. VISIÓN PRÁCTICA CON S7-­‐1200 • FUNCIÓN DE CÁLCULO DE LA RECTA DE INTERPOLACIÓN CALCULATE 16 10/11/14 Procesado de señales analógicas • Posteriormente deberá accederse al botón “introducir ecuación” visible en la figura superior, debiendo introducir la ecuación de la recta genérica de interpolación para el escalado de valores: • Deberá escribirse la ecuación en el formato esperado por la instrucción CALCULATE, por lo que podemos traducir la ecuación anterior a: • Out=((in4-­‐in5)/(in2-­‐in3))*(in1-­‐in3)+in5 Parám CALCU. Descripción Ov Out Valor de salida escalado (Output value) lv in1 Valor de entrada analógico (Input value) Osh in2 Valor límite superior de la escala para el valor de salida escalado Osl in3 Valor límite inferior de la escala para el valor de salida escalado lsh in4 Valor límite superior de la escala para el valor de entrada analógico lsl in5 Valor límite inferior de la escala para el valor de entrada analógico TEMA 6 PROGRAMACIÓN AVANZADA. VISIÓN PRÁCTICA CON S7-­‐1200 • FUNCIÓN DE CÁLCULO DE LA RECTA DE INTERPOLACIÓN CALCULATE 17 10/11/14 Procesado de señales analógicas • Será necesario posteriormente introducir en la ecuación a calcular las áreas de memoria de donde bien se toman los valores (caso de la entrada analógica y los valores de referencia en el escalado) o bien don de se colocarán los valores calculados: Es fundamental tener en cuenta que todos los datos introducidos en la función CALCULATE deben tener formato real. Si intentamos introducir IW64 como dato analógico de entrada en in1, será imposible hacerlo de forma directa, al ser un entero. Es necesario una conversión previa de 4pos empleando la función CONVERT: TEMA 6 PROGRAMACIÓN AVANZADA. VISIÓN PRÁCTICA CON S7-­‐1200 • Con lo que la ecuación quedará de la forma: 18 • Una vez realizada la conversión de 4pos es posible rellenar la función CALCULATE y obtener el valor real en OUT correspondiente al dato real de medida del disposi4vo conectado a la entrada analógica. • En este caso, el valor unipolar (0-­‐10V) presente en la entrada analógica IW64, conver4da previamente a real en MD40, lo estamos escalando a un número real entre 0 y 760, que se volcará en el área de memoria MD50. 10/11/14 TEMA 6 PROGRAMACIÓN AVANZADA. VISIÓN PRÁCTICA CON S7-­‐1200 Procesado de señales analógicas 19 10/11/14 Procesado de señales analógicas • Una salida analógica de un módulo de señales analógicas o Signal Board que usa salida de intensidad se encuentra en el rango de valores validos entre 0 y 27648. Suponiendo que una salida analógica representa un ajuste de temperatura en la que el valor 0 de la salida analógica representa -­‐30,0 grados C y 27648 representa 70,0 grados C. • Para conver4r un valor de temperatura guardado que se encuentra entre -­‐30,0 y 70 en un valor de salida analógica dentro del rango 0 y 27648, es necesario, normalizar el valor correspondiente a un valor entre 0,0 y 1,0 y a con4nuación escálarlo al rango de salida analógica, de 0 a 27648: TEMA 6 PROGRAMACIÓN AVANZADA. VISIÓN PRÁCTICA CON S7-­‐1200 • EJEMPLO-­‐ NORMALIZADO Y ESCALADO 20