Mostrando entradas con la etiqueta Comunicación. Mostrar todas las entradas
Mostrando entradas con la etiqueta Comunicación. Mostrar todas las entradas

11 de abril de 2013

Primer contacto con un Simotion D435-2 DP/PN


Estoy involucrado en el proyecto de una máquina que va a llevar como control un Simotion D435-2 DP/PN. Aprovechando que me acaba de llegar la CPU voy a escribir una serie de entradas sobre como realizar su conexión, configuración y programación.

El manual de referencia que he consultado para la elaboración de esta entrada es el llamado SIMOTION D4x5-2 Commissioning and Hardware Installation Manual, disponible en formato PDF aquí. Para buscar más manuales sobre Simotion se puede seguir el siguiente enlace.

Para realizar estas pruebas el único material que voy a necesitar es una fuente de 24VDC, la tarjeta Compact-Flash que trae el firmware y las licencias, un cable ethernet, y la propia CPU.

Coloco la CPU sobre mi mesa y le instalo en la parte inferior el ruidoso ventilador que viene en el mismo embalaje, sin el cual el Simotion dará error. Quito la tapa azul inferior y alojo la tarjeta Compact-Flash en su ranura. Levanto la carcasa y en el conector X124 alimento a 24VDC. Finalmente conecto un cable ethernet entre la toma marcada con PN/IE X127 P1 en el frontal de la CPU y mi portátil. Doy tensión a la fuente y ya tengo todo lo necesario para hacer mis pruebas. El conjunto tiene sobre mi mesa el siguiente aspecto:


Para programar esta CPU voy a utilizar el software de ingeniería Simotion Scout V4.3.1.3 que tengo instalado en una máquina virtual bajo VirtualBox.

7 de octubre de 2012

Comunicación entre un PLC Beckhoff BC8150 y un panel Pro-face GP4105

En las entradas anteriores me preparé para la programación de un PLC Beckhoff BC8150. Al puerto serie de este PLC, haciendo la función de HMI, voy a conectar un panel táctil Pro-Face GP4105. En esta entrada voy a explicar los pasos que he dado para comunicar ambos dispositivos.


El protocolo de comunicación que se va a utilizar es Modbus RTU. En el PLC simplemente hay que darle una dirección entre 40 y 59 en los interruptores rotatorios que tiene en el frontal (con una dirección superior a 40 el PLC se configura automáticamente en Modbus RTU).

El cable de comunicación tendrá por un extremo un conector DB9 macho para el PLC y el otro lo embornaremos en el panel, con el siguiente conexionado:

3 de octubre de 2012

Preparativos para programar un PLC Beckhoff BC8150

Tengo entre manos un proyecto para el que hemos seleccionado un PLC Beckhoff BC8150. Es un PLC económico de gama baja que lleva incorporado un puerto serie RS232. En esta entrada voy a describir los pasos que tuve que dar para configurar la comunicación para programarlo.


En esta ocasión he instalado el software de programación TwinCAT (descargable gratuitamente desde aquí) en una máquina virtual. La conexión con el PLC será a través de un cable de programación serie, que ya tenía de proyectos anteriores. Mi portátil viene con puerto serie integrado, pero he notado que de vez en cuando pierde la comunicación, no recuperándola hasta reiniciar la máquina virtual. Sin embargo, usando un adaptador serie/USB con chipset Prolific el funcionamiento ha sido óptimo.

El BC8150 tiene dos ruedas numeradas donde se selecciona el protocolo y la dirección de comunicación. Si la dirección está entre 0 y 39 el protocolo será autoconfigurable. Entre 40 y 59 el protocolo será Modbus RTU. Para programar será necesario que la dirección sea inferior a 40 (más información aquí).

NOTA: Aunque físicamente hay dos conectores serie (el superior para programación con el cable de Beckhoff y el inferior para la conexión de dispositivos), internamente deben ser el mismo. Esto implica que si tenemos un dispositivo conectado al puerto DB9, para poder programar deberemos desconectarlo.

Con mi PLC alimentado y el cable serie conectado puedo empezar a configurar la comunicación. Sobre el icono de TwinCAT, con el botón derecho, pulso sobre Properties.

6 de abril de 2012

Mapeando una red DeviceNet en un controlador Logix5000

Cuando insertamos un escáner DeviceNet en un proyecto de RSLogix 5000, en las variables de ámbito del controlador (Controller tags) aparecen tres tags que nos servirán para establecer el diálogo con todos los elementos de la red. Local:1:I se refiere a los datos que leemos de la red, Local:1:O a los datos que vamos a escribir y Local:1:S a variables que nos van a permitir diagnosticar el estado de nuestra red (el 1 después de Local quiere decir que nuestro escáner está en el slot 1 del bastidor).

Tags para un escáner DeviceNet 1756-DNB
Los distintos dispositivos que hayamos configurado en nuestra red se mapearán en Local:1:I.Data para los datos de entrada (lo que leemos de los dispositivos) y en Local:1:O.Data para los datos de salida (lo que vamos a escribir). Estas variables son tablas de tipo DINT de tamaño máximo prefijado para cada tipo de escáner. Por ejemplo, para un escáner 1769-SDN de la gama CompactLogix tenemos 90 DINT (360 bytes) para entrada y 90 DINT para la salida, y para el escáner 1756-DNB de la gama ControlLogix esta capacidad se amplía a 124 DINT (496 bytes) para la entrada y 123 DINT (492 bytes) para la salida.

29 de marzo de 2012

Unas notas sobre redes DeviceNet

Recientemente he estado trabajando en instalaciones donde he tenido que poner a punto varias redes DeviceNet. Esta entrada es una recopilación de las acciones que he tenido que realizar, así como de las dificultades que surgieron y cómo las he solucionado.

DeviceNet es un bus de campo desarrollado por Allen-Bradley basado en el estándar CAN (Controller Area Network). Físicamente se compone de cuatro o cinco hilos de color rojo (CAN_V+), negro (CAN_GND), azul (CAN_HIGH), blanco (CAN_LOW) y, opcionalmente, la malla de color verde (CAN_SHLD). El cableado puede tener una longitud de 100, 250 o 500 metros, dependiendo inversamente de la velocidad de comunicación (500, 250 o 125 kbps) y del tipo de cable que usemos. En cada red DeviceNet se pueden colocar hasta un máximo de 64 nodos (numerados del 0 al 63). El protocolo DeviceNet da mayor prioridad a los nodos con una numeración más baja.

El modo de funcionamiento más habitual es maestro/esclavo con un único maestro por red, aunque puedan coexistir varios o establecerse comunicaciones de igual a igual (peer to peer). Entre los cables rojo y negro deberemos suministrar alimentación de 24 V. Es importante que provenga de una fuente de alimentación de calidad y es muy recomendable que usemos una fuente independiente para alimentar el bus. Esta misma alimentación puede usarse para alimentar dispositivos en el bus de campo (finales de carrera, detectores de proximidad, fotocéluas, etc).

El sistema de cableado DeviceNet usa una topología de línea de troncal/línea de derivación:

Imagen sacada del Manual de planificación e instalación DeviceNet de Allen-Bradley

2 de marzo de 2012

Comunicación por puerto serie a través de DeviceNet: ArmorPoint RS-232 ASCII

En la entrada anterior programé la comunicación serie de un lector de códigos de barras con un PLC CompactLogix a través de su puerto serie integrado. Ahora la aplicación ha cambiado y debo hacer la comunicación utilizando una tarjeta ArmorPoint RS-232 ASCII a través de DeviceNet.

Los ArmorPoint de Rockwell son módulos de periferia distribuida disponibles para buses de campo DeviceNet, ControlNet, EtherNet/IP o Profibus DP. A la cabecera DeviceNet que tengo disponible, referencia 1738-ADN18, le voy a acoplar una tarjeta de comunicaciones 1738-232ASCM12, que es una versión más robusta de una tarjeta 1734-232ASC, compartiendo la misma electrónica, por ello la documentación de referencia será la de esta última tarjeta: POINT I/O ASCII Modules 1734-232ASC, 1734-485ASC (PDF). El conjunto ensamblado de la cabecera ArmorPoint con mi tarjeta de comunicación serie tiene el siguiente aspecto:

Cabecera ArmorPoint con inteface serie sobre mi mesa, lista para hacer pruebas
(disculpad la calidad de las conexiones, a pesar del mal aspecto el conjunto funcionó sin problemas).

13 de febrero de 2012

Probando el puerto serie integrado en los PLC Logix5000

Recientemente he estado probando la comunicación entre un PLC Rockwell CompactLogix L35E y un lector de códigos de barras por puerto serie RS-232 en modo ASCII. En esta entrada voy resumir la configuración del puerto serie y la programación necesaria.

Todos los PLC de la gama CompactLogix vienen con un puerto serie incorporado. Para controlarlo existen instrucciones específicas Logix5000 que simplifican mucho el trabajo y que vienen detalladas en el documento de Rockwell "Instrucciones generales de los controladores Logix5000" (en español, en formato PDF), en el capítulo 17. Para hacer la configuración del puerto, el documento de referencia es "Cadenas ASCII de controladores Logix5000" (también en español y en PDF).

Controlador CompactLogix L35E con puerto serie incorporado
El lector del código de barras determina que voy a leer cadenas con el carácter de terminación CR (Carry Return), representado como '$r' o también como el código ASCII 13; la longitud de la trama a recibir o enviar no será superior a 256 caracteres y los parámetros de comunicación serie serán 9600 baudios, 8 bits, sin paridad y un bit de parada.

17 de enero de 2012

Probando un adaptador USB/MPI chino

Recientemente, en el foro de Siemens en infoPLC, me enteré de la existencia de un adaptador USB/MPI muy económico que se vende a través de ebay, total que hemos comprado uno. El pedido tardó unas tres semanas en llegar (dentro del plazo que especifica el vendedor). En el paquete venía el adaptador y un mini CD con los controladores:

(pulsar encima para ampliar)

La primera impresión es bastante lamentable, leer For SEMIES S7-300 no hace presagiar nada bueno. El cable mide unos tres metros y el adaptador en sí apenas tiene peso. La carcasa tampoco parece muy sólida y lo primero que he hecho es abrirla para curiosear la electrónica:

3 de octubre de 2011

Accediendo a un PLC Simatic a través de ethernet con Libnodave

En esta entrada usé la biblioteca libre Libnodave para acceder a un PLC S7-300 desde Visual Basic a través de un adaptador serie/MPI. Varios lectores me hicieron consultas sobre si era posible usarla para acceder a un PLC S7-300/400 a través de ethernet, pero al no tener disponible un controlador adecuado para hacer pruebas pues no tenía respuesta. Sin embargo, de la entrada anterior tengo preparada una máquina virtual con WinAC RTX y su puerto ethernet como puerto de comunicaciones, que creo que es un banco de pruebas ideal para hacer pruebas con Libnodave.

Lo primero que voy a hacer es un proyecto en Step7 con un único DB, por ejemplo el DB10, con un único dato de formato BYTE. Lo transferiero al WinAC y pongo el PLC software en modo Run. Me pongo on line y monitorizo la variable.


En el PLC no voy a tocar nada más. A continuación lo que haré será una aplicación en Visual Basic, usando la biblioteca Libnodave a través de ethernet, que se conectará al PLC y leerá y escribirá en esa variable como prueba que el sistema funciona.

30 de septiembre de 2011

Virtualizando WinAC RTX, el PLC software de Siemens

Después de estar trabajando con el SoftLogix de Rockwell sobre máquinas virtuales, me he preguntado si sería posible hacer funcionar al equivalente en Siemens, el WinAC RTX, en las mismas condiciones. Así que me he puesto manos a la obra y he instalado sobre una máquina virtual en VirtualBox con Windows XP el paquete Simatic NET V7.1 + SP1 y WinAC RTX V4.4 + SP1 con su correspondiente licencia. Toda la instalación transcurrió sin problemas:

WinAC RTX ejecutándose sobre una máquina virtual (pincha sobre la imagen para verla mejor)

Ahora el problema es poder configurarlo y programarlo desde otro equipo a través del puerto ethernet. En la web de Siemens hay una guía para hacerlo, está bastante clarita y los pasos que voy a ir explicando están basados en ella.

28 de septiembre de 2011

Comunicación entre controladores Logix5000: Mensajes

En esta entrada voy a resumir mis pruebas con la instrucción MSG de Logix. Usaré la misma configuración de la entrada anterior: dos máquinas virtuales con un SoftLogix en cada una que se comunicarán entre sí. El control de la mensajería la hará el primer controlador (SoftLogix A). En la segunda máquina virtual (SoftLogix B) simplemente voy a crear dos tags; en el primero, MENSAJE_DATOS_RECIBIDOS, estarán los datos que se escribirán desde el SoftLogix A. En el segundo, MENSAJE_DATOS_A_ENVIAR, pondré los datos que serán leídos desde el SoftLogix A. Y nada más, en el SoftLogix B no voy a hacer ninguna programación, simplemente voy a monitorizar los valores de ese par de tags.


Mis pruebas, por tanto, consistirán en, desde el SoftLogix A, leer y escribir a través de mensajes en los tags del SoftLogix B.

4 de septiembre de 2011

Comunicación entre controladores Logix5000: Tags producidos y consumidos

Para comunicar dos controladores de la gama Logix5000 existen dos opciones: Tags producidos/consumidos [PDF] o Mensajes. Los primeros simplemente se configuran de forma que no es necesario la intervención de instrucciones de programación para su difusión: lo que escribamos en un tag productor de un controlador se verá reflejado en los tags consumidores del controlador o controladores consumidores. Los mensajes, en cambio, precisan de la instrucción MSG para su difusión.

En esta entrada haré un resumen de mis pruebas con los tags productores/consumidores. Como no dispongo físicamente de ningún controlador CompactLogix o ControlLogix con el que trastear, he preparado dos máquinas virtuales con un SoftLogix en cada una, tal y como hice en esta entrada. Las ejecutaré simultáneamente en mi ordenador a la vez que la máquina virtual donde tengo el software de programación, lo cual supone tres máquinas virtuales simultáneas sobre mi portátil, que, aparte de calentarse más que una sartén, ha aguantado estoicamente.

Teniendo ya todo el sistema de pruebas preparado, lo primero será comprobar que los controladores se ven entre sí. Para ello ejecuto el RSLinx en cualquier máquina virtual y con la herramienta RSWho observo que aparecen mis dos controladores SoftLogix:


Ahora tengo que preparar dos proyectos (ver esta entrada), uno para el contolador productor (SoftLogix A) y otro para el controlador consumidor (SoftLogix B). No voy a hacer ninguna programación, simplemente voy a configurar un tag productor, cambiar su valor en la monitorización de tags y comprobar que el valor se transmite al tag consumidor.

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).

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):