Sie sind auf Seite 1von 21

PROGRAMACIN DE AUTMATAS

Sistemas de numeracin. Direccionamiento y acceso a la periferia. Instrucciones, variables y operandos. Formas de representacin de un programa. Organizacin de programas. Tipos de mdulos de programa.

Fundamentos de Automtica

Sistemas de numeracin

Los sistemas digitales emplean dispositivos en los que slo son posibles 2 estados: Tensin alta (p.e. 4 V.) o baja (p.e. 0,2 V.), pero ningn otro valor. Diversas denominaciones: 1 - 0, alto - bajo, verdadero - falso, ON - OFF. Unidades de informacin: BIT: Un nico elemento con 2 posibles valores 1 o 0.
7 6 5 4 3 2 1 0

BYTE: Conjunto de 8 bits. WORD (PALABRA): Conjunto de 2 bytes (16 bits).


7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 15 14 13 12 1110 9 8 7 6 5 4 3 2 1 0

o DWORD (DOBLE PALABRA): Conjunto de 2 words (32 bits).


7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0

Fundamentos de Automtica Introduccin a la Programacin de Autmatas

Sistemas de numeracin: BINARIO


Es necesario convertir los valores de las variables fsicas en datos manejables por el autmata y viceversa. Sistema binario: Sistema en base 2 con slo 2 smbolos (0, 1). Conversin decimal a binario: Se divide el n decimal por 2 sucesivamente, y se toman los restos en sentido inverso 53/2 = 26 /2 = 13 /2 = 6/2 = 3/2 = 1 resto 1 0 1 0 1

n binario: 1 1 0 1 0 1

Conversin binario a decimal: Se multiplican los elementos del n binario por potencias crecientes de 2, comenzando por la dcha.
25 24 23 22 21 20

110101

n decimal: 1 x 25 + 1 x 24 + 0 x 23 + 1 x 22 + 0 x 21 + 1 x 20 = 32 + 16 + 0 + 4 + 0 + 1 = 53

Fundamentos de Automtica Introduccin a la Programacin de Autmatas

Sistemas de numeracin: HEXADECIMAL

Sistema hexadecimal: Sistema en base 16 con 16 smbolos (dgitos del 0 al 9 y letras desde A hasta F). Hexadecimal Binario Conversin hexadecimal a binario: 0 0000 1 0001 Se sustituye cada smbolo por su 2 0010 equivalente binario indicado en la 3 0011 4 0100 tabla adjunta. P.e. el n hexadecimal 5 0101 9A7E 6 0110 9=1001 A=1010 7=0111 E=1110 n binario 1001101001111110 Conversin binario a hexadecimal: Se dividen los bits en grupos de 4, comenzando por la dcha., y se convierten a su equivalente hexadecimal.
7 8 9 A B
C D E F

0111 1000 1001 1010 1011 1100 1101 1110 1111

Fundamentos de Automtica Introduccin a la Programacin de Autmatas

Sistemas de numeracin: BCD

Sistema BCD: Utiliza 10 smbolos igual que el decimal (dgitos del 0 al 9). Se sustituye cada smbolo por su equivalente binario. n decimal 834 8=1000 3=0011 4=0100 n BCD 100000110100 Facilidad de paso entre decimal y binario, pero utiliza mucho espacio. Utilizan ponderacin: Cada posicin posee un peso por el que hay que multiplicar para obtener el nmero decimal.
Decimal 0 1 2 3 4 5 6 7 8 9 BCD natural 8421 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 BCD Aiken 2421 0000 0001 0010 0011 0100 1011 1100 1101 1110 1111 BCD 54210 0000 0001 0010 0011 0100 1000 1001 1010 1011 1100

Fundamentos de Automtica Introduccin a la Programacin de Autmatas

Representacin de nmeros reales (I)

Parte fraccionaria: Se multiplica la parte fraccionaria por 2 dando lugar a nuevas partes entera y fraccionaria. Se separa la nueva parte fraccionaria y se repite el proceso hasta que la parte fraccionaria sea 0. El cdigo vendr dado por las partes enteras obtenidas. P.e., n decimal 13,375 0,375 x 2 =0,75 0,75 x 2 =1,5 0,5 x 2 =1,0 n binario: 1101.011 La obtencin de la parte fraccionaria en decimal se realiza multiplicando los bits hacia la derecha del punto decimal por potencias inversas de 2.
2-1 2-2 2-3

011

parte fraccionaria decimal: 0 x 2-1 + 1 x 2-2 + 1 x 2-3 = 0 + 0,25 + 0,125= 0,375

Fundamentos de Automtica Introduccin a la Programacin de Autmatas

Representacin de nmeros reales (II)

Nmeros con signo. Se utiliza el bit ms significativo para indicar el signo: 0 para nmeros positivos y 1 para nmeros negativos. Existen diversas notaciones, que se diferencian en el tratamiento de los nmeros negativos
Signo-Magnitud: A la magnitud del nmero (valor absoluto) se le antepone el bit de signo. Complemento a 1: Un nmero negativo se obtiene a partir del positivo, intercambiando los 0s por 1s. Complemento a 2: Un nmero negativo se obtiene a partir del positivo, intercambiando los 0s por 1s y sumando 1.
+0 +1 +2 +3 +4 +5 +6 +7 Signo-Magnitud 0000 -0 0001 -1 0010 -2 0011 -3 0100 -4 0101 -5 0110 -6 0111 -7 1000 1001 1010 1011 1100 1101 1110 1111 +0 +1 +2 +3 +4 +5 +6 +7 Complemento a 1 0000 -0 1111 0001 -1 1110 0010 -2 1101 0011 -3 1100 0100 -4 1011 0101 -5 1010 0110 -6 1001 0111 -7 1000 +0 +1 +2 +3 +4 +5 +6 +7 Complemento a 2 0000 -1 1111 0001 -2 1110 0010 -3 1101 0011 -4 1100 0100 -5 1011 0101 -6 1010 0110 -7 1001 0111 -8 1000

Fundamentos de Automtica Introduccin a la Programacin de Autmatas

Almacenamiento de nmeros reales (I)


Una zona del registro (elemento de almacenamiento) se destina a la parte entera y otra zona a la parte fraccionaria.
7 6 5 4 3 2 1 0

,
parte fraccionaria

La longitud de dichas zonas limita las parte entera magnitudes enteras y fraccionarias representadas: P.e., con 2 bits slo se pueden representar las fracciones
0 x 2-1+1 x 2-2= 0,25. 1 x 2-1+0 x 2-2= 0,5. 1 x 2-1+1 x 2-2= 0,5+0,25=0,75.

Representacin en coma fija: El nmero de bits de la parte fraccionaria es fijo. Errores de precisin
Truncado: Eliminacin de aquellos bits de la parte fraccionaria que no se pueden almacenar en el registro. Redondeo: Aproximacin al nmero ms cercano que s se puede representar con exactitud en el registro.

Fundamentos de Automtica Introduccin a la Programacin de Autmatas

Almacenamiento de nmeros reales (II)

Representacin en coma flotante: Cualquier n real se puede expresar como m.be (m=mantisa, b=base, e=exponente). P.e., 2,4510=245 x 10-2. Slo es necesario almacenar la mantisa y el exponente. Representacin normalizada IEEE 754:
Utiliza 32 bits: Bit ms significativo para el signo (S), los 8 siguientes para el exponente (E) y los 23 restantes para la mantisa (F). Un nmero real se obtiene de la expresin (-1)S x 2(E-127) x (1.F). Normalizacin del equivalente binario a 1.NNNNN x 2n, donde n es el nmero de posiciones que hay que desplazar el punto decimal para dejar un 1 a la izqda. (positivo si se mueve hacia la izqda. y negativo en caso contrario). Entonces E=127+n y F=NNNNN (completado con 0s por la dcha. hasta llegar a 23 bits). Ejemplo: 525,5 1000001101.1 1.0000011011 x 29 0 1000 1000 00000110110000000000000 44 03 60 00 (hex) Ejemplo: -0,625 0.101 1.01 x 2-1 1 0111 1110 01000000000000000000000 BF 20 00 00 (hex)

Fundamentos de Automtica Introduccin a la Programacin de Autmatas

Direccionamiento
Acceso a distintas zonas de la memoria: Especificacin de rea de memoria: Entradas, salidas, marcas, Longitud dato: Bit, byte, word, Ubicacin X 1.4
} XB

10

38 X 38.7 + X 38.6 + X 38.0

} XW 73 XB 73 + XB 74

XD 115

XW 115 + XW 117

Fundamentos de Automtica Introduccin a la Programacin de Autmatas

Acceso a la periferia
La relacin entre la seal fsica (entrada o salida) y su posicin en la memoria correspondiente, viene dada por la proximidad del mdulo a la CPU y por el borne donde se conecta dicha seal. Reserva de memoria: 4 bytes por mdulo para entradas/salidas digitales (1 bit cada una. 16 bytes por mdulo para entradas/salidas analgicas (16 bits para cada una).
1 2 3 4 5 6 7 8 9 10

11

11

F.A.

CPU ED SD 0.0 4.0 ... ... 3.7 7.7

EA+SA 288 ... 303

Fundamentos de Automtica Introduccin a la Programacin de Autmatas

Acceso a la periferia: Direccionamiento


Direccionamiento de seales digitales: Direcciones de memoria de 0 a 127.
Rack 0

12

Rack 1

Direccionamiento de seales analgicas: Direcciones de memoria de 256 a 752.


Rack 0

Rack 1

Fundamentos de Automtica Introduccin a la Programacin de Autmatas

Instrucciones, variables y operandos

13

Un programa de autmata es una sucesin de instrucciones (rdenes de trabajo) con 2 partes principales: Operacin: Qu hacer? (carga, contaje, lgica, temporizacin, ). Operando: Con qu? o Dnde?. Suele constar de
Smbolo: Indica el tipo de variable (entrada, salida, marca, contador, ). Parmetro: Ubicacin del smbolo en la memoria.

Ejemplos: ENT E 3.0 AND M 3.0 OUT A 5.4 LOAD CT 8 INI CD 3 ENT E 7.5 INC CD 3 / Obtener entrada / Operacin lgica / Resultado hacia salida / Asignar valor a cte. / Inicializar contador 3 / Obtener entrada / Incrementar contador 3

Fundamentos de Automtica Introduccin a la Programacin de Autmatas

Representaciones de un programa (I)

14

Distintas formas de especificar lo que ha de hacer el autmata en cada momento: Diagrama de contactos (LD/KOP): Basado en los esquemas de rels utilizados en los automatismos elctricos de lgica cableada, mayoritarios antes de la aparicin del API. Plano de funciones (FBD/FUP): Basado en smbolos normalizados (puertas) que implantan funciones lgicas directas (AND, OR, ) o sistemas lgicos ms complejos (biestables, registros, ). GRAFCET: Evolucin de los diagramas de flujo. Representa directamente la sucesin de las diversas fases del ciclo de produccin, separadas por las condiciones que permiten la evolucin de una fase a la siguiente. Lista de instrucciones (IL/AWL): Basado en las definiciones del lgebra de Boole. A diferencia de las anteriores no es una representacin grfica. En los APIs actuales se pueden combinar diversas representaciones dentro de un mismo programa de usuario.

Fundamentos de Automtica Introduccin a la Programacin de Autmatas

Representaciones de un programa (II)


KOP (LD)
Diagrama de contactos
E 0.0

15

FUP (FBD)
Diagrama de funciones

AWL (IL)
Lista de instrucciones U E E 0.0 0.1

&
E 0.1 E 0.0 E 0.1 A 4.0

U 1 O
A 4.0

E 0.2 E 0.2 E 0.3 E 0.3

&

U U =

E E A

0.2 0.3 4.0

Fundamentos de Automtica Introduccin a la Programacin de Autmatas

Representaciones de un programa (III)


S7-GRAPH (SFC)
Diagrama funcional de secuencias

16

SCL (Pascal)
Lenguaje de control estructurado
ORGANIZATION_BLOCK OB1 VAR_TEMP // Variables temporales info : ARRAY[0..19] OF BYTE; END_VAR // Instrucciones BEGIN IF E0.0=1 then A0.0:=1; A0.1:=1; ELSE AB0:=0; END_IF; END_ORGANIZATION_BLOCK

Fundamentos de Automtica Introduccin a la Programacin de Autmatas

Organizacin de programas: Lineal

17

Programacin lineal: Las instrucciones se escriben todas juntas una tras otra y se consultan secuencialmente para su ejecucin. Recomendada para proyectos sencillos. Autmatas de gama baja. Se puede alterar el orden de ejecucin normal mediante instrucciones de salto, que permiten acortar el tiempo de ciclo.

salto

Fundamentos de Automtica Introduccin a la Programacin de Autmatas

Organizacin de programas: Estructurada

18

Programacin estructurada: Divisin de la tarea a ejecutar en partes elementales, implantadas en bloques de programa (mdulos o subprogramas). Llamada desde un mdulo principal y/o anidamiento entre mdulos. Mdulos independientes o reutilizables y parametrizables (subrutinas). Recomendada para proyectos complejos. Simplificacin de la programacin, depuracin y mantenimiento.

Fundamentos de Automtica Introduccin a la Programacin de Autmatas

Tipos de mdulos: de Organizacin

19

Mdulos de organizacin (OB): Constituyen la interfase entre el sistema operativo del API y el programa de usuario. Slo pueden ser llamados por el sistema operativo, NO por otros mdulos, en respuesta a ciertos eventos:
En el arranque de la CPU. En una hora del da. A intervalos constantes. Cuando ha transcurrido un cierto perodo de tiempo. Cuando ocurre un error. Cuando tiene lugar una alarma de proceso.

Existe un mdulo principal que es ejecutado cclicamente por el sistema operativo:


Programacin lineal: Almacena el programa completo. Programacin estructurada: Realiza las llamadas al resto de mdulos.

Distintos niveles de prioridad: La ms baja para el mdulo principal.


Fundamentos de Automtica Introduccin a la Programacin de Autmatas

Tipos de mdulos: Funciones y de Funcin


Funciones (FC): Mdulos de cdigo que se ejecutan al ser llamados desde otros mdulos.

20

Permiten realizar programacin estructurada Actan como subrutinas del programa: Cuando terminan de ejecutar su cdigo devuelven el control al mdulo y al segmento desde el que han sido llamadas.

Parametrizables: Uso para tareas repetitivas o funcionalidades complejas. Las funciones de sistema (SFC) son funciones integradas en el sistema operativo de la CPU. Su nmero y funcionalidad es fijo. Mdulos de funcin (FB): Bsicamente ofrecen la misma funcionalidad que las funciones. La diferencia radica en que los mdulos de funcin poseen su propia zona de memoria en forma de mdulos de datos de instancia. Los mdulos de funcin de sistema (SFB) son funciones parametrizables integradas en el sistema operativo de la CPU. Su nmero y funcionalidad es fijo.

Fundamentos de Automtica Introduccin a la Programacin de Autmatas

Tipos de mdulos: de Datos

21

Mdulos de datos (DB): Zonas del programa de usuario utilizadas para el almacenamiento de valores. El programa de usuario puede acceder a datos en un mdulo de datos con operaciones de BIT, BYTE, WORD o DWORD. Pueden utilizar direcciones simblicas o absolutas. A diferencia de los datos temporales (generados durante la ejecucin de un mdulo), la informacin de los mdulos de datos no se sobreescribe cuando la ejecucin de un mdulo finaliza o cuando el DB se cierra. Se utilizan de formas diferentes, dependiendo de sus contenidos:
Mdulos de datos globales: Contienen informacin que puede ser accedida por todos los mdulos del programa de usuario. Mdulos de datos instancia: Son asignados siempre a un FB en particular. Los datos de cada DB deben usarse solo para el FB asignado.

Fundamentos de Automtica Introduccin a la Programacin de Autmatas

Das könnte Ihnen auch gefallen