Componentes de un PLC CPU La Unidad Central de Procesos es el auténtico cerebro del sistema. Se encarga de recibir las ordenes, del operario por medio de la consola de programación y el modulo de entradas. Posteriormente las procesa para enviar respuestas al módulo de salidas. En su memoria se encuentra residente el programa destinado a controlar el proceso. La CPU es el corazón del autómata programable. Es la encargada de ejecutar el programa de usuario mediante el programa del sistema (es decir, el programa de usuario es interpretado por el programa del sistema). FUNCIONES • • • • • • Vigilar que el tiempo de ejecución del programa de usuario no excede un determinado tiempo máximo (tiempo de ciclo máximo). A esta función se le suele denominar Watchdog (perro guardián). Ejecutar el programa de usuario. Crear una imagen de las entradas, ya que el programa de usuario no debe acceder directamente a dichas entradas. Renovar el estado de las salidas en función de la imagen de las mismas obtenida al final del ciclo de ejecución del programa de usuario. Chequeo del sistema. Memoria del Autómata Dentro de la CPU vamos a disponer de un área de memoria, la cual emplearemos para diversas funciones: • Memoria del programa de usuario: aquí introduciremos el programa que el autómata va a ejecutar cíclicamente. • Memoria de la tabla de datos: se suele subdividir en zonas según el tipo de datos (como marcas de memoria, temporizadores, contadores, etc.). • Memoria del sistema: aquí se encuentra el programa en código máquina que monitorea el sistema (programa del sistema o firmware). Este programa es ejecutado directamente por el microprocesador/microcontrolador que posea el autómata. • Memoria de almacenamiento: se trata de memoria externa que empleamos para almacenar el programa de usuario, y en ciertos casos parte de la memoria de la tabla de datos. Suele ser de uno de los siguientes tipos: EPROM, EEPROM, o FLASH. Interfases de E/S Sección de entradas: se trata de líneas de entrada, las cuales pueden ser de tipo digital o analógico. En ambos casos tenemos unos rangos de tensión característicos, los cuales se encuentran en las hojas de características del fabricante. A estas líneas conectaremos los sensores. Sección de salidas: son una serie de líneas de salida, que también pueden ser de carácter digital o analógico. A estas líneas conectaremos los actuadores. Tanto las entradas como las salidas están aisladas de la CPU según el tipo de autómata que utilicemos. Normalmente se suelen emplear opto acopladores en las entradas y relevadores/optaoa copladores en las salidas. Instrucciones básicas • • • • • • • Instrucciones de transferencia Instrucciones de bifurcación Instrucciones aritméticas y lógicas Instrucciones de comparación y de bit Instrucciones de desplazamiento Instrucciones de entrada/salida Instrucciones de control Instrucciones Básicas 1. Instrucciones de Transferencia Estas instrucciones son fundamentales para mover datos entre registros y memoria. • MOV: Mueve datos de un lugar a otro. • PUSH: Coloca datos en la pila. • POP: Extrae datos de la pila. 2. Instrucciones Aritméticas y Lógicas Estas instrucciones realizan operaciones matemáticas y lógicas básicas. • ADD: Suma dos operandos. • SUB: Resta dos operandos. • AND, OR, XOR: Realizan operaciones lógicas bit a bit. • INC, DEC: Incrementan o decrementan un valor en 1. 3. Instrucciones de Comparación y de Bit Estas instrucciones comparan valores y manipulan bits individuales. • CMP: Compara dos valores. • TEST: Realiza una operación AND lógica y establece los flags sin almacenar el resultado. Instrucciones Intermedias 4. Instrucciones de Bifurcación Controlan el flujo del programa, permitiendo saltos condicionales y no condicionales. • JMP: Salto incondicional a una dirección. • JE/JZ, JNE/JNZ: Saltos condicionales basados en el resultado de una comparación. • CALL, RET: Llaman y retornan de subrutinas. 5. Instrucciones de Desplazamiento Estas instrucciones realizan desplazamientos de bits dentro de un registro. • SHL, SHR: Desplazamientos lógicos a la izquierda y a la derecha. • SAL, SAR: Desplazamientos aritméticos a la izquierda y a la derecha. • ROL, ROR: Rotaciones de bits. Instrucciones Complejas 6. Instrucciones de Entrada/Salida Estas instrucciones interactúan con dispositivos periféricos, lo que puede ser más complejo debido a la necesidad de gestionar hardware específico. • IN: Lee datos de un puerto. • OUT: Escribe datos a un puerto. 7. Instrucciones de Control Instrucciones que afectan el estado del procesador y la ejecución del programa. • HLT: Detiene la ejecución del procesador. • NOP: No realiza ninguna operación, pero consume un ciclo de reloj. • STI, CLI: Habilitan y deshabilitan interrupciones. Análisis y Clasificación Básicas: 1. Instrucciones de Transferencia: Son fundamentales y sencillas en su uso. 2. Instrucciones Aritméticas y Lógicas: Realizan operaciones matemáticas y lógicas simples. 3. Instrucciones de Comparación y de Bit: Comparan valores y manipulan bits de manera directa. Intermedias: 1. Instrucciones de Bifurcación: Controlan el flujo del programa con saltos condicionales y no condicionales. 2. Instrucciones de Desplazamiento: Manipulan bits de manera más específica, pero siguen siendo conceptualmente directas. Complejas: 1. Instrucciones de Entrada/Salida: Interactúan con hardware externo, lo que puede implicar más complejidad. 2. Instrucciones de Control: Afectan el estado del procesador y la ejecución del programa, lo que puede ser más avanzado en términos de comprensión y uso. Como identificar una instrucción Las instrucciones se pueden clasificar según: – El juego de instrucciones: operaciones posibles y determinación de la siguiente instrucción a ejecutar – El modo de direccionamiento: ubicación de operandos – Formato de las instrucciones: codificación en binario Estructura de un programa en ensamblador Completar una oración en ensamblador Conceptos Lenguaje máquina • Realiza un conjunto de operaciones predeterminadas llamadas microoperaciones. Ensamblador básico • Su tarea consiste en ofrecer nombres simbólicos a las distintas instrucciones y parámetros. Direccionamiento directo • También recibe el nombre de direccionamiento absoluto. Asignación • Proceso de mover el contenido de memoria a registro, o viceversa. Direccionamiento indirecto • Se basa a partir de una dirección genérica, generalmente el inicio del programa. Registros • Memoria principal de la computadora. Macro ensamblador • Las instrucciones son equivalentes a funciones en un lenguaje de alto nivel. Secuencia básica de ejecución de una instrucción 1.Analiza la memoria 2.Implementa la instrucción 3.Ejecuta la instrucción 4.Actualiza el contador Juego de instrucciones debe ser • • Capaz de realizar una tarea computable en tiempo finito Eficaz (alta velocidad de cálculo) Codigo maquina Una de las principales ventajas del uso del ensamblador Direccionamiento Es la forma en cómo se accede a la memoria. Recordar que un programa no puede ejecutarse sino se encuentra en memoria principal Opciones para la operación designación • • • Analiza las mnemotécnicas Compara la instrucción Comprueba la operación