www.infoPLC.net DEPARTAMENTO DE ELECTRÓNICA Máster universitario en automatización de procesos industriales Departamento de Electrónica Universidad de Alcalá DEPARTAMENTO DE ELECTRÓNICA Programación en Ladder. 2ª parte www.infoPLC.net Funciones. Operandos 3 Operandos Programación en ladder 4.- Programación en Ladder 4 Direccionamiento de áreas de memoria de E/S Programación en ladder www.infoPLC.net 4.- Programación en Ladder 5 Constantes Programación en ladder Funciones de enclavamiento 6 Instrucciones SET y RESET SET pone el bit de destino a ON cuando se activa su entrada. RESET pone a OFF el bit de destino cuando se activa su entrada. Programación en ladder www.infoPLC.net Funciones de enclavamiento 7 Instrucción KEEP(11) Permite definir un relé como biestable, estando su estado (salida) definido por 2 condiciones lógicas: SET y RESET. ⌧ La salida se activará cuando haya un 1 en SET. ⌧ La salida se desactivará cuando haya un 1 en RESET. ⌧ Si se activan set y reset a la vez, predomina el RESET. Programación en ladder Funciones de enclavamiento 8 Cómo introducir una función en el programa (I) Programación en ladder www.infoPLC.net Funciones de enclavamiento 9 Cómo introducir una función en el programa (II) Programación en ladder Funciones de enclavamiento 10 Instrucciones INTERLOCK-INTERLOCK CLEAR. Cuando el resultado de la condición lógica que controla a IL(02) es OFF todas las instrucciones OUT entre la instrucción IL y la ILC(003) siguiente se ponen a OFF, y a todos los temporizadores entre ellas se les hace un reset. Siempre deben ir juntas. Se pueden utilizar varias funciones IL(02) con una sola ILC(03). Los relés enclavados por funciones KEEP no son afectados por esta instrucción. Programación en ladder www.infoPLC.net Funciones de enclavamiento 11 Instrucciones INTERLOCK-INTERLOCK CLEAR. Ejemplo de funcionamiento Programación en ladder Detectores de flancos 12 Instrucciones DIFU(13)/DIFD(14) La instrucción DIFU(13), Differentiate Up, detecta los flancos de subida. Genera un impulso de la duración de un ciclo de trabajo en el flanco ascendente de la señal de entrada. La instrucción DIFD(14), Differentiate Down, detecta flancos de bajada. Genera un impulso de la duración de un ciclo de trabajo en el flanco descendente de la señal de entrada. 000.00 010.00 010.01 Programación en ladder www.infoPLC.net Ejercicio DIFU/DIFD 13 PUERTA AUTOMÁTICA DETECTOR ULTRASONIDOS (DU) FINAL DE CARRERA (FC2) MANUAL-AUTOMATICO (M - A) ABRIR MANUAL (Ab) CERRAR MANUAL (C) FOTOCÉLULA (FC) FINAL DE CARRERA (FC1) ASIGNACIÓN DE E/S DU = FC = FC1 = FC2 = M- A = Ab = C = 2960.00 Apertura puerta = 2961.00 2960.01 Cierre puerta = 2961.01 2960.02 2960.03 2960.04 OFF (M) ON (A) 2960.05 2960.06 Programación en ladder Ejercicio DIFU/DIFD 14 Funcionamiento de la puerta automática Se desea controlar una puerta automática vertical. Puede funcionar de 2 formas: Modo manual: responde a los botones de apertura y cierre. Modo automático: La puerta se empieza a abrir con el flanco de subida del detector de ultrasonidos, hasta que llega al FC2. La puerta se empieza a cerrar con el flanco de bajada de la fotocélula, hasta que llega al FC1. Si la puerta se está cerrando, acaba de cerrarse, hasta que llegue a FC1. Si la puerta se está abriendo, acaba de abrirse, hasta que llegue a FC2. Cuando la puerta alcanza los finales de carrera, se ponen a 1. El resto del tiempo están a 0. Programación en ladder www.infoPLC.net Temporizadores y contadores 15 Instrucción TIM La instrucción TIM (temporizador) se utiliza para generar un retardo a la conexión, respecto a la señal de habilitación START. Inicialmente PV (Present value, valor actual) se pone a SV (Set Value, valor de inicialización). Cuando START pone a ON, el valor actual del T0000 TIM (PV) empieza a decrementarse. Cuando PV 0, el contacto T N (N es el número del temporizador) se pone a ON. Cuando START pasa a OFF, el contacto TIM se pone a OFF, PV=SV y el temporizador es reseteado y preparado de nuevo. Condición de ejecución Indicador del temporizador Programación en ladder Temporizadores y contadores Instrucción TIM Configuración del temporizador: ⌧ Se inserta la función. ⌧ Se escribe TIM en el área reservada para el nombre. ⌧ Se rellenan los detalles. Número de temporizador Tiempo deseado. Número de décimas de segundo. Para que sea un número en BCD debe empezar por #. Programación en ladder 16 www.infoPLC.net Temporizadores y contadores 17 Instrucción TIM El retardo (SV) puede variar entre 0 y 999.9 s, y es programable en unidades de 0.1 s. Puede especificarse como número, o como canal (posición de memoria). Los temporizadores y los contadores comparten zona de memoria: cada posición de memoria podrá ser utilizada como temporizador o como contador, pero no como ambos: no se pueden programar TIM y CNT con los mismos números. Gráfico: temporizadores conectados en cascada. Se obtiene un temporizador con SV=SV1+SV2. T0000 Contacto asociado al contador T0001 Programación en ladder Temporizadores y contadores 18 Instrucción TIM Ejemplo de uso: generar una señal de salida cuadrada con tiempo a OFF=T1 y tiempo a ON =T2. Entrada T2 T2 T2 Salida T1 T1 Programación en ladder T1 www.infoPLC.net Ejercicio TIM 19 Llenado automático de botellas Detección de vacío Detección de nivel bajo Panel Alarma Sirena Válvula Motor cinta Pulsador parada Reset Pulsador marcha Célula Programación en ladder Ejercicio TIM 20 Llenado automático de botellas Una cantidad constante de líquido se vierte en cada botella según va pasando por la cinta. El piloto de alarma lucirá si el nivel del tanque alcanza un mínimo. Cuando quede vacío sonará una sirena y la cinta se parará. Asignación de entrada/salida Inputs Outputs Pulsador parada 2960.00 Sirena 2961.00 Pulsador marcha 2960.01 Alarma 2961.01 Reset 2960.02 Motor cinta 2961.02 Detección de vacío 2960.03 Válvula 2961.03 Detección de nivel bajo 2960.04 Célula 2960.05 Programación en ladder www.infoPLC.net Ejercicio TIM 21 Llenado automático de botellas El motor 2961.02 funcionará cuando el pulsador de marcha 2960.01 se active. Cuando la célula detecta botella el motor se para. Se abre la válvula 2961.03 durante 2 segundos y se llena la botella. Un segundo después, el motor se pone en marcha hasta la próxima botella. Todas las operaciones cesan cuando se activa el pulsador de parada (emergencia, 2960.00). Marcha 2960.01 Motor cinta 2961.02 Célula 2960.05 1s 2s Válvula 2961.03 Pulsador parada 2960.00 Nivel bajo 2960.04 Cuando se detecta nivel bajo (2960.04 a ON), Alarma 2961.01 el piloto de alarma lucirá con flashes de 2 seg. Vacío 2960.03 Cuando se detecta nivel vacío (2960.03 a ON) la sirena sonará y el motor de la cinta Sirena 2961.00 parará. Motor 2961.02 Después de solucionar las anomalías, hacer un reset (2960.02) y todo volverá a Reset 2960.02 condiciones iniciales. Programación en ladder Temporizadores y contadores 22 Instrucción TIMH (15) Introduce un temporizador idéntico al de la instrucción TIM, salvo que tiene una resolución de 0.01s, y puede llegar a 99,99sg como máximo. El parámetro de tiempo es el número de centésimas de segundo que debe temporizar. También tiene asignado un contacto a la salida T N (con N igual al número de contador). No puede tener el mismo número que ningún TIM o CNT que estemos utilizando en otro punto del programa. Programación en ladder www.infoPLC.net Temporizadores y contadores 23 Instrucción CNT La instrucción CNT realiza la función de un contador con preselección. Tiene 2 operandos: ⌧ N: Número de contador. ⌧ SV: Número de pulsos que debe contar. Tiene dos entradas: ⌧ Cp: pulsos a contar. ⌧ Rt: reset. El flanco de subida de Cp determina el decremento de PV (Present Value) (si Rt= OFF) en una unidad. Cuando PV 0, el contacto del C N (N es el número de contador) se activa. Programación en ladder Temporizadores y contadores 24 Instrucción CNT Cuando Rt se pone a ON, el CNT se prepara de nuevo en condiciones de reset (CONTACTO=0, PV=SV). El valor de preselección (SV) puede variar entre 0…9999, y puede darse como número (BCD) o como posición de memoria (canal). El CNT es remanente y conserva su estado (contacto, PV) mantenido incluso ante un fallo de tensión o cambio de modo de operación de la CPU, a diferencia de los temporizadores, que pierden su valor cuando hay un fallo de tensión. Cuando PV=0, (contacto a ON) los siguientes pulsos de entrada se ignoran. No pueden programarse CNT y TIM con los mismos números. Acoplando 2 CNT en cascada, se obtiene un contaje resultado del producto de PV1 y PV2. Programación en ladder www.infoPLC.net Temporizadores y contadores 25 Instrucción CNTR (12): Contador reversible Tiene 2 entradas de pulsos, una para incrementar el valor de cuenta y otra para decrementarlo, además del reset. C000 Programación en ladder