APUNTES PROGRAMACION TIA PORTAL (Autoguardado)

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 19

APUNTES PROGRAMACION TIA PORTAL

VARIABLE: Espacio de memoria, se le asigna un nombre, tipo de dato y dirección en el PLC

TIPOS DE DATOS

BOOL: “1” ó “0”, % M6.4 = Bit 4 del Byte 6

BYTE: 8 Bits.

Puede ser Binario 00000000 a 11111111

Puede ser Decimal 0 a 256

Puede ser Hex 16#00 a 16#FF

Ejemplo de Dirección de Memoria: %MB6 (ocupa todo el Byte 6)

M: Son direcciones de memoria para programar. Para programar es mejor trabajar con
bloques de datos que con memorias

INT / WORD: 2 Bytes (16 Bits)

Binario: 0000000000000000 hasta 1111111111111111

Decimal: 32767

Hex: 16#7FFF

Ejemplo de Dirección de Memoria: %MW6 (ocupa todo el Byte 6 y 7)

SON VALORES ENTEROS SIN DECIMALES

WORD 0000 0001 - 0000 0000

Byte menos significativo

%MW0 Bytes 0 y 1 16 Bits


DINT / DWORD: 4 Bytes (32 Bits)

- %MD6 (ocupa todo el Byte 6,7,8 y 9)


- Son valores enteros sin decimales

00000000 00000000 00000000 00000000

0.7 hasta 0.0 1.7 hasta 1.0 2.7 hasta 2.0 3.7 hasta 3.0

REAL: 4 Bytes (32 Bits)

- %MD6 (ocupa todo el Byte 6,7,8 y 9)


- Son valores con decimales

DATE: 2 Bytes (16 Bits)

- %MD6 (ocupa todo el Byte 6,7)


- Formato D@AAAA_MM_DD

TIME: 4 Bytes (32 Bits). Se usa para dar valores a los temporizadores

- %MD6 (ocupa todo el Byte 6,7,8 y 9)


- Formato T#xs, T#xMs…. (x= valor deseado,s= segundos, Ms = milisegundos)

ARRAY: Colección de elementos de un mismo tipo de datos, separados por “casillas” ó


“posiciones”, empezando por la posición “0”

Array de 6 Bool 0 1 0 1 0 1

Array de 4 Real 24,2 12, 126,4 1,6


2

Array de 5 Int 2 12 68 159 78

DB: Es un bloque donde podemos crear variables y almacenar datos


STRUCT: Permite guardar variables de diferentes tipos de datos. No tiene posiciones como el
array. En una variable Struct puede existir cualquier cosa desde variables bool, byte, int ó real
hasta arrays incluso otras variables struct

Ejemplo:

Struct int Array de 8 bool Real 1 Struct Bool

UDT: Permite crear un tipo propio, almacenando en el cualquier tipo de datos. Es


exactamente igual al Struct, pero la diferencia reside que es un tipo de dato definido y usable
en todo el programa.

UDT Tipos de Datos PLC = Me permite crear tipos de datos propios, tipos de datos con
variables

UDT -Variador Habilitado


Marcha
Fallo-General
RPM
Velocidad
Intensidad
Estados (Automatico, Manual, Averia)

LOS BYTES TIA PORTAL LOS AGRUPA EN MEMORIA DE 2 EN 2 Y SI DECLARO UNA VARIABLE
BOOLEANA YA GUARDA 2 BYTES EN MEMORIAS

COMO FUNCIONAS LAS ENTRADAS Y SALIDAS DIGITALES

Las direcciones de memorias son porciones de la memoria de la CPU donde se almacenan


datos, para que de esta manera poder clasificarla según tamaño

Direcciones %I (DI)
%a (DO)
%M (Marcas)
ORDEN DE EJECCUCION DEL PROGRAMA

1) Lee todas las entradas (A,D)


2) La información de las entradas del PLC las traslada a la memoria del PLC, a unas
direcciones espejo ó imagen, llamadas con la nomenclatura %I (señales dgitales) y
%PEW(analógicas)
3) Ejecuta todo el código escrito en DB principal llamado Main de arriba abajo. Hay otros
DB con ejecuciones independientes
4) AL finalizar la ejecución del main el PLC escribe en las salidas físicas reales el valor de
las direcciones imagen de salida %Q y %PAW

CICLO DE SCAN

EL tiempo que tarda en ejecución todo el programa

LENGUAJE DEL PLC

1.- DIAGRAMA DE CONTACTOS:

- Basado en Esquema eléctricos

- Tedioso para trabajar con bucles o saltos. Para bucles y saltos es mejor SCL ó AWL

- Limitado a la hora de mover datos

2.- FUP:

- Basados en puertas lógicas (AND, OR,ETC)

- No es muy visual y tampoco fácil de entender si el código es complejo

- Tedioso para trabajar con bucles o saltos

- Limitado a la hora de mover datos

- Apenas es usado por los programadores


3.- AWL:

- Es el lenguaje que entiende el PLC

- No es muy visual ni fácil de entender

- es el MEJOR lenguaje para trabajar con bucles o saltos

- No tiene limitaciones a la hora de mover datos y trabajar con ellos

- Suele ser el más odiado por los programadores por su dificultad, pero un programador jamás
será experto sino domina este lenguaje

- “Lo que no se pueda programar con AWL, es que no se puede programar con el PLC”

- Coste computacional Bajo (es el más óptimo)

4.- SCL:

- Es un lenguaje de alto nivel basado en Pascal y C

- Sencillo a la hora de trabajar con bucles o saltos

- Coste computacional Alto

- Factible a la hora de mover datos pero tiene sus limitaciones

5.- GRAFECT:

- Pésimo a la hora de trabajar con bucles o saltos

- No está pensado para mover datos

- Se suele utilizar para mover secuencias

LOGICA CON BITS

- Diferencia entre contacto y bobina


- Contacto Negado y Bobina Negada
- NOT
- Uso de AND y OR
- Flanco Ascendente y Descendente
- RLO (se usa en AWL)
- Falta graves repetición de bobinas
TIPOS DE BLOQUES

- Bloques de Organización (OB)´


- Bloques de Datos (DB)
- Funciones (FC)
- Bloques de Funcion (FB)

TEMPORIZADORES

- TP
- Ton
- Toff
- Tonr

CONTADORES

- CTU
- CTD
- CTUD

COMPARADORES

- =, >, <, ≥. ≤, <>


- Otros

FUNCIONES MATEMATICAS

- +. -. *. :
- Kop: Funcion Calculate
- Division: Funcion MOD
- Resultado Negado: Funcion NEG
- Incrementos y Decrementos
- Valor Absoluto: Funcion ABS
MATEMATICAS

- Convert
- Round
- Ceil
- Floor
- Trunc

AND

X*Y = Z

X3 X4
 KOP S
S

 AWL U X
U Y
= Z

U = Contacto Abierto

= Bobina

 SCL If ( X AND Y) Then


“Z”: = True;

Else

“Z” = False;

En_if;

 AWL UN X
U Y

Contacto Negado
OR KOP AWL SCL

X+Y = Z X4 U X If (X OR Y)
S O Y Then
S = Z Z= True;
X5
Else

Z=False;
End_if;

SCL

“Lampara” : “ Interrutor” OR “Interruptor2” ; ON

U X

ON Y

= Z
X= X1*X2*NOTX3*(D+E)

X1 X2 X3 X4
aS S
S
X5

AWL

U(
U “setyreset”. X1
U “setyreset”. X2
Un “setyreset”. X3

U(
U “setyreset”. X4
O “setyreset”. X5
)
= “Lampara”

SET Y RESET

a
S
SS
b
S
SR
AWL

U “setyreset”. a
S “setyreset”. X

NOP

U “setyreset”. b
S “setyreset”. X

AWL

U “flancos”.x
FP “flancos”.flanco(2)
S “flanco”.a

EJERCICIO DE SET Y RESET


FLANCOS ASCENDENTES Y DESCENDIENTES

Cuando el flanco detecta el cambio de la variable de “0” a “1” y de “1” a “0” es que permite el
paso de corriente en ese instante o sea en un ciclo de scan del autómata.

xx
bS
SP
yy
xx
bS
SN
yy
xx = es la variable que vamos a evaluar y va a cambiar de “0” a ”1”

yy = la variable de guardado y guarda el ultimo valor que tiene la variable xx. Compara xx con
yy y asi sabe si hay cambio

Solo funciona en el ciclo de scan

RLO

Es el estado (0 o 1) resultante de las operaciones que hay desde la primera condición hasta la
condición deseada. Aunque existe solo es mostrado de manera directa en AWL (en KOP de
manera indirecta iluminando el contacto). RLO ES EL RESULTADO LOGICO FINAL DE LAS
OPERACIONES EXISTENTES.

BLOQUES EN TIA PORTAL

1. BLOQUE DE ORGANIZACIÓN (OB)


2. BLOQUES DE DATOS (DB)
3. FUNCIONES (FC)
4. BLOQUES DE FUNCIONES (FB)

BLOQUE DE ORGANIZACIÓN (OB): Es un bloque lógico donde se puede


programar código dentro de el. Según el tipo de OB se puede procesar a
casa ciclo de scan, la primera vez que el PLC se pone en modo RUN, al
haber un fallo en el PLC, etc.
El OB principal del PLC es el MAIN.
Como un OB no es una función un OB , ningún OB puede ser llamado
desde otro OB. Cada OB es independiente de los otros OB

Es importante llamar a los OB de errores (no se programa nada en ellos)


para que en caso que salga algún error en pleno funcionamiento (errores
no críticos), la CPU no pase a STOP y se paralice toda la fabrica.
Los PID se suelen llamar en el OB30 (Cyclic Interrupt) porque se ejecuta
mas rápido que en el OB Main
Los OB de alarma cíclica sirven para iniciar programas en intervalos
periódicos, independientemente de la ejecución cíclica del programa. Los
intervalos se pueden definir en este cuadro de diálogo o en las
propiedades.
OB MAS IMPORTANTES

Program Cycle (Main): Los OB de ciclo se procesan cíclicamente. Los OB de ciclo son bloques
lógicos de orden superior en el programa, en los que se pueden programar instrucciones o
llamar otros bloques.

Startup (OB100): Los OB de arranque se procesan una sola vez, cuando el modo de operación
de la CPU cambia de STOP a RUN. Tras el procesamiento del OB de arranque se inicia el
procesamiento del OB de ciclo.

Cycle Interrupt (OB30): Los OB de alarma cíclica sirven para iniciar programas en intervalos
periódicos, independientemente de la ejecución cíclica del programa. Los intervalos se pueden
definir en este cuadro de diálogo o en las propiedades. SE USA EN EL PID

Rack or Station failure (OB86): Un OB de fallo de rack se llama p. ej. en caso de fallo de un
rack o de una estación en la periferia descentralizada.

Programming Error (OB121): OB de error de programación cuando se produce un error


durante la ejecución del programa y se ha ajustado el tratamiento de errores global.
BLOQUES DE DATOS

Los bloques de datos (DB) sirven para almacenar datos del programa.

SIEMPRE QUE SE MODIFIQUEN 1 Ó VARIOS DB

1) PRIMERO HACER INSTANTANEAS DE LOS ACTUALES Y LUEGO


2) COPIAR INSTANTANEAS COMO VALORES DE ARRANQUE
3) LUEGO PODEMOS MODIFICAR DB, AÑADIR VARIABLES, CAMBIAR NOMBRES DE
VARIABLE, ETC
Todas las modificaciones entran a la memoria de carga

Asi acceso direntamente al DB 37


FUNCION (FC)

Las funciones sirven para encapsular los códigos en porciones y así estructurar mejor el
programa. Una función es un bloque donde programamos código que podemos reutilizar. La
función la podemos llamar desde cualquier punto del programa. Debe estar en el OB Main.
Podemos usar un contador casero,

En una estación frigorífica podemos tener compresores, separadores etc, podemos tener una
función llamada compresores donde dentro de esa función tenemos todos los compresores de
la planta, también podemos tener una función llamada separadores donde dentro de esa
función tenemos todos los compresores de la planta.

Las funciones se le pueden declarar variables pero esas variables no se pueden guardar em
memoria no se pueden datos y tampoco tiene DB propio.

La FB si tiene un DB propio la FC NO

Las variable TEMP en los FC a cada ciclo de scan se resetean no se guardan en memoria

El RETURN es para si queremos que la función devuelva algo

En el bloque FC el EN significa habilitado


CONTADOR CASERO

También podría gustarte