Académique Documents
Professionnel Documents
Culture Documents
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.
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.
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:
-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:
# 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.