HPR4738: Controles de Lógica Programable - Episodio 4

Por Whiskeyjack30/09/2026 às 00:00197 visualizaciones
Foto: CC BY-SA / Hacker Public Radio
🎙 Whiskeyjack · Hacker Public Radio

Este programa ha sido marcado como "Limpio" por el anfitrión.

--------------------

01 Introducción

Este es el cuarto episodio de una serie de 8 partes.

02

En el episodio anterior examinamos el Allen Bradley PLC2, uno de los Controladores Lógicos Programables (PLC) más tempranos y exitosos.

En este episodio, analizaremos otra serie de PLCs tempranos, la serie Siemens S5, y la utilizaremos como ejemplo de cómo los PLCs se volvieron más sofisticados, así como de un enfoque diferente en la arquitectura de software general.

Una vez más, solo tocaré este tema de forma ligera, este no es un curso sobre cómo programar PLCs.

Sin embargo, le daré suficientes detalles técnicos para darle una idea aproximada de cómo eran.

--------------------

Antecedentes históricos 03 S5

Siemens son el mayor proveedor de PLC a nivel mundial, y lo han sido desde los primeros días.

Su primer PLC fue el S3, lanzado en 1975, dos años antes de que Allen Bradley lanzara el PLC2.

Parece que hay muy poca información disponible sobre el S3, así que no puedo decir mucho al respecto.

En 1978 o 1979, según fuentes que no aclaran la fecha exacta, Siemens lanzó la serie S5.

Esto representó un gran avance en capacidades y sentó las bases de su línea de productos PLC hasta que fue reemplazada por la serie S7 a mediados de la década de 1990.

En este episodio me centraré en la serie U, que fue una mejora de la S5 original.

--------------------

04 Una familia completa de PLCs

Desarrollada por completo, la serie S5 de Siemens fue una familia completa de productos que cubría todo el espectro de tamaños, desde el más pequeño hasta el más grande.

Siemens cubría todo el mercado de control industrial, y casi no había nada que no tuvieran en algún lugar de su catálogo.

Podrías pasar toda una carrera utilizando solo productos Siemens para todo.

05

En la gama más baja estaban la serie S5-100, compuesta por los modelos S5-100, 102, 103, 90 y 95.

Estos cubrían todo, desde el pequeño formato "caja de zapatos" hasta los que solapaban la gama media en términos de capacidad, excepto por sus tarjetas de E/S compactas, que eran más pequeñas y más lentas que los modelos de tamaño completo.

El S5-115 formaba la gama media, con un formato "de tamaño completo" en términos de embalaje y tamaño de armario.

El S5-135 y S5-155 extendían el S5-115 en términos de velocidad y memoria.

06

En este episodio me centraré en la gama baja S5-100 por motivos de simplicidad, y no haré referencia a ninguna capacidad adicional de los modelos más grandes.

Sería demasiado consumidor de tiempo y confuso intentar cubrir todo, y no tendría mucho sentido.

--------------------

Tipos de memoria de 07 datos.

Si recuerdas el episodio anterior, el PLC2 de Allen Bradley tenía una tabla de datos, o sistema de memoria, que era un rango lineal único de memoria con todas las capacidades de E/S e internas mapeadas en direcciones numéricas fijas.

Allen Bradley tenía previsto abandonar este enfoque en su serie PLC5 posterior introducida a mediados a finales de los años 80, pero no lo cubriremos aquí.

La serie S5 de Siemens, sin embargo, adoptó el enfoque de tener diferentes tipos de direcciones de memoria para diferentes propósitos.

Describiré esos para la serie S5-100 ahora.

Direcciones de entrada y salida de 08.

Los módulos estándar de E/S para estos PLC compactos tenían 8 entradas o 8 salidas por módulo de E/S.

Estos módulos se conectaban a un bus plano (en contraste con un armario cerrado) con ranuras numeradas del 0 al 31 en decimal.

Cada una de estas ranuras tenía un número de bytes asociado, y cada punto de entrada/salida en los módulos individuales tenía un número de bit.

09

Las direcciones de entrada y salida tenían el siguiente formato.

Letra, número, punto decimal, número.

La letra era I o Q.

Yo indicaba entradas.

Q indicaba salidas.

El primer número era el número de bytes, que correspondía a la ranura del módulo físico de entrada/salida.

El segundo número era el número de bit dentro del byte, comenzando desde cero.

10

Solo "I2.3" indicaba un módulo de entrada ubicado en la tercera ranura (numerada desde cero) y se refería a la cuarta entrada (numerada desde cero) de ese módulo.

Las salidas funcionaban de la misma manera.

Por ejemplo, "Q 5.1".

11

Los módulos analógicos podían ubicarse en las ranuras 0 a 7.

Analógico, si recuerdas, se refiere a voltajes que tienen niveles variables en lugar de simplemente encendido o apagado, y pueden representar cosas como la temperatura.

Cada módulo analógico estaba asignado a 8 bytes por ranura, comenzando en la dirección 64 y subiendo hasta 127.

En la práctica, muchos de estos llamados "módulos analógicos" no tenían nada que ver con voltajes analógicos reales, sino que cualquier módulo avanzado que necesitara más espacio de dirección se utilizaba aquí.

Incluso más tarde, la alta densidad de entrada/salida digital utilizaba estas direcciones.

12

Cada una de estas direcciones podría ser referida como bytes o palabras.

En este caso, los bytes de entrada se indicaban con un prefijo "IB", y las palabras de entrada con un prefijo "IW".

Los bytes de salida usaban un prefijo "QB" y las palabras de salida un prefijo "QW".

13 Banderas

Las banderas son bits individuales de memoria interna utilizados para almacenar valores lógicos intermedios.

Estas comenzaban con un prefijo "F".

Un S5-103 tenía un total de 2048, numerados desde F0.0 hasta F255.7.

14 Contadores

Los contadores comenzaron con un prefijo "C".

Un S5-103 tenía 128 de estos numerados de C0 a C127.

15 Temporizadores

Los temporizadores comenzaron con un prefijo "T".

Un S5-103 tenía 128 de estos numerados de T0 a T127.

16 Bloques de datos

Los programas que necesitaban manejar la memoria de bytes y palabras podían crear lo que se conocían como "Bloques de datos".

Estos eran bloques de memoria PLC que podían crearse a discreción del programador.

Un S5-103 podría tener un máximo de 254 bloques de datos numerados del DB2 al DB255.

Se reservaron dos bloques de datos adicionales para las operaciones internas del PLC.

Los bloques de datos podrían contener hasta 255 palabras de 16 bits.

17

Sin embargo, en la práctica, el número y tamaño reales de los bloques de datos estarían limitados por la memoria disponible.

Incluso 20 kilobytes se consideraba una memoria grande, y esta debía compartirse con el programa.

Un bloque de datos sería "llamado" para convertirlo en el bloque de datos actual.

Luego, las palabras individuales serían direccionadas con el prefijo "DW".

Por ejemplo, "DW5".

--------------------

18 Bloques de Programa

Si recuerdas con el PLC2, había un "programa principal" y una serie de subrutinas numeradas opcionales.

En el S5, los programas se dividieron en "bloques".

Estos eran

Bloques de Organización

Bloques de Programa

Bloques de Función

Bloques de Secuencia

Un S5-103 podría tener hasta 256 de cada uno de estos bloques.

19 Bloques de Organización

Cuando el PLC se inició, buscaría el Bloque de Organización 1 y comenzaría la ejecución allí.

Esto se podría considerar como el equivalente de la función "main" en un programa C.

Los bloques de organización tenían un prefijo OB.

Por ejemplo, OB1.

Con un programa muy simple en un PLC S5 muy pequeño, toda la lógica del programa podría colocarse simplemente en OB1.

Sin embargo, para programas más grandes, era convencional colocar la lógica en subrutinas y simplemente hacer que OB1 llame a cada subrutina.

20 bloques de programa.

Tenían un prefijo PB.

Por ejemplo, PB10.

La programación en estilo de lógica de escalera normal iría en estos.

Era costumbre dividir un programa en piezas y poner cada pieza en su propio bloque de programa.

La práctica normal era tener un bloque de programa que correspondiera a una parte específica de la máquina.

21 bloques de función.

Tenían un prefijo FB.

Por ejemplo, FB64.

Los bloques de función diferían de los bloques de programa en que podían tomar parámetros.

Esto te permitía escribir un FB que realizara algún tipo de transformaciones de datos complejas y reutilizarlo llamándolo con diferentes parámetros.

Algunas instrucciones solo podían ser utilizadas en FBs, no en otros tipos de bloques.

También había FBs integrados en algunos modelos de CPU que realizaban ciertas operaciones, como convertir BCD (o Decimal Codificado Binario) a entero normal.

22 Bloques de Secuencia.

Estos tienen un prefijo SB.

Por ejemplo, SB25.

Estos eran similares a los PBs, pero estaban destinados a controlar secuencias de operaciones donde cada SB funcionaba como un paso único de la secuencia y múltiples bloques se utilizaban para una secuencia.

--------------------

23 Lenguajes de Programación

La serie S5 ofrecía cuatro lenguajes de programación diferentes.

Estos eran

Escalera (abreviado como LAD)

Lista de Declaraciones (abreviado como STL)

Flujo del Sistema de Control (abreviado como SCF)

GRÁFICO 5

24

Deberías conocer la escalera si has escuchado los episodios anteriores.

En pocas palabras, es un lenguaje de programación gráfica que siguió la apariencia de los diagramas de cableado de escalera eléctrica, que eran familiares para ingenieros, técnicos y electricistas que trabajaban con equipos de fabricación.

25

La Lista de Declaraciones es un lenguaje de programación basado en texto que se asemeja a un lenguaje ensamblador para una arquitectura de procesador abstracto.

Los resultados de la lógica booleana se calculaban y guardaban en una pila, mientras que los valores enteros se operaban directamente desde la memoria o en dos acumuladores, ACCU1 y ACCU 2.

26

El Flujo de Diagrama de Sistema de Control es un lenguaje gráfico que toma la forma de bloques rectangulares con una o más entradas y una salida.

Estos bloques se disponen en una pantalla y luego se conectan juntos, al igual que las puertas lógicas en un esquema electrónico.

27

GRÁFICO 5 es la implementación de Siemens del GRAFCET (Graphe Fonctionnel de Commande Étapes Transitions) estándar de diagrama de flujo IEC 60848.

La IEC es la Comisión Electrotécnica Internacional, una organización internacional de normalización.

28

Me centraré en la Escalera y la Lista de Declaraciones, ya que estas fueron, con mucho, las más comúnmente utilizadas y tenemos un tiempo limitado para discutir el S5.

--------------------

Lista de Declaraciones 29

Como se mencionó anteriormente, la Lista de Declaraciones puede considerarse como el lenguaje ensamblador para una arquitectura de CPU abstracta.

El firmware en el PLC S5 ejecutará las instrucciones en un intérprete.

30 El RLO

Las instrucciones orientadas a booleano o a bits operan en una pila lógica conocida como el RLO, o Resultado de la Operación Lógica.

Las operaciones booleanas típicamente toman un operando.

Cuando se ejecuta una operación booleana, si el RLO está vacío, simplemente carga el operando en el RLO.

Si el RLO no está vacío, entonces la instrucción se ejecuta utilizando el operando y el RLO, y el resultado reemplaza el valor en la parte superior de la pila de RLO.

Algunas instrucciones booleanas no toman un operando, sino que trabajan en los dos valores más superiores en el RLO.

Si estás familiarizado con lenguajes como FORTH, esto debería sonar muy familiar.

31 Acumuladores

Las instrucciones orientadas a palabras trabajan en dos acumuladores, ACCU 1 y ACCU 2.

Una instrucción de carga cargará un valor de palabra o byte desde una ubicación de memoria o una constante en ACCU 1.

El valor que estaba en ACCU 1 luego se desplaza a ACCU 2.

Una instrucción de transferencia escribirá el valor en ACCU 1 en la memoria.

Las instrucciones restantes orientadas a palabras operarán sobre los valores en ACCU 1 y ACCU 2, y colocarán su resultado en ACCU 1, sobrescribiendo el contenido existente.

Así, por ejemplo, una instrucción ADD sumará el valor en ACCU 2 al valor en ACCU 1, dejando la suma en ACCU 1.

Escalera de 32 niveles.

Como se mencionó anteriormente, la escalera es un lenguaje de programación gráfico que tiene la apariencia de un diagrama de escalera de control eléctrico utilizado con relés reales.

Este es, con mucho, el lenguaje de programación más común utilizado con PLCs.

Un programa de escalera es, sin embargo, solo otra forma de presentar una lista de declaraciones.

33

Para expresarlo de otra manera, un programa de lista de declaraciones puede ser exhibido en una pantalla de computadora como líneas de texto, o símbolos gráficos dispuestos en un patrón significativo.

Todos los programas de escalera válidos pueden ser representados como lista de declaraciones.

Sin embargo, no todas las secuencias de listas de declaraciones válidas pueden representarse como una escalera.

Las listas de declaraciones son inherentemente más flexibles que la escalera, lo que significa que simplemente no siempre se puede traducir en ambas direcciones por completo.

34

No obstante, la mayoría de la lógica de control típica se puede representar como una escalera, y la escalera es la representación preferida ya que es más rápido de entender a simple vista cuando se depura un problema de software o hardware.

Por otro lado, algunas instrucciones de listas de declaraciones no tienen un equivalente en escalera, o el algoritmo puede no prestarse a ser representado en escalera.

En estos casos, la práctica habitual es colocar la lógica de control simple en escalera en Bloques de Programa, y colocar la lógica de listas de declaraciones no traducibles en Bloques de Función.

35 Flujo de Sistema de Control y GRÁFICO 5

Al igual que la escalera, CSF y GRÁFICO 5 se implementan en realidad en listas de declaraciones, y muchas de las consideraciones mencionadas anteriormente se aplican a ellos también.

Sin embargo, no entraré en más detalles sobre estos aquí.

--------------------

36 Software y hardware de programación

Había dos formas de ingresar un programa a un PLC S5.

Una de ellas era el terminal de programación portátil.

La otra era a través del software de programación STEP 5.

37 Terminal portátil

Al igual que muchos, si no la mayoría, de los proveedores de PLC, Siemens vendió un terminal de programación portátil.

Había una serie de estos, un ejemplo es el PG 605.

Esto era como una caja, un calculador grande con botones y una pequeña pantalla.

Los botones correspondían a diversas instrucciones y a un teclado numérico, y la pantalla mostraba la instrucción actual que se estaba ingresando.

Para usarlo, conectarías un cable adjunto al terminal portátil al puerto de programación en la parte frontal del módulo de CPU PLC.

Luego podrías ingresar o ver el programa, una instrucción a la vez.

Software de programación 38 STEP 5

Otra forma de programar era utilizar software que funcionaba en una PC.

Siemens llamó a su software STEP 5.

Esto era un programa integrado de edición y depuración.

Originalmente funcionaba en CP/M.

39

Siemens vendió sus propios PCs portátiles con el software precargado y con características de hardware adicionales integradas, como un quemador EPROM.

Estos ordenadores también se conocían como "PGs".

STEP 5 fue más tarde portado a MS-DOS ejecutándolo en un emulador CP/M que la gente usaba para ejecutarlo en un PC de venta al público como un portátil.

Más tarde, se produjo una versión nativa de MS-DOS.

40

Esto tenía modos para Lista de Declaración, Escalera y Flujo de Sistema de Control.

GRAPH 5 era un programa separado.

Podías cambiar entre STL, LAD y CSF modos, y si el software podía traducir lo que había en un modo al otro, lo haría.

41

El PC estaría conectado al PLC mediante un cable que tenía una caja de interfaz en el medio.

Esto podría utilizarse para descargar un programa en un PLC,

subir un programa para hacer una copia de seguridad,

modificar un programa en ejecución,

o depurar un programa en ejecución.

--------------------

42 Instrucciones

No enumeraré todas las instrucciones, ya que tomaría demasiado tiempo.

En su lugar, proporcionaré una breve descripción general de ellas.

Deliberadamente omitiré las instrucciones oscuras que tomarían demasiado tiempo para explicar.

43 Operaciones Básicas

Operaciones Booleanas

Existe un conjunto completo de operaciones booleanas que incluyen y, no, o, o no, conjunto, reinicio y asignar.

La operación asignar asignaría el valor RLO a la dirección del operando especificado.

44 Carga y Transferencia

La instrucción Carga cargaría el valor de una palabra o byte de dirección de memoria o una constante en el acumulador 1.

Hay unas 2 docenas de variaciones de la instrucción Carga.

La operación Transferencia escribiría una palabra o byte del acumulador 1 en la memoria.

Hay aproximadamente una docena de variaciones de la operación de transferencia.

45 Temporizadores y Contadores

Hay 5 tipos diferentes de temporizadores.

Los temporizadores toman el valor en el acumulador 1 como su valor predeterminado al iniciarse.

Hay contadores hacia arriba y contadores hacia abajo, que cuentan hacia arriba y hacia abajo, respectivamente.

Una vez más, estos toman el valor en el acumulador 1 como el valor predeterminado.

46 Operaciones Aritméticas

Las únicas operaciones aritméticas nativas en la serie S5-100U son la suma y la resta.

Estos suman o restan los valores en el acumulador 1 y 2.

Otra serie de instrucciones de suma permite sumar una constante.

Sin embargo, los procesadores 103 y 95 ofrecieron multiplicación y división de múltiplos enteros como bloques de funciones integrados, FB242 y FB243.

Llamarías a estos bloques de funciones con los parámetros deseados y ellos devolverían sus resultados en otros parámetros.

47 Operaciones de Comparación

Hay un conjunto completo de operaciones de comparación de enteros que operan sobre los valores en los dos acumuladores.

Estos incluyen mayor que, mayor o igual que, etc.

El resultado booleano se guarda en el RLO.

Llamada y retorno de 48 bloques

Existe un conjunto completo de operaciones de llamada incondicional y condicional para llamar a todos los tipos diversos de bloques.

También hay operaciones de retorno incondicional y condicional.

Llamar a un bloque de datos lo convierte en el bloque de datos actual para operaciones de carga y transferencia de palabras de datos.

49 NOP o No Op

Como se implica, estas instrucciones no tienen resultado.

50 Detener

Esto detiene la ejecución del programa.

Operaciones binarias de 51 palabras.

Estas operan en palabras en los acumuladores.

Estas incluyen AND, OR, XOR, Desplazamiento a la izquierda y Desplazamiento a la derecha.

Operaciones de 52 bits.

Estas prueban, establecen o reinician bits individuales en palabras de datos o en temporizadores y contadores.

Instrucciones de conversión de 53.

Hay instrucciones para realizar el complemento de 1 o el complemento de 2 del valor en el acumulador 1.

Operaciones de salto de 54.

Hay operaciones incondicionales y condicionales para saltar hacia adelante o hacia atrás a una etiqueta.

Esto es equivalente a una operación GOTO.

55 Direccionamiento indirecto o "DO" operaciones

Estas instrucciones permiten saltar a un bloque o seleccionar una palabra de datos o una palabra de bandera según un número almacenado en otra dirección.

Esencialmente, estas instrucciones son como punteros.

56 Varios

También hay otras instrucciones variadas que hacen cosas como copiar bloques de palabras,

o intercambiar el contenido de los acumuladores,

Otras 57 instrucciones.

Todavía hay más instrucciones que he omitido, ya que tomaría demasiado tiempo explicarlas.

Resumen de 58 instrucciones.

Como puedes ver, el S5 PLC ofrece un conjunto muy completo de operaciones que van más allá de lo que la mayoría de la gente consideraría que hace un PLC.

Este es un conjunto de instrucciones muy poderoso.

59

Por un lado, esto es algo bueno, ya que puedes hacer casi cualquier cosa.

Por otro lado, esto es algo malo, ya que algunas personas toman esto como un permiso para hacer casi cualquier cosa.

En manos de la persona equivocada, esto resulta en un complejo amasado de código espagueti que ni siquiera la persona que lo escribió puede entender más tarde.

60

Esto va en contra de la filosofía de programación PLC, que es hacer las cosas lo más simple y obvio posible.

Con un programa PLC, la perfección se alcanza no cuando tenga tantas características avanzadas como sea posible, sino cuando no es posible hacerlo más simple.

61

Aunque Siemens proporcionó al programador una gama de instrucciones de bajo nivel poderosas desde las que podía construir casi cualquier cosa, muchos otros proveedores tomaron un enfoque diferente.

En cambio, estudiaron lo que se necesitaba en segmentos de mercado principales y proporcionaron al programador instrucciones que operaban a un nivel de abstracción más alto, permitiendo que los programas se escribieran en menos tiempo y con menos instrucciones.

--------------------

62 Velocidad de Ejecución

La velocidad de ejecución de las instrucciones variaba dependiendo del modelo de CPU del PLC.

Aquí hay algunos valores típicos para la serie de bajo rango S5-100.

63

Una instrucción AND booleana se ejecutó en 70 microsegundos en un S5-100U.

O en 4 microsegundos en un S5-102U,

O en 1,6 microsegundos en un S5-103U.

64

Sumar dos palabras en los acumuladores ejecutado en 55 microsegundos en un S5-100U,

O en 23 microsegundos en un S5-102U,

O en 1,6 microsegundos en un S5-103U.

65

El S5-103U tenía un chip de coprocesador lógico personalizado, conocido como el M5.

Las instrucciones que se ejecutaron en el coprocesador M5 tendían a tomar 1,6 microsegundos de manera uniforme.

Sin embargo, las instrucciones complejas que no se ejecutaron en el coprocesador M5 a menudo eran más lentas que en CPU que no tenían coprocesador, como el 100 o 102.

Sospecho que esto se debe a algún tipo de sobrecarga relacionada con la coordinación de los dos procesadores.

66

Sin embargo, la mayoría de las instrucciones en un programa normal son lógica booleana, por lo que un tiempo de ejecución booleano muy rápido es lo que importa.

Dado que cada instrucción se ejecuta en cada ciclo de escaneo, los programas grandes requieren una ejecución de instrucciones más rápida para mantenerse al día con la demanda.

--------------------

La serie S7 Reemplaza a la S5

A mediados de la década de 1990, Siemens comenzó a introducir la serie S7, la cual terminaría reemplazando a la S5, aunque tardó varios años en suceder.

68

El hardware era completamente nuevo, pero desde la perspectiva de un programador, la S7 fue una evolución de la S5.

Algunas instrucciones de lista de declaraciones fueron eliminadas y otras agregadas.

La mayoría de los conceptos básicos, sin embargo, permanecieron iguales.

Portar un programa S5 a un S7 fue una reescritura completa, pero fue bastante directa.

69

La excepción a esto fue la serie S7-200, que llegó a Siemens desde el exterior como parte de su adquisición de la división de PLC de Texas Instruments.

El S7-200 fue una imitación estadounidense de un PLC japonés y se vendió como un producto alemán.

No obstante, era un excelente PLC y se vendió en números muy grandes.

El S7-200 finalmente fue reemplazado por algo compatible con el resto de la línea S7.

70

La serie S7 ha pasado por varias revisiones de hardware y sigue siendo la línea principal de PLC de Siemens hoy en día.

A través del S5, puede rastrear su linaje hasta la década de 1970 y los primeros días de los PLC.

--------------------

Otros desarrollos 71.

Proveedores de PLC japoneses

No he cubierto a ningún proveedor de PLC japonés de la misma manera que cubrí el PLC2 o S5.

Tenía planeado hacer otro episodio sobre uno de ellos, pero no creo que agregaría mucho a lo que ya hemos discutido.

Sin embargo, los PLC de Japón están entre los principales vendedores a nivel mundial y generalmente son muy altamente considerados.

Ritmo de innovación del 72%

En términos de la historia general de la industria, en los primeros días de la evolución de los PLC, el progreso fue bastante rápido.

Más adelante, la innovación se desaceleró a medida que la compatibilidad con la base de instalaciones existente se convirtió en un factor más importante.

La tecnología se ha vuelto bastante estática, pero eso no es necesariamente una mala cosa desde una perspectiva empresarial.

Volveré a este tema más tarde, sin embargo.

--------------------

73 Conclusión

En este episodio cubrimos la serie de PLCs Siemens S5.

Tratamos la historia del S5,

su memoria y direccionamiento,

los diferentes tipos de subrutinas,

los lenguajes de programación,

las instrucciones,

Y cómo fue sucedido por la serie S7.

74

Vimos cómo los PLCs evolucionaron rápidamente desde sus orígenes muy tempranos como reemplazo de relés hasta convertirse en dispositivos programables poderosos.

En el próximo episodio, analizaremos los módulos de E/S y cómo permiten que una CPU de PLC se interface con hardware y controle máquinas.

75

Este ha sido el cuarto episodio de una serie de 8 partes.

--------------------

Proporcionar.retroalimentaciónsobre este episodio.

Fuente
Hacker Public Radio
Abrir original ↗

⚙Traducido automáticamente.

¿Esta noticia fue útil?

Debates 0

Sea el primero en contribuir al debate.

Difunda su información y promueva su argumento

No dude en publicar información o datos que puedan ser útiles.

Para participar en el debate, inicia sesión o crea una cuenta gratuita.