Está en la página 1de 13

INSTITUTO

TECNOLOGICO DE
CUAUTLA

CONTROLADORES LOGICOS
19/02/2019
PROGRAMABLES AVANZADOS

INGENIERÍA MECATRÓNICA
Profesor: Samuel Portillo Contreras
Integrantes:
Rivera Rodríguez Daniel
Jiménez Ramírez Brandon Ariel
Martínez Alquezada Luis David
Maldonado Campos Julio Néstor
Salgado Yáñez Daniel Alejandro

PRACT ICA 2 : S UBRUT IN A S E IN TERRUP CION E S


TECNOLOGICO DE CUAUTLA

ÍNDICE

INTRODUCCIÓN…………………………………………………………………….2

DESARROLLO……………………………………………………………………….8

CONCLUSION………………………………………………………………………..12

FIRMA DE LA PRACTICA…………………………………………………………..12

Página 1
TECNOLOGICO DE CUAUTLA

INTRODUCCIÓN

Subrutinas
Las subrutinas son secuencias de instrucciones que se invocan desde un programa para
ejecutar una tarea. Una vez completadas regresan el control al lugar de donde fueron
llamadas y pueden ser definidas por el programador o proporcionadas por el lenguaje de
programación. La diferencia principal entre una función y un procedimiento es que las
funciones regresan un valor como resultado de su ejecución mientras que los procedimientos
no lo hacen. Ambos se componen de un cuerpo donde se encuentran las instrucciones que
se ejecutarán y de una cabecera donde se especifica su nombre, sus parámetros y su tipo
de retorno (si se trata de una función). Su propósito principal es encapsular secciones de
código que se puede utilizar múltiples veces, reduciendo el tamaño de los programas,
mejorando su legibilidad y facilitando su mantenimiento. A la cabecera de las subrutinas, así
como a su cuerpo se les llama declaración mientras que la instrucción en el programa
principal usada para iniciar su ejecución recibe el nombre de innovación.
El tipo de datos del resultado es uno de los indicadores de los tipos de datos primitivos
soportados por el lenguaje de programación (entero, real, carácter, etc.), el nombre de la
subrutina es cualquier nombre válido según las reglas del lenguaje y la palabra regresar al
final de la subrutina sirve para especificar el dato que se debe regresar como resultado de la
función. El dato regresado debe ser del tipo especificado en el tipo de retorno de la función o
de lo contrario el compilador reportará un error.

ILUSTRACIÓN 1 EJEMPLO DE SUBRUTINA

La estructura de los procedimientos es igual a la estructura de las funciones. En su


declaración simplemente se omiten el tipo de datos del resultado y la instrucción regresar al
final del cuerpo de la subrutina.

Para poder realizar las tareas deseadas, las subrutinas deben recibir información del
programa principal. Esa información se transfiere usando parámetros. Estos consisten de
una lista de 0 o más variables declaradas en la cabecera, indicando el tipo de dato transferido
y un nombre para poder usarlo. Los elementos de la lista usualmente se separan con algún
tipo de indicador como la coma (,). Los parámetros se consideran variables locales porque

Página 2
TECNOLOGICO DE CUAUTLA

solo existen durante la ejecución del subprograma y solo el código en el cuerpo de este puede
hacer uso de ellos.

Las subrutinas se utilizan para estructurar o dividir el programa en bloques más pequeños.
Más fáciles de gestionar. Facilita las tareas de comprobación, eliminación de errores y
mantenimiento del programa. La CPU también se puede utilizar más eficientemente,
invocando el bloque sólo cuando se necesite, en vez de ejecutar todos los bloques en cada
ciclo, las subrutinas se pueden transportar si se hace referencia únicamente a sus
parámetros y a su memoria local, para que una subrutina se pueda transportar, se debe evitar
la utilización de variables/símbolos globales (direcciones absolutas en las áreas de memoria
I, Q, M, SM, AI, AQ, V, T, C, S, AC).Si la subrutina no tiene parámetros de llamada (IN, OUT
ó IN_OUT), o si utiliza únicamente variables locales en la memoria L, la subrutina se
puede exportar e importar de un proyecto diferente.

ILUSTRACIÓN 2 USO DE UNA BUENA SUBRUTINA

Rutinas de interrupción

Antes de poder llamar a una rutina de interrupción es preciso establecer un enlace entre el
evento de interrupción y la parte del programa que se desee ejecutar cuando se presente el
evento (RUTINA DE INTERRUPCIÓN). La operación Asociar interrupción (ATCH) sirve para
asignar el evento de interrupción (indicado por el número de evento) a una parte del
programa (indicada por el número de la rutina de interrupción). También es posible asociar
varios eventos de interrupción a una única rutina de interrupción. Por el contrario, no se
puede asociar un sólo evento a distintas rutinas.

Página 3
TECNOLOGICO DE CUAUTLA

ILUSTRACIÓN 3 DESCRIPCION DE INTERRUPCIONES

Cuando se produce un evento estando habilitando las interrupciones, se ejecuta únicamente


la última rutina de interrupción asociada a dicho evento. Cuando se asocia un evento a una
rutina de interrupción, se habilita automáticamente el evento. Si se inhiben todos los eventos
de interrupción, entonces cada vez que se presente la interrupción, se pondrá en cola de
espera hasta que las interrupciones se habiliten de nuevo, utilizando para ello la operación
Habilitar todos los eventos de interrupción, también es posible inhibir ciertos eventos de
interrupción, eliminando la asociación entre el evento y la correspondiente rutina mediante la
operación DTCH (Desasociar interrupción). Esta operación retorna la interrupción a un
estado inactivo o ignorado. Crear una rutina de interrupción (Similar a crear subrutinas)
ILUSTRACIÓN 4 LLAMAR A
UNA INTERRUPCION
Notas

• En un programa se permiten 128 rutinas de interrupción como máximo.


• La CPU procesa las interrupciones según su prioridad y después en el orden que
aparecen.
• Sólo se ejecuta una rutina de interrupción a la vez.
• Las interrupciones que se presenten mientras se están ejecutando otra interrupción
se ponen en cola de espera para ser procesadas posteriormente.

Reglas para el buen uso de las interrupciones

• El procesamiento de interrupciones permite reaccionar rápidamente ante


determinados eventos internos o externos. Las rutinas de interrupción se deben
estructurar de forma que, una vez ejecutadas determinadas tareas, devuelvan el
control al programa principal
• Para ello es conveniente crear rutinas de interrupción cortas con indicaciones precisas,
de manera que se puedan ejecutar rápidamente sin interrumpir otros procesos durante
períodos demasiado largos.
• Si no se observan estas medidas, es posible que se produzcan estados imprevistos
que pueden afectar a la instalación controlada por el programa principal. Al utilizar
interrupciones, conviene atenerse al lema de” cuanto más breve, mejor”.

Página 4
TECNOLOGICO DE CUAUTLA

Fin de condicionado
La operación fin de condicionado END finaliza el ciclo actual en función de la combinación
lógica precedente. Esta operación se puede utilizar en el programa principal, mas no en
subrutinas ni en rutinas de interrupción.

Stop
La operación stop finaliza la ejecución del programa haciendo que la CPU s7-200 cambie
de run a stop. Si la operación stop se ejecuta en la rutina de interrupción, esta se finaliza
inmediatamente ignorando las interrupciones pendientes. Las demás acciones en el ciclo
actual se completan, incluyendo la ejecución del programa principal. El cambio de run a stop
se produce al final del ciclo actual.

ILUSTRACIÓN 5 EJEMPLO DEL OPERARIO END Y STOP

La instrucción JMP (Salto incondicional)

La operación saltar a meta (JMP) deriva la ejecución del programa a la meta indicada. La
operación definir meta (LBL) indica la dirección de la meta de salón. La operación saltar a
meta se puede utilizar en el programa principal, en la subrutina de interrupción,
correspondiente deben encontrarse siempre en el mismo segmento lógico (es decir, bien sea
en el programa principal, en la subrutina o bien en la rutina de interrupción).

Desde el programa principal no se puede saltar a una meta que se encuentra en la subrutina
de interrupción. Tampoco es posible saltar desde una subrutina o una rutina de interrupción
a una meta que se encuentre fuera de ella. La operación saltar a meta puede utilizar en un
segmento SCR, pero la correspondiente operación definir meta debe encontrarse en ese
mismo segmento SCR.

Una instrucción usada comúnmente para la transferencia de control es la instrucción JMP


(jump, salto, bifurcación). Un salto es incondicional, ya que la operación transfiere el control
bajo cualquier circunstancia. También JMP vacía el resultado de la instrucción previamente
procesada; por lo que, un programa con muchas operaciones de salto puede perder
velocidad de procesamiento.

Página 5
TECNOLOGICO DE CUAUTLA

Una operación JMP dentro del mismo segmento puede ser corta o cercana (o de manera
técnica, lejana, si el destino es un procedimiento con el atributo FAR). En su primer paso por
un programa fuente, el ensamblador genera la longitud de cada instrucción. Sin embargo,
una instrucción JMP puede ser de dos o tres bytes de longitud. Una operación JMP a una
etiqueta dentro de -128 a + 127 bytes es un salto corto.

El ensamblador genera un byte para la operación (EB) y un byte para el operando. El


operando actúa como un valor de desplazamiento que la computadora suma al registro IP
cuando se ejecuta el programa.

ILUSTRACIÓN 6 EJEMPLO DE SALTO SIMPLE

Operadores de comparación.

Operaciones de comparación 12.1. Realización de comparaciones Las operaciones de


comparación sirven para comparar los siguientes pares de valores numéricos: Dos enteros
(16 bits) Dos enteros dobles (32 bits) Dos números reales (de coma flotante, 32 bits, IEEE-
FP) Los valores numéricos se cargan en los ACU's 1 y 2. Las operaciones de comparación
comparan el valor del ACU2 con el valor depositado en el ACU1. El resultado de la
comparación es un dígito binario. Un 1 significa que el resultado de la comparación es
verdadero, mientras que un 0 significa que el resultado de la comparación es faso. Este
resultado se encuentra almacenado en el bit de resultado lógico (RLO). Este resultado puede
emplearse para su posterior procesamiento. Cuando se ejecuta una comparación también se
activan los bits de estado A1 y A0.

ILUSTRACIÓN 7 OPERACIONES DE
COMPARACION, DATOS DE ENTERO, DOBLE
ENTERO

Página 6
TECNOLOGICO DE CUAUTLA

Página 7
TECNOLOGICO DE CUAUTLA

DESARROLLO

En este practica se utilizaron subrutinas para facilitar el uso de las bobinas, en este caso lo
adaptamos hacia un ciclo de sellador RF, escogimos las subrutinas por el hecho que nos
dejan usar el mismo contacto, bobinas y timer en varios usos se pueden repetir, pero no en
la misma hoja principal se adaptan en las siguientes hojas. En el programa se hizo de la
siguiente forma.

Al principio se empezó a conectar la líneas de alimentación y puentear las masas, se utilizó


4 contactos normalmente abiertos y en la salida 4 bobinas, cada uno de los contactos
empezaba una subrutina excepto uno, el único contacto que no se usó para la subrutina se
utilizó para empezar el ciclo dentro de ella y las salidas representaban cada movimiento de
la maquina por ejemplo la primera es para el motor que jala el material, el segundo baja la
plancha, el tercero empieza a calentar la plancha y el cuarto sube la plancha.

En la primer network se utilizó un paro general, memorias, timers, al momento de cambiar el


estado del contacto normalmente abierto se enclava la memoria permitiendo la activación de
cualquier subrutina, en las siguientes líneas se tiene al principio un contacto normalmente
abierto cualquiera se puede activar, pero hay una condición si una se activa las demás se
deshabilitan para no tener riesgos, cada una está controlada por un tiempo dependiendo al
material que se elaborara, así que termina el tiempo de la subrutina y se puede habilitar otra
subrutina.

ILUSTRACIÓN 8ACTIVACION DE LA SUBRUTINA 0 ILUSTRACIÓN 9 ACTIVACION DE SUBRUTINA 1

Página 8
TECNOLOGICO DE CUAUTLA

ILUSTRACIÓN 10 ACTIVACION DE SUBRUTINA 2

Cuando se activa una subrutina empieza a correr el tiempo, al principio se tiene un contacto
se cambia de estado y empieza a realizar los 4 movimientos en la primera network se activa
el motor al momento que se enclava también se activa un timer este solo controla el tiempo
en que el motor jala el material, al momento que se acaba el tiempo enclava otra bobina y
bloqueando la anterior.

ILUSTRACIÓN 11 ENCLAVAMIENTO DE MOTOR ILUSTRACIÓN 12 ENCLAVAMIENTO PARA BAJAR LA PLANCHA

Al momento que se enclava baja plancha también se activa un salto, este omite las siguientes
líneas hasta el LBL para desactivarlo se hace más adelante, en la siguiente línea está
corriendo un timer cuando termine se activa la siguiente línea enclavándola y desactiva la
anterior, en esta se activa la plancha para juntar el material.

ILUSTRACIÓN 13 ACABA EL SALTO CON LBL ILUSTRACIÓN 14 ACTIVACION DE LA PLANCHA

Página 9
TECNOLOGICO DE CUAUTLA

En las últimas líneas solo controlan el tiempo de soldar y en el momento de subir la plancha
para permitir la activación entre el salto y el LBL, en la línea que fue omitida ahora se activa,
prosiguiendo con la ultimo proceso de la subrutina, todas estas líneas deben que acabar a
tiempo para el cierre de la subrutina si de alguna manera se cierra y no ha terminado el ciclo
se queda trabada hasta de nueva cuenta y energizarla.

ILUSTRACIÓN 15 TIMER CONTROL DE LAS ULTIMAS NETWORK. ILUSTRACIÓN 16 DESACTIVA EL SALTO PERMITIENDO NETWORK SIGUIENTE.

Para el control de las 3 subrutinas se utilizó un timer para cada uno, la diferencia es que cada
uno poseía tiempos diferentes debido a los materiales, en las operaciones se utilizó el salto
(JMP), stop controlado automáticamente y un END, el stop se controló por medio de
operaciones de comparación son bits antes teníamos que declarar un READ_RTC para leer
los datos de tiempo, la idea se propuso para finalizar un día automáticamente cuando llegue
al día, hora y minuto marcado en el programa se ejecuta el stop mandando a su detenimiento
inmediato y para poder activarlo se hace físicamente.

ILUSTRACIÓN 17 LEE EL TIEMPO REAL Y EJECUTA UN STOP ILUSTRACIÓN 18 USO DE END PARA FINALIZAR PROGRAMA.
EN DIA, HORA Y MINUTO DETERMINADO.

Página 10
TECNOLOGICO DE CUAUTLA

ILUSTRACIÓN 19 PRENDE EL INDICADOR DEACUERDO A LA ILUSTRACIÓN 20 USO DE ELCICLO DE SUBRUTINA

PROGRAMACION

ILUSTRACIÓN 21 USO DE LAS BOBINAS REPRESENTANDO ILUSTRACIÓN 22 USO DE LOS CONTACTORES DE LOS MOTORES.
LAS SUBRUTINAS

ILUSTRACIÓN 23 ARMADO FISICO DEL SELLADOR RF

Página 11
TECNOLOGICO DE CUAUTLA

CONCLUSIÓN

De acuerdo a la investigación y a la práctica realizada las subrutinas son un grupo de


instrucciones que están inscritas separadas del programa, estas subrutinas podrán ser
utilizadas repetidamente por el programa principal haciendo una llamada a la subrutina, esta
llamada se hace en un momento determinado por el programa principal, entonces las
subrutinas facilitan la estructuración del programa. Cuando el programa principal llama a una
subrutina para que ésta se ejecute, la subrutina procesa su programa hasta el final.

El sistema retorna luego el control al segmento del programa principal desde donde se llamó
a la subrutina, por tanto, son más fáciles de gestionar.

Los bloques más pequeños facilitan la comprobación y la eliminación de errores tanto en las
subrutinas como en el programa entero.

Con las subrutinas también la CPU se puede utilizar más eficientemente, llamando al bloque
sólo cuando se necesite, y no ejecutar todos los bloques en todos los ciclos. La operación
Llamar a subrutina transfiere el control a la subrutina y se puede utilizar con o sin parámetros.

FIRMA DE LA PRACTICA 2 : SUBRUTINAS E INTERRUPCIONES

Página 12

También podría gustarte