martes, 8 de enero de 2013

Comunicación mediante Profibus DP.

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.
 Vamos a la biblioteca  SIMATIC  DP SEND y añadimos esta función.

 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.




2 comentarios:

  1. Está muy bien explicado, pero le faltaría añadir las capturas de pantalla de los programas para poder entenderlo perfectamente.

    Añádeselas.

    ResponderEliminar
  2. Muy bien documentado.

    Felicidades, un trabajo estupendo.

    ResponderEliminar