Comunicación maestro esclavo mediante PROFIBUS DP
El
objetivo de esta actividad es realizar, mediante conexión PROFIBUS DP, una
transferencia de datos entre los dos PLC´s con diferentes prestaciones. Los
pasos a seguir son los siguientes:
a) Identificar los diferentes puertos de
comunicaciones de cada PLC
b) Conectar mediante el cable adecuado
los equipos a través del puerto correspondiente.
c) Crear un proyecto nuevo donde figuren
los equipos que vamos a instalar en la red. Configurar correctamente los
puertos de comunicaciones.
d) La comunicación consistirá en:
·
Al
pulsar una entrada en el Maestro mandaremos la siguiente información al
Esclavo
Primer número = 31
Segundo número = 210
Tercer número = 89
·
El
Esclavo recibirá la información, y reflejará el tercer número en su salida. A su
vez, al activar una entrada, se encenderán todas las salidas del Maestro durante 5 segundos.
e)
Comprobar
que la información se transfiere desde un PLC hasta el otro.
Los dos plc´s
que vamos a utilizar son:
·
Siemens
CP314-IFM
·
Omron
CQM1H-CPU51
El Siemens
será el maestro y el esclavo será el Omron.
En primer lugar instalaremos ambos módulos de comunicaciones PROFIBUS en los dos PLC, en el caso del Siemens emplearemos un módulo CP, en el Omron un módulo PRT 21.
CQM1H con módulo PRT21
Cpu314IFM con módulo CP
Antes de
añadir la tarjeta de comunicaciones PROFIBUS
DP a la unidad esclavo debemos ajustar los switch que se encuentran integrados en la placa de circuito del módulo PRT 21. Para
ello hay que saber la cantidad de datos que queremos transmitir, en nuestro caso
los números y para ello los pasamos a binario para ver cuánto ocupan.
Primer número 31= 11111
Segundo número 210= 11010010
Tercer número 89= 1011001
Los números ocupan 2 palabras para recibir y una para
enviar. Por lo tanto ajustamos a dos canales de envio y dos de recepción. Miramos la documentación para saber como debemos ajustar los
switch.
SW1 SW2 I/O Chanel
OFF OFF 2/2
ON OFF 4/4
Además, debemos indicar el número de esclavo en la red Profibus mediante los shiwtch giratorios x1 y x10, en nuestro caso sera la 4.En SW3 seleccionamos formato de datos Motorola o Intel.
OFF Motorola.
ON Intel.
Si la opción
es Motorola el byte de datos se asigna a él byte más
significativo de la primera palabra a la base de datos (PLC).
Si la opción
es Intel el byte de datos se asigna al byte menos
significativo de la primera palabra a la base de datos (PLC).
Elegimos SW3
ON (Intel) y acoplamos la tarjeta al
PLC.
La conexión entre ambos equipos se realizará mediante el cable de par apantallado suministrado con conector DB9 para la comunicación mediante Profibus.
Estos
conectores constan de resistencia de cierre integrada, ya que en los dos
extremos de la subred deben ponerse resistencias. En la imagen anterior se aprecia la pestaña
que tienen estos conectores para activar esta resistencia.
Nosotros
ponemos en los dos conectores la resistencias en ON.
Aquí podemos ver el montaje de la red PROFIBUS. Ahora solamente resta la configuración del hardware de los equipos citados mediante el S7 de Siemens, y su correspondiente programa para cada uno de los equipos.
Tras arrancar el programa S/, configuramos el equipo que vamos a utilizar y Definimos el bastidor. Vamos a la izquierda de la pantalla y clicamos en SIMATICàCPU.
Módulos
1 Elegimos
en la lista la fuente PS 307 SA y clicamos.
2 CPU
314 IFM.
3 Nada
(reservado para tarjeta del PC.
4 CPU
342-5 Modulo de comunicaciones. Lo configuramos, en la parte derecha tenemos
dos versiones. Nos fijamos en la caja y nos indica que es la versión 2.
Clicamos en esta versión y aparece una ventana de propiedades-interface
PROFIBUS CP 342-5 seleccionamos
dirección 2 y aceptar.
Ahora instalamos archivo GSD del modulo CP 342-5.
Entramos en HW configuración y hacemos doble clik en CP 342-5, aparece una
ventana de propiedades y nos marca por defecto sin DP , seleccionamos maestro
DP, dirección 3 y aceptar.
Visualizamos
el sistema maestro DP y la red PROFIBUS.
Ahora
instalamos archivo GSD para el CQM1-PRT21 del escritorio, se llama 0C_054D.GSD
y clicamos en instalar.
Después nos
vamos a PROFIBUS-DP /OTROS
APARATOS DE CAMPO / PLC / CQM1-PRT21 lo arrastramos a nuestro
sistema de red profibus y le marcamos la dirección 4 (es la que hemos puesto en
el modulo, tienen que coincidir) y aceptar. Ya tenemos en la red profibus el
esclavo.
Arrastrar el
modulo de dos palabras de entrada y salida al esclavo. Clicamos en el esclavo / propiedades, le ponemos dirección 4 y
aceptar.
Después
clicamos en guardar y compilar.
Programa KOP en OB1.
Segmento 1.
le asignamos un contacto o bit de activación E124.0 y elegimos la
función MOV. La cual iremos añadiendo en
paralelo al bit 124.0 y a cada función
le pondremos un número.
En la entrada
del MOV colocamos el numero que queramos mandar en hexadecimal.
En la salida
pondremos la dirección de memoria interna a la que queremos mandar (Marca)
Pasamos los
tres números a hexadecimal.
Primer número 31=
1F
Segundo número 210= D2
Tercer número
89=
59
Primer MOV
Cogemos el
primer número y lo escribimos de este modo en la entrada
W#16#1F
W#16# modo hexadecimal
1F número 31
en hexadecimal
En la salida
le escribimos MB100 (le indicamos que lo mueva a la salida de la marca del byte
100.
Segundo MOV
Entrada
W#16#D2
Salida MB101
Tercer MOV
Entrada
W#16#59
Salida MB102
Ahora cuando
este activo el bit E124.0 tendremos estos números en esta zona de memoria.
El intercambio de daos entre la CPU y el CP
(trabajando como Master) no es directo, si no que se ha de hacer mediante
bloques FCs como son:
FC DP_SEND [CPU a CP]:
La CPU da la orden de escribir los datos contenidos en el búfer definido por el
programador en la CPU, sobre el estado de las salidas de los esclavos DP
conectados al CP Master.
FC DP_RECV [de cp a cpu]:
La CPU da la orden de copiar el estado de las entradas de los esclavos
conectados en la CP, en el búfer definido por el programador en la propia CPU.
Los búfers definidos por el programador pueden ser áreas de Marcas, DBs
o áreas PA.
Pero para
poder mandarlos a los esclavos necesitamos la función DP SEND.
En el
segmento 2.
Descripción de la función FC1 “DP_SEND”.
La función FC1 “DP_SEND” contiene los siguientes parámetros:
Datos de entrada:
CPLADDR
: Se ha de indicar la dirección inicial de la CP, en formato word. Introduzca aquí
esta dirección en hexadecimal. Como la
CP 342-5 está conectada en el slot 4 del bastidor de la CPU 314C-2DP por tanto
le corresponde la dirección 256 en decimal que pasado a hexadecimal es
el 100.
W#16#100
SEND : Se ha de indicar el lugar en donde se encuentran los datos a
enviar a la CP, en formato puntero p#. Zona de memoria (A, M, DB) de la CPU a
transferir a la CP. Se indica la dirección inicial y la longitud.
Ej.: P#E0.0 byte 6
6 bytes será la cantidad de entradas totales en los esclavos.
Advertencia: La longitud de lo que envío al búfer de salida de la CP,
debe coincidir con el total de entradas que exista en la periferia.
En nuestro caso P#M 100.0 BYTE 3 (3 byte salidas del maestro que son 3 byte
entradas en los esclavos)
Datos de salida:
DONE: Señaliza en un bit, si se han aceptado los datos (0: No hay
datos/1: Nuevos datos).
Le ponemos la marca de bit M20.0
ERROR: Señaliza en un bit, si se han producido errores (0: Sin error/1:
Con error).
Le ponemos la marca de bit siguiente M20.1
STATUS: Señaliza en una palabra, el código del error producido.
Le ponemos la
marca de palabra (Word) MW21
En el segmento 3.
Incorporamos la función DP RECV
Descripción de la función FC1 “DP_RECV”.
FC1 “DP_RECV” : Recibe datos a través del CP
PROFIBUS, o sea, recibe los datos del proceso de la periferia descentralizada
al igual que una información de estado en un área de entrada DP determinada.
La función FC1 “DP_RECV” contiene los siguientes parámetros:
Parámetros de
entrada:
• CPLADDR
(WORD):Dirección inicial de la CP. Introduzca aquí esta dirección en
hexadecimal.
Ponemos W#16#100
• RECV (ANY):
Zona de memoria (A, M, DB) de la CPU donde deposito las entradas leídas en la
CP. Se indica la dirección inicial y la longitud.
Ej.: P#A4.0
byte 2
2 bytes será
la cantidad de salidas totales en los esclavos que serán 2 bytes de entrada en
el maestro.
Advertencia:
La longitud de lo que recibo en el búfer de entradas de la CP, debe coincidir con
el total de salidas que existan en la periferia.
En nuestro
caso P#M100.4 BYTE 2 (2 bytes será la
cantidad de salidas totales en los esclavos que serán 2 bytes de entrada en el
maestro).
Parámetros de
salida:
• NDR (BOOL)
: Si esta a 1, indica que se han aceptado nuevos datos.
Le ponemos la
marca de memoria siguiente que por ocupar MB20.2
• ERROR
(BOOL): Si esta a 1, se ha producido error. El código de error se indica en el parámetro
STATUS.
Le ponemos la
marca de memoria siguiente que por ocupar MB20.3
• STATUS (WORD):
Código de estado.
Le ponemos la
marca de palabra (Word) siguiente por ocupar
MW23
• DPSTATUS
(BYTE): Código de estado DP.
Le ponemos la
marca de memoria siguiente que por ocupar MB25.
En el segmento 4.
Añadimos la función MOV.
En la entrada
(IN) escribimos P#M100.4 (salidas esclavos, entradas maestro).
En la salida
MW124 (marca de Word-palabra).
Todas las salidas
del plc deben ponerse a 1, este número en decimal es 65535 y en exadecimal es FFFF.
Guardamos y tras conectar el plc Siemens mediante la conexión MPI, transferimos toda la configuración y el programa de KOP.
Ahora proseguiremos con la programación y
configuración de los módulos de en Omron.
Mediante el Programa
CX-Programer:
Ponemos el nombre del
dispositivo esclavo profibus DP,
elegimos el tipo de dispositivo CQM1H y CPU elegimos CPU51 y aceptar.
Programación KOP
Le añadimos
la función MOV(21) y le indicamos que mueva la entrada 2 al canal 100.
Añadimos otro
MOV(21) y le indicamos que mueva FFFF (una F son cuatro bits a 1) al canal 101.
Está muy bien explicado, pero le faltaría añadir las capturas de pantalla de los programas para poder entenderlo perfectamente.
ResponderEliminarAñádeselas.
Muy bien documentado.
ResponderEliminarFelicidades, un trabajo estupendo.