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:

16 de enero de 2012

Modificando tiempos en un PLC S7 desde WinCC Flexible RT

Recientemente me ha tocado actualizar el programa de una máquina que llevaba un panel táctil realizado en ProTool. En este proyecto hay una serie de tiempos configurables desde el panel y me llamó la atención que estaban enlazados a variables en formato WORD, haciendo la conversión a formato S5TIME en el PLC, con segmentos como el siguiente:


El valor se recibe en un WORD, se copia en un INT, que vuelve a ser un WORD después de la instrucción I_BCD, se le añade la base de tiempo con la instrucción WOR_W, para finalmente moverlo a la variable en formato S5TIME definitiva.

No es la primera vez que me encuentro con conversiones similares, pero como no estaba del todo seguro de cómo trata WinCC Flexible directamente las variables de tipo S5TIME, pues nada mejor que hacer una sencilla prueba.

26 de diciembre de 2011

Probando un servomotor Posmo A para posicionamiento simple (parte 2ª)

Habiendo dejado en la entrada anterior el Posmo configurado, ahora toca realizar un proyecto en Step7 para controlarlo. Como maestro Profibus voy a usar un PLC S7-315-2DP al que voy a conectar una tarjeta simuladora de entradas / salidas digitales para dar las órdenes necesarias al servomotor y visualizar su estado.


Alimento el PLC y el servomotor, conecto el cable Profibus entre ambos y al borne 1 del servomotor un detector inductivo que hará las veces de leva de referenciado.

Ejecuto el Administrador Simatic y creo un proyecto vacío. Inserto un equipo Simatic 300 y abro la configuración hardware. Inserto mi referencia de PLC, la tarjeta simuladora, creo una red Profibus y finalmente añado el Posmo, con lo que me quedaría algo como esto: