8 de marzo de 2010

Preparar un PC para comunicar con un PLC Beckhoff a través de Ethernet

Supongamos la siguiente situación: tengo un PLC Beckhoff con el que realizo intercambio de datos para mostrarlos en una aplicación hecha en Visual Basic (o .NET) a través de Ethernet (ver esta entrada). En el ordenador con el que he hecho la programación no hay problemas, la comunicación es impecable, pero si nos llevamos el ejecutable del programa (con sus respectivas bibliotecas DLL y similares) a otro PC nos vamos a encontrar con que no funciona.

El motivo es que la comunicación con el PLC se hace a través de un enrutado propio de Beckhoff: AMS Router. Por lo tanto es imprescindible instalar TwinCAT en todos los PC que vayan a ejecutar la aplicación. En el proceso de instalación es suficiente con seleccionar la opción TwinCAT CP, que es el controlador de Beckhoff para paneles de control (Control Panels).

Advertencia: es imprescindible que el sistema operativo del PC sea de 32 bits, yo lo he probado con éxito sobre un Windows 7 Starter.

Una vez instalado reiniciamos el PC y en el arranque aparecerá la siguiente pantalla (que hasta donde yo sé, no se puede ocultar):


También aparecerá en la bandeja del sistema el icono de TwinCAT, desde donde podremos abrir el System Manager.


El System Manager nos servirá para buscar en la red el PLC e incluirlo en el AMS Router, para ello, verificando previamente que tenemos el PLC funcionando y conectado en red, pulsaremos sobre 'Choose target...' y en la ventana que aparece sobre 'Search (Ethernet)'.


Tenemos el diálogo para añadir una ruta. Marcaremos en 'Address Info:' la casilla 'IP Address' y pulsamos 'Broadcast Search'.


Si todo va correctamente en breve aparecerá nuestro PLC, solo tenemos que seleccionarlo y pulsar en 'Add Route'.


Nos pedirá una contraseña para el administrador del sistema operativo del PLC, que si no la hemos modificado será una cadena vacía o un espacio, dependiendo del modelo de PLC.


Ya solo nos queda seleccionar nuestro PLC como Target System, así que lo marcamos y pulsamos 'OK'.


Y listo, ya tenemos comunicación con nuestro PLC.


Para comprobar que nuestro PLC aparece en el AMS Router vamos al icono de TwinCAT en la bandeja del sistema, con el botón derecho seleccionamos 'Properties' y en la pestaña AMS Router debe figurar el PLC.


Listo, ahora si ejecutamos nuestra aplicación en Visual Basic debería comunicar perfectamente con el PLC.

Ahora una advertencia: el System Manager, tal y como lo tenemos en esta situación no tiene asignado el programa del PLC, simplemente lo usamos para añadir la dirección del PLC al AMS Router. Si se nos ocurre pulsar el botón de 'Activar la configuración' y aceptamos... ¡¡¡borraremos el programa del PLC!!!

Comentando este problema con un técnico de Beckhoff me planteó limitar el acceso del usuario final al System Manager. Lo primero sería borrar los accesos al software de Beckhoff del menú de inicio de Windows:


Y también debemos limitar el acceso desde el icono del TwinCAT en la bandeja. Para ello es necesario modificar una entrada del registro, así que ejecutamos el editor de registro de Windows 'regedit' y buscamos:
HKEY_LOCAL_MACHINE\SOFTWARE\Beckhoff\TwinCAT\System\SysPopupMenuType


Tiene valor 2 y lo cambiamos a 1.


Con esto pasamos de un menú como este (por error lo instalé en alemán):


a este otro sin acceso al System Manager:


Hemos dificultado el acceso de un usuario a aplicaciones peligrosas, aunque realmente siguen instaladas en nuestro PC. Si un usuario ejecuta el System Manager es porque con toda probabilidad lo conoce y sabe donde está. En mi opinión este es un tema a mejorar y accesos que puedan afectar al funcionamiento de la máquina deberían estar protegidos con contraseña.

Agradeceré cualquier comentario.

6 comentarios:

  1. Buenas. Aquí un seguidor de tu magnifico Blog.

    Bueno quería comentarte algo que he encontrado en un foro:
    http://www.plctalk.net/qanda/showthread.php?t=42909
    Este Archi, del foro dice lo siguiente:
    There are about 3 ways to tackle this problem.

    1) Install TwinCAT on the PC as a trial version and leave it in config mode. The trial is only for the run time, so as long as it stays in config, it will not expire.

    2) Install the ADS commiunication library on the PC and use TcAmsRemoteMgr.exe to set up router. You will have to set it up manually on the PC and then on the PC that is running TwinCAT.

    3) Private message me an email address and I will send you a VB subroutine that lets your application silently do the registering on both PC's. It's fairly easy to convert it to C#

    ResponderEliminar
  2. David, gracias por tu comentario.

    ResponderEliminar
  3. Soy nuevo con este tipo de Plc y recientemente adquirí un Plc beckoff bc9000 me gustaría saber que tipo de cable necesito para programarle de antemano gracias y un saludo

    ResponderEliminar
  4. Cualquier duda o comentario mi correo es thanatos_jetro27@hotmail.com gracias!!

    ResponderEliminar
  5. Hola.Necesito saber si existe una versión para Windows 10 86 bit

    ResponderEliminar

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