Posts Tagged ‘siemens’

Mar
11

SpainSkills 2017 – Control Industrial

Del 1 al 3 de Marzo se han celebrado en el recinto de IFEMA, en Madrid, los campeonatos nacionales de formación profesional SpainSkills 2017, entre los cuales he tenido la suerte de poder participar representado al MECD en la disciplina de Control Industrial.

Jurado y competidores Control Industrial SpainSkills 2017

Ha sido un verdadero placer poder compartir experiencias y aprendizajes de la mano de Siemens SCE (sin ellos difícilmente podría organizarse algo así en términos de calidad) y sus más que excelentes profesionales, a la vez que poder poner cara, conversar y aprender con auténticos colosos del mundo formativo del sector de la automatización y robótica industrial como Juan Carlos Martín Castillo, Vincenç Guerrero, José Ángel Alonso, Rául Sáenz y tantos otros con los que he tenido la suerte de poder compartir momentos, aunque lamentablemente escasos, y a los que, al fin, he logrado ponerles cara.

El nivel de los competidores ha sido absolutamente espectacular, entre los que mención especial requiere Nahuel Arce-Leal Díaz, tutorizado por Javier Merino de la Hoz, del IES Zapatón de Torrelavega, que con un asombroso concurso y regularidad ha conseguido llevarse la medalla de oro de la disciplina.

Difícilmente, pese al duro trabajo de estos días, se puede aprender tanto en tan poco tiempo. Un auténtico placer que espero que dentro de 2 años vuelva a repetirse, sea cual sea el papel a desempeñar.

Dic
24

Referencias de multivelocidad desde terminal en Siemens Micromaster 440

Una de las prácticas que estamos llevado a cabo estos días implica definir referencias de multivelocidad con el variador de frecuencia Micromaster 440 de Siemens desde el terminal, teniendo que parametrizar previamente el mismo.

Siemens Micromaster 440

De esta forma, empleando 3 entradas digitales podemos establecer 3 consignas de frecuencia diferentes para 3 velocidades distintas. El proceso es un poco tedioso, ya que hay que echar mano de los parámetros BiCo (Binary Connectors) del variador de frecuencia, y que básicamente permiten programar de forma flexible funciones más o menos complejas, relacionando para nuestro caso sets de parámetros a estados de entradas digitales. El procedimiento viene bastante bien documentado en la página de soporte de Siemens, pero con objeto de proporcionar una pequeña ayuda adicional, podemos hacer un resumen general del procedimiento.

La posibilidad de definir 3 consignas diferentes de frecuencia, cada una de ellas activada mediante una entrada digital del terminal, se basa en los parámetros indexados del MM440 frente al MM420: es posible almacenar diferentes valores de parámetros, cada uno de ellos bajo un índice (In000, In001 e In002), de forma que sea posible cambiar entre los valores de los parámetros ante, por ejemplo, como es nuestro caso, el cambio de una entrada digital.

Hay dos tipos de sets de parámetros en el MM440/MM430: CDS (Command Data Set o Juego de datos de comando) y DDS (Drive Data Set o Juego de datos de accionamiento). Los parámetros indexados pueden pertenecer bien al CDS o bien al DDS. La mayor parte de los parámetros tiene 3 índices diferentes (In000, In001 e In002) que pueden ser habilitados. Por defecto, el índice In000 es el que está activo.

La forma más cómoda de definir valores de índice para los parámetros es programar todos los parámetros para In000, y luego copiar estos valores a los índices In001 e In002, modificando posteriormente los valores deseados.

Para ello se emplean los parámetros P0809 [3] y P0819 [3], que permiten copiar el CDS/DDS de un índice a otro.

En este caso trabajaremos con los parámetros:

Parámetros_1

Parámetros_2

El mejor modo de ver el proceso completo es ilustrarlo mediante un ejemplo. De cara a hacerlo todo más sencillo, lo haremos con el mismo ejemplo de la página de Siemens Support. Supongamos que un motor tiene que funcionar con 3 frecuencias diferentes, cada una de ellas con diferentes rampas de aceleración / deceleración, y que deseamos activar estas 3 frecuencias empleando 3 entradas digitales, por ejemplo:

Entrada Digital Frecuencia Rampa aceleracion Rampa deceleracion
DIN1 20 Hz 10 s 10 s
DIN2 30 Hz 5 s 5 s
DIN3 40 Hz 1 s 1 s

Para poder conseguirlo será necesario definir 3 juegos de parámetros, cada uno de ellos en los 3 índices diferentes de diversos parámetros, cambiando entre ellos según la entrada digital activada. Programaremos en primer lugar los parámetros normales del In000 activados mediante DIN1, y programaremos posteriormente DIN2 y DIN3 mediante configuración BiCo.

1. Supongamos que los valores referidos al motor ya han sido configurados en sus respectivos parámetros y se ha realizado una puesta en marcha rápida. Deberemos ahora establecer el control desde el terminal (P0700[0]=2) y trabajar mediante frecuencias fijas (P1000[0]=3). Podemos también establecer los valores correspondientes a In000:

Parámetro / Valor Comentario
P1120[0]= 10s Rampa de aceleración de DIN1 = 10s
P1121[0]= 10s Rampa de deceleración de DIN1 = 10s
P1001[0]= 20 Hz Frecuencia fija 1 activada mediante DIN1 = 20Hz
P0701[0]= 16 DIN1 configurada como frecuencia fija + RUN

2. Preparamos ahora las entradas DIN2 y DIN3 para configuración BiCo, es decir, para poder descargar en ellas todo el juego de parámetros definido para DIN1, copiando posteriormente el In000 en los In001 e In002. Configuramos para ellos P0702[0] y P0703[0] a 99.

3. A continuación, para operar de la forma más cómoda posible, copiaremos el juego de parámetros definidos con el índice In000 en los índices In001 e In002. Dado que los parámetros frecuencia fija (P1001, P1002, P1003…), tiempo de aceleración (P1120) y tiempo de deceleración (P1121) pertenecen al DDS, copiaremos el juego de parámetros DDS del In000 (Set 0) al In001 (Set 1) e In002 (Set 2) de la siguiente forma:

Copiar DDS del Set 0 al Set 1: realizamos en orden las operaciones…

Parámetro / Valor Comentario
P0819[0]= 0 Copia el set DDS desde el Set 0
P0819[1]= 1 Pega el set DDS en el Set 1
P0819[2]= 2 Inicia la copia (tras realizar la copia vuelve otra vez a 0)

Copiar DDS del Set 0 al Set 2: realizamos en orden las operaciones…

Parámetro / Valor Comentario
P0819[0]= 0 Copia el set DDS desde el Set 0
P0819[1]= 2 Pega el set DDS en el Set 2
P0819[2]= 2 Inicia la copia (tras realizar la copia vuelve otra vez a 0)

4. Como se han configurado las DIN2 y DIN3 como BiCo en el paso 2, es posible ahora configurar en P0820 y P0821 la fuente de órdenes desde la cual se leen los sets 1 y 2 previamente configurados. Deberán aparecer los valores 722.1 y 722.2, de forma que configuramos:

Parámetro / Valor Comentario
P0820 = 722.1 Configuramos DIN2 (722.1) como fuente de órdenes para el Set 1
P0821 = 722.2 Configuramos DIN3 (722.2) como fuente de órdenes para el Set 2

5. Procedemos a configurar las diferentes rampas de aceleración / deceleración:

Parámetro / Valor Comentario
P1120[1] = 5 Aceleración de 5 segundos para In001 (Set 2 activado mediante DIN2)
P1121[1] = 5 Deceleración de 5 segundos para In001 (Set 2 activado mediante DIN2)
P1120[2] = 1 Aceleración de 1 segundos para In002 (Set 3 activado mediante DIN3)
P1121[2] = 1 Deceleración de 1 segundos para In002 (Set 3 activado mediante DIN3)

6. Establecemos por último las frecuencias fijas a las que funcionará el Set 1 y el Set 2:

Parámetro / Valor Comentario
P1001[1] = 30 Hz Frecuencia fija de Set 1 = 30 Hz y posterior RUN
P1001[2] = 40 Hz Frecuencia fija de Set 2 = 40 Hz y posterior RUN

Tenemos ya configurados los sets 1 y 2 de parámetros, activados respectivamente con DIN2 y DIN3, por lo que podemos ya, en función de la DIN activada, hacer funcionar a nuestro motor a consignas de frecuencia distintas, cada una de ellas con sus respectivas rampas de aceleración / deceleración. Es muy importante tener en cuenta que los parámetros CDS pueden cambiarse con el motor funcionando, y su cambio tendrá un efecto inmediato, pero por contra los parámetros DDS (como es nuestro caso) normalmente (con algunas excepciones) sólo pueden ser cambiados con el motor parado. Podemos comprobarlo intentando cambiar de forma directa de DIN1 a DIN2 o DIN3 sin desactivar previamente la entrada de origen.

 

Abr
23

Introducción al control PID con S7-1200 de Siemens.

Las últimas semanas he tenido la suerte y el gusto de poder estar en el IES Sáenz de Buruaga de Mérida impartiendo junto con David Pecellín un curso de Introducción a los Autómatas Programables con S7-1200 de Siemens, partiendo desde el control digital y llegando hasta el control analógico y control PID con estos dispositivos, gracias a la colaboración del fantástico departamento de Instalación y Mantenimiento del centro y a la magnífica organización de la asesoría de FP y Tecnología del CPR de Mérida.

Parte del material generado es una adaptación del generado anteriormente para el curso del IES San Roque de hace poco, pero parte es completamente nuevo. Quizá lo más interesante son los fundamentos del control PID y la implementación para estos dispositivos, que aquí dejo por si a alguien le puede resultar útil.

Un placer trabajar así, y espero que se repita la experiencia con el próximo curso de Arduino.

Feb
17

Autómatas Programables en las Instalaciones Térmicas y de Fluidos

Recientemente he estado dando un curso en el IES San Roque de Badajoz organizado por el CPR de Badajoz sobre Introducción a los Autómatas Programables y su aplicación a las Instalaciones Térmicas con tecnología Siemens (s7-200 y S7-1200) y he tenido que elaborar material para el curso que dejo aquí colgado por si a alguien le puede interesar para sus clases.

Siempre es un placer volver por allí y pasar buenos ratos en unos magníficos departamentos de Instalación & Mantenimiento y Energía & Agua, a pesar tristemente del equipo directivo de centro.

Mil gracias a los compañeros y asistentes que han hecho este material posible.

May
26

Temporización discontinua & Ethernet Multicast

Llevo tiempo sin publicar nada en el blog. Disculpad si alguien, remota posibilidad, lo sigue habitualmente. Un último mes complicado. Para ir entrando un poco en materia, os dejo algunos apuntes que últimamente me han llamado la atención: algunos ajenos, y otros propios.

No hace mucho me surgió un problema parecido al que de forma detallada y fantásticamente explicado se refleja en el artículo que os enlazo del estupendo blog Notas de Automatización: el problema radica en realizar una temporización discontinua, de forma que el contaje temporal de dosificación de un líquido sea fijo independientemente de las interrupciones que éste pueda sufrir en su flujo. Naturalmente el problema se basa en almacenar las temporizaciones en memorias intermedias, pero no es evidente. Como podréis ver, se encuentra resuelto en notación KOP, estupendamente detallado, comentado y explicado. Sabéis no obstante los que me conocéis la manía que tengo de tender siempre al AWL… lo reservaremos como ejercicio para el curso que viene.

Por otro lado, os dejo un pequeño videotutorial de un problema que hemos planteado hoy en las clases de recuperación de Comunicaciones Industriales. La comunicación Multicast sobre Ethernet, empleando 3 S7-300 con CPU 314C-2DP y sus respectivos módulos CP 343-1 Lean. Para ello hemos creado 2 grupos Multicast, uno compuesto por las CPUs 1 y 2 y otro por las CPUs 2 y 3. Recordad que los enlaces deben ser siempre enlaces UDP de tipo Multicast, y por supuesto el identificador IP de cada grupo debe ser diferente, así como el puerto de comunicación. Sin más, os dejo el video. Para que esta vez no se eternice el tiempo entre posts, pronto tendré otro preparado para hornear. Posiblemente no de videotutoriales ni material, pero igualmente interesante para conocer la triste realidad de nuestra familia profesional.

 

Mar
02

Comunicación Profibus entre S7-300 y S7-200

Para seguir, en el ya poco tiempo que nos queda de curso en Comunicaciones Industriales, con el tema de Profibus, os pongo otro videotutorial que detalla un poco, en la medida que permite una grabación de escritorio, la forma de configurar la comunicación entre un equipo S7-300 y un S7-200 de la gama SIMATIC.

Dado que el S7-200 funciona siempre en modo esclavo en Profibus DP a través del módulo EM 277, toda la comunicación se configura desde STEP7 para el S7-300, siendo necesario a través de MicroWIN programar únicamente los movimientos de datos necesarios para la transferencia desde el área V del S7-200.

Algunos datos interesantes que me gustaría destacar de la configuración de los equipos:

– De cara a poder enlazar en modo esclavo el módulo EM 277 del S7-200, es posible que sea necesaria para la versión 5.4 de STEP7 la instalación del archivo GSD del módulo. Un archivo GSD no es más que un paquete de datos de configuración necesario para algunos equipos de la gama Siemens, a modo de una actualización de Hardware personalizada. Tras la descarga del GSD, su instalación no suele ofrecer problemas. Si los ofrece (en algunas versiones de STEP7 v5.3 puede ser así), siempre podemos recurrir a la solución de “fuerza bruta” descrita en el video. Os aseguro que funciona.

– Es fundamental tener en cuenta que el a partir del byte especificado en la configuración de STEP7 del área V del S7-200, primero irán los datos de Entrada (entran en el S7-200), y luego los de Salida (salen del equipo). Por tanto, si seleccionamos una transferencia de 2 Bytes Out/2 Bytes In a partir del VB10, tendremos que VB10 y VB11 serán los bytes donde se vuelquen los datos de entrada en el 200, mientras que VB12 y VB13 serán los que reflejen los datos de salida del mismo con dirección a otros equipos (en este caso, el S7-300).

– No podemos olvidar bajo ninguna circunstancia configurar la dirección Profibus DP del EM 277 con las ruedas codificadas, y por supuesto, comprobar la posición de las resistencias de terminación de los conectores del Bus.

Sin más, os dejo el videotutorial. Espero como siempre que os sea útil para recordar conceptos y para asentar los que ya tengáis.

Feb
24

Comunicación Profibus DP entre S7-300

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.

 

 

Feb
19

Comunicaciones Ethernet con S7-300 (2)

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…

Ene
31

Comunicaciones Ethernet con S7-300 (1)

Las comunicaciones Ethernet son, salvando Profinet y la cantidad de nodos aún instalados de Profibus en todos sus perfiles, quizás las más versátiles en cuanto a la posibilidad de integración de distintos sistemas y a la salida a redes de área extensa. Es por ello que en los últimos años han sido los estándares 802.3 de Ethernet y también el 802.11 de Wireless los más adoptados para la comunicación en sistemas industriales de cierta entidad.

Para ilustrar las posibilidades de comunicación de los S7-300, iremos poco a poco realizando ejemplos cada vez más complejos hasta donde las posibilidades físicas de material, conocimientos, y fundamentalmente tiempo, nos dejen evolucionar.

Como hay que comenzar por algún sitio, lo haremos por el principio, que suele ser lo más conveniente. Veremos cómo realizar una comunicación simple entre dos S7-300, funcionando uno como cliente y otro como servidor, y haciendo uso de las funciones integradas de los módulos CP. En este caso, trabajaremos en ambos equipos con los módulos de comunicaciones Ethernet CP 343-1 Lean. Estos módulos tienen algunas limitaciones de cara a la comunicación Ethernet, como veremos más adelante, pero para este sencillo ejemplo nos serán suficientes.


Mediante las funciones de librería de los módulos CP AG_SEND (FC5) y AG_RECV (FC6) realizaremos el envío de datos de la palabra EW124 de un equipo (llamémosle S7-300 (1)) a la palabra AW124 de otro (S7-300(2)). A diferencia de lo que ocurría con las comunicaciones MPI, en este caso para la transferencia de datos deberemos hacer uso de ambas funciones. La primera de ellas (AG_SEND) nos enviará los datos de la CPU al búfer de comunicaciones del módulo CP, y de ahí al equipo especificado en el enlace definido, y la segunda función (AG_RECV), recogerá los datos del enlace en el búfer del segundo módulo CP, y se los enviará al equipo receptor.

Para este ejemplo pueden usarse varios tipos de enlace. Normalmente (salvo casos particulares que iremos desgranando), para realizar comunicaciones entre equipos Siemens podemos hacer uso de los enlaces S7 por su rapidez y simplicidad a la hora de identificar los equipos. Si además es necesario traspasar la frontera de los equipos industriales y llevar estos datos a otras redes, recurriremos como en este caso a los enlaces TCP.

Como mejor se ilustra el ejemplo es con una explicación in situ. Así pues, ahí va como de costumbre el videotutorial.

 

 

Ene
17

Comunicaciones MPI entre S7-300 (2)

En el anterior post os contaba cómo configurar dos (o más) S7-300 en una red MPI de cara a realizar transferencias de datos entre ellos mediante la configuración de datos globales.

Existe un segundo método aún más versátil que nos permite realizar la lectura y escritura de datos desde un equipo S7 en interlocutores externos, haciendo uso de dos funciones integradas como son la SFC 67 (X_GET) y la SFC 68 (X_PUT), y que vienen incorporadas en la CPU que estamos usando, que es la 314C-2DP.

Haciendo uso de estas funciones podemos, al igual que ocurría en las comunicaciones PPI con los S7-200, leer o escribir datos entre maestros de red mediante una comunicación multipunto. De esta forma, X_GET nos permitirá leer datos externos de otro equipos S7, mientras que X_PUT nos pemitirá escribirlos. De hecho, ambas funciones no tienen por qué usarse simultánemente: si configuramos un equipo para escribir datos en otro, no es necesario que configuremos el segundo para leerlos (los datos ya se encuentran escritos).

En el ejemplo de este videotutorial iremos un poco más allá. Dado que ambas funciones, X_PUT y X_GET requieren para su ejecución de una condición de entrada de activación (REQ o Request to Activate), haremos lo siguiente: en el equipo S7-300(1) configuraremos una escritura en red cuando se active la entrada E 124.0. Esta escritura en red se encargará de transferir esta condición de entrada a la marca M0.0 del equipo S7-300(2), que a su vez será la REQ de este otro equipo, de modo que al recibir esta escritura, se desencaderá su X_GET, que se encargará de recoger el estado del byte de entradas E125 del equipo (1) y transferirlo (leerlo) al byte A125 de salidas del equipo (2).

Naturalemente, esta transferencia podría simplificarse en una sola, pero de esta forma observamos la coordinación y uso de ambas funciones de modo simultáneo.

Por cierto, desde ahora, y no sé si permanecerá así o no (aún sigo buscando fórmulas de eficiencia y comodidad), todos los videotutoriales los subiré a Vimeo, ya que lamentablemente YouTube tiene un límite de 10:00 minutos de duración para los videos subidos. A continuación, el videotutorial.

 

Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Spain
This work by José María Delgado is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Spain.