7 de junio de 2011

Comunicando con un PLC CompactLogix L32E

Recientemente he estado unas horas con un técnico de Rockwell en las que he recibido unas pinceladas de cómo empezar a enfrentarme a la familia de PLC CompactLogix. Voy a ir redactando una serie de entradas con mis avances y, aunque todo lo que escriba lo habré probado previamente, es posible que cometa errores e imprecisiones. Si ves algo que está mal o conoces alguna forma más simple o más correcta de hacer algo de lo que aquí describo, te agradeceré un comentario.

El PLC en concreto con el que voy a hacer pruebas es un CompactLogix L32E, acompañado de una fuente de alimentación y una tarjeta de 16 salidas digitales, más la correspondiente tapa de final de bus. El PLC conectado y funcionando sobre mi mesa tiene el siguiente aspecto:


Como características más destacadas decir que tiene 750 kb de memoria de usuario, una ranura para Compact Flash, un puerto de comunicaciones serie y un puerto ethernet. Puede expandirse con un máximo de 16 módulos. Tienes las características detalladas en la página de Rockwell (PDF).

Como el cliente para el que está destinado el PLC tiene estandarizadas versiones de software antiguas, voy a utilizar una máquina virtual con Windows 2000 donde voy a instalar todos los programas: RSLogix 5000 (programación de PLC), RS View ME (programaciónd de HMI), RSNetWorx (configuración de redes) y RSLinx (gestión de comunicaciones). El técnico de Rockwell tenía todo esto montado sobre VMWare. Aprovechando que tengo varias máquinas con Virtual Box, he preparado una máquina virtual con esta última, funcionando también correctamente. Para tener comunicación a través del puerto ethernet simplemente hay que tener la precaución de poner el puerto ethernet virtual en modo puente (bridge) y asignar en el Windows 2000 una dirección IP y máscara coherentes con nuestra red (la primera vez tuve que reiniciar tanto mi máquina virtual como mi ordenador para que funcionase).

El PLC CompactLogix L32E viene de fábrica con IP dinámica. Para poder realizar una comunicación con el RSLogix 5000 tiene que tener asignada una IP fija. Para asignarle esta IP fija podemos conectarnos a través del puerto serie o, como haré yo, através del puerto ethernet. Para esta última opción Rockwell suministra la aplicación BOOTP/DHCP Server, que busca en la red dispositivos para poder direccionarlos. En menos de un minuto, si el PLC está conectado correctamente a nuestra red, el BOOTP/DHCP Server delatará su presencia mostrándo su dirección MAC.


Si hacemos doble clic sobre el dispositivo detectado podremos asignarle una dirección IP (que tiene que ser coherente con la configuración de nuestra red).


Al cabo de unos segundos deberá ya aparecer nuestro PLC con la dirección IP asignada.


En mi caso me conecto al PLC a través de un switch, pero me podría conectar directamente con un cable ethernet cruzado.

Cerramos el BOOTP/DHCP Server pues ya no lo necesitaremos más. Ahora vamos a abrir el RSLinx. Lo primero que deberemos hacer es configurar los controladores (drivers) para comunicarnos con el PLC. Para ello vamos Communications -> Configure drivers...


En el menú desplegable seleccionamos EtherNet/IP Driver.


Al pulsar sobre Add New... nos pedirá un nombre para el controlador.


Al aceptar nos preguntará por qué adaptador de red se hará la comunicación, en mi caso dejo seleccionado Windows Default.


Aceptando nuevamente deberemos tener nuestro controlador funcionando (Running).


Cerramos la ventana de configuración de controladores y vamos a ver si tenemos comunicación con el PLC. Para ello vamos al menú Communications -> RSWho


Y vemos que figura el controlador AB_ETHIP-1 que acabamos de configurar.


Pulsamos sobre el controlador y veremos como empieza a parpadear su icono, señal de que está buscando dispositivos. En breve deberá aparecer nuestro PLC y todos los puertos y tarjetas que tengamos conectados.


Ahora pulsamos el botón derecho del ratón sobre el puerto ethernet del PLC y vamos a Module Configuration.


Y en la pestaña Port Configuration nos aseguramos que esté marcada la opción Static, para que no pierda la dirección IP cuando apaguemos el PLC, y además podremos modificar la IP y la máscara de red.


Y listo, ya tenemos nuestro PLC configurado y comunicando para empezar a trastear con él.

Hasta aquí esta primera toma de contacto. Cualquier comentario será bienvenido.

8 comentarios:

  1. Hola.
    De antemano felicidades por tu aportacion estubo mmuy bien explicado todo.

    pero tengo una duda amigo?.. mira yo estoy utilizando un CompactLogix L23E y ya antes de le programo una direccion IP ahora necesito cambiarla y no se como hacerle, utilice lo ultimo que me explicaste pero ni siquiera me sale el modulo de configuracion. si puedes ayudarme en eso te lo agradeceria mucho mi correo es cesar.zuniga@customco.com.mx gracias amigo..

    ResponderSuprimir
  2. Hola César,

    por lo que tengo entendido la forma de cambiar la dirección IP es tal y como muestro en las dos últimas capturas de pantalla.

    Que no te salga la opción de "Module Configuration" me resulta extraño, ¿estás pulsando con el botón derecho del ratón sobre el componente correcto?

    También puedes cambiar la IP desde el RSLogix 5000: en el árbol de proyecto, en el apartado "I/O Configuration", pulsas sobre con el botón derecho sobre el puerto Ethernet y vas a "Properties". En la ventana que te sale, en la pestaña "Port Configuration" también puedes cambiar la dirección IP.

    Un saludo y suerte.

    ResponderSuprimir
  3. Bien explicado, por ejemplo en tu caso de la ip 192.168.0.150, si yo me comunicaría remotamente por vía web, ingresando desde internet la IP, me visualizará el status del PLC?

    gracias
    atte
    Luis Cibrian

    ResponderSuprimir
  4. Hola Luis, la IP 192.168.0.150 es una dirección de mi red local. Supongo que se podrá acceder vía web, pero aún no he investigado sobre el tema.

    Un saludo y gracias por el interés.

    ResponderSuprimir
  5. Muchas gracias por compartir tu experiencia!!!! y felicidades también!!!!!!!

    ResponderSuprimir
  6. Saludos Vigo
    te agradecería me ayudes con la creación de trends en el Plc 1769 compct logix L32E, ya que necesito realizar los trends de 4 variables con datos tomados cada segundo en lapsos de 24 horas, quisiera saber la capacidad de memoria que necesitaria.

    muchas muchas gracias

    ResponderSuprimir
  7. Hola Mari,

    la verdad es que no te puedo ayudar mucho, pero he visto una aplicación similar a lo que tu quieres: un PLC enviaba unos datos en mensajes a través de Ethernet a un servidor que los recogía con una aplicación hecha en Visual Basic. Pero no conozco los detalles de la aplicación.

    En este caso no era necesario almacenar el histórico en la memoria del PLC.

    Lamento no ser de mucha ayuda, un saludo y suerte.

    ResponderSuprimir
  8. Estoy utlizando un PLC compactlogix L32E que vino de fabrica , para poder realizarle la comunicacion con el RSLogix 5000 se le asigno una IP fija utilizando la opcion Rockwell BOOTP/DHCP Server,tambien se actualizo el firmware 16.1 pero cuando descargo y se paso a modo Run el PLC antes del minuto entro en falla I/O del controlador sale Error CODE 23 no responden las I/O.favor le agradezco me puedan ayudar..saludos

    ResponderSuprimir

Por favor, no pidas copias de programas comerciales, licencias o números de serie.