Professional Documents
Culture Documents
que
compatible.
Dada la velocidad con que se realiza cada ciclo, del orden de 5 a 10 ms/1 K
instrucciones, se puede decir que las salidas se ejecutan en funcin de las variables de
entrada prcticamente en tiempo real.
Cuando el ciclo de barrido de la memoria de usuario se realiza lnea tras lnea sin
solucin de continuidad, se dice que la programacin es lineal, y la CPU consulta las
instrucciones contenidas en la memoria secuencialmente, una a continuacin de la otra,
sin alterar este orden, tal y como se aprecia en la Figura 3.5
Su funcionamiento es el siguiente:
Si al llegar en el proceso de ejecucin del programa a la instruccin U, tal y
como queda descrito en la Figura 3.6, se cumple la condicin en ella indicada, se salta a
V continuando el barrido en V+1 hasta n. Si por el contrario al llegar a U no se cumple
la condicin, el programa se ejecuta linealmente continuando en U+1.
Esta posibilidad que poseen muchos Autmatas permite reducir el tiempo de
ejecucin del ciclo y es apreciable en aquellos casos en que las instrucciones contenidas
en el salto solo son necesarias cuando se dan ciertas condiciones impuestas por el
programa.
Figura 3.6 Salto condicional en la ejecucin cclica lineal del programa de usuario en un
Autmata Programable
secuencias de instrucciones idnticas que se repiten y que habr que reescribir tantas
veces como estas se repitan en dicho programa principal. En estos casos, es muy til
escribir una sola vez esta secuencia o subrutina. E ir a ella cuando se requiera. Los
autmatas de la gama baja no suelen incorporar esta posibilidad. En la Figura 3.7 se
puede observar grficamente este tipo de salto. La posibilidad de distintos tipos de
subrutinas y de distintos niveles de las mismas tambin quedan reflejados en la citada
figura.
Parece que con una descripcin como la dada, que en principio resultaba
suficientemente clara, el diseador necesita de una serie de preguntas adicionales antes
de empezar a trabajar en el control.
La conclusin que se obtiene es que la descripcin literal o se hace exhaustiva,
con lo cual es de difcil comprensin en su conjunto, o no es totalmente unvoca con el
proceso que se quiere controlar.
Afortunadamente existen otras formas de representacin, de sintaxis ms definida,
que permiten descripciones ms concisas y claras de la tarea de control.
directamente a partir de las especificaciones del cliente, con las limitaciones discutidas
en el apartado anterior, o bien derivarse de ellas aplicando mtodos de sntesis basados
en el algebra de Boole, ente matemtico que regula las relaciones entre seales binarias
todo-nada.
Esta representacin puede ser tan compleja como sea necesario, siempre y cuando se
respeten las reglas del algebra. Por ejemplo, la alarma S debe activarse cuando el
contacto C este cerrado, y los contactos A y B en estados opuestos, segn convenio:
-Abierto: 0
-Cerrado: 1
La funcin booleana ser:
S= (A B+AB) C
Aunque la representacin booleana est restringida a las variables que adoptan
nicamente dos estado (por convenio, 0 y 1), puede mejorarse definiendo otras
operaciones (aritmticas, comparacin) que permitan las relaciones entre variables
digitales de varios bits: el modelo dejara de ser booleano, aunque continua siendo
algebraico.
Pese a que cualquier sistema, combinacional o secuencial, puede ser
representado por un modelo algebraico de funciones, la particular complejidad que
presenta en ellos el anlisis y sntesis de sistemas secuenciales limita en la practica el
empleo de ecuaciones a la representacin de combinaciones entre variables, de resultado
independiente al instante de tiempo considerado (por ejemplo, condiciones de alarma,
operaciones aritmticas con variables analgicas, etc.).
3.6.1 ORDINOGRAMAS
Los tres modelos descritos, algebraico, de rels y de puertas lgicas, permiten,
con mayor o menor claridad, tanto la representacin de sistemas combinacionales como
secuenciales, como lo son, de hecho, la mayor parte de los sistemas industriales
(secuencias de actividades o combinaciones de operaciones consecutivas en el tiempo).
Esta estandarizacin del modelo, una de sus principales ventajas, facilita el flujo
de informacin entre todos los niveles de la empresa, desde la oficina tcnica hasta los
equipos de mantenimiento.
ALGEBRAICOS
Lenguajes bolanos.
Lista de instrucciones.
Lenguajes de alto nivel.
GRFICOS
Diagrama de contactos.
Diagrama de funciones/bloques.
Interprete GRAFCET.
Figura 3. 16
Operando (s)
Campo de operacin
Tipo de operacin:
Campo de operando
Entrada numero 5,
Instrucciones aritmticas
-ADD sumar.
-SBB restar.
-MUL multiplicar.
-DIV dividir.
Instrucciones de manipulacin de datos:
-CMP comparar variables digitales.
-SFR rotaciones de bits (variables binarias).
-SHIFT rotaciones de palabras (variables digitales).
-MOV transferencias de datos.
-BCD/BIN conversiones de cdigos numricos, etc.
Instrucciones de gestin de programa:
-END fin de programa.
-JMP salto de bloque de programa.
-MCS habilitacin de bloque de programa.
-JMPSUB salto a subrutina, etc.
Las instrucciones aritmticas y de manipulacin de datos admiten mltiples
variaciones:
-Aritmtica binaria o BCD.
-Instrucciones lgicas sobre palabras (8 o 16 bits).
-Transferencias entre bloques de palabras.
-Codificacin a salida en 7 segmentos.
-Instrucciones de direccionamiento indirecto.
-Instrucciones trigonomtricas, etc.
DESCRIPCION
Lee estado de variable binaria, E/S o interna
Funcin lgica AND
Funcin lgica OR
Envia resultado sentencia a variable binaria
Funcin rel maestro de control
Detecta flanco de subida de una seal
Define temporizador con retardo a conexin
Define contador incremental de sucesos
Define registro desplazamiento sobre n bits
Indica final de programa
Fija una variable a estado <<1>>
Fija una variable a estado<<0>>
Inicio de salto de programa
Final de salto de programa
Niega o complementa una variable lgica
Conecta dos bloques de programa en paralelo
Conecta dos bloques de programa en serie.
Basicas:
-Operandos predefinidos
-Aritmtica BCD
Avanzadas:
-Operandos cualesquiera
Aritmtica de 16 bits
-Direccionamiento indirecto.
Ejemplos de instrucciones de computacin bsica sobre este automata son:
-JCVTH Conversin BCD a binario.
-JCVTD Conversin binario a BCD
-JADC Suma del registro DR0 (acumulador) con un operando
-JSBB Substraccin al registro DR0
-JCMP Comparacin del registro DR0 con un operando
-JOLD Transferencia de operando a DR0
-JOST Transferencia de DR0 a un operando
-JINC Incrementar operando, etc.
Y en computacin avanzada:
-TADD3 Suma de cuatro dgitos entre operandos cualesquiera
-WCMP Comparacin de un operando con un intervalo
-PDCMD Salida de datos ASCII a impresora
-W121M Trasferencia del operando (dato), cuya direccin (origen) esta contenida en un
registro al operando cuya direccin (destino) esta contenida en otro registro, etc.
El lenguaje de contactos expresa las relaciones ente seales binarias como una
sucesin de contactos en serie y en paralelo, segn las equivalencias que se muestran en
la tabla 3.3
Tabla 3.3 Equivalencias instrucciones-contactos
Esto significa que cualquier funcin lgica puede ser transcrita directa e
inmediatamente a diagrama de contactos y viceversa, transcripciones de utilidad cuando
se trata de visualizar grficamente un programa escrito en lenguaje booleano.
Sin embargo, el diagrama de contactos, de origen norteamericano, no naci
como una posible herramienta de visualizacin de programas ya escritos en lista de
instrucciones, sino como transcripcin directa de los esquemas elctricos de rels
(circuitos de mando) de uso comn en la automatizacin previa a la aparicin de los
sistemas programables.
Por esta razn, los diagramas de contactos incluyen desde sus orgenes bloques
funcionales que ya aparecan como elementos propios en aquellos esquemas, los
temporizadores y los contadores.
Utilizando estos bloques, sobre los cuales pueden definirse la base de tiempos y
el tiempo final en el caso de temporizadores y el mdulo de contaje y condiciones de
paro y reset en el caso de contadores, el lenguaje de contactos permite programar
directamente cualquier esquema elctrico de rels.
Sin embargo, y al igual que ocurra en los lenguajes booleanos, tambin en este
se desarrollan bloques funcionales complejos que permiten la manipulacin de datos y
las operaciones con variables digitales de varios bits.
La presencia de estos bloques, de ejecucin dependiente de una o ms
condiciones binarias, multiplica la potencia de programacin sin dejar de mantener las
ventajas de la representacin grfica del programa. As, pueden programarse situaciones
de automatizacin compleja que involucren variables digitales, registros, transferencias,
comparaciones, seales analgicas etc.
Por supuesto, y al igual que ocurre con las extensiones al lenguaje booleano, no
todos los autmatas, aun del mismo fabricante, pueden manejar todas las posibilidades
de programacin con contactos: solo las gama ms altas acceden a la totalidad de
extensiones del lenguaje, quedando las restantes limitadas al empleo de partes ms o
menos significativas de l.
Figura 3.18
Marcha
LD
KLM
AND
Paro
OR-LD
OUT
KLM
LD
KLM
AND-NOT
KMT
AMD-NOT
TIM2
OUT
KME
LD
KLM
AND-NOT
KME
AND
TIM2
TIM
1
#0005
LD
TIM1
OUT
KMT
LD
KLM
TIM
2
#0100
LD
KLM
CMP (20)
_
003
#0266
LD
KLM
AND
25507
OUT
4000
LD
4000
MSG (46)
_
DM00
END.
Ntese como en el listado anterior falta la asignacin de direcciones a las variables del
programa.
Figura 3.20
a partir de los preexistentes, creando nuevas funciones (macrobloques) que pueden ser
incorporadas al lenguaje.
La figura 3.23 muestra un ejemplo de programa escrito con estos lenguajes
hbridos, desarrollando con un software especfico de programacin de autmatas que
corre sobre ordenador personal.
En ellos, las instrucciones son lneas de texto que utilizan palabras o smbolos
reservados (SET, AND, FOR, etc.), las operaciones se definen por los smbolos
matemticos habituales (+,*,<, etc.) y se dispone de funciones trigonomtricas,
logartmicas y de manipulacin de variables complejas (COS, PI, REAL, IMG,).
Sin embargo, lo que distingue realmente estos lenguajes avanzados de las listas de
instrucciones ampliadas son las tres caractersticas siguientes:
GENERALES
BIT
DATA
DIM
END
FILE
GET
INP
LEFT $
MODE
OPEN
PEEK
PRINT
READ
READL
RES PS
RESTORE
SPC
STOP
THEN
TO
UPD
PRINT
SET
CLOSE
DEF
ELSE
ENDEF
FOR
IF
INPUT
LEN
NEXT
OUT
POKE
PTR
READ$
REM
RES F
RUN
STEP
TAB
TIMER
UNLOCK
USING
RES
SWAP
INSTRUCCIONES
CONVERSION MATEMATICAS
ABS
BYTE
CHR$
BID
DEB
INT
RND
STR$
VAL
WORD
COS
PI
SIN
SGN
SQR
(,)
+
/
<
>
<=
=>
<>
=
DE
CONTROL
CALL MOD
CALL FUN
CALL ASS
GOSUB
ON GOSUB
ON GOTO
RETURN
USR
Figura 3.26 Compatibilidad entre los lenguajes de contactos y de alto nivel (ejemplo
telemecanique)
RESUMEN
Programar un autmata consiste en introducirle una secuencia de rdenes
(instrucciones) obtenidas desde un modelo de control, segn una codificacin
determinada (lenguaje) que por su forma puede ser:
-Literal, o textos
-Grfica, o de smbolos.
Cada instruccin del programa consta de dos partes: el cdigo de operacin, que
define que se debe hacer, y el cdigo o cdigos de los operandos (generalmente
identificados por su direccin), que indican las constantes o variables con las que se
deben operar.
Los lenguajes literales estn formados por secuencias de textos agrupados en
instrucciones u ordenes elementales del programa.
Segn la complejidad del lenguaje, estn disponibles instrucciones desde
sencillas funciones booleanas (AND, OR, etc.). Hasta estructuras complejas de
programacin en alto nivel (FOR..NEXT, WHILE, etc.), pasando por instrucciones de
acceso a bloques secuenciales (TIM, CNT, etc.) y de manipulacin de textos y valores
numricos (ADD, MOV, MUL, etc.)
Los lenguajes grficos, con origen en los esquemas elctricos de rels y en los
diagramas de la electrnica digital, utilizan smbolos de contactos/bobinas para
representar las instrucciones