Archive for febrero, 2010

Comunicación Profibus DP entre S7-300

febrero 24, 2010

A falta aún de sacarle jugo a la Cp 343-1 Advanced con el diseño de aplicaciones web integradas de control mediante el uso del HTML Code Generator de Siemens, nos metemos en uno de los sistemas más ampliamente usados en el ámbito de las comunicaciones industriales, que aunque poco a poco va siendo desplazado por sistemas más versátiles como Profinet, todavía tiene mucha vida por delante gracias a la gran cantidad de nodos profibus actualmente instalados.

Para comenzar por el principio, que suele ser lo más conveniente, os dejo un pequeño videotutorial de cómo realizar la configuración de la comunicación Profibus entre dos S7-300 mediante STEP7. El objetivo es intercambiar dos áreas de memoria entre dos S7-300 funcionando como Maestro/Esclavo. Pretendemos pues reflejar el byte de entrada EB124 de uno de los equipos (maestro) en el byte de salida AB124 del otro equipo (esclavo) y viceversa.

Es especialmente interesante la estructura de los dos bloques de programa OB1 que cargamos en cada uno de los autómatas. No olvidéis que a pesar de que las transferencias configuradas vía STEP7 son tan sencillas como AB0->EB0 en un equipo y AB0->EB0 en el otro, tenemos que mover a esos datos de salida (AB0) y de entrada (EB0) los respectivos valores EB124 y AB124 que queremos que se reflejen en cada uno de los equipos.

El siguiente paso es incluir a los S7-200 en las comunicaciones Profibus. Poco a poco se anda el camino. Espero que os resulte de utilidad.

Anuncios

Comunicaciones Ethernet con S7-300 (2)

febrero 19, 2010

Las comunicaciones entre equipos S7-300 y S7-200 de Siemens admiten varias configuraciones distintas. Debido a las características de la mayoría de los módulos de comunicaciones de los que disponemos, las comunicaciones de este tipo las hemos implementado haciendo funcionar siempre el S7-200 como cliente y el S7-300 como servidor a través de enlaces tipo TCP. No podemos olvidar que en una arquitectura Cliente-Servidor es siempre el primero el que maneja la comunicación. De este modo, hasta ahora ha sido el S7-200 el que realiza las peticiones de lectura/escritura al S7-300 mediante el uso de las funciones AG_SEND, AG_RECV, AG_LSEND y AG_LRECV.

Existe otro caso particular de comunicación entre equipos 300 y 200 que es el inverso: el 300 actuando de cliente y el 200 haciéndolo de servidor. Este tipo de comunicación tiene algunas exigencias adicionales en la configuración de la comunicación. Por un lado, el peso de la comunicación recae ahora en el cliente, que es el S7-300. Tenemos pues que tener la posibilidad de definir qué datos van a leerse o escribirse, dónde y de dónde. Por otro lado, necesitamos además que en la configuración del enlace de comunicación a través de STEP7 para el S7-300, podamos configurar un enlace no-especificado, ya que el equipo S7-200 queda fuera del alcance de la configuración a través de STEP7, y deberá configurarse como siempre a través de MicroWIN (qué ganas tengo de ver una versión STEP 7 integrada para todos los equipos Siemens…).

En el videotutorial que os dejo, vemos cómo puede realizarse la configuración de esta comunicación estableciendo un enlace de tipo S7, ya que naturalmente ambos equipos son Siemens y el módulo de comunicaciones CP 343-1 Advanced nos lo permite (cosa que no hacía el 343-1 Lean). Es especialmente interesante la configuración de los TSAP en la comunicación, así como el uso de las funciones FB14 y FB15 (GET y PUT respectivamente), que necesitan de la configuración de un DB específico y que permiten la lectura o escritura de datos en CPU’s externas.

En el siguiente documento de Siemens tenéis una magnífica explicación de la configuración de la comunicación entre equipos S7-200, S7-300 y S7-400 para diferentes supuestos de actuación (cliente / servidor) de cada uno de ellos. Lástima de las limitaciones de todos conocidas…

Nota: Teniendo en cuenta la caótica página web de Siemens, en ocasiones no es fácil encontrar material que solvente dudas sobre el uso de determinadas funciones de comunicación. No obstante, en el siguiente enlace tenéis sobrada documentación sobre uso de funciones de comunicación en Industrial Ethernet y Profinet, así como algunas soluciones a dudas y problemas comunes que pueden surgir. Y respecto al idioma, ya sabéis lo que hay. El que quiera peces…

La importancia de la estructuración

febrero 13, 2010

“Cualquier idiota puede escribir código que un ordenador pueda entender. Los buenos programadores escriben código que las personas puedan entender.” (Martin Fowler)

(Vía Mundo Geek)