Vous êtes sur la page 1sur 6

COMUNICACIN ENTRE AUTOMATAS (KOP)

Hay tres distintos modos de comunicarnos entre dos o ms autmatas (nuestro mximo sern
tres). Cada tipo de comunicacin tiene unas caractersticas en concreto, que sern las que nos
marquen el elegir una u otra forma de comunicacin. A saber: MPI, PROFIBUS DP y PROFIBUS
FDL.

Por lo general, siempre usaremos o Profibus DP o FDL, y el MPI se quedar un poco ms


restringido a ejercicios tipo.

Tipo de bus MPI Profibus DP Enlace FDL


Prosador de NO SI SI
comunicaciones
CPU Como acta Todas pueden ser Maestro / Esclavo Todas pueden ser
maestro. maestro.
Enlace con el Tabla de datos FC1, FC2, FC3, FC4. FC1, FC2
programa de globales.
usuario.
Cantidad de datos 22 bytes 240 bytes 240 bytes que solo
236 son de datos
Datos que se -Entradas. -Entradas. -Entradas.
transfieren. -Salida. -Salida. -Salida.
-Marcas. -Marcas. -Marcas.
-Bloques DB. -Bloques DB. -Bloques DB.

Vamos a programar.

Una tarea casi comn siempre, crear bloques DB (bloques de datos) para enviar la informacin.
Para ello, utilizamos SIEMPRE el OB100 (Porque es el primero que se ejecuta). En este, vamos a
usar siempre la siguiente estructura:

1. Segmento. Este puede contener dos, tres o cuatro bloques de MOVE. Segn el
numero de autmatas y si utilizan una comunicacin u otra.

Donde, en cada bloque, IN es el valor que queremos que almacene en la posicin que
incidamos en MW20, y MW22.
2. Segmento. En este creamos la tabla de datos, adonde metamos la informacin y
posteriormente enviaremos. La tabla de datos necesita algunos datos bsicos, como, lo
que ocupa en total la tabla, as como el nmero de filas y columnas que necesita. Esta
funcin es la SFC22.

Donde:
LOW_LIMIT: Lmite inferior nmero de DB.
UP_LIMIT: Lmite inferior nmero de DB.
COUNT: Peso total de la tabla.
RET_VAL: Error, que se almacena siempre en una posicin correlativa.
DB_NUMBER: identificacin de la tabla, que tampoco usaremos para nada.
Correlativa a la anterior.

As, ya tendramos acabado el OB100, en el que solo hemos creado una tabla para meter los
datos.

Lo siguiente ser programar en el OB1, usando, adems de los bloques clsicos vistos en los
temas anteriores, los bloques especiales de los tipos de comunicacin y alguno especial ms,
como son:

-SFC20.

Este bloque es parecido al move (hace lo mismo) pero lo usamos para los DB (bloques de
datos). En este bloque SOLO SE MUEVEN LOS BYTES DE INFORMACIN. Los bytes de direccin
y de cabecera, no se mueven.
DISTINTOS TIPOS DE COMUNICACIONES.

-MPI.

Este tipo de comunicacin es una comunicacin directa porque no acepta modulo de


comunicacin. La forma de comunicacin es mediante tabla de datos globales (son tablas de
datos que cualquier funcin del programa puede usar). Este tipo de comunicacin no utiliza ni
cabecera ni direccin, por lo que el tamao de la tabla de datos SFC22 ser el tamao de la
informacin a enviar.

La tabla de datos globales es:

Pero tiene el inconveniente que la cantidad mxima de informacin que puede transmitir son
22 bytes.

-Profibus DP.

Para la transmisin por Profibus DP, vamos a necesitar, adems de la cantidad de bytes de
informacin, necesitamos 2 bytes de direccin. En esta direccin se indica a que CPU va la
informacin. Para ejercicios de solo 2 CPU, una ser la maestro, y la otra la esclavo, por lo que
no es necesario usar esta direccin, pero cuando ya son 3 CPU, si es necesario utilizarla,
usando un 1 para la CPU esclavo 1 y la direccin 2 para la CPU esclavo 2. Esta direccin son los
primeros dos bytes de la informacin, y se carga con bloques move, en hexadecimal por lo
general, aunque queda a la eleccin del programador.
Los bloques para enva y para recibir son:

CPLADDR Siempre se usa w#16#130.


SEND Se utiliza la direccin adonde comienza el envo. Tambin se pueden usar
punteros, que es lo ms frecuente, para tratar tablas de datos, que al final se
explican.
DONE Bit de envo correcto.
ERROR Bit de envo error.
STATUS Es una palabra que nos indica el estado de envo.

CPLADDR Siempre se usa w#16#130.


RECV Posicin adonde empieza a recibir la informacin.
NDR Bit de recepcin correcta.
ERROR Bit de recepcin de error.
STATUS Es una palabra que nos indica el estado de envo.
DPSTATUS Bytes de estado DP.

-Profibus FDL.

Para transmitir por FDL vamos a necesitar, adems de los bytes de datos, 4 bytes de cabecera.
Esta cabecera sirve para indicar unos parmetros para controlar el envo de datos a las CPUs.
Para esta comunicacin, vamos a usar tablas de datos. Para cada dos CPU vamos a necesitar
dos bloques, es decir:

-CPU1-CPU2: Dos bloques en CPU1, uno para recibir y otro para enviar, y otros dos
bloques en CPU2, otros dos bloques.

-CPU1-CPU2-CPU3: Cuatros bloques en CPU1, uno para enviar a CPU2, otro para recibir
de CPU2, otro para enviar a CPU3 y otro para recibir de CPU3. As en todos los CPUs.
Los distintos tipos de bloques son:

ACT Es el bit que comienza el envo.


ID Es el indicador del bloque de recibir en otro CPU, para saber adnde va.
LADDR Siempre se usa w#16#130.
SEND Adonde comienza la informacin de envo. (Se enva TODOS los bytes).
LEN Se indica la cantidad SOLO de datos.
DONE Bit de envo correcto.
ERROR Bit de envo de error.
STATUS Palabra de estado.

ID Es el indicador de que bloque recibe la informacin.


LADDR Siempre se usa w#16#130.
RECV Adonde comienza la informacin a recibir. (Se reciben TODOS los bytes).
NDR Bit de recepcin correcta.
ERROR Bit de recepcin de error.
STATUS Palabra de estado.
LEN Se indica la cantidad SOLO de datos.
Esto son todos los bloques necesarios, y toda la informacin. Pero, adems de esta
informacin es necesario saber cmo usar punteros en KOP.

Los punteros se indican as:

# 10. 10.0 24

Donde:

# . , ,

Se usa para trabajar con las tablas de datos BD, que habamos creado al principio en el
OB100, con la intencin de indicar en la tabla que comienza el primer dato, a partir de ah, se
enviaran tantas tablas como indiquemos nosotros en el tamao.

Vous aimerez peut-être aussi