106
INSTITUTO TECNOLOGICO Y DE ESTUDIOS SUPERIORES DE MONTERREY CAMPUS ESTADO DE MEXICO DIVISION DE GRADUADOS E INVESTIGACION CONTROLADOR LOGICO PROGRAMABLE POR COMPUTADORA T E S I S Que para optar al Grado de Maestro en Ciencias del programa de Maestría en Sistemas de Manufactura con especlalldad en Automatización y Control Presenta el lng. ARTURO CUAHUTLE PEREZ Asesorado por el M. en C. Christian Slgnoret Jurado: Presidente Dr. Pedro Grasa Secretario Dr. Cuauhtémoc Carbajal Sinodales M. en C. Christian Signoret M en C. Abel Cerón MEXICO, SEPTIEMBRE DE 1991.

Controlador lógico programable por computadora

  • Upload
    others

  • View
    8

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Controlador lógico programable por computadora

INSTITUTO TECNOLOGICO Y DE ESTUDIOS SUPERIORES DE MONTERREY

CAMPUS ESTADO DE MEXICO

DIVISION DE GRADUADOS E INVESTIGACION

CONTROLADOR LOGICO PROGRAMABLE POR COMPUTADORA

T E S I S Que para optar al Grado de Maestro en Ciencias

del programa de Maestría en Sistemas de Manufactura con especlalldad en Automatización y Control

Presenta el lng. ARTURO CUAHUTLE PEREZ Asesorado por el M. en C. Christian Slgnoret

Jurado: Presidente Dr. Pedro Grasa Secretario Dr. Cuauhtémoc Carbajal Sinodales M. en C. Christian Signoret

M en C. Abel Cerón

MEXICO, SEPTIEMBRE DE 1991.

Page 2: Controlador lógico programable por computadora

Resumen

El objetivo de la presente tesis es diseñar e implementar un PLC que sea comparable a los modelos comerciales pequeños y que compita con ventaja en cuanto al costo. Este PLC estará orientado a la automatización de máquinas y procesos sencillos que requieran de reprogramación poco frecuente.

Para lograr la reducción de costos se eliminó la unidad de programación, por lo cual se emplea software de desarrollo para generar los programas que son introducidos al CPU mediante una EPROM. Así mismo, el hardware se basó en el microcontrolador 8031, que contiene dentro del mismo encapsulado RAM, puertos, oscilador y temporizadores, con el fin de minimizar la cantidad de componentes y obtener un circuito económico, compacto y confiable.

El software de soporte .sirve para editar, simular y compilar los diagramas de escalera. El editor gráfico permite la captura y modificación de los escalones, los cuales son codificados en una estructura compacta. La simulación, que se utiliza para depurar los diagramas de control, esta basada en el mismo algoritmo que utiliza el 8031 para evaluar los escalones. El compilador genera el archivo de código, el cual se graba en una EPROM con un programador, para ser instalada posteriormente en el CPU del PLC.

Las características de este PLC lo hacen ideal para que los fabricantes de máquinas lo utilizen como controlador en los equipos que fabrican. Sus ventajas sobre un controlador de relevadores son: menor tamafto, menor consumo de potencia, mayor durabilidad y, principalmente, un precio más bajo (pues el costo del CPU es igual al de unos cuantos relevadores). Por otra parte, la ventaja de utilizar este PLC en vez de desarrollar una tarjeta específica es que se evitan los costos de ingeniería, el periodo de desarrollo y el riesgo de obtener o no el prototipo deseado.

Por los resultados obtenidos se consideras que el objetivo planteado fue plenamente cumplido.

Page 3: Controlador lógico programable por computadora

Indice

Tabla de abreviaturas 1 Introducción 2 Capítulo 1: Controladores Lógicos Programables 4

1.1 Introducción 4 1.2 Automatización 4 1.3 Tipos de control de procesos 5 1.4 Controlador Lógico Programable 6

1.4.1 Antecedentes 6 1.4.2 Definición 7 1.4.3 Arquitectura 7 1.4.4 Software de desarrollo 8

1.5 Lenguajes de programación de PLCs 8 1.5.1 Diagrama de escalera de relevadores 9 1.5.2 Diagrama de flujo secuencial 1 O 1.5.3 Texto estructurado 1 1 1.5.4 Lista de instrucciones 11

1.6 Conclusiones 1 2 Capítulo 2: Codificación y evaluación

de diagramas de escalera 1 3 2.1 Introducción 1 3 2.2 Funcionamiento de un PLC. 1 3 2.3 Métodos de evaluación 1 4

2.3.1 Método #1 1 4 2.3.2 Método #2 1 S 2.3.3 Método #3 1 S 2.3.4 Método #4 1 7

2.4 Programa simulador de un PLC 1 7 2.4.1 Características del programa 1 7 2.4.2 Codificación de elementos 1 8 2.4.3 Estructura de datos 2 O 2.4.4 Implementación del algoritmo de evaluación 2 O

2.S Conclusiones 2 2 Capítulo 3: Sistema propuesto y

selección del microcontrolador 2 3 3.1 Introducción 2 3 3.2 Sistema propuesto 2 3 3.3 Características del PLC 2 5

Page 4: Controlador lógico programable por computadora

3.4 Requerimientos del microcontrolador 3.5 Comparación de microcontroladores 3.6 factores para seleccionar un microcontrolador 3.7 Microcontrolador seleccionado 3.8 Conclusiones

Capítulo 4: Implementación del conjunto de instrucciones

4.1 Introducción 4.2 Grupos de instrucciones 4.3 Conjunto de instrucciones del CL-51 4.4 Implementación de las instrucciones

4.4.1 Instrucciones lógicas 4.4.2 Temporizadores y contadores 4.4.3 Aritméticas y de comparación 4.4.4 Control de flujo 4.4.5 Control de salidas

4.4 Cómo ejecutar las instrucciones no incluidas 4.5.1 Multiplicación y división 4.5.2 Secuenciadores 4.5.3 ZCL

4.6 Conclusiones Capítulo 5: Prototipo diseñado

5.1 Introducción 5.2 Implementación del CL-51 utilizando el 8031

5.2.1 Distribución de la EPROM 5.2.2 Distribución de la RAM 5.2.3 Configuración para EPROM externa 5.2.4 Multiplexión de puertos

5.3 Inconvenientes del intérprete 5.4 Reemplazo del intérprete por un compilador 5.5 Generador de programa en ensamblador 5.6 Generador de código 5.7 Implementación del prototipo 5.8 Conclusiones

Capítulo 6.1 6.2 6.3 6.4

6: Software de desarrollo Introducción Características generales y módulos del programa

Esttuctura y tipos de datos Editor

6.5 Edición de escalones 6.6 Opciones

ii

26 27 28 29 30

3 1 3 1 32 36 36 36 38 40 40 4 1 4 1 4 1 42 42 43 44 44

44 45 45 46 47 48 49 50 52 52 54 54 54 55 56 58 59

Page 5: Controlador lógico programable por computadora

6.7 Archivos 6.8 Simulación 6.9 Programación 6. 10 Conclusiones

Resultados R.1 Descripción del sistema R.2 Evaluación de las partes R.3 Evaluación global

Conclusiones Apéndice A: Manual de programación

A.1 Lenguaje de programación del PLC51 A.1.1 Instrucciones lógicas de entrada A.1.2 Estructura del escalón A.1.3 Instrucciones lógicas de salida A.1.4 Registros A.1.5 Operaciones aritméticas A.1.6 Temporizadores A.1.7 Contadores A.1.8 Como cargar un temporizador

o un contador A.1.9 Instrucciones de comparación A. l. 10 Subrutinas A.1.11 Secuenciación utilizando subrutinas A.1.12 MCR A.1.13 Fin A.1.14 Reglas de sintaxis de la escalera

A.2 Instructivo del software de desarrollo A.2.1 Módulo del editor A.2.2 Editor de escalones A.2.3 Módulo de simulación A.2.4 Módulo de opciones A.2.5 Módulo de programación A.2.6 Módulo de archivos

Apéndice B: Material y equipo utilizado B.l Equipo de computo y software B.2 Equipo electrónico de medición y programador B .3 Equipo de fabricación de tarjetas B.4 Componentes

Apéndice C: Validación del prototipo Apéndice D: Funcionamiento del 'bus' de 1/0

D.l Escritura a un puerto

iv

59 60 6 l 62 63 63 65 66 67 69 69 69 70 72 72 73 74 74

75 75 76 76

• 77 78 78 78 79 80 8 1 83 84 84 86 86 86 87 87 88 90 90

Page 6: Controlador lógico programable por computadora

D.2 Lectura a un puerto Apéndice E: Programador de EPROMS Apéndice F: El 8031 Apéndice G: Fabricación de circuitos impresos

utilizando tecnologías de CAD/CAM G.1 Diseño Asistido por Computadora G.2 Manufactura Asistida por Computadora G.3 Procesos químico y fotográfico

Bibliografía Bibliografía Adicional

V

91 92 94

97 97 97 99

100 103

Page 7: Controlador lógico programable por computadora

A/D:

CAD:

CAM:

CNC:

CPU:

IXS:

D/A:

EEPROM

EPROM:

IEC:

1/0:

MCR:

PID:

PI.e:

RAM:

RlD:

SR:::

za..:

Tabla de abreviaturas

Analog to Digital

Computer Aided Design

Computer Aided Manufacturing

Computer Numerical Control

Central Processing Unit

Distributed Control System

Digital to Analog

Electrically Erasable Programable Read Only Memory

Erasable Programable Read Only Memory

lnternational Electrical Commitee

Input/Output

Master Control Reset

Proportional Integral Derivative

Programmable Logic Controller

Random Access Memory

Relay Ladder Diagram

Sequential Flow Chart

Zone Control Last-state

Page 8: Controlador lógico programable por computadora

Introducción

Cuando un sistema de producción es automatizado en forma inteligente se

obtienen una serie de beneficios, siendo los más importantes el aumento

en la precisión con que se realizan las tareas y el incremento en la tasa de

producción, los cuales contribuyen a incrementar la productividad.

El control lógico, que es una de las tecnologías de automatización,

tradicionalmente se había realizado mediante páneles de relevadores, sin

embargo, con el impresionante avance de la electrónica surgió un

poderoso substituto, el Controlador Lógico Programable (PLC), el cual

presenta ventajas importantes sobre sus predecesores: mayor

confiabilidad, facilidad para modificar los programas de control, menor

tamafio y menor consumo de energía.

Este desarrollo surgió apartir de un proyecto que se presentó para el

curso de "Automatización y Control de Procesos". Dicho proyecto fue

sugerido por el M. en C. Christian Signoret y consistía en simular un PLC

utilizando una microcomputadora. Con la realización del proyecto se

obtuvieron valiosos conocimientos acerca del funcionamiento de los PLCs

y se depertó el interés por desarrollar hardware especializado, capaz de

realizar el procesamiento en forma eficiente.

El objetivo de la presente tesis es diseñar e implementar un PLC que sea

comparable a los modelos comerciales pequeños y que compita con

ventaja en cuanto al costo. Este PLC estará orientado a la automatización

de máquinas y procesos sencillos que requieran de reprogramación poco

2

Page 9: Controlador lógico programable por computadora

.. frecuente .

La razón por la que se pretende diseñar un nuevo PLC a pesar de que en

el mercado ya existe una gran variedad de marcas y modelos, es porque

se desea ofrecer a la micro y pequeña industria mexicana un controlador,

con un precio accesible, que puedan incorporar a sus procesos o máquinas

y en esta forma colaborar a que incrementen su productividad y su

competitividad.

En este trabajo se describen los diferentes pasos que se siguieron para

diseñar e implementar el PLC. En el Capítulo 1 se presenta una breve

introducción a los PLCs y sus lenguajes de programación. En el Capítulo 2

se de8cribe la forma en que funcionan los PLCs y se presentan métodos

para codificar y evaluar diagramas de escalera. En el Capítulo 3 se

describe el sistema propuesto, se establecen las especificaciones de diseño

para el hardware y se selecciona el microcontrolador más apropiado. En el

Capítulo 4 se establece un conjunto de instrucciones y se explica como se

implementó cada una de las instrucciones. En 1:1 Capítulo 5 se explica

como se desarrolló y se validó el prototipo con la ayuda de programas de

prueba. En el Capítulo 6 se explican los aspectos importantes del software

de desarrollo que se utiliza para editar, simular y compilar los diagramas

de escalera. A manera de anexos se presenta información complementaria

acerca de la implementación, validación y utilización del sistema.

3

Page 10: Controlador lógico programable por computadora

Capítulo I

Controladores Lógicos Programables

1.1 Introducción

En este capítulo, que está dirigido a aquellos lectores no familiarizados

con los Controladores Lógicos Programables (PLCs), se presentan algunos

conceptos básicos sobre los que se basa el presente trabajo de tesis. En

primer lugar se define qué es el control lógico y cómo entra dentro del

contexto de automatización. Posteriormente se explica qué es un PLC,

cómo surgió y cuáles son las partes que lo componen. Finalmente, se

examinan los diferentes tipos de lenguajes de programación de PLCs.

1.2 Automatización

La automatización puede ser definida como el control de máquinas y

procesos mediante la utilización de sistemas mecánicos, neumáticos,

hidraúlicos, eléctricos y electrónicos con el fin de reducir la intervención

humana. Como consecuencia se han definido nuevos conceptos como el de

la mecatrónica, en el que se encuentra el balance entre la electrónica y la

mecánica.

Al instalar un sistema de producción automatizada en forma inteligente

se obtieneri los siguientes beneficios 1 :

4

Page 11: Controlador lógico programable por computadora

/

1. Mayor productividad y costos más bajos. Reduce la mano de obra y

usualmente incrementa la tasa de producción. Ambos factores

tienden a incrementar la productividad y reducir los costos de

producción.

2. Mayor seguridad. Al retirar a los operadores de la panicipación

activa en los trabajos potencialmente peligrosos.

3. Mayor uniformidad y calidad del producto. Las tareas son

realizadas con mayor precisión y consitencia que cuando se

hacen manualmente, lo cual usualmente significa mayor

uniformidad y calidad del producto .

..-,-- 4. Reducción del trabajo en proceso. Tiende a reducir la cantidad de

producto no terminado que se tiene en la fábrica.

5. Mejor imagen corporativa. Por que se tiene ventaja tecnológica

sobre la competencia.

1.3 Tipos de control de procesos

Dentro del conjunto de tecnologías de automatización, una de las más

importantes es el control de procesos industriales, del cual existen dos

tipos: el control lógico y el control dinámico.

El control dinámico se encarga de mantener ciertas variables continuas

como la temperatura o la presión alrededor de un punto de operación,

ante las variaciones que tienden a sufrir por perturbaciones.

El control lógico dirige al sistema a través de una secuencia específica de

eventos o estados. Las variables que intervienen sólo pueden tener uno

de dos valores posibles: encendido-apagado, alto-bajo, etc.

5

Page 12: Controlador lógico programable por computadora

A pesar de que hay una distinción clara entre ambos tipos de control,

existen procesos industriales en los que un sistema continuo es parte de

un sistema de estados discretos y que por lo tanto requieren de ambos

tipos de control.

1.4 Controlador Lógico Programable

1.4.1 Antecedentes

Hasta hace relativamente poco tiempo el control de procesos de estados

discretos era efectuado mediante páneles de relevadores. Estos

dispositivos electromecánicos presentaban varios inconvenientes, como su

gran tamaño, el desgaste de los contactos por el uso, baja velocidad de

respuesta, un alto consumo de potencia y la poca flexibilidad para

modificar el "programa" cableado.

"Estos primeros mecanismos de control representaban un problema

para la industria automotriz puesto que los cambios anuales de

modelos frecuentemente requerían de modificaciones costosas. A

finales de los 60's, la división Hidramatic de General Motors concibió

un dispositivo de control programable que pudiera ser modificado

facilmente por cambios de software en vez de por modificaciones de

hardware" 2.

Así, gracias al vertiginoso desarrollo de la electrónica y especialmente

con la llegada de los circuitos integrados, surgió el Controlador Lógico

Programable (PLC) o autómata programable como reemplazo de los

controladores de relevadores.

6

Page 13: Controlador lógico programable por computadora

1.4.2 Definición

La NEMA (National Electrical Manufacturers' Association) define al

Controlador Lógico Programable como un "dispositivo electrónico digital

que utiliza una memoria programable para almacenar instrucciones y

para implementar funciones específicas tales como funciones lógicas,

secuenciales, de temporización, de conteo y aritméticas para controlar

máquinas y procesos"3"

1.4.3 Arquitectura

Un PLC está constituido por dos componentes principales: la Unidad

Central de Procesamiento (CPU) y la Unidad de Entradas y Salidas (1/0),

las cuales dependiendo del tamafl.o del controlador pueden ser

montadas en un mismo chasis o separadas.

La unidad de CPU, la cual almacena y ejecuta los programas de control,

está constituida por un procesador, una memoria y un puerto de

interface. La unidad de 1/0, que es la conecta al CPU con el proceso

controlado, debe ser flexible, modular y expandible, por lo que

típicamente consiste de bloques modulares que pueden ser

seleccionados y configurados para ajustarse a las necesidades de una

aplicación determinada.

Además de las unidades de CPU e 1/0, los PLCs a veces requieren de un

dispositivo separado, tal como una computadora o una terminal especial

de programación, figura 1.1, la cual se puede conectar facilmente al CPU.

7

Page 14: Controlador lógico programable por computadora

Unidad de programación

Figura 1.1

1.4.4 Software de desarrollo

Unidad de 1/0

CPU

Algunos fabricantes de PLCs ofrecen herramientas de software para

desarrollar los algoritmos de control que luego son "bajados" y

ejecutados por el controlador. El software de desarrollo corre en

computadoras personales estándar y está provisto de las siguientes

Desarrollo del programa y edición

Almacenamiento de programas

Compilación o traducción al lenguaje empleado por el PLC

Monitoreo y control de la ejecución del programa.

1.5 Lenguajes de programación de PLCs

Exiten cuatro grupos de lenguajes de programación para PLCs: diagramas

de escalera de relevadores (RLD), diagramas de flujo secuencial (SFC),

texto estructurado y conjunto de instrucciones5

• En la tabla l. l se muestra

una comparación de los cuatro lenguajes y más adelante se presenta una

breve descripción de las características más importantes de cada uno.

8

Page 15: Controlador lógico programable por computadora

Tabla 1.1 Comparación de los lenguajes de PLCs

Texto Lista de Lenguaje &LO. m: C51[1U.l ÍDSUI.I!:!:

Control Lógico B B R B

Control secuencial R B B R

Control continuo M M B M

Velocidad R B R B

Facilidad de pro- R B B M

gramar y depurar

Bueno Regular Malo

1.5.1 Diagrama de escalera de relevadores

El lenguaje de diagrama de escalera de relevadores (RLD), figura 1.2,

es una representación gráfica de los algoritmos de control. L a

escalera representa el diagrama esquemático de un circuito eléctrico

con el que se implementa el control en un tablero de relevadores. Los

símbolos representan elementos como bobinas y contactos, y otras

instrucciones que dan versatilidad al controlador. Es el lenguaje más

eficiente para ejecutar operaciones de control lógico, pero la

obtención de las expresiones booleanas de un sistema secuencial es

un proceso manual que se complica al incrementarse el número de

variables. Uno de los inconvenientes del diagrama de escalera es que

no es eficiente para manejar controles analógicos de variables

continuas.

9

Page 16: Controlador lógico programable por computadora

Escalón l

Rama

,----- Contactor Normalmente Abierto

Bobina

Contactor

D ' Normalmente '-· ___ ......;;;;;.__Cerrado

Figura 1.2

1.5.2 Diagrama de flujo secuencial

El diagrama de flujo secuencial (SFC) también conocido como Grafcet,

figura 1.3, es un lenguaje gráfico de secuenciación en el que se

captura el algoritmo de control como un diagrama de flujo. Esta

constituido por elementos básicos tales como pasos, transiciones y

lazos. Cada paso contiene acciones, cada función de transición

contiene condiciones para avanzar al siguiente paso y los lazos son

utilizados para indicar la posibilidad de una transición entre los pasos

que conecta6.e:: principal ventaja del SFC es que describe el flujo del

control en una forma bastante clara y la programación de sistemas 1 ¡ · \¡

secuenciales es directa. Otras ventajas son que reduce el tiempo del

ciclo y ayuda a ubicar rapidamente las áreas problemáticas al

depurar los programas.

10

Page 17: Controlador lógico programable por computadora

Operación --•u Inicialización o paso

presiona el botón de arranque

materiales cargados

Lazo---t .. .-1 Reacción

Periodo completo

Descarga

Figura 1.3

1.5.3 Texto estructurado

El texto estructurado es un lenguaje de alto nivel que tiene un fuerte

parecido a la familia ALGOL/PASCAL. Incluye instrucciones de

control como IF .. THEN .. ELSE, CASE, FOR, WHILE, REPEAT, etc.,. Ofrece

la solución más general a los problemas de control, puesto que puede

manejar estrategias de control continuas, discretas o cualquier

combinación de ellas. Sin embargo, no es tan eficiente como el RLD

para ejecutar operaciones de secuenciación estrictamente digitales.

1.5.4 Lista de instrucciones

La lista de instrucciones es un lenguaje énsamblador que utiliza un

número limitado de operadores nemónicos: STR, AND, OR, NOT, OUT,

TMR, CTR, etc8 . Es el mejor lenguaje para optimizar los tiempos de

ciclo dentro del controlador, pero a cambio de ello, es difícil de

11

Page 18: Controlador lógico programable por computadora

programar y depurar.

1.6 Conclusiones

Para la programación e los PLCs existen cuatro tipos de lenguajes:

RLD, SFC, texto estructurado y lista de instrucciones. Cada uno de

ellos tiene ventajas y desventajas, las cuales los hacen mas adecuados

para una u otra aplicación. Es importante mencionar que de las dos

representaciones gráficas, el RLD es más utilizado en Estados Unidos,

Mexico y el resto de América, mientra que el SFC tiene una mayor

difusión en Europa y Japón.

12

Page 19: Controlador lógico programable por computadora

2.1 Introducción

Capítulo II

Codificación y evaluación

de diagramas de escalera

La parte más importante del proyecto de simular un PLC con una

microcomputadora, consistió en obtener un método mediante el cual la

computadora pudiera evaluar una representación gráfica, como lo es el

diagrama de escalera.

En este capítulo se explican los métodos de codificación y evaluación de

RLD que se desarrollaron y se presentan algunos aspectos importantes

acerca de la implementación del programa.

2.2 Funcionamiento de un PLC

El procesador del PLC, secuencialmente debe "muestrear cada entrada,

evaluar el programa del diagrama de escalera, proveer las salidas"9

y

reiniciar el proceso. Dicho ciclo, conocido como barrido, se ilustra en el

diagrama de flujo de la figura 2.1.

13

Page 20: Controlador lógico programable por computadora

Leer señales de entrada

Procesamiento

Escribir señales de salida

Figura 2.1

2.3 Métodos de evaluación

Para obtener un método de evaluación de diagramas de escalera eficiente

se consideraron las alternativas que se explican a continuación:

2.3.1 Método #1

El primer método propuesto consiste en generar la ecuación booleana

correspondiente a cada escalón, como en la figura 2.2, para evaluarlas

posteriormente. Sin embargo, la implementación de este método resulta

complicada, por la dificultad de generar ecuaciones para cualquier

combinación de conexiones serie y paralelo, y por otra parte, si las

ecuaciones son generadas como texto es necesario hacer un intérprete

para evaluarlas 10.

14

Page 21: Controlador lógico programable por computadora

H H H l-----0--l Y=ABC A B e y

Figura 2.2

2.3.2 Método #2

El segundo método consiste en utilizar un acumulador y realizar

secuencialmente operaciones básicas, "." y "+", para evaluar a cada uno de

los elementos, como se muestra en el ejemplo de la figura 2.3. La ventaja

de este método respecto al anterior es la facilidad de implementación. Sin

embargo, su desventaja es que limita la esctructura de los escalones

debido a las siguientes restricciones: 1) las ramas en paralelo

forzosamente deben estar conectadas por un extremo a la línea de

alimentación de la izquierda y por el otro al primer renglón, y 2) sólo se

puede conectar un elemento en cada rama paralela.

Escalón

e

2.3.3 Método #3

Expresión

Y=(AB+C)D

Figura 2.3

Algoritmo

F=A F=FB F=F+C F=FD Y=F

El tercer método funciona igual que el anterior, pero para poder manejar

ramas con más de un elemento utiliza un arreglo en el que almacena el

valor acumulado de los elementos conectados en serie en cada una de las

ramas en paralelo. La desventaja de este método es que el número de

15

Page 22: Controlador lógico programable por computadora

ramas está limitado por el tamaño del arreglo.

2.3.4 Método #4

Este método se basa en el uso de dos acumuladores y funciona de la

siguiente manera: Con el acumulador S se evaluan los elementos del

primer renglón que se encuentran conectados en serie. Cuando se detecta

una conexión que indique una rama en paralelo, el contenido de S se pasa

al acumulador P y entonces se utiliza S para evaluar el segundo renglón.

En caso de que haya más ramas conectadas a ese punto, para cada una de

ellas, se hace P= P+S y luego se usa S para evaluar la nueva rama. Una vez

que se ha concluido con las ramas de ese nodo se hace S= S·P y se evalua

el siguiente elemento del primer renglón. El proceso continua hasta que se

evaluan todos los elementos del renglón.

Con este método es posible evaluar escalones de estructura relativamente

compleja, que cumplan con las reglas de la tabla 2.1, como el escalón de la

figura 2.4. Como consecuencia de estas restricciones, se tiene la ventaja de

que las líneas de conexiones no se pueden cruzar y esto hace que el

escalón sea más intelegible. En la sección A.1.2 del Apéndice A se explica

como se pueden arreglar algunos escalones que no cumplan con estas

reglas para que puedan ser evaluados.

16

Page 23: Controlador lógico programable por computadora

Tabla 2.1 Reglas de estructura para los escalones

1 ) El escalón puede tener un número infinito de ramas. 2) Cada rama puede tener un número infinito de elementos. 3) Todas las ramas deben tener un extremo conectado a la

línea de alimentación de la izquierda. 4) El extremo derecho de cada rama debe ir conectado al

primer renglón. 5) No deben existir cruces entre las líneas de conexiones.

[:J HH-­H---__.

Figura 2.4

2.4 Programa simulador de un PLC

A continuación se presentan algunos aspectos importantes del programa

para simular el PLC, en el cual descansa el desarrollo del presente trabajo

de tesis.

2.4.1 Características del programa

El programa para simular el PLC fue escrito en Pascal y corre en una IBM

PS 30. Para la edición de los diagramas de escalera se utiliza el modo

gráfico y en el menú principal del programa se presentan las siguientes

cinco opciones:

17

Page 24: Controlador lógico programable por computadora

Editar

Simular

eXecutar

Archivos Salir

Permite la captura gráfica de los diagramas de escalera En la simulación es posible modificar el valor de las entradas desde el teclado y ver en la pantalla como se afectan las demás variables en cada barrido Ejecuta el diagrama de escalera, enviando y recibiendo señales por el puerto paralelo Carga y escribe archivos en el disco Sale al sistema operativo

El conjunto de instrucciones implementado es muy reducido y aunque

solamente incluye las funciones lógicas básicas de la figura 2.5 permite

realizar el control secuencial de procesos sencillos.

-H- Normalmente abierto

--#-- Normalmente cerrado

-o Re levador

-{L}- Latch (Prender)

-{u}- Unlatch (Apagar)

Figura 2.S

Como interfase con el exterior se utilizó el puerto paralelo de la

computadora, el cual permite, sin necesidad de hardware adicional, el

manejo de 5 señales TTL de entrada y 8 de salida11 •

2.4.2 Codificación de los elementos

A la unidad básica que compone un escalón se le da el nombre de

elemento. · Cada elemento consta de tres partes: el número de

identificación de la variable, la instrucción y el tipo de conexión. Con el fin

18

Page 25: Controlador lógico programable por computadora

de aprovechar en forma eficiente la memoria, se utilizan 2 bytes para

representar a un elemento. Esta distribución, mostrada en la figura 2.6,

permite manejar 512 variables, 32 instrucciones y 4 tipos de conexiones.

Byte 1 MSB LSB

Byte 2 MSB LSB

1 1 1 1 1 1 11 1 1 1 11 1 11 1 ' ... 't~

1 ----111------~----Identificación ------+------------Instrucción

------------Conexión

Figura 2.6

Con objeto de codificar los elementos, se asignó un número a cada tipo de

instrucción y a cada tipo de conexión, y se establecieron las fórmulas de

codificación, como se muestra en la tabla 2.2. Es importante mencionar

que al manejarse tres tipos de variables (entradas, salidas y locales) fue

necesario definir para una misma instrucción tres o dos códigos

diferentes, cada uno para un tipo de variable diferente.

Tabla 2.2 Codificación de los elementos

Instrucción Conexión

O= NA entrada

I= NA salida

2= NA local

3= NC entrada

4= NC salida

5= NC local

6= R salida

7= R local

8= L salida

9= L local

10= U salida

11= U local

IF Elemento que

inicia una rama

1= Elemento conectado

en serie al anterior

2= Elemento que cierra

las ramas abienas

Byte 1 = elemento•8 + conex:ión•2 + número div 256

Byte 2 = número mod 256

19

Page 26: Controlador lógico programable por computadora

2.4.3 Estructura de datos

Para agrupar los elementos en escalones y los escalones en la escalera se

utiliza la estructura mostrada en la figura 2.9. Esta estructura consta de

dos arreglos. En el primer arreglo, se almacenan todos los elementos de la

escalera, los escalones pueden estar colocados arbitrariamente, pero los

elementos de cada escalón deben estar acomodados de acuerdo al orden

que sigue el método de evaluación. El segundo arreglo se utiliza para

indicar la posición del primer arreglo en la que inicia cada escalón. Esta

estructura simplifica la edición, ya que para insertar, agregar y borrar

escalones basta con modificar las celdas del primer arreglo. Sin embargo,

una vez que se concluye la edición de la escalera el programa acomoda los

escalones en forma consecutiva y la estructura se reduce a un solo

arreglo.

Escalones

1 1 1 21 3 ! 4 !

~ ..__I ---+-¡ ----.+ Elementos

Figura 2.7

2.4.4 Implementación del algoritmo de evaluación

En la figura 2.8 se muestra el diagrama de flujo del algoritmo de

evaluación, el cual esta implementado conforme al método #4 de la

sección '2!.:.J1.4r· TECAimportante mencionar que para implementar este

algoritm9 ,-,s~'.(d~~on tomar /, ,- ""~ •-. •.or.~ .. V,_#

1~~· ~f)

(

' .• ":,.o' (.. A i.f 1 U S ~ \ :.: ' TA D ü ~\ ~ °"'I e• ,•Y, -1

\

·: . ¡ '. . . ' ,, ,.,, ., '?!~ ...... _. ·4· .<~ .. h \; ....___ __ .'./"

en cuenta dos factores que no se habían

20

Page 27: Controlador lógico programable por computadora

considerado al proponer el método.

En primer lugar se notó que antes de asignar el valor resultante de un

escalón a una variable, se debe hacer una última evaluación por si se

tienen ramas en paralelo abiertas, por lo cual para los elementos finales

primero se realiza la evaluación de la conexión utilizando un valor de 1 y

después, en función del valor del acumulador S, se asigna el valor

correspondiente a la variable asociada al elemento final.

Inicializar registros S y P

Leer el siguiente elemento

Evaluar la conexión

Actualizar registros S y P

No ¿Es elemento 1---.....;;."'-< final?

Si

Asignar valor a la variable

No ¿Fin de la ,___.....;;."'-< escalera?

Si

Figura 2.8

Por otra parte, para evitar que las variables cambien su valor a la mitad

21

Page 28: Controlador lógico programable por computadora

del barrido y se afecte la evaluación de la escalera se decidió manejar dos

bancos de variables, uno con el valor actual y el otro con el del siguiente

barrido. Por lo tanto, al evaluar los escalones las asignaciones se hacen al

valor siguiente y al iniciar el nuevo barrido se hace una actualización

copiando los valores del banco siguiente al actual.

2.5 Conclusiones

En este capítulo se presentó la metodología con la que se abordó el

problema de simular un PLC con una microcomputadora. Se considera que

los métodos obtenidos para representar y evaluar los diagramas de

escalera son eficientes, ya que el método de codificación utilizado

minimiza el espacio de memoria necesario para representar la escalera,

mientras que el método de evaluación ejecuta un número reducido de

operaciones para evaluar a cada elemento y permite manejar escalones

con estructuras relativamente complejas.

A pesar de que el PLC simulado cuenta con un número de puntos de 1/0

reducido y un conjunto de instrucciones muy limitado, este proyecto fue

sumamente importante, ya que constituyó una sólida base para el

desarrollo de este trabajo.

22

Page 29: Controlador lógico programable por computadora

3.1 Introducción

Capítulo 111

Sistema propuesto y

selección del microcontrolador

Con la experiencia del desarrollo inicial, quedó demostrado que una

microcomputadora puede hacer las funciones de un PLC sencillo, pero por

los costos, ésta no representa una solución práctica aplicable en la

industria. Por lo tanto, se decidió disefíar un sistema de bajo costo capaz

de realizar eficientemente el procesamiento del PLC.

En este capítulo se describe detalladamente el sistema propuesto, se

establecen las características del PLC a disefíar, se definen los

requerimientos del hardware y se selecciona el componente más

adecuado para esta aplicación.

3.2 Sistema propuesto

En el sistema propuesto se utiliza una microcomputadora y software de

desarrollo para editar el programa del PLC, a partir del cual se genera la

codificación. Posteriormente esta codificación junto con un intérprete son

grabados en una EPROM que es insertada en la tarjeta del CPU del PLC. En

la figura 3.1 se muestran un PLC pequeño con su unidad de programación

y el sistema propuesto.

23

Page 30: Controlador lógico programable por computadora

000000

ºººººººººº

PLC

Sistema Propuesto

Sistema Convencional

Programador

PLC

Figura 3.1

~ ~

Micro­computadora

Interface, de, I /0

Para lograr la reducción en costos, se trató de ocupar la cantidad mínima

de componentes y por ello en el sistema propuesto se excluye la unidad

de programación, usada comunmente en los PLCs comerciales. De esta

forma se eliminan el teclado y la pantalla junto con su circuitería asociada

y al mismo tiempo se evita la necesidad de que el PLC cuente con su

propio editor, lo cual requeriría de más hardware.

La desventaja principal del sistema es que ofrece poca flexibilidad, ya que

para modificar el progama es necesario remover, borrar y reprogramar la

24

Page 31: Controlador lógico programable por computadora

EPROM, aunque el proceso se puede hacer más eficiente si se dispone de

varias memorias. A pesar de este inconveniente, el uso de la EPROM se

justifica por la reducción en el costo del sistema.

3.3 Características del PLC

Los PLCs se clasifican en tres grupos 12 : pequeiíos, con menos de 128 de

puntos de 1/0; medianos, con 128 o más, pero menos de 1024; y grandes,

con 1024 o más. A pesar de que en este apartado no se definen

específicamente las características más importantes del PLC a diseiíar, se

establece que estas deben de estar dentro los rangos de los PLCs de la

tabla 3.1 13,14, 15,16, los cuales pertecen al grupo de los pequeños.

Tabla 3.1 PLCs comerciales pequeil.os

Modelo SLC-100 C20K FPC 202

Fabricante A-B OMRON FESTO

Salidas 6 8 16

Entradas 10 12 16

1/0 Expandible 64 84 96

Relevadores internos 18 1 136 S6

Contadores/tempo. 32 48 16

Ve!. de barrido .. 15ms IOuS/inst • No. de instrucciones 16 49 • Base de tiempo 0.1 s O. Is 0.1 s

Memoria•• 885words 1194words 8 Kbytes

Lenguaje RID RID -• Información no disponible

•• Las unidades no se pudieron normalizar

... Se puede programar por acción, 'stepper' ó nemocódigo

25

F-20M

Mitsubishi

8

12

40

64

16

45uS

• O. Is

320words

RLD/list

Page 32: Controlador lógico programable por computadora

3.4 Requerimientos del microcontrolador

Además de eliminar la unidad de programación se decidió basar el

hardware en un microcontrolador para reducir al mínimo la cantidad de

componentes. "Un microcontrolador es en realidad una computadora en

un solo encapsulado" 17 , la cual contiene dentro del mismo circuito

integrado: CPU, ROM, RAM, puertos de 1/0 y en ocasiones algunos otros

dispositivos. La principal ventaja de utilizar microcontroladores es que al

reducirse el número de componentes es posible disefiar circuitos más

económicos, compactos y confiables.

A continuación se presentan los requerimientos que debe cumplir un

microcontrolador para poder ser usado en un PLC con las especificaciones

de la sección anterior 18 .

1) Número de bits. Por el tipo de procesamiento que realiza el PLC uno de

8 es adecuado, ya que los de 16 y 32 tienen capacidades que dificilmente

se aprovecharían.

2) EPROM. Debe tener la capacidad suficiente para almacenar la

codificación y al intérprete. El tamaño de la codificación de la escalera

depende del número de elementos, mientras que el del intérprete es fijo.

Se estima que de 4 Kbytes se podría ocupar 1 para el intérprete y 3 para

un diagrama de tamaño regular.

3) RAM. En esta memoria se almacenan el 'stack' y un banco de registros

necesarios para la ejecución del programa, así como las variables

26

Page 33: Controlador lógico programable por computadora

booleanas y registros del PLC. Se considera que con 1/8 de Kbyte se

puede tener un número adecuado de variables.

4) Puertos de 1/0. El número de líneas de 1/0 del microcontrolador

representa el número de variables binarias de entrada y salida del PLC. El

mínimo aceptable es 16.

5) Frecuencia de reloj máxima. Aunque influye en la velocidad del

barrido no es lo único que la determina, ya que también depende de la

eficiencia de los algoritmos del intérprete. Entre más alta sea esta

frecuencia, es mejor.

3.S Comparación de microcontroladores

En la tabla 3.2 se muestra una comparación de las principales

características de algunos microcontroladores de algunos de los

fabricantes más importantes: Intel 19 , Texas Instruments20 , Motorola21 y

N ational22•

Tabla 3.1 Microcontroladores

Microcontrolador 8751 TMS370C810 68705U5 COP880C

Fabricante lntel TI Motorola National

EPROM interna (Kbytes) 4 4 3.6 4

RAM interna (bytes) 128 128 112 128

Líneas de 1/0 32 22 32 36 Temporizadores 2

27

Page 34: Controlador lógico programable por computadora

De estos microcontroladores algunos cuentan con características muy

interesantes, las cuales podrían incrementar ampliamente el potencial del

PLC:

1) Procesamiento booleano. Son instrucciones que permiten manejar

directamente a los bits como un tipo de dato. Esto sería muy útil por el

tipo de procesamiento que realiza el PLC.

2) Convertidor A/D. Este permite al PLC recibir información de variables

continuas, con lo cual se podrían implementar algoritmos de control

dinámico.

3) Comunicación serial. Permite al PLC intercambiar información con

otros PLCs o una microcomputadora en un Sistema de Control Distribuido

(DCS).

4) Bit de seguridad. Impide que los programas puedan ser leidos para

proteger los programas desarrollados.

5) EEPROM. Permite almacenar datos en caso de interrupciones en el

suministro eléctrico.

3.6 Factores para seleccionar un microcontrolador

"Para la aplicación en un producto, un número de factores deben ser

considerados al escoger un microprocesador. Entre éstos los más

28

Page 35: Controlador lógico programable por computadora

importantes son: l. Mérito Técnico, 2. Costo, 3. Disponibilidad y 4.

Herramientas de soporte"23 .

l ) Mérito técnico. Se refiere a las características mencionadas en la

sección 3.4: número de bits, capacidades de memoria, número de puertos

de 1/0, etc.

2) Costo. Por el objetivo que se fijó de que el PLC fuera de bajo costo, este

factor es clave, pero no se dede sacrificar el desempeño del PLC por tratar

de usar un microcontrolador muy barato.

3) Disponibilidad. Es un aspecto en el que se debe tener especial cuidado,

por lo que el microcontrolador seleccionado se debe de poder conseguir

con relativa facilidad en el mercado.

4) Herramientas de desarrollo. Son programas que ayudan a los

ingenieros al escribir el código para el microcontrolador, a depurarlo y a

verificar que funciona como se desea24 . Es recomendable tenerlas

disponibles porque hacen más eficiente el proceso de desarrollo.

3.7 Microcontrolador seleccionado

Entre todos los microcontroladores evaluados se seleccionó el 8751 de

Intel porque reunía todas las características del mérito técnico, sus

herramientas de desarrollo se podían conseguir con facilidad y,

principalmente, porque su conjunto de instrucciones "provee un extenso

29

Page 36: Controlador lógico programable por computadora

soporte para variables de un bit como un tipo de dato separado,

permitiendo la manipulación directa para sistemas lógicos y de control\5,

lo cual lo hace ideal para la aplicación del PLC

Sin embargo, el inconveniente de este microcontrolador es que su precio

es relativamente alto y por ello se prefirió utilizar el 8031 26 , que es la

versión sin EPROM interna del 8751 y tiene un costo 10 veces menor.

Aunque con este integrado se requiere de dos componentes externos

adicionales, el costo total es aproximadamente 5 veces menor que el del

8751. Otra ventaja de utilizar el 8031 es que la memoria externa puede

ser mayor que los 4 Kbytes del 8751, pero la desventaja que se tiene es el

incremento en el tamaño del circuito.

3.8 Conclusiones

El sistema propuesto representa una alternativa de bajo costo para

realizar el procesamiento del PLC utilizando los algoritmos presentados en

el capítulo anterior.

Para lograr la reducción de costos se eliminó la unidad de programación,

por lo cual se emplea software de desarrollo para generar los programas

que son introducidos al CPU mediante una EPROM. Así mismo, el

hardware se basó en un microcontrolador, que contiene dentro del mismo

encapsulado RAM, puertos, oscilador y temporizadores, con el fin de

minimizar la cantidad de componentes.

30

Page 37: Controlador lógico programable por computadora

Entre los microcontroladores considerados, se seleccionó el 8031 de

INTEL, porque cumple con todos los requerimientos para esta aplicación,

ofrece un buen balance en cuanto a costo y desempeño y porque incluye

funciones de procesamineto booleano, en las cuales se basa el PLC.

Al sistema presentado se le dió el nombre de CL-51. Las letras significan

Controlador Lógico y el 51 se debe al nombre de la familia MCS-51, a la

cual pertenece el 8031 .

._

31

Page 38: Controlador lógico programable por computadora

4.1 Introducción

Capítulo IV

Implementación del

conjunto de instrucciones

~l conjunto de instrucciones de un PLC es sumamente importante, ya que

éste determina su desempeíio y por ello debe permitir que se explote al

máximo el potencial del hardware y al mismo tiempo debe ser de fácil

manejo para el usuario.

En este capítulo se clasifican y describen las intrucciones más comunes de

los PLC~ se define el conjunto de instrucciones del CL-51, se explica la

forma en que se implementó y se indica como realizar algunas

operaciones no incluidas en el conjunto básico.

4.2 Grupos de instrucciones

Puesto que no fue posible conseguir el estándar para los lenguajes de

programación de PLCs del International Electrical Comitee (IEC),

SC65A(Secretariat)67 part3 27 , fue necesario recurrir a diversas fuentes

para establecer el conjunto de instrucciones del CL-51: el manual del

SLC-100 de Allen-Bradley28 , el catálogo del C20K de OMROM29 , la

Enciclopedia de la Robótica30 y algunos artículos sobre casos de

32

Page 39: Controlador lógico programable por computadora

automatización31 ,32,33 .

Para poder proponer un conjunto poderoso ,{las instrucciones encontradas

se clasificaron en cinco grupos, los cuales se presentan a continuación

junto con la descripción de cada una de las instrucciones.)

1) Instrucciones lógicas. Representan los contactos y bobinas de los

relevadores.

Normalmente abierto

Normalmente cerrado

Relevador

Relevador negado

'Latch'

'Unlatch'

Transición

Transición hacia arriba

Transición hacia abajo

Usa el valor de una variable binaria para

evaluar el escalón.

Usa el valor negado de una variable

binaria para evaluar el escalón.

Asigna el valor resultante del escalón a

una variable binaria.

Asigna el valor negado resultante del

escalón a una variable binaria.

Si el valor del escalón es 1 da el valor de 1

a la variable binaria, si no la deja como

estaba.

Si el valor del escalón es 1 da el valor de O

a la variable binaria, si no la deja como

estaba.

Cuando la variable binaria cambia de

estado usa un 1 para evaluar el escalón, y

cuando conserva su estado usa un O.

Cuando la variable binaria cambia de O a 1

usa un para evaluar el escalón, en otro

caso usa un O.

Cuando la variable binaria cambia de 1 a O

usa un 1 para evaluar el escalón, en otro

caso usa un O.

33

Page 40: Controlador lógico programable por computadora

2) Temporizadores y contadores. Permiten controlar la duración de un

evento o contar el número de veces que ocurre.

Temporizador-encendido Si el valor del escalón es 1 disminuye el

valor del registro en 1 cada décima de

segundo. Toma un valor de 1 para la

evaluación si el registro es igual a O.

Temporizador-apagado

Contador hacia arriba

Contador hacia abajo

Mover

'Re set'

Si el valor del escalón es O disminuye el

valor del registro en 1 cada décima de

segundo. Toma un valor de para la

evaluación si el registro es igual a O.

Aumenta en 1 el valor del registro cuando

el valor del escalón tiene una transición

de O a 1. Toma un valor de 1 para la

evaluación si el registro es igual a O.

Disminuye en el valor del registro

cuando hay transición de O a 1. Toma un

valor de 1 para la evaluación si el registro

es igual a O.

Si el valor del escalón es 1 se asigna el

valor indicado a un registro.

Si el valor del escalón es 1 se iguala a cero

el valor del registro.

3) Aritméticas y de comparación. Estas instrucciones permiten realizar el

tratamiento de valores númericos.

Suma

Resta

Multiplicación

Si el escalón es 1 suma dos registros y

asigna la swna a un tercero.

Si el escalón es 1 resta un registro de otro

y asigna la diferencia a un tercero.

Si el escalón es 1 multiplica dos registros

y el resultado lo reparte en otros dos, en

uno la parte alta y en otro la baja.

34

Page 41: Controlador lógico programable por computadora

División

Igual a

Menor que

Mayor que

Si el escalón es 1 divide un registro entre

otro y asigna el cociente a un registro y el

residuo a otro.

Usa un valor de 1 para evaluar el escalón

si los registro son iguales.

Usa un valor de I para evaluar el escalón

si el primer registro es menor que el

segundo.

Usa un valor de 1 para evaluar el escalón

si el primer registro es mayor que el

segundo.

4) Control de Flujo. Controlan las instrucciones que deben ser ejecutadas

por el programa durante el barrido.

Llamada a subrutina

Inicio de subrutina

Retorno de la subrutina

Fin de la escalera

Salta a una subrutina

Indica el inicio de una subrutina.

Regresa de una subrutina.

Indica el final del diagrama principal.

5) Control de salidas. Estas funciones permiten definir bloques dentro de

los cuales el valor de las salidas no es necesariamente el valor resultante

del escalón.

MCR

(Master Control Resct)

Fin del MCR

za.. (Zone Control Last-state)

Fin del ZCL

Cuando el valor del escalón es l, en los

escalones siguientes a este las salidas de

relevador se hacen O, las de relevador

negado 1 y las otras no se ejecutan.

Cancela el efecto del MCR.

Cuando el valor del escalón es 1 las salidas

siguientes conservan su último valor.

Cancela el efecto del ZCL.

35

Page 42: Controlador lógico programable por computadora

4.3 Conjunto de instrucciones del CL-51

Tomando como base el porcentaje de uso relativo de las instrucciones,

figura 4.1 34 , se propuso el conjunto de instrucciones que se muestra en la

figura 4.2. En él se eliminan algunas de las instrucciones descritas en la

sección anterior por ser de uso poco frecuente, demasiado lentas o

reemplazables por otras instrucciones. En el Apéndice A se presenta la

explicación detallada de como funciona cada instrucción.

8 % Contadores/ Temporizadores/ Movimientos

1 % Otras

Figura 4.1

4.4 Implementación de las instrucciones

4.4.1 Instrucciones Lógicas

Para implementar las instrucciones lógicas, lo que se hizo fue traducir los

procedimientos del programa del Capítulo 2 a rutinas en lenguaje

36

Page 43: Controlador lógico programable por computadora

ensamblador. Con el fin de hacer más poderoso el conjunto del CL-51,

además de las instrucciones de la versión previa se agregaron el

relevador negado y las transiciones. Para implementar el "relevador

negado" el escalón se evalua normalmente y se niega el valor resultante

antes de asignarlo a la variable binaria. Para las transiciones se

desarrollaron subrutinas en lenguaje ensamblador que realizan las

siguientes operaciones (Donde Xn representa el estado actual de la

variable y Xn-l el estado anterior):

Transición

Transición hacia arriba

Transición hacia abajo

XX +XX n n-1 n n-1

4.4.2 Temporizadores y contadores

Al tipo de dato utilizado para representar números enteros, se le dió el

nombre de registro. Como se muestra en la figura 4.3, 14 bits del registro

se utilizan para almacenar el valor y los 2 bits restantes se ocupan como

banderas. Una bandera sirve para indicar si el registro es un

temporizador o un contador y la otra es una bandera auxiliar cuyo uso se

explicará posteriormente.

38

Page 44: Controlador lógico programable por computadora

byte alto byte bajo

1 1 1 1 1 1 1 1 1 11 1 1 1 1

v,10< d<I regb«o J J Bandera

Temporizador/contador

Figura 4.3

La instrucción "mover" sirve para asignar un valor a un registro, ya sea

que este se vaya a usar como temporizador, contador o registro. Cuando

se copia el valor de un registro a otro se aplican mascarillas para respetar

el contenido de las banderas y cuando se hace una asignación inmedita el

valor se multiplica por 4 para dejar libre el espacio de las banderas. La

instrucción "reset" iguala a cero el contenido del registro, pero no afecta a

las banderas.

Cuando un registro se utiliza como temporizador, su bandera auxiliar

sirve para indicar si esta activo. Cada décima de segundo uno de los

temporizadores internos del 8031 envia una interrupción durante la cual

se decrementa en l el valor de los temporizadores activos. La cuenta se

lleva en forma descendente y se detiene al llegar al cero.

En los contadores la bandera auxiliar se utiliza para almacenar el estado

anterior del escalón que los contiene. Al ejecutarse el barrido se compara

el valor del escalón con su valor anterior y si se detecta que ha habido

una transición hacia arriba, entonces se decrementa o incrementa el valor

del contador. Para ofrecer más libertad al usuario el valor de los

contadores, a diferencia de los temporizadores, no se detiene al llegar a

cero.

39

Page 45: Controlador lógico programable por computadora

4.4.3 Aritméticas y de comparación

Para efectuar las operaciones de "suma" y "resta" se aplican mascarillas

para evitar que las banderas de los operandos entren en la operación y

para no afectar las banderas del registro en el que se almacena el

resultado. Al hacer las operaciones con un registro y una constante, esta

última se multiplica por 4 y se coloca en un registro auxiliar.

Las instrucciones de comparación se basan en la instrucción CINE del

8031. Para ejecutar la función "igual a" primero se aplican mascarillas a la

parte baja de los registros y luego se hace la comparación, en caso de que

sean iguales se procede a comparar las partes altas. La instrucción de

"mayor que" funciona en forma similar a la anterior y para la de "menor

que" sólo se cambian de posición los registros y se llama a la subrutina

"mayor que".

4.4.4 Control de flujo

La instrucción "inicio de subrutina", no hace nada al ejecutarse el

programa, sólo sirve para que el programa pueda identificar la dirección

en donde comienza la subrutina. La instrucción "llamar" a una subrutina

realiza un CALL a la dirección en la que empieza la subrutina. El "retorno"

de una subrutina se realiza simplemente con la instrucción RET. La

instrucción "fin de escalera" salta a la parte en donde está la rutina que

actualiza los bancos de variables y los puertos de 1/0 para comenzar el

nuevo barrido.

40

Page 46: Controlador lógico programable por computadora

4.4.5 Control de salidas

Para implementar el MCR se utiliza una bandera llamada MCR. Esta

bandera se usa como valor de los elementos finales, y por la forma en que

funciona el algoritmo de evaluación, si el MCR es 1 el escalón se evaluará

normalmente y si es O el valor resultante del escalón también será cero.

Aunque se tenía la posibilidad de hacer que el MCR funcionara sólo con

las instrucciones lógicas y no sobre las demás, se prefirió que afectara a

todas para evitar confusiones al usuario de cuales se afectan y cuales no.

La instrucción "fin de MCR" reestablece el valor inicial de la bandera MCR

a l.

4.5 Cómo ejecutar las instrucciones no incluidas

A continuación se explica por que no se implementaron algunas

instrucciones y cómo se pueden utilizar las instrucciones del conjunto

básico del CL-51 para realizarlas.

4.5.1 Multiplicación y división

A pesar de que las operaciones de multiplicación y división están dentro

del conjunto de instrucciones del 8031, estas fueron excluidas ya que el

microcontrolador sólo las ejecuta sobre registros de 8 bits. Cuando se

utilizan datos de más de un byte para sumar o restar se hace un

encadenamiento, pero para la multiplicación esto es complicado y para la

división no es posible. Otra alternativa para hacer estas operaciones era

41

Page 47: Controlador lógico programable por computadora

utilizar corrimientos, pero se decidió omitirlas dado que requerían de

muchas operaciones y harían notoriamente más larga la duración del

barrido. Sin embargo, en aplicaciones en las que no importe el tiempo que

se lleve, es posible implementarlas mediante sumas y restas sucesivas.

4.5.2 Secuenciación

Para la implementación de los secuenciadores se presentaban algunos

inconvenientes, como el manejo demasiado rígido de las salidas y la

necesidad de un editor especial para su captura, por lo cual no se

incluyeron en el conjunto del CL-51. Sin embargo, es posible realizar la

secuenciación en una forma bastante flexible utilizando subrutinas. Se

pueden utilizar un grupo de escalones con diferentes combinaciones

lógicas o con comparaciones y cada uno de ellos habilita a una subrutina

diferente. En el Apéndice A se presenta un ejemplo de cómo utilizar esta

metodología de programación.

4.S.3 ZCL

El método propuesto para implementar la instrucción del ZCL consistía en

saltar todos los escalones del bloque si al evaluar el escalón del ZCL este

resultaba igual a 1. De esta forma los escalones del bloque quedarían con

su mismo valor y además la duración del barrido se haría más corta.

Aunque el método anterior era muy eficiente, se observó que era posible

hacer la misma función si el bloque se declaraba como una subrutina a la

cual se llamaría o no dependiendo del valor de un cierto escalón. La razón

principal por la que se decidió omitir la instrucción ZCL fue para evitar el

42

Page 48: Controlador lógico programable por computadora

riesgo de que bloques MCR y- ZCL quedaran anidados, lo cual podría

ocasionar salidas no deseadas o impredecibles.

4.6 Conclusiones

Durante el estudio que se realizó para establecer el conjunto de

instrucciones del CL-51 se observó que no había uniformidad en los

conjuntos y que estos variaban de un PLC a otro. Por lo tanto se buscó si

había un estándar y se encontró que el lnternational Electrical Comitee

estaba trabajando en uno, pero no fue posible conseguirlo, tal vez por ser

muy reciente.

Por las razones anteriores fue necesario definir un conjunto de

instrucciones propio para el CL-51 tomando como base los demás

conjuntos. Con base en el porcentaje de uso de las instrucciones y por la

facilidad con la que se puede implementar el control se considera que el

conjunto establecido es muy poderoso. Así mismo, se considera que la

mayoría de las rutinas de cada instrucción son eficientes por su tiempo de

ejecución.

43

Page 49: Controlador lógico programable por computadora

5.1 Introducción

Capítulo V

Implementación del prototipo

y programas de prueba

Como paso previo al desarrollo del software se implementó un prototipo,

para lo cual se escribieron algunos programas de prueba con el fin de

validar las rutinas y comprobar el funcionamiento del hardware.

En este capítulo se cubren la distribución de los recursos del 8031, la

elaboración de programas auxiliares de prueba y la implementación física

del prototipo.

5.2 Implementación del CL-51 con el 8031

Basándose en las características del 8031 (ver Apéndice F) se estableció la

forma en la que se utlizarían los recursos de este microcontrolador para

obtener una distribución óptima para implementar el CL-51.

5.2.1 Distribución de la EPROM

La parte baja de la memoria de programa se asignó para el intérprete y

de la parte restante se ocupa el espacio necesario para almacenar la

codificación del diagrama, como se muestra en la figura 5.1.

44

Page 50: Controlador lógico programable por computadora

Intérprete

Codificación del diagrama

Espacio vaclo

Figura S.1

5.2.2 Distribución de la RAM

El microcontrolador cuenta con una RAM interna muy limitada, 128 bytes,

por lo que la distribución se realizó cuidadosamente (figura 5.2). Los

primeros 32 bytes se destinaron para un banco de registros y el 'stack'.

De los 96 bytes restantes se dejaron 48 bytes para 192 variables binarias

y los otros 48 bytes para 24 registros.

RO-R7 OOh • 07h Stack 08h -1Fh

Variables 20h-4Fh Binarias

Registros 50h - 7Fh

Figura S.2

5.2.3 Configuración para EPROM externa

La configuración utilizada para conectar el 8031 y la EPROM, que se

muestra en. la figura 5.335 , se tomó del manual de Intel "8 bit embedded

microcontrollers". Es importante notar que en esta configuación 16 lineas

45

Page 51: Controlador lógico programable por computadora

de 1/0 se utilizan para funciones de 'bus' en los accesos a la memoria

externa: el puerto P2 se utiliza para la parte alta de la dirección y el

puerto PO para los datos y la parte baja de la dirección. Por lo tanto, sólo

quedan 16 lineas de 1/0 disponibles para la aplicación del usuario.

® EPROM MCS-51

PI PO INSTR.

EA

ALE ]-· P3 P2

PSEN OE

Figura5.3

5.2.4 Multiplexión de puertos •

Una alternativa para las aplicaciones que requieran de más de 16 puntos

de 1/0, consiste en utilizar los puertos en forma multiplexada, esto es,

utilizar el puerto Pl como 'bus' de 1/0 y el puerto P3 para seleccionar las

tarjetas de 1/0. Así, al tener capacidad de conectar 8 tarjetas a un 'bus' de

8 señales se pueden manejar hasta 64 puntos de 1/0. Al mismo tiempo, se

tiene flexibilidad en lo que respecta a la cantidad de salidas y entradas ya

que se puede conectar cualquier combinación de ellas en múltiplos de 8 e

incluso se deja abierta la posibilidad para incluir convertidores A/D y

DJA. (En el Apéndice D se amplía la información sobre este tema.

• Se usa el termino multiplexión por que no se encontró una palabra en español que representara

su signifjca~~- (Nota del Autor)

46

Page 52: Controlador lógico programable por computadora

5.3 Inconvenientes del intérprete

Para implementar el intérprete, la codificación de la escalera se tendría

que leer utilizando la instrucción MOVC A,@A+DPTR36 y en función de

cada elemento se tendría que llamar a una subrutina con la instrucción

JMP @A+DPTR3,. El inconveniente que se hubiera presentado al

implementar el intérprete sería que tanto para saltos indexados como

para lectura a tablas de consulta se necesita el registro DPTR, "data

pointer". Por lo tanto, cada vez que se tuviera que evaluar un elemento se

tendría que cargar el valor del apuntador de la codificación, actualizarlo,

leer el elemento, guardarlo y saltar a la subrutina correspondiente al

cimento. Al repetirse las operaciones anteriores para cada uno de los

elementos de la escalera la velocidad del barrido se haría

considerablemente más baja.

Un detalle importante que se descubrió posteriormente, fue que las

funciones de manejo de bits del 8031 se podían utilizar en los modos

inmediato y directo pero no en modo indirecto, lo cual representa un gran

inconveniente ya que el intérprete requiere del acceso a los bits en modo

indirecto porque el número del bit a accesar varía para cada uno de los

elementos del diagrama de escalera. Por lo tanto las funciones de manejo

de bits que habían sido una de las características más importantes para

seleccionar este microcontrolador no podrían ser utilizadas eficientemente

por el intérprete.

• Se utiliza eJ término indeur aunque no se encontró una palabra en espa.ftol que representara

su significado

47

Page 53: Controlador lógico programable por computadora

5.4 Reemplazo del intérprete por un compilador

El acceso indirecto a un bit se puede llevar a cabo utilizando una serie de

instrucciones para traer al byte que lo contiene, aplicar una mascarilla

para separalo de los demás bits y verificar entonces si esta encendido o

apagado. Sin embargo, este procedimiento requiere de varias

instrucciones y el tiempo de procesamiento serla más largo que aquel que

se tendría si se accesara en una sola instrucción al bit.

Dado que el PLC se basa fuertemente en las capacidades de procesamiento

booleano del microcontrolador, para poder aprovecharlas se tuvo que

hacer un cambio radical a la concepción original del proyecto. Dicho

cambio consistió en remplazar el interprete y la codificación de la escalera

por un código ejecutable equivalente. En otras palabras, lo que se tenía

que hacer era compilar el diagrama de escalera generando las

instrucciones correspondientes a cada elemento del diagrama de escalera.

La principal ventaja que se obtiene con el compilador es un incremento

en la velocidad de barrido, ya que para cada elemento del diagrama de

escalera sólo se ejecutan las instrucciones estrictamente necesarias para

evaluarlo. La desventaja es el incremento en el tamaño del programa, ya

que muchas de las subrutinas del intérprete se siguen necesitando como

funciones de librería para ser llamadas por el compilador y el código

generado para cada elemento requiere mucho más que los dos bytes que

se usaban para codificarlo. Sin embargo, el incremento en requerimientos

de memoria de programa no afecta significtivamente ya que la EPROM

externa puede ser hasta de 16 Kbytes.

48

Page 54: Controlador lógico programable por computadora

5.5 Generador de programa en ensamblador

Para generar el programa en ensamblador correspondiente a un diagrama

de escalera, se escribieron las subrutinas de librería, en ensamblador, y

un programa en Pascal, el cual a partir de un archivo con la codificación

de la escalera, generaba un archivo de texto con los fragmentos de

programa en ensamblador correspondientes a cada uno de los elementos

del diagrama. Finalmente, utilizando un compilador se obtenía el

programa en lenguaje de máquina. En la figura 5.4 se ilustra este proceso.

Para probar este programa se escribió en un archivo la codificación

manual de un diagrama de escalera y se comprobó que la ejecución en el

simulador del código obtenido correspondía totalmente con el diagrama

de escalera programado.

Diagrama de escalera

A B

Programa t J Programa en MOV C,1 ensamblador ANL CJ2

MOV3,C

Compilador J

e

Programa en lenguaje de máquina

:0601AFOOA201B0029203B9

Figura 5.4

49

Page 55: Controlador lógico programable por computadora

5.6 Generador de código

Posteriormente, se modificó el programa de la sección anterior para que

generara directamente el archivo en lenguaje de máquina, como se

muestra en la figura 5.5. Para ello, se modificó el procedimiento que

escribía los fragmentos en ensamblador para que en vez de los nemónicos

escribera el código con el formato Intel Hex38 •

Diagrama de escalera

Programa en lenguaje de máquina

A B e

Programa 2 ...

:0601AFOOA201B0029203B9

Figura 5.5

Para generar directamente el código era necesario que el programa en

pascal de alguna forma conociera las direcciones de las librerías para

poder llamarlas. Para ello se escribió un programa auxiliar el cual lee el

archivo LST (que es generado al compilar las librerías) y utiliza esa

información para escribir otro archivo de texto con el formato de Pascal.

Es este archivo las direcciones de las subrutinas se declararan como

constantes tipo 'string', para que puedan ser utilizadas por el programa

generador de código por medio del directivo { $INCLUDE} 39.

50

Page 56: Controlador lógico programable por computadora

S. 7 Implementación del prototipo

Una vez que se verificó el funcionamiento del circuito de la figura 5.6 en

una tablilla de prueba, se disefió el circuito impreso para la unidad de

procesamiento. Los puertos de 1/0, que se dejaron como módulos

enchufables para ofrecer mayor flexibilidad, pueden contener

relevadores, transistores, triacs o diversos tipos de entradas dependiendo

de la aplicación en cuestion. La tarjeta del CPU se hizo de una sola cara

porque el costo es más bajo que el de una tarjeta de dos caras. Para hacer

esta tarjeta se incorporaron tecnologías de CAD/CAM. (En el Apéndice G se

amplía la información sobre este tema).

El prototipo sirvió para conocer la velocidad del barrido, que hasta este

punto no se había calculado o estimado. El diagrama programado tenía 25

elementos y el período medido con el osciloscopio fue aproximadamente

de 1.2 ms. Esta velocidad era aceptable y se podía duplicar utilizando en

vez del cristal de 6.144 MHz uno de 12 MHz, que es la frecuencia de reloj

máxima a la que puede trabajar el 8031.

5.8 Conclusiones

Durante esta etapa de implementación del prototipo, se descubrió que las

instrucciones de procesamiento booleano no se puede utilizar en modo

indirecto. Esto obligó a que se realizará un cambio importante en la

concepción original de la tesis, para poder aprovechar las capacidades de

procesamiento booleano, por las cuales se había seleccionado el 8031, el

51

Page 57: Controlador lógico programable por computadora

AO 10 AO DO 11 ADO PI.O PO.O 39 ADO Al 9 Al DI 12 AD! PI.! PO.! 38 AD! A2 8 A2 02 13 AD2 Pl.2 P0.2 37 AD2 A3 1 A3 03 IS AD3 Pl.3 P0.3 36 AD3 A4 6 A4 04 16 AD4 Pl.4 P0.4 3S AD4 AS s AS DS 17 ADS Pl.S PO.S 34 ADS A6 3 A6 06 18 AD6 Pl.6 P0.6 33 AD6 A7 25 A7 07 19 AD7 Pl.7 P0.7 32 AD7 A8 24 A8 A9 21 A9 P3.0 P2.0 21 A8

AIO 23 AJO P3.1 P2.1 22 A9 Ali 2 Al! P3.2 P2.2 23 AlO A12 26 A12 P3.3 P2.3 24 Ali A13 27 A13 P3.4 P2.4 25 A12

P3.S P2.5 26 A13 /PSEN 20 CE P3.6 P2.6 27 A14 /PSEN 22 DE P3.7 P2.7 28 A15

VCC 1 VPP

27128 19 XI PSEN 29 /PSEN

18 X2 ALE 30 ALE

9 RES ET EA 31 GND

¡47pF 8031

¡47pF

7805

:::¡r= l voc

IOuF

ADO 2 DI Ql 19 AO AD! 3 02 Q2 18 Al AD2 4 03 Q3 17 A2 AD3 s 04 Q4 16 A3 AD4 6 DS Q5 15 A4 ADS 1 06 Q6 14 AS AD6 8 07 Q7 13 A6 AD7 9 08 Q8 12 A7

ALE 11 e

8.2K

GND 1 oc 74LS373

Figura 5.6

Page 58: Controlador lógico programable por computadora

intérprete tuvo que ser substituido por un compilador. El compilador

tiene la desventaja de que el código generado ocupa más espacio de

memoria, pero a cambio de ello la velocidad de barrido se incrementa

notoriamente.

Las pruebas realizadas con el hardware prototipo, resultaron

satisfactorias por su funcionamiento y la velocidad de barrido.

53

Page 59: Controlador lógico programable por computadora

Capítulo VI

Software de desarrollo

6.1 Introducción

El software de desarrollo es una parte muy importante del CL-51, ya que

al no contar con una unidad de programación, éste es la interface con el

usuario. El programa permite al usuario editar el diagrama de escalera,

depurarlo mediante la simulación y finalmente generar el código.

En este capítulo sólo se describen los aspectos importantes de la

implementación del software de desarrollo y en el Apéndice A se explica

detalladamente como utilizarlo.

6.2 Características generales y módulos del programa

El software de desarrollo se escribió en Pascal para una IBM PS modelo

30 286. El programa maneja un ambiente de menús similar al del Turbo

Pascal de Borland40 y trabaja con el manejador de gráficas VGA, alta

resolución y con 16 colores, sin embargo, mediante modificaciones

sencillas es posible adaptarlo para el manejador CGA, alta resolución y 2

colores.

54

Page 60: Controlador lógico programable por computadora

En su menú principal se presentan las siguientes opciones:

Archivos Para cargar y escribir archivos en el disco o salir al sistema operativo

Editar Permite la captura gráfica de los diagramas de escalera

Simular En la simulación es posible modificar el valor de las entradas desde el teclado y ver en la pantalla como se afectan las demás variables en cada barrido

Opciones Se utiliza para configurar los puertos de 1/0 y asignar las variables

Programación Genera el archivo en lenguaje de máquina

6.3 Estructura y tipos de datos

Para representar el diagrama de escalera se utiliza la estructura

mostrada en la figura 6.1, la cual facilita el proceso de edición y permite

un manejo eficiente del espacio de memoria

Figura 6.1

55

Page 61: Controlador lógico programable por computadora

Para representar un elemento se usa un registro, que contiene un byte

para la instrucción codificada, tres 'strings' de 8 caracteres para los

argumentos de la instrucción y un apuntador para ligarlo al siguiente

elemento.

El tipo de dato usado como encabezado de un escalón es un registro con

un apuntador para señalar a los elementos, dos apuntadores para unirse

con los demás escalones y dos enteros para almacenar el número del

escalón y la cantidad de renglones que contiene.

6.4 Editor

El editor incluye funciones para desplazarse a lo largo de la escalera,

insertar, borrar y modificar escalones, así como funciones manejo de

bloques y saltos de escalón, que son similares a las del editor del Turbo

Pascal41 y hacen más eficiente el proceso de captura.

Las funciones de edición para insertar y borrar escalones solamente

modifican los apuntadores entre escalones, sin necesidad de afectar los

apuntadores que están entre los elementos. En la figura 6.2 se muestra

(a) cómo se borra y (b) cómo se inserta un escalón; las líneas punteadas

indican la posición inicial de los apuntadores modificados.

56

Page 62: Controlador lógico programable por computadora

(a) (b)

Figura 6.2

Las funciones de bloques permiten al usuario manejar a un conjunto de

escalones como un solo bloque, el cual se puede borrar, copiar, mover e

incluso puede ser guardado o cargado del disco. El bloque esta delimitado

mediante un par de apuntadores, y para borrarlo o moverlo, se realizan

operaciones similares a aquellas que se ejecutan para borrar o insertar un

solo escalón. Para copiar un bloque, primero se duplica la parte de la

estructura que corresponde al bloque y luego se inserta en la posición

indicada. Las funciones para cargar y guardar bloques se basan en los

procedimientos para guardar y cargar la escalera, los cuales se tratatarán

en la sección 6.7.

Los saltos permiten al usuario desplazarse rápidamente a lo largo de la

escalera. Las funciones para ir al primer o al último escalón simplemente

igualan el cursor a alguno de los apuntadores predefinidos que señalan a

esos dos escalones. Mientras que la función para saltar a un escalón

determinado apunta el cursor hacia el primero y recorre la escalera,

escalón por escalón, hasta que encuentra aquel que le fue indicado.

57

Page 63: Controlador lógico programable por computadora

6.5 Edición de escalones

En el programa del Capítulo 2 se utilizó un método de captura de

escalones secuencial, pero éste era demasiado rígido, requería que los

elementos se introdujeran en un orden especial y no permitía hacer

modificaciones. Por lo tanto, se desarrolló un nuevo método, el cual

facilita al usuario el proceso de captura y le ofrece más libertad. El nuevo

método consta de dos etapas:

1 ) Colocación de elementos. Durante esta etapa el usuario se puede desplazar libremente por toda la pantalla para colocar o modificar los elementos en cualquier posición. Los elementos se guardan en un arreglo matricial.

2) Inidicación de conexiones. En esta etapa el usuario indica solamente las conexiones verticales de cada rama hacia el primer renglón, ya que el método asume que todos los elementos de un mismo renglón están conectados en serie. Las posiciones de regreso se guardan en un arreglo auxiliar.

Este método, al igual que el secuencial, obliga a que la estructura de los

escalones sea comprensible para el método de evaluación #4, ya que al

finalizar la primera etapa se verifica que no haya elementos en posiciones

ilegales y durante la segunda etapa solamente se habilitan las conexiones

que cumplan con las reglas de conexiones del Capítulo 2.

Debido a que se utilizan estructuras diferentes para capturar el escalón y

para representar a la escalera, se utilizan procedimientos que convierten

de un tipo de estructura al otro. El procedimiento que convierte el arreglo

matricial en una estructura de apuntadores acomoda a los elementos de

58

Page 64: Controlador lógico programable por computadora

acuerdo al orden de evaluación seguido por el método #4. Al efectuar esta

conversión se realiza una codificación para indicar el tipo de conexión de

cada elemento (inicio de rama, serie, paralelo o inicio de escalón). El

procedimiento inverso, convertir de apuntadores a matriz, utiliza la

información codificada para determinar la posición en que se deben

colocar los elementos en la matriz.

6.6 Opciones

El módulo de opciones sirve para introducir información acerca de las

tarjetas conectadas a los puertos de 1/0 y sus señales asociadas. Las

funciones de asignación y configuración se limitan a capturar y almacenar

la información, la cual será utilizada posteriormente por el compilador. A

pesar de que no se implementaron las subrutinas de 1/0 analógicas, el

programa permite definirlas para dejar abierta la posibilidad de

implementarlas en un futuro.

6. 7 Archivos

El módulo de archivos contiene funciones para guardar y cargar archivos,

editar un nuevo diagrama de escalera y salir del programa. El

procedimiento para guardar el diagrama de escalera elimina los

apuntadores y almacena unicamente la información de los elementos,

junto con la asignación de los puertos de 1/0 y la posición de las variables

en la pantalla de simulación, para lo cual utiliza tres archivos diferentes:

59

Page 65: Controlador lógico programable por computadora

* .RLD, * .ASG y * .SIM. Al cargar un archivo se regenera la estructura de

apuntadores, se recupera la asignación de los puertos de 1/0 y la posición

de las variables en la pantalla de simulación.

6.8 Simulación

El módulo de simulación permite al usuario probar y depurar, en una

forma eficiente y segura, sus diagramas de escalera sin tener que

programar una EPROM y conectar el PLC al sistema real. En la pantalla de

simulación se pueden observar los nombres de las variables que indique

el usuario, junto con su valor y en el caso de los registros también se

indica si es contador o temporizador y el estado de la bandera auxiliar.

Es conveniente mencionar que la simulación se hace barrido por barrido y

que los cambios en las variables de entrada no son considerados

inmediatamente, sino hasta un barrido después de que se produjeron. La

razón por la que se tiene este retardo es para apegar la simulación a la

ejecución real del PLC, que funciona de la misma manera. Este retardo se

introduce para poder detectar las transiciones en las variables de entrada

y no es significativo, ya que generalmente el periodo del barrido es muy

corto.

Para la simulación de los temporizadores, la simulación no se apega al

tiempo real de 0.1 segundos para actualizar sus valores, sino que éstos se

actualizan cada cuatro barridos. Lo anterior se debe, por una parte, a que

es extremadamente complicado hacer una estimación exacta del tiempo

en el que se ejecuta cada instrucción, y por la otra, a que se requeriría

60

Page 66: Controlador lógico programable por computadora

simular un número muy elevado de barridos para observar como

responden los temporizadores si el periodo del barrido es muy pequeiio.

Para poder hacer la simulación se crea una nueva estructura en la cual se

substituyen los nombres simbólicos de las variables por números de

identificación, los cuales corresponden a las localidades de memoria a las

que fueron asignadas. Así mismo, se asigna un número de identificación a

cada una de las subrutinas.

Antes de iniciar, lo que es propiamente la simulación, el programa

verifica que el diagrama cumpla con ciertas reglas de sintaxis, las cuales

tienen por objeto prevenir que durante el barrido el procesador se vaya a

quedar ciclado entre subrutinas o que se presenten estados de control

MCR indefinidos.

6.9 Programación

El módulo de programación, que genera el archivo con el programa en

lenguaje de máquina para el 8031, esta basado en el programa de prueba

explicado en el Capítulo 5. Las tareas que ejecuta este módulo son tres:

generar los fragmentos de código para cada elemento del diagrama de

ese alera, generar las rutinas de actualización de puertos de 1/0 e incluir

en el archivo las funciones de librería.

Para la compilación del diagrama se utiliza la estructura generada por el

simulador, en la cual los nombre de las variables y subrutinas han sido

substituidos por números de identificación. Se hace una primera pasada

61

Page 67: Controlador lógico programable por computadora

llevando el conteo de los bytes que se generarán por cada elemento de la

escalera para poder determinar la dirección en la que comienza cada una

de las subrutinas. Después, se hace una segunda pasada, en la cual se

genera el archivo con el código correspondiente a cada instrucción del

diagrama.

Posteriormente, utilizando la información que se introdujó con el módulo

de opciones, se generan las rutinas de actualización de 1/0 para que el

microcontrolador seleccione una por una las tarjetas y realice las

operaciones de lectura o escritura correspondientes. Y por último, se

copian al nuevo archivo las librerías, las cuales han sido previamente

compiladas.

6.10 Conclusiones

El software de desarrollo es la interface del CL-51 con el usuario.

Mediante este programa el usuario puede editar, simular y compilar los

diagramas de escalera. El software es amigable y no requiere que el

usuario tenga conocimientos de lenguajes de programación, más que del

RLD.

El programa presenta ventajas importantes sobre su predecesor,

principalmente en lo que respecta al editor, ya que este permite capturar

y modificar los diagramas en una forma más eficiente. Cada uno de los

módulos fue revisado detalladamente pero la parte en la que se puso más

atención fue en el compilador, porque es la que es la más crítica.

62

Page 68: Controlador lógico programable por computadora

Resultados

R.1 Descripción del sistema

El sistema del CL-51 está integrado por cuatro partes principales:

Software de desarrollo Para capturar, simular y compilar el diagrama de escalera

Programador de EPROMs Se utiliza para grabar el programa del controlador en la memoria

Tarjeta de CPU En la que se instala la EPROM para que realice el procesamiento

Interfaces de 1/0 Que se conectan al CPU con el sistema real

En la figura R. l se muestra un esquema del sistema.

Programador de EPROMs .....

Microcomputadora ' EPROM programada

CPU Interface de 1/0

Figura R.1

En la tabla R. l se prsentan las características principales del CL-51 junto

con las de otros PLCs pequeños disponibles en el mercado.

63

Page 69: Controlador lógico programable por computadora

Tabla R.l Comparación del CL-51 con otros modelos comerciales

Modelo CL-51 SLC-100 C20K FPC 202 F-20M

Fabricante A-B OMRON FFSTO Mitsubishi

Salidas 8 6 8 16 8

Entradas 8 10 12 16 12

1/0 Expandi ble 64 64 84 96 40

Relevadores internos 192 181 136 56 64

Contadores/temporizadores 24 32 48 16 16

Velocidad de barrido** 25us/inst 15ms lOus/inst * 45us/inst

No. de instrucciones 32 16 49 * *

Base de tiempo O.Is 0.1 s 0.1 s O.ls 0.ls

Memoria** 15.8Kb 885words 1194words 8 Kb 320words

Lenguaje RLD RlD RlD *** RLD/lista

* Información no disponible

** Las unidades no se pudieron normalizar

*** Se puede programar por acción, 'stepper' o nemocódigo

Page 70: Controlador lógico programable por computadora

R.2 Evaluación de las partes

En este apartado se evalúan individualmente las partes del sistema que

se consideran claves:

1) Algoritmos de codificación y evaluación de la escalera. A pesar de que

los algoritmos obtenidos imponen ciertas restricciones en cuanto a la

estructura de los escalones se considera que son eficientes. El método de

codificación minimiza el espacio de memoria necesario para representar

la escalera, mientras que el de evaluación ejecuta un número reducido de

operaciones para evaluar a cada elemento.

2) Software de desarrollo. El programa cumple con sus funciones, es

amigable y es eficiente, pero existen algunos detalles que se podrían

pulir, como el desplegado de menús.

3) Compilador. Funciona bien y se considera que el código que genera es

eficiente, ya que para cada elemento de la escalera se ejecuta un número

reducido de instrucciones y por ello es que se tiene una buena velocidad

de barrido.

4) Tarjeta de CPU. Funciona bien y se considera que con el CL-51 se

obtiene el máximo provecho del hardware, ya que se optimizan los

recursos del 8031.

65

Page 71: Controlador lógico programable por computadora

R.2 Evaluación global

Además de la validación de cada una de las partes del sistema, se realizó

una prueba en manera conjunta de todo el sistema (Ver el Apéndice C) y

por los resultados obtenidos se puede decir que el PLC funcionó bien.

Lo único que resta, es diseñar un chasis que tenga las características para

resistir al rudo ambiente industrial y someterlo a pruebas de resistencia

térmica, humedad, vibración, durabilidad, etc.

66

Page 72: Controlador lógico programable por computadora

Conclusiones

El costo del material utilizado para el CPU es de aproximadamente

$100,000 pesos ($33.33 U.S.D.) y el del programador $50,000 pesos

($16.66 U.S.D.). En la tabla R.l se puede observar que el CL-51 es

competitivo con otros PLCs pequeños. Con base en lo anterior y en los

resultados exitosos obtenidos en las pruebas, se puede afirmar que se

cumplió plenamente con el objetivo de esta tesis.

La principal limitación del sistema es que es relativamente rígido, ya que

para introducir cualquier modificación al diagrama de escalera, se debe

remover la EPROM, reprogramarla e insertarla de nuevo. Para eliminar

este inconveniente se pueden hacer algunas modificaciones tanto al

'hardware' como al 'software' para que el PLC reciba los programas a

través del puerto serial y los almacene en una RAM. Por otra parte, si se

desea diseñar un PLC más poderoso, se debe utilizar un microcontrolador

de 16 bits, lo cual implicaría re-escribir las librerías y modificar el

compilador.

Las características del CL-51 lo hacen ideal para que los fabricantes de

máquinas lo utilizen como controlador en los equipos que fabrican. Las

ventajas del CL-51 sobre un controlador de relevadores son: menor

tamaño, menor consumo de potencia, mayor durabilidad y,

principalmente, un precio más bajo (pues el costo del CPU es igual al de

unos cuantos relevadores). Por otra parte, la ventaja de utilizar el CL-51

en vez de desarrollar una tarjeta específica es que se evitan los costos de

ingeniería, el periodo de desarrollo y el riesgo de obtener o no el

67

Page 73: Controlador lógico programable por computadora

prototipo deseado.

Con el presente desarrollo se aplicó exitosamente la tecnología de los

microcontroladores, la cual permite desarrollar aplicaciones poderosas y

de bajo costo. Otro aspecto importante, es que se obtuvo el conocimiento

de cómo funciona un PLC, y esto representa una sólida base para realizar

diseños posteriores más ambiciosos.

68

Page 74: Controlador lógico programable por computadora

Apéndice A

Manual de programación

A.1 Lenguaje de programación

Para programar el PLC se utilizan diagramas de escalera (llamados así por

su apariencia), los cuales están orientados al manejo de variables

booleanas. Un escalón consta de uno o varios elementos conectados de tal

forma que representan una condición, como se muestra en la figura A.1.

Si al substituir el valor de los elementos del escalón se tiene por lo menos

un camino de "unos" desde la línea de la izquierda hasta el último

elemento, entonces el valor resultante del escalón es 1 y si no su valor es

O.

Escalón 1

Escalón 2

Escalón 3 A B E

Figura A.1

A.1.1 Instrucciones lógicas de entrada

Las instrucciones lógicas de entrada CONTACTO NORMALMENTE ABIERTO

y CONTACTO NORMALMENTE CERRADO se utilizan para definir las

condiciones de los escalones.

69

Page 75: Controlador lógico programable por computadora

--l f- B: booleana

B

""*- B: booleana

B

Su valor es igual al valor de B

Su valor es igual al valor negado de B

Las instrucciones de TRANSICION, TRANSICION HACIA ARRIBA y

TRANSICION HACIA ABAJO sirven para detectar cambios en el valor de

alguna variable.

-Ur B: booleana Vale 1 cuando B cambia de valor

B y O cuando B conserva su valor

-,fr B: booleana Si B cambia de O a 1 vale 1

B y si no vale O

-,1r B: booleana Si B cambia de 1 a O vale 1

B y si no vale O

A.1.2 Estructura del escalón

El algoritmo de evaluación utilizado requiere que la estructura de los

escalones cumpla con las siguientes reglas.

1 ) Todas las ramas deben tener un extremo conectado a la línea de alimentación de la izquierda.

2) El extremo derecho de cada rama debe ir conectado al primer renglón.

3) No deben existir cruces entre las líneas de conexiones.

Las reglas anteriores permiten manejar estructuras como la que se

muestra en la figura A.2.

70

Page 76: Controlador lógico programable por computadora

[:T HH-­H---__.

Figura A.2

Algunos escalones que, como los de la figura A.3(a), no cumplen con las

reglas de estructura se pueden adaptar mediante el reacomodo de sus

elementos o la descomposición de alguna de sus ramas como se muestra

en la figura A.3(b).

E

(a)

H

e ~, E D

(b)

Figura A.3

71

Page 77: Controlador lógico programable por computadora

A.1.3 Instrucciones lógicas de salida

Las instrucciones lógicas de SALIDA y SALIDA NEGADA sirven para

asignar valores a las variables booleanas.

-Q- B: booleana

B

-0- B: booleana

B

Asigna el valor resultante del escalón a B

Asigna el valor negado del resultante del escalón a B

Las instrucciones de LA TCH y UNLA TCH sirven para hacer asignaciones

retentivas.

-{L)- B: booleana

B

-{ u)- B: booleana

B

Si el resultante del escalón es 1 asigna un 1 a B, si no la deja con su valor anterior

Si el resultante del escalón es 1 asigna un O a B, si no la deja con su valor anterior

Esta versión de RLD permite que se conecten varias salidas en paralelo,

para que con un solo escalón se puedan hacer varias operaciones, como se

muestra en el ejemplo de la sección A.1.8.

A.1.4 Registros

Además de las variables binarias, los diagramas de escalera manejan otro

tipo de variable llamado registro, el cual permite representar a un entero

entre O y 16383.

72

Page 78: Controlador lógico programable por computadora

La instrucción MOV se usa para asignar un valor a un registro.

Rl: registro o valor

R2: registro

Si el resultante del escalón es 1 entonces R2= R 1

La instrucción de RST sirve para igualar a cero el valor de un registro.

11--RS-R~-1 Rl: registro

A.1.5 Operaciones aritméticas

Si el resultan te del escalón es 1 entonces Rl= O

Para sumar el valor de dos registros o un registro con una constante se

utiliza la instrucción ADD.

- ADD - R 1: registro Si el resultante del escalón es 1

Rl o valor entonces R3= Rl+R2 R2: registro

R2 R3: registro

R3

SUB sirve para restar el valor de un registro a otro o el valor de un

registro a una constante. Si se desea restar a una constante el valor del

registro, se debe hacer la operación al revés y luego restar el resultado a

cero.

- SUB ~

Rl

R2

R3

RI:

R2: R3:

registro o valor registro registro

73

Si el resultante del escalón es 1 entonces R3= R l-R2

Page 79: Controlador lógico programable por computadora

A.1.6 Temporizadores

Los temporizadores se usan para medir o co_ntrolar intervalos de tiempo.

Cuando un temporizador está activo disminuye su valor en 1 cada décima

de segundo y se detiene al llegar al cero. Si el valor del temporizador es O

se utiliza un 1 para evaluar la parte restante del escalón, ignorando los

elementos que están a su izquierda.

1 1 TCN Rl: registro Si el resultante del escalón es

Rl Rl se activa como temporizador. Tiene un valor de 1 si el registro vale o.

1 TCF 1 Rl: registro Si el resultante del escalón es o Rl Rl se activa como temporizador.

Tiene un valor de 1 si el registro vale O.

A.1.7 Contadores

Estas instrucciones se utilizan para contar las ocurrencias de un evento.

Su manejo es similar al de los temporizadores, pero con la diferencia de

que no se detienen cuando llegan al cero.

i CDN 1 Rl: registro Si el resultante del escalón

Rl tiene una transición de O a 1 se disminuye en 1 el valor de RI. Tiene un valor de 1 si el registro vale O.

i CUP 1 Rl: registro Si el resultante del escalón

Rl tiene una transición de O a 1 se aumenta en 1 el valor de RI. Tiene un valor de 1 si el registro vale O.

74

Page 80: Controlador lógico programable por computadora

Es importante que no se usen CUP y CON con una misma variable porque

entonces el PLC no podrá detectar las transiciones y llevará una cuenta

incorrecta.

A.1.8 Cómo cargar un temporizador o un contador

Para cargar un temporizador o un contador se utiliza la instrucción MOV

como se muestra en el ejemplo de la figura A.4.

IJI' ,L! A'I

LOAD LOAD

- MOV -600

TIMER

- MOV -100

CDNfADOR

FiguraA.4

A.1.9 Instrucciones de comparación

Estas instrucciones permiten comparar el valor de un registro con otro

registro o con una constante.

~ t=it=j

R l: registro o valor

R2: registro

75

Vale l si Rl=R2

Page 81: Controlador lógico programable por computadora

A.1.10 Subrutinas

R 1: registro o valor

R2: registro

R 1: registro o valor

R2: registro

Vale 1 si Rl<R2

Vale 1 si Rl>R2

Las instrucciones de subrutinas permiten estructurar los diagramas de

escalera y dividirlos en partes más pequeñas.

1 CALL 1 SI: subrutina Si el resultante del escalón es 1 salta a la subrutina

Sl

1 SBR 1 SI: subrutina Indica el inicio de la subrutina

Sl

1 REr ~ Regresa al escalón que esta después de aquel en el que se llamó a la subrutina

A.1.11 Secuenciación utilizando subrutinas

En la figura A.5 se muestra una forma de hacer secuenciación llamando a

subrutinas.

76

Page 82: Controlador lógico programable por computadora

- IQ H CALL 1-1 1 X 1

FSTADO

- IQ H CALL 1-2 1 y 1

FSTADO

- IQ H CALL 1-3 1 z 1

FSTADO

1 END 1--1

1 SBR 1-1

1 X 1

~ L~ 01

, u~ 02

\ ,L, 03

'RET ~

Figura A.S

A.1.12 MCR

La instrucción MCR sirve para proteger el sistema cuando se presenta una

situación de emergencia.

77

Page 83: Controlador lógico programable por computadora

/ 1 MCR ~ Si el valor del escalón es 1, en los

escalones siguientes las salidas de relevador se hacen O, las de relevador negado 1 y las otras instrucciones finales no se ejecutan

Cancela el efecto del MCR

A.1.13 Fin

La instrucción END se utiliza para indicar el fin de la escalera.

Indica el fin de la escalera

A.1.14 Reglas de sintaxis de la escalera

La escalera debe cumplir con las siguientes reglas de sintaxis:

1) Debe de llevar un END. 2) No se pueden manejar subrutinas anidadas. 3) Un bloque de MCR debe empezar y terminar en la misma

subrutina o en el programa principal.

A.2 Instructivo del software de desarrollo

Para capturar los diagramas de escalera se utiliza un programa que corre

en IBM-PS, el cual se llama desde el sistema operativo con el nombre de

CL_5 l. En el renglón superior aparece el menú principal con los diferentes

módulos del programa:

Archivos Editor Simulación Opciones Programación

78

Page 84: Controlador lógico programable por computadora

A.2.1 Módulo del editor

Este módulo se utiliza para la captura y edición del diagrama de escalera.

Permite al usuario moverse por la escalera, editar, insertar y borrar

escalones. Así mismo, cuenta con funciones de búsqueda y edición de

bloques para facilitar el trabajo al usuario.

Una numeración es utilizada para identificar a los escalones y poder hacer

referencia a ellos en caso de detectar errores. El manejo de esta

numeración es llevado automáticamente por el editor y el usuario no

debe preocuparse por ella.

Los comandos que se pueden utilizar en escalón son los siguientes:

Flecha arriba Flecha abajo Flecha derecha PGDN PGUP ENI'ER INS

DFI... ESC "KB "KK "KC

"KV

Mueve el cursor al escalón anterior Mueve el cursor al escalón siguiente Entra al modo de edición de escalones Mueve la ventana y el cursor hacia abajo Mueve la ventana y el cursor hacia arriba Entra al modo de edición de escalones Insena un escalón antés de aquel al que apunta el cursor Borra el escalón al que apunta el cursor Regresa al menú principal Marca el inicio del bloque Marca el final del bloque Copia el contenido del bloque antes del escalón al que apunta el cursor Mueve el bloque antés del escalón al que apunta el cursor Borra el bloque Apunta el cursor al primer escalón del diagrama Apunta el cursor al último escalón del diagrama Apunta el cursor al escalón cuyo número se le indique

79

Page 85: Controlador lógico programable por computadora

A.2.2 Editor de escalones

Este modo es utilizado por el usuario para colocar los elementos que

componen al escalón e indicar sus conexiones. El usuario se puede mover

por toda la pantalla y utilizando las siguientes teclas puede colocar y

quitar los elementos.

INS

DEL ENTER

Presenta un submenú para colocar un elemento en la posición del cursor Desplaza los elementos a la derecha del cursor una posición para poder insenar un nuevo elemento Borra el elemento en la posición del cursor Concluye la colocación de elementos y pide las conexiones de las ramas en paralelo Sale del editor de escalones abonando las modificaciones que se habían hecho al escalón

Para hacer más eficiente la captura de los diagramas se programaron las

teclas de funciones para que cada una llame a uno de los elementos y así

no tener que usar los menús que aparecen con "E. A continuación se

presenta una tabla con el elemento asignado a cada tecla.

Tabla A.l Asignación de teclas de funciones

Fl - NO Alt Fl - TON Ctrl Fl - CALL F2- NC Alt F2 - TOF Ctrl F2 - RET F3 - TRUP Alt F3 - CUP Ctrl F3 - SBR F4 - TRDN Alt F4 -CDN Ctrl F4 - END F5 - OUT Alt F5 - EQ Ctrl F5 - MCR F7 - NOUT Alt F6 - GT Ctrl F6 - MENO F6 - LATCH Alt F7 - LT F8 - UNLATCH Alt F8 - MOV Ctrl F8 - RST F9 - TRANS Alt F9 - ADD

Alt FIO- SUB

80

Page 86: Controlador lógico programable por computadora

Durante la definición de un elemento el editor pide uno por uno los

argumentos que sean necesarios. Cuando se terminan de colocar los

elementos, el editor revisa que haya por lo menos un elemento final y

que se encuentre o encuentren en la última columna. En caso de encontrar

algún error se avisa al usuario para que lo corrija.

Después de haber colocado los elementos, se indican las conexiones de las

ramas en paralelo, una por una, utilizando las flechas de izquierda y

derecha para mover la línea que indica la conexión.

A.2.3 Módulo de simulación

La función de este módulo es verificar la ejecución del programa en la

microcomputadora antes de grabarlo en la EPROM.

Al iniciar la simulación se revisa la sintaxis de la escalera y si se detecta

alguno de los errores de la tabla A.2 el usuario es avisado de la línea en la

que se presentó el problema para que regrese al editor y lo corrija.

Tabla A.2 Errores de Sintaxis

Error 1: Error 2: Error 3: Error 4: Error 5: Error 6:

Se esperaba END Se esperaba RET Llamada a SBR no válida Se esperaba MCEND MCR no válido MCEND no válido

La pantalla de simulación se encuentra dividida en cinco columnas, las

tres de la derecha son para variables binarias y las otras dos para

81

Page 87: Controlador lógico programable por computadora

variables del tipo registro. El usuario puede desplazar el cursor por la

pantalla utilizando las flechas y para poner el nombre de alguna variable

debe utilizar <ENTER>. El programa está validado para aceptar solamente

las variables que aparezcan en el diagrama o que se hayan asignado a los

puertos de 1/0.

La información que aparece en la pantalla es el nombre de la variable, su

valor, y en el caso de registros, se indica si se trata de un timer o contador

y su estado. El usuario unicamente puede modificar los valores de las

variables binarias, y para ello, debe colocarse en la posición de la variable

y teclear 1 ó O. Esta operación sólo se debe hacer con las variables de

entrada, ya que es con las únicas que tiene sentido hacerlo.

Para hacer un barrido de la escalera se debe teclear "S. Es importante

destacar que debido a la forma en que se maneja la lectura de los puertos

de 1/0, los valores de entrada no son registrados en el barrido en el que

se realizaron sino hasta el siguiente.

La actualización de los registros de temporizador se realiza cada cuatro

barridos. Aunque esto no corresponda necesariamente con el tiempo real

del barrido, es conveniente para la simulación, ya que así el usuario no

tiene que esperar una gran cantidad de barridos para poder observar que

es lo que pasa con los temporizadores.

82

Page 88: Controlador lógico programable por computadora

A.2.4 Módulo de opciones

Este módulo se utiliza para indicar al programa de que tipo son las

tarjetas de 1/0 conectadas a los 8 puertos del PLC, así como las variables

asignadas a cada una de ellas. Tambíen en este módulo se incluyen las

opciones para guardar· y cargar configuraciones, ya que estas, podrían

variar entre un PLC y otro.

El modúlo tiene las siguientes opciones:

Asigna Configura Carga configuración Guarda configuración

Entra al modo de asignación Entra al modo de configuración Carga una configuración del disco Guarda la configuración actual en disco

En el modo de asignación se indica la correspondencia entre las variables

del diagrama de escalera y los puertos físicos del PLC. En la pantalla

aparecen los ocho puertos que maneja el CL-51 y el cursor se puede

mover por ellos utilizando las flechas. Para asignar variables a un puerto

se presiona <ENTER> y aparece un nuevo cursor dentro de ese puerto. El

nuevo cursor se puede desplazar hacia arriba o hacia abajo y para asignar

una variable a un punto de 1/0 determinado del puerto se debe presionar

<ENTER> y luego indicar el nombre de la variable. Con <ESC> se regresa al

cursor que se mueve entre los puertos y para salir al menú principal se

debe presionar otra vez <ES C > , que en este caso no aborta las

modificaciones realizadas.

83

Page 89: Controlador lógico programable por computadora

El modo de configuración se utiliza para indicar al programa a que

puertos y de que tipo son las tarjetas de 1/0 conectadas al PLC. Para

identificar cada tarjeta se utiliza un código de tres dígitos, de los cuales el

primero es el número del puerto y los otro dos se seleccionan de acuerdo

a la tabla A.3.

Tabla A.3 Tipos de tarjetas de 1/0

O O Entrada digital 1 O Salida digital O 1 Entrada analógica 1 1 Salida analógica

Al entrar a este modo aparece un cursor que puede ser desplazado por el

usuario utilizando las flechas de arriba y abajo. Para modificar o ingresar

el código de un puerto se usa <ENTER> y para regresar al menú principal

se utiliza <ESC>.

A.2.5 Módulo de programación

Este módulo tiene por objeto generar el archivo de código ejecutable * .OBJ,

el cual se utiliza para programar la EPROM.

Para ejecutar este módulo basta con llamar a la opción programar desde

el menú pricipal.

A.2.6 Módulo de Archivos

Se utiliza para cargar, guardar, crear un nuevo archivo o salir del

programa.

84

Page 90: Controlador lógico programable por computadora

Un diagrama de escalera requiere de la generación de varios archivos

para almacenar la codificación de la escalera, las variables en la pantalla

de simulación y las variables asignadas a los puertos de 1/0. Las

terminaciones de los nombres de los archivos son asignados

automáticamente por el programa.

El módulo contiene un submenú con las siguientes opciones:

Carga Guarda

Nuevo Salir

Carga a la memoria un archivo del disco Guarda en el disco el archivo que se tiene en memoria Borra el diagrama contenido en la Sale del programa y regresa operativo

85

memoria al sistema

Page 91: Controlador lógico programable por computadora

Apéndice B

Material y equipo utilizado

El equipo utilizado para la realización del presente trabajo de tesis se

puede clasificar en 4 grupos:

8.1 Equipo de cómputo y software:

2 Microcomputadoras IBM PS/2

Turbo Pascal

Ensamblador

Simulador

modelo 30 286

versión 5.0

A51

Avsim51

8.2 Equipo electrónico de medición y programador

Oscilospio

Multímetro digital

Programador universal

1 Probador lógico

1 Fuente de poder

Lámpara de luz ultravioleta

2 Tablillas de prueba

86

Tektronix 2235

DL-100

JE680

Page 92: Controlador lógico programable por computadora

B.3 Equipo de fabricación de circuitos impresos

B.4

1 Cámara fotomecánica

1 Fresadora de CNC

Película y químicos de revelado

Photoresist

Cloruro férrrico

Proceso de estañado en frío

Baquelitas

Componentes

.2 Microcontrolador de 8 bits

3 EPROM de 16 Kbytes

5 Latches

Regulador

Cristal

Cristal

1 Capacitor

2 Capacitores de

3 Capacitores de

4 Bases de circuitos impresos

87

Kromatic

Maho-400

Ultratech

8031

27128

74LS373

7805

12 MHz

6.144 MHz

2200 uF

50 pF

100 nF

Page 93: Controlador lógico programable por computadora

Apéndice C

Validación del sistema

Para la validación del sistema completo se realizó una prueba con el

sistema neumático que consta de 3 pistones, 3 electroválvulas y 6

interruptores de posición, como se muestra en el diagrama de bloques de

la figura C.l.

Figura C.1

La prueba consistió en hacer que el sistema ejecutara una secuencia

definida de movimientos. Para ello se implementó una tarjeta de 1/0,

cuyas etapas de (a) entrada y (b) salida se muestran en la figura C.2.

+SV

__ ¡ ~PI

Interruptor

e---¡

+18V

+SV

Figura C.2

88

Page 94: Controlador lógico programable por computadora

Utilizando el software de desarrollo, se capturó el diagrama de escalera,

se verificó con el simulador y se generó el código. Con el programador y

su software se grabó una EPROM, la cual se instaló en el CPU. Se conectó la

tarjeta de 1/0 entre el sistema neumático y el CPU. La prueba resultó un

éxito

89

Page 95: Controlador lógico programable por computadora

Apéndice D

Funcionamiento del 'bus' de 1/0

En el modo de 1/0 multiplexado, el puerto 1 del microcontrolador se

utiliza como un 'bus' de 1/0 y el puerto 3 como selector de tarjetas, como

se muestra en la figura D.l. Con este modo es posible manejar hasta 8

tarjetas, cada una de ellas con 8 señales, permitiendo un máximo de 64

señales de 1/0. Una ventaja importante de este modo de manejo de los

puertos es que el CL-51 se puede configurar para que maneje cualquier

combinación de tarjetas de entrada y de salida.

1/0 Bus u--,-~~-..~~~~..-~~~-..~~~

Figura D.1

D.1 Escritura a una tarjeta

El procedimiento para escribir es el siguiente (figura D.2):

1 ) Se pone el dato en el 'bus' de 1/0 2) Se enciende un bit del selector para que el 'latch' deje

pasar el dato del 'bus' a la salida. 3) Se apaga el bit para que el 'latch' retenga el dato.

90

Page 96: Controlador lógico programable por computadora

1/0 bus

CE

CE

Salida

Figura D.2

D.2 Lectura de una tarjeta

Para leer se sigue el siguiente procedimiento (Figura D.3):

1) Se enciende un bit del selector para que el 'latch' retenga el valor que está en la entrada y lo deje pasar al 'bus'.

2) Se hace la lectura del 'bus'. 3) Se apaga el bit para poner la salida del 'latch' en tercer

estado.

Entrada=

CE

CE

Figura D.3

91

Page 97: Controlador lógico programable por computadora

Apéndice E

Programador de EPROMs

Durante la mayor parte del desarrollo de esta tesis se utilizó un

programador universal, el cual se puede utilizar para EPROMs, GALs,

microcontroladores, etc. 42 . Sin embargo, ésta no es una alternativa

conveniente desde el punto de vista económico, ya que el costo del

programador universal es más alto que el del propio CL-51. Por lo tanto

se decidió implementar un programador, también de bajo costo, especial

para memorias 27128.

El programador utiliza unicamente tres 'latches', los cuales reciben del

puerto paralelo de la PS un byte y tres seilales de control. En un 'latch' se

coloca el dato, en otro la parte baja de la dirección y en el último la parte

alta y las señales de PGRM y OE, como se muestra en la figura E. l.

Puerto Paralelo

Figura E.1

92

Selector

Page 98: Controlador lógico programable por computadora

Además del hardware, también fue necesario hacer un programa en

Pascal. Este programa lee un archivo que contiene al programa en formato

Intel Hex y se encarga de enviar por el puerto paralelo todas las señales

necesarias para programar la EPROM.

93

Page 99: Controlador lógico programable por computadora

Apéndice F

E18031

En la tabla F. l se presenta un listado con las características principales de

la familia del 803143.

Tabla F.l Características de la familia MCS-51

El 8051 es el miembro original de la familia MCS® -5 l, y es el núcleo de todos los dispositivos MCS-51. Las características del núcleo 8051 son:

CPU de 8 bits optimizado para las aplicaciones de control. Capacidades extensivas de procesamiento Booleano. 64K de espacio de direcciones de Memoria de Programa. 64K de espacio de direcciones de Memoria de Datos. 4K bytes de memoria de programa dentro del chip. 128 de RAM de Datos dentro del chip. 32 lineas de 1/0 bidireccionables e individualmente accesables. Dos timers/contadores de 16 bits. UART full duplex. Estructura de interrupciones de 6-fuentes/5-vectores con dos niveles de prioridad. Oscilador de reloj dentro del chip.

El diagrama de bloques funcionales, figura F. l, muestra los elementos que

componen al 803144.

En la figura F.2 se muestra la función de cada una de las patas del 8031 45 .

94

Page 100: Controlador lógico programable por computadora

EXTERNAL INTERRUPTS

CPU

ose

4K ROM

BUS CONTROL

PO

128 BYTES RAM

P2 PI

ADRESS/DA TA

Figura F.1

P3

SERIAL PORT

TXD RXD

}COUNTE INPUTS

Page 101: Controlador lógico programable por computadora

PI.O Vcc Pl.l PO.O ADO Pl.2 PO.! AD! Pl.3 P0.2 AD2 Pl.4 P0.3 AD3 Pl.S P0.4 AD4 Pl.6 P0.5 AD5 Pl.7 P0.6 AD6 RSf P0.7 AD7

RXD P3.0 EA/V.u...._ TXD P3.1 ALE/PROG

INTO P3.2 PSEN iÑTi P3.3 P2.7 A15

TO P3.4 P2.6 Al4 TI P3.5 P2.5 A13

WR P3.6 P2.4 Al2 Rñ P3.7 P2.3 Ali

XTAL2 P2.2 AIO XTALI P2.l A9

Vss P2.0 A8

Pin (DIP)

Figura F.2

En la figura F.3 se muestran los nemónicos del conjunto de instrucciones

de la familia MCS-5146 •

Aritméticas Transterencia Lógicas Booleanas de datos

ADD ANL ANL ADOC MOV ORL ORL SUBB PUSH XRL MOV INC POP CLR CLR rEC XCH CPL SEIB MUL XOID RL CPL DIV RLC JC DA Saltos RR JNC

incondicionales RRC JB Saltos SWAP JNB condicionales JMP

CALL RAM Tablas de JZ RET externa búsqueda JNZ RETI DJNZ NOP M:>VX MOVC CINE

Figura F.3

96

Page 102: Controlador lógico programable por computadora

Apéndice G

Fabricación de circuitos impresos

utilizando tecnologías de CAD/CAM

Para el desarrollo de la tesis se requirió de algunas tarjetas electrónicas,

las cuales fueron hechas en las instalaciones y con el equipo de los

laboratorios de la División de Graduados e Investigación (DGI) del

ITESM-CEM.

G.1 Diseño Asistido por Computadora

Para el diseño de los circuitos impresos se utilizó un paquete para PS

llamado Tango. Aunque la versión utilizada no ofrece las facilidades de

colocación de componentes y ruteo automáticos, permite:

- Obtener impresiones en papel del ruteo, las cuales se utilizan para sacar los negativos.

- Generar archivos de redes * .NET, que se utilizan para verificar las conexiones.

- Generar archivos de CNC • .TXT, los cuales se utilizan para perforar las tarjetas.

G.2 Manufactura Asistida por Computadora

A pesar de que el Tango permite generar un archivo de control numérico,

éste tiene un formato diferente al que utiliza la fresadora Maho modelo

MH-400 del Laboratorio de Manufactura Flexible de la DGI. Por ello, como

un proyecto independiente a la tesis, se escribió un programa, que a

97

Page 103: Controlador lógico programable por computadora

partir del archivo obtenido con el Tango, genera un nuevo archivo de tipo

texto con el programa de CNC en el formato de la Maho.

Dicho programa lee la coordenada de cada perforación, convierte las

unidades, cambia los ejes y llama a un ciclo de barrenado G-81. Las

conversiones son necesarias porque el Tango trabaja el plano XY y maneja

las distancias en milésimas de pulgada, mientras que en la Maho se

trabaja en el plano XZ y en micras. Además de las instrucciones para el

taladrado, el programa agrega líneas para definir la ventana de la

simulación, cambios de herramienta, velocidad de avance y velocidad de

rotación del husillo principal. A continuación se muestra un fragmento de

un archivo generado por el programa.

N555005 Nl 018 N2 054 N3 098 X-2 Y-5 Z-5 1204 J7 K304 N4 099 XO Y-1.7 ZO 1200 Jl.7 K300 N5 S3150 TOl N6 095 F0.12 N7 GOXOY3ZO NS 081 Yl.5 Z-4.5 M3 N9 079 X54.610 YO Z27.940 NlO 079 Z30.480 Nl 1 079 Z33.020

Las dos ventajas del taladrado de circuitos impresos por control numérico

son: mayor rapidez en el desarrollo de prototipos y mejor calidad de las

tarjetas (tanto dimensional como en el acabado de la superficie).

Se hace mención a este proyecto porque en cierta forma se puede

considerar como un antecedente de la presente tesis, ya que su función

98

Page 104: Controlador lógico programable por computadora

también es generar código ejecutable a partir de una codificación.

G.3 Procesos químico y fotográfico

La parte restante del proceso para obtener los prototipos se realizó en el

Laboratorio de Electrónica Avanzada de DGI y consta de los siguientes

pasos.

1) Utilizando un 'plotter' se imprime el diseño en una escala de 1.3: 1 sobre una hoja de papel albanene.

2) Con la cámara fotomecánica se saca un negativo del dibujo reduciéndolo en un 77%.

3) Con el negativo se graban las pistas en una tarjeta previamente perforada y sensibilizada con Photoresist.

4) Para remover el exceso de cobre, la tarjeta se ataca químicamente con cloruro férrico.

5) La tarjeta se somete a un proceso de estallado en frío. 6) Se ensamblan y se sueldan los componentes. 7) Se veririfica que la ta jeta funcione correctamente.

99

Page 105: Controlador lógico programable por computadora

Bibliografía

1 Dorf, Richard C. lnternational encyclopedia of robotics, John Wiley,

USA, 1988, p. 105 2 cf. (1), p. 1187 3 NEMA 4 cf. (1) p. 1190 5 Gayman, David J. "An old favorite gets new standards",

Manufacturing Engineering, Vol. 100, No. 1, 1988 .. p. 57 6 Sugiyama, Hiro et al. "A sequential function chart (SFC)

language for batch control", ISA Transactions, Vol. 29, No. 2, 1990, p. 63

7 cf. (10), p. 57 8 Groover, Mikell P. et al. Automation, production systems, and

computer integrated manufaturing, Prentice Hall, Englewood Cliffs, NJ, USA, 1987, p. 666-667

9 Johnson, Cunis D. Process control instrumentation technology, Jo h n

Wiley, Singapore, 1988, p. 327-328 1 O Schildt, Herbert. Turbo C: the complete reference, Berkeley,

CA, USA, 1988, p. 770-778 1 1 Krutz, Ronald L. Interfacing techniques in digital design: with

emphasis on microprocessors, John Wiley, Singapore, 1988, p. 156-158

12 nose 13 Allen-Bradley. Bulletin 1745 User's Manual SLC 100

Programmable Controller, 1981, p. 7-1 14 OMRON Electronics Inc. Sysmac C20klC28K/C40K

programmable controllers, p. 11 1 5 FESTO. Programa de fabricación, p. 70 16? 17? 1 8 Uffenbeck, John. The 8086/8088 family: design, programming,

and interfacing, Prentice-Hall, Englewood Cliffs, NJ, USA, 1987, p. 21-22

1 9 ibid, p. 107 2 O Intel. 8-bit embedded controller handbook, Santa Clara, CA,

USA, 1989, p. 5-2 2 1 Texas instruments. TMS 370 family data manual, USA, 1990,

p. 2-3

100

Page 106: Controlador lógico programable por computadora

22 Motorola. Single-chip microcomputer data, Austin, Texas, USA, • 1984, p. 1-11

2 3 National Semiconductor. Semiconductor master seletion guide 1990, Santa Clara, California, USA, 1990, p. 9-8

2 4 Belove, Charles. Handbook o/ modern electronics and electrical engineering, John Wiley, Hauppauge, NY, USA, 1986, p. 2231

2 5 Gilmour, Peter S. "How to select tools for microcontroller software", IEEE Spectrum, Vol. 28, No. 2, p. 37, 1991

2 6 cf. (38), p. 5-6 2 7 cf. (38), p. 5-2 2 8 cf. (10), p. SS 2 9 cf. (24), p. 3-13 3 O OMRON Electronics Inc. Sysmac-C20 programmable controller,

p. 13-15 31 cf. (1), p. 1195 3 2 Zapolin, Richard E. "RISC programmable controllers can bring

programability down to low-end remote si tes", J S A Transactions, Vol. 29, No. 2, 1990, p. 84

3 3 Keskar, P. Y. "Structured approach in PLC programming for water/wastewater applications", ISA Transactions, Vol. 29, No. 2, 1990, p. 53-56

3 4 Kern, Allan G. "Batch automation in a PLC: software design is the key", ISA Transactions, Vol. 29, No. 2, 1990, p.35-42

3 S cf. (51), p. 85 3 6 cf. (38), p. 5-4 3 7 cf. (38), p. 5-11 3 8 cf. (38), p. 5-13 3 9 HiTech Equipment Corporation. 8031 DrylCE user's manual,

San Diego, CA, USA, 1989, Apéndice D. 4 O Swan, Tom. Mastering Turbo Pascal 5.5, Hyden books, third ,

edition, USA, 1990, p. 413 41 Wood, Steve. Using Turbo Pascal 5, McGrawHill, Berkeley, CA,

USA, 1989, p.139 4 2 cf. (61), p. 19-20 43 INTEL 44 INTEL 45 INTEL 46 INTEL

101