Integrantes:
Zevallos Carlos Gustavo
Palacio Torres Gian Marco
1. Implementación de modelo producto – consumidor en PLC Micrologix 1500
En la implementación de modelo producto en PLC se utiliza la aplicación de Software SCADA (Supervisión, Control y Adquisición de Datos). Diseñada para operar sobre operadores en el control de producción, proporcionando comunicación con los dispositivos de campo (Controladores autónomos) y controlando el proceso de forma automática desde la pantalla del ordenador.
Uno de los desarrollos de SCADA es:
ESTACION MAESTRA
Estación maestra se refiere a los servidores y ala software responsables para comunicarse con el equipo del campo (UTR, PLC, etc) en estos se encuentra el software HMI corriendo para las estaciones de trabajo en el cuarto de control, o en cualquier otro lado. En este sistema SCADA la estación maestra puede estar en un solo computador, sin embargo en grandes escalas, los sistemas SCADA puedes tener estaciones maestras con varios servidores incluidos.
En la siguiente práctica vamos a ver como configurar tags consumidos y tags producidos de micrologix 5000 ya que es similar al micorlogix 1500. Estos tags tienen como objetivo el intercambio de datos entre dos Logix5000 y pueden configurarse siempre que se dé una de las siguientes condiciones.
Logix5000 – Tags consumidos y producidos
En la siguiente práctica vamos a ver como configurar tags consumidos y tags producidos, estos tags tienen como objetivo el intercambio de datos entre dos Logix5000 y pueden configurarse siempre que se dé una de las siguientes condiciones.
El ejemplo de hoy lo vamos a basar en el intercambio de datos en un mismo BackPlane, pero primero la definición de tag producido, según el manual, es el Tag puesto a disposición por el controlador para ser usado por otros controladores.
Varios controladores pueden consumir (recibir) los datos simultáneamente. Un tag producido envía sus datos hacia uno o varios tags consumidos (consumidores) sin usar la lógica.
Tag Consumido,es el Tag que recibe los datos de un tag producido. El tipo de datos del tag consumido debe coincidir con el tipo de datos (incluidas las dimensiones de las matrices) del tag producido.
La práctica la vamos a basar en SoftLogix, para ello lo primero es configurar nuestro Rack, insertamos dos Controladores Softlogix en el Slot2 y 3 consecutivamente.
Una vez configurado el Hardware, iniciamos nuestro RsLogix5000 y creamos dos proyectos nuevos, una para cada uno de los controladorores, configuramos el mismo hardware, ya que ambos estas en el mismo Backplane.
Una realizado los primeros pasos, tal y como decia la definición para crear un tag ya sea producido, consumido debe ser de ambito global, es decir, tenemos que crearlos en Controller Tags, ahora vamos a crear el siguiente tag que vamos a producir en el controlador SoftLogixSlot2 y el consumidor SoftLogixSlot3 recibirá, hay que tener en cuenta que no se puede definir cualquier tipo de datos, según el manual:
Ya hemos creado el Tag producido en el programa del Controlador SoftlogixSlot2, ahora nos pasamos al otro proyecto para configurar el Tag Consumido. Creamos un nuevo tag, especificamos que es del tipo consumido y pulsamos connection, se nos abre una ventana donde tenemos que definir nuestro productor y muy importante el campo Remote Data, tiene que ser el mismo nombre que usamos al crear el Tag Productor.
El ejemplo seria el siguiente, el valor que tengamos en nuestra variable SoftlogixSlot2Producida, será recibido en el Tag SoftlogixSlot3Consumida
De la misma forma que hemos creado estos dos tags, hacemos lo mismo pero ahora el tag producido será del controlador SoftlogixSlot3 y lo recibirá el controlador SoflogixSlot2, y nos quedaría tal y como se observa.
Tal y como decía la definición al comienzo, no hace falta hacer ninguna lógica en el programa, con lo cual podemos proceder a cargar dichas configuraciones en ambos controladores.
Una vez cargada la configuración, podemos ponernos online y comprobar el funcionamiento
Si queremos hacer la misma práctica pero en una Red Ethernet/IP, el procedimiento para definir las variables es exactamente el mismo, pero a la hora de configurar el tag consumido, como hemos visto nos pide quien es el productor, es aqui donde hay que configurar el enlace en la red Ethernet.
2. FABRICANTES DE PLCs, marcas y modelos
ALLEN – BRADLEY
Sistemas de control de altas prestaciones
Ofrecen arquitecturas modulares y un rango de opciones de E/S y red. Estas poderosas soluciones de control ofrecen capacidades de primer nivel para todas las disciplinas, tales como procesos, seguridad y movimiento. Diseñados para aplicaciones de control distribuidas o de supervisión, los controladores lógicos programables (PLC) de gran tamaño proporcionan confiabilidad y rendimiento excepcionales.
Modelos:
Controladores de entorno extremo 1756 ControlLogix, E/S ControlLogix 1756, Controladores PLC-5 1785, Controladores de seguridad GuardPLC 1800 1753
Sistemas de control Micro y Nano
PLC micros y nanos proporcionan soluciones económicas a las necesidades básicas de control de sus máquinas simples que van del reemplazo de relés a la temporización y la lógica de control simples. Empaquetado compacto, E/S y comunicación integradas y facilidad de uso hacen de estos controladores una opción ideal para aplicaciones tales como automatización de transportadores, sistemas de seguridad e iluminación de edificios y estacionamientos.
Modelos: Sistemas de control Micro800, Sistemas de control MicroLogix, Sistema de control Pico
Sistemas de control pequeños
Como solución perfecta para sus aplicaciones de rango medio, nuestros controladores pequeños ofrecen las características y la flexibilidad que necesita sin el tiempo de procesamiento interno de sistemas de mayor tamaño. Elija entre controladores estándar y con certificación de seguridad en diseños basados en chasis, compactos y modulares. Las aplicaciones típicas incluyen la automatización compleja del control de máquinas, del procesamiento de lotes y de la construcción.
Modelos: Sistemas de control CompactLogix, SLC 500, Controladores SmartGuard 600 con seguridad 1752
SIEMENS
Los PLCs son agrupados en las siguientes familias, todas con apellido SIMATIC:
S7-200: Aplicaciones pequeñas
S7-300: Aplicaciones medianas
S7-400: Aplicaciones grandes o complejas
C-7: Sistema inegrado de HMI con S7-300
OMRON
Suelen estar condicionadas por el número de terminales entrada/salida que posea el autómata. Según esto, los autómatas se pueden clasificar en:
Grandes: Con más de 512 terminales de E/S
Medianos: Hasta 512 terminales de E/S
Pequeños: Hast 128 terminales de E/S
SCHNEIDER
Logic Controller - Modicon M221: Para arquitecturas hardwired
Twido: Controladores programables para aplicaciones estándar de 10 a 100 E/S
Modicon Quantum: PLC para control de procesos
Modicon Premium: PLC para procesos de manufactura
Modicon M340: PLC de gama intermedia
3. ORGANIZACIÓN DEL CPU EN GENERAL (pc)
Topología de computador de bus único Von Neumman
CPU:
CPU: Esta arquitectura está centrada en la unidad de procesamiento, que ejecuta programas almacenados en la memoria principal (concepto de programa almacenado), por medio de los cuales: extrae, modifica y almacena datos de memoria.
Registros: Pequeña memoria de alta velocidad integrada dentro de la CPU, que permite almacenar resultados intermedios, información de control y estado en dicho proceso. Dentro de los registros más emblemáticos presentes en prácticamente todas las organizaciones de procesadores se encuentran:
PC (Program Counter): Almacena la información de la posición de memoria de la instrucción a ejecutar por la CPU, su modificación a lo largo del tiempo está relacionado con el flujo lógico de ejecución de un programa.
IR (Instruction Register): Almacena la información de la codificación en lenguaje de maquina (nivel 2) de la instrucción en curso. Corresponde al contenido de la posición de memoria direccionada por el registro PC al comienzo de la ejecución de una nueva instrucción.
STATUS: Este registro almacena las celdas de estados de la CPU (o flags) después de haber ejecutado cierta instrucción. Esta información es indispensable para implementar instrucciones de control de flujo (branch) al nivel de lenguaje de máquina.
ACUMULADORES: Registros temporales disponibles para programadores de nivel 2 (lenguaje de máquina) para almacenar variables intermedias en un proceso. Estos pueden ser de propósito general o exclusivamente de datos o direcciones, estos últimos para acceder a argumentos en memoria principal. El tamaño de estos registros (número de bits) y el número de éstos depende del diseño arquitectónico de la CPU.
SP: Almacena la dirección de memoria del comienzo de un pila (stack), para almacenar variables locales de los procedimientos. Este espacio memoria temporal se maneja con este registro.
La Unidad de Control es, en definitiva, una máquina secuencial que realiza el “ciclo de instrucción”: conjunto de acciones ordenado y secuencial que interconectan adecuadamente los distintos elementos en el tiempo, para lograr el objetivo de ejecutar la instrucción realizando la operación indicada sobre los operandos correspondientes y almacenando el resultado en el lugar indicado. Esta máquina secuencial funciona sincronizada por un reloj, el cual también es utilizado para sincronizar todas las actividades de los otros elementos del sistema (memoria y entrada/salida). En las primeras computadoras el reloj era el mismo para todos los elementos. Últimamente se utilizan relojes independientes (aunque vinculados) para cada sub-sistema. En muchos diseños se utilizan más de un reloj para la CPU, con la misma frecuencia, pero desfasados (0º, 90º, 180º y 270º, por ejemplo) a los efectos de ser utilizados para sincronizar distintas partes del circuito compensando los diferentes retardos de propagación de las señales en los circuitos internos de la CPU.
Paginación de memoria
En sistemas operativos de computadoras, los sistemas de paginación de memoria dividen los programas en pequeñas partes o páginas. Del mismo modo, la memoria es dividida en trozos del mismo tamaño que las páginas llamados marcos de página. De esta forma, la cantidad de memoria desperdiciada por un proceso es el final de su última página, lo que minimiza la fragmentación interna y evita la externa.
En un momento cualquiera, la memoria se encuentra ocupada con páginas de diferentes procesos, mientras que algunos marcos están disponibles para su uso. El sistema operativo mantiene una lista de estos últimos marcos, y una tabla por cada proceso, donde consta en qué marco se encuentra cada página del proceso. De esta forma, las páginas de un proceso pueden no estar contiguamente ubicadas en memoria, y pueden intercalarse con las páginas de otros procesos.
En la tabla de páginas de un proceso, se encuentra la ubicación del marco que contiene a cada una de sus páginas. Las direcciones lógicas ahora se forman como un número de página y de un desplazamiento dentro de esa página (conocido comúnmente como offset). El número de página es usado como un índice dentro de la tabla de páginas, y una vez obtenida la dirección del marco de memoria, se utiliza el desplazamiento para componer la dirección real o dirección física. Este proceso se realiza en una parte del computador específicamente diseñada para esta tarea, es decir, es un proceso hardware y no software.
De esta forma, cuando un proceso es cargado en memoria, se cargan todas sus páginas en marcos libres y se completa su tabla de páginas.
LENGUAJE ENSAMBLADOR DEL MICROPROCESADOR
Conjunto de Instrucciones (Microprocesadores 8086/8088)
Instrucciones Aritméticas.
Estas instrucciones son las que realiza directamente el 8086/8088
a. Grupo de adición:
ADD suma
ADC suma con acarreo
AAA ajuste ASCII para la suma
DAA ajuste decimal para la suma
b. Grupo de sustracción:
SUB resta
SBB resta con acarreo negativo
AAS ajuste ASCII para la resta
DAS ajuste decimal para la resta
c. Grupo de multiplicación:
MUL multiplicación
IMUL multiplicación entera
AAM ajuste ASCII para la multiplicación
d. Grupo de división:
DIV división
IDIV división entera
AAD ajuste ASCII para la división
e. Conversiones:
CBW pasar octeto a palabra
CWD pasar palabra a doble palabra
NEG negación
f. Tratamiento de cadenas:
Permiten el movimiento, comparación o búsqueda rápida en bloques de datos:
MOVC transferir carácter de una cadena
MOVW transferir palabra de una cadena
CMPC comparar carácter de una cadena
CMPW comparar palabra de una cadena
SCAC buscar carácter de una cadena
SCAW buscar palabra de una cadena
LODC cargar carácter de una cadena
LODW cargar palabra de una cadena
STOC guardar carácter de una cadena
STOW guardar palabra de una cadena
REP repetir
CLD poner a 0 el indicador de dirección
STD poner a 1 el indicador de dirección
Instrucciones de Pila.
Una de las funciones de la pila del sistema es la de salvaguardar (conservar) datos (la otra es la de salvaguardar las direcciones de retorno de las llamadas a subrutinas):
PUSH introducir
POP extraer
PUSHF introducir indicadores
POPF extraer indicadores
Instrucciones de Control del microprocesador.
Hay varias instrucciones para el control de la CPU, ya sea a ella sola, o en conjunción con otros procesadores:
NOP no operación
HLT parada
WAIT espera
LOCK bloquea
ESC escape
Direccionamiento Inmediato
El operando fuente aparece en la instrucción. Un ejemplo, es el que mueve un valor constante a un registro interno.
MOV AX, 568
Direccionamiento a Registro
Indica que el operando a ser usado está contenido en uno de los registros internos de propósito general del CPU. En el caso de los registros AX, BX, CX o DX los registros pueden ser de 8 a 16 bits
Ejemplos:
MOV AX, BX ; AX ¬ BX
MOV AL, BL ; AL ¬ BL
Direccionamiento Directo
Especifica en la instrucción la localidad de memoria que contiene al operando. En este tipo de direccionamiento, se forma una dirección de 20 bits.
Ejemplo:
MOV CX, COUNT
Direccionamiento de Registro Indirecto
Con el modo de direccionamiento de registro índice, la dirección offset de 16 bits está contenida en un registro base o registro índice. Esto es, la dirección reside en el registro
BX, BP, SI o DI.
Ejemplo:
MOV AX, [SI]
Direccionamiento de Registro Indirecto con Desplazamiento
Este tipo de direccionamiento incluye a los dos modos de direccionamiento anteriores. La dirección offset de 16 bits se calcula sumando el valor de 16 bits especificado en un registro interno y una constante.
Por ejemplo, si usamos el registro interno DI y el valor constante (desplazamiento), donde
COUNT ha sido previamente definido, el nemotécnico para esta construcción es:
MOV AX, COUNT [DI]
Direccionamiento de Registro Indirecto con un Registro Base y un Registro Índice
Este modo de direccionamiento usa la suma de dos registros internos para obtener la dirección offset de 16 bits a usarse en el cálculo de la dirección de 20 bits.
Ejemplos:
MOV [BP] [DI], AX; el offset es BP + DI
MOV AX, [BX] [SI]; el offset es BX + SI
Direccionamiento de Registro Índice Indirecto con un Registro Base, un Registro Índice y un Registro Constante
Este es el modo de direccionamiento más complejo. Es idéntico al modo de direccionamiento anterior, excepto que se suma una constante.
Ejemplo: Suponga que tenemos los siguientes valores en los registros:
DI = 0367H
BX = 7890H
COUNT = 0012H
7C09H
Ejemplo en debug:
Para crear al instante un programa en ensamblador con debugger se utiliza el comando “A” (Assemble), este comando permite introducir código en forma de nemónicos y su sintaxis es “A[dirección]”, donde dirección es la ubicación de memoria a partir de la cual se empezara a ensamblar, sino se especifica la dirección inicial a partir de la cual se debe ensamblar, ensambla a partir de la localidad especificada por CS: IP.
Ejecutado el comando “A”, debug preguntará en forma sucesiva y secuencial por la siguiente instrucción a ensamblar, cada instrucción se ensambla en el momento de ser digitada y cada byte generado se almacena en la memoria en la dirección inicial y en secuencia sucesiva.
Digite “A [enter]”, como resultado se obtiene:
-A
17A3:0100
ebug se encuentra listo para aceptar las instrucciones:
mov ah, 8 [enter]
add ah, 3 [enter]
sub ah, 4 [enter]
int 20 [enter]
[enter]
Las localidades de memoria o segmento pueden ser distinto en cada PC.
Para ejecutar el programa anterior se usa el comando “G [dirección]”, que ejecuta instrucciones a partir de una dirección. Se observa que nuestro programa comienza en el segmento 17A3:0100 y termina en el segmento 17A3:0108, si se desea ejecutar todas las instrucciones a partir de CS: IP (17A3:0100) hasta la instrucción en 17A3:0108, se digita “g108”, como resultado se obtiene:
Debug despliega los registros con los resultado intermedios, se observa comparando el estado inicial y final de los registros con respecto a AX en su parte alta, es decir, AH que tiene un valor inicial AX=0000, pasando por AX=0800, sumando 3, AX=0B00 y restando 4, AX=0700 que es el resultado final de este programa. Debug ejecuta la interrupción 20 “int 20” termina el programa y regresa el control al DOS.
BIBLIOGRAFIA
https://www.fing.edu.uy/tecnoinf/mvd/cursos/arqcomp/material/2014/teo/arq-teo07.pdf
http://www.ittux.edu.mx/sites/default/files/MICROCOMPUTADORAS_AL_DETALLE.pdf
Paginas web de fabricantes de PLC
https://www.google.com.pe/?gfe_rd=cr&ei=XWUUVvjtFc-w8weksbiwCQ&gws_rd=ssl#q=C%C3%B3mo+se+configuran+los+PLC+consumidor%3F
http://repository.upb.edu.co:8080/jspui/bitstream/123456789/1373/1/digital_19890.pdf