Un sistema alternativo de control de artículos magnéticos y luminosos.
Gerardo Rivero, grr_1954@    Marzo 2008            

 

1. Prólogo

  Para controlar los desvíos y demás artículos magnéticos y luminosos de nuestra instalación podemos usar varios métodos, que van desde el accionamiento manual hasta un sofisticado control informático. En mi opinión personal, el mas atractivo es la clásica consola con pulsadores distribuidos sobre un "grafo" de las vías. Es intuitivo y similar al utilizado en la realidad. Los controles mediante simples conmutadores en cajas de control Märklin o el digital usando el Keyboard (Märklin 6040) resultan poco representativos de la situación de los desvíos, y el uso de un programa estándar de control nos obliga a contar con dispositivos adicionales, como el interface (Märklin 6051) o una central (Uhlenbrock Intellibox, ECoS), además de suponer una sobrecarga en el consumo y en tráfico de órdenes, lo que se concreta a veces en fallos en el accionamiento. Una interesante y novedosa opción es el sistema "Track Control" de Uhlenbrock, pero se me antoja caro y además necesita de una central Intellibox. Littfinsky LDT también tiene un sistema modular, pero también es complejo y caro. Anteriores a estos está el sistema modular de Heki. Sobre este y los demás nuestro compañero Antonio Sanz tiene un amplio artículo en su página web.

         

 

  Este ejemplo de tablero de mando, tomado de www.indydigs.com/wires, muestra lo que mi sistema quiere evitar: Una selva de cables en la que cualquier fallo siempre es difícil de diagnosticar y solucionar  

  Por lo expuesto, la elección sería la consola clásica, pero esta también presenta un gran handicap: El exceso de cableado para controlar todos los artículos. Cada desvío usa 3 cables, que deben de dirigirse al cuadro de control. Esto hace que en poco tiempo nos encontremos con un buen mazo de múltiples hilos que tenemos que conducir a lo largo de nuestra maqueta. Este problema se agudiza si, como es mi caso, la instalación está compuesta por varios módulos independientes, lo que obliga al uso de conectores de bastantes polos y a una normativa compleja para su conexión.
La alternativa para la reducción del número de cables pasa por una codificación digital de las órdenes y el uso de decodificadores en los desvíos. El controlador para estas órdenes digitales puede incluirse en la consola, pero su diseño, que debe de incluir algún tipo de procesador (PIC), se presenta, al menos para mí, como una tarea demasiado compleja. La alternativa es el uso de algún tipo de controlador estándar. Los PLC (Control de lógica programable) resultan en este caso voluminosos y caros (en otra sección de mi maqueta uso uno de ellos, en un cometido mas simple). Esto nos deja como única alternativa el uso de un PC. Esta opción me resulta particularmente molesta, ya que el el tamaño y el método de control (teclado, ratón) son muy "chocantes" (en mi opinión) para su integración en la maqueta. De todos modos, es la única opción posible, y como vemos a continuación, solucionable en gran parte.

2. El proyecto

El arranque de este proyecto fue dado por una circunstancia casual: Buscando por eBay encontré que estaban a la venta unas pantallas TFT de pequeño tamaño con dos cualidades interesantes: Además de su conexión al PC incluían dos entradas de vídeo, y lo mas útil, equipaban un sistema táctil de emulación de ratón. Esto solucionaba de un plumazo las dos pegas principales del PC: Tamaño y sistema de control. Esto me decidió y me puse manos a la obra. Se usará el sistema clásico de Märklin Digital, con señales de protocolo Motorola.

El proyecto se basa, como ya he expresado, en la economía de cables a través de la maqueta: Sólo son necesarios los dos de la fuerza de tracción, provenientes de la Control Unit (o de los boosters), y otros tres para este control de artículos: +12 voltios de alimentación, señal de control y masa. Total 5 cables que pueden conducirse fácilmente a través de los módulos mediante conectores sencillos.
El sistema consta de los siguientes elementos:

Hardware:

PC: Es suficiente con un equipo que soporte Windows 98. En principio pensaba desarrollar el sistema con MS-DOS, pero dada la falta de drivers para la pantalla táctil descarté esa idea. Mi elección es bastante particular: "Medio" portátil IBM con un Pentium II, 64 Mb. y un disco de 8 Gb. Lo de medio se refiere a que literalmente se le seccionó la pantalla, resultando un artilugio muy plano y de pequeño tamaño, que incluye teclado y dispositivo apuntador. Una vez instalado en la maqueta permanecerá oculto, ya que todo se controlará desde la pantalla, aunque será accesible mediante un panel deslizante. Perfecto.
  Hace unos meses se hablaba en la lista del mal uso del vocablo "bizarro": En este caso, y ofendiendo a nuestro idioma, podemos decir que este PC es realmente "bizarro". En la imagen de la izquierda pueden verlo junto con la pantalla táctil, que ya presenta el software de control, aún en desarrollo.
  Para los que puedan prescindir de detalle del control táctil, el uso de uno de estos portátiles IBM ThinkPad, que son muy pequeños, es ideal, y supongo que pueden encontrarse en el mercado de ocasión a buen precio. Para los mas pudientes existen maravillosos Tablet PC, táctiles pero a precios muy altos.

Pantalla/control: Están disponibles dos tamaños de pantalla táctil (a un precio asequible: las de 15" que se usan en los TPV son bastante mas caras): 7" panorámica y 10,4" "normal". La de 7" es algo mas barata y de un tamaño mas acorde con el resto de elementos de control, pero su proporción 16/9 me podría resultar inconveniente para el controlador de vídeo del PC. Me decidí por la mayor de 10,4", que aunque mas voluminosa, presenta mas espacio para controles. La inclusión de dos entradas de vídeo adicionales puede ser útil para el uso de cámaras en la maqueta o incluso sobre alguna loco o vagón. El ratón se emula táctilmente con una conexión USB, de ahí la imposibilidad de usar MS-DOS. En las pruebas que he practicado he encontrado satisfactorio el sistema táctil, con la única salvedad de que es aconsejable el uso de un puntero, al menos para los que tenemos dedos "porrones".

Codificador: Una placa con conexión al puerto paralelo del PC que incluye el chip Motorola MC145026 y genera las señales seriales que controlan los decoders de desvíos.

Decodificadores: Aun por decidir si usaré decoders estándar de Märklin K83 (o compatibles) o una placa hecha por mí. Cuestión de Euros.

El sistema usa un circuito independiente del de tracción, que es controlado por mecanismos estándar de Märklin (Central Unit + 80f). También este proyecto puede ser de utilidad para aquellas instalaciones en las que no se disponga de control digital de los trenes, como son, en nuestro ambiente Märklin las de escala Z, pero se quiera un control algo mas efectivo de los desvíos y otros artículos.

Referencia:

  • Pantalla táctil: En eBay se puede buscar como '7" touchscreen VGA' o '14.4" touchscreen VGA'. Aquí hay un enlace, aunque supongo que con el tiempo desaparecerá: 10.4" VGA. Precios entre 160 y 180 €, mucho menos que una de 15" de TPV, unos 400 €.

  • PC: Los compactos IBM ThinkPad de 13,3" antiguos se encuentran en eBay por unos 100-150 €, como este  ThinkPad 600. Hay que tener en cuenta que un portátil actual se puede conseguir por menos de 400 €, así que sólo es interesante la compra si se consigue a un precio muy bajo (el mío me costó 0 €, ventajas de la profesión). En cuanto a la "decapitación" del mismo, evidentemente es algo que queda a la voluntad del usuario. Si no se procede a esta cirugía, poco aconsejable en un modelo nuevo, es mucho mas práctico el uso de una simple torre (o de sus componentes).

  • Codificador: El chip Motorola MC145026 (y su pareja para los decoders MC145027) teóricamente se encuentra fuera de producción, víctima de la directiva RoHS, pero yo no he tenido problema en conseguirlo a través de mi proveedor habitual de electrónica aquí en Cádiz. También disponibles en Conrad Electronic, aunque no en otros proveedores como RS Amidata. Para información técnica aquí puede descargarse su hoja de características.

  • Decoders: Las dos opciones son hacérselos uno mismo o comprarlos hechos. Como veremos mas adelante mi sistema tiene algunas diferencias con el Märklin Digital, pero se pueden usar los estándar. Estos se pueden conseguir a partir de unos 20 € (MAD 4), y podemos elegir además entre los 5211 de Viessmann, los LDT en Conrad, o irnos directamente a los K83 de Märklin (unos 30 €). Todos estos necesitarían de retoques para permitir el uso de la señal independiente de la de tracción. Para construírselos uno mismo según mi proyecto necesitamos chips MC145027, un chip MC14051, un "piano de ratón" de 4 vías, 8 transistores BF680 y las bornas para las tomas, además de algunas resistencias y condensadores. Y claro, la placa, que hay que hacerla. Hay que hacer los números.


Software:

El ya citado Windows 98, que ofrece en este caso varias ventajas: Pocas exigencias de hardware, arranque rápido y poca ocupación en disco. Se podrían usar versiones mas recientes, como XP, pero necesitarían PCs mas potentes y tardarían mas en arrancar, además de necesitar un disco mas grande. Descartado el Linux, por el que siento gran simpatía, pero del que conozco bastante menos que de los engendros del Sr. Gates.
Visual Basic 6.0 para el desarrollo. Es intuitivo, produce un código medianamente eficiente, y hay gran cantidad de ayuda impresa y on-line. Para la confección de los gráficos uso Paint Shop Pro X2, mas fácil de manejar que el PhotoShop y con posibilidades muy parecidas, al menos para esta tarea. En principio pensaba usar simplemente MS-DOS y QuickBasic 4.5, para el que tengo bastantes librerías gráficas, pero, como ya he comentado, la falta de drivers para la pantalla táctil me hizo desistir de la idea. Una ventaja del QuickBasic sobre el VisualBasic es que el primero dispone de ordenes directas para acceder al puerto paralelo del PC, cosa que no contempla el segundo. Esto tiene fácil solución porque existen librerías para este cometido: www.pablin.com.ar. Además puede que simplemente usando órdenes LPRINT se pueda controlar el MC145026, aunque esto está pendiente de prueba.


3. Alcance del control.

  Como ya he expuesto, la finalidad de este proyecto es controlar solamente artículos magnéticos (desvíos y señales) y luminosos, además de dispositivos como vías de desenganche y módulos de frenado, y en el futuro mecanismos mas complejos como p.e. la rotonda. Este control se realiza independientemente del cableado de tracción a las vías y usando una fuente de alimentación también independiente. No contempla retroalimentación ni ningún otro tipo de control. Es simplemente una alternativa a la consola con los pulsadores y el grafo de vías, con el fin primordial de ahorrar cableado.

  El uso de un PC para controlar el chip MC145026 presenta algunas limitaciones. Al usar el puerto paralelo de una manera elemental, que en principio presenta 8 bits de salida, tenemos que hacer algunos recortes: El MC145026 tiene 5 "trits"(1) para definir la dirección del decoder que recibirá las órdenes. Esto supone 243 posibles direcciones (80 en el sistema Märklin, que usa también sólo 4 bits de direcciones). Además tiene una entrada de datos de 4 bits, permitiendo la dirección en cada placa de decodificación de 4 desvíos. Los dos buses suman 9 bits, por lo que en principio nos sobra uno. Además el PC no puede presentar 3 estados en sus salidas,  por lo que nos limitamos a uso de 1's y 0's exclusivamente. Estas dos circunstancias limitan las posibles direcciones a 16 (4 bits), bastantes menos que el sistema original. En principio, en mi caso, el uso de 16 posibles tarjetas de decodificación, con 4 canales cada una, es suficiente, y casi podría decir que excesivo. De todos modos el puerto paralelo posee alguna señal más aparte de los 8 bits de datos, por lo que con alguna programación extra podemos controlar 32 tarjetas (5 bits de direcciones). Estoy contemplando en el diseño de la placa de control el posible direccionamiento de este 5 bit. En cuanto al uso de "bits" en vez de "trits", la cosa no tiene arreglo sin un hardware mas complicado. Serían 32 tarjetas contra las 80 del sistema Märklin... No es mucha diferencia.  
El corazón del sistema: El Motorola MC145026 genera los pulsos que controlan los decodificadores, con el mismo protocolo con el que gobernamos nuestras locomotoras, aunque en este caso las órdenes circulan por un circuito independiente. La activación de la señal TE provoca el envío de los datos presentes en las patillas del lado izquierdo del diagrama a través de la salida Dout 

Los decoders. En caso de que los construya yo mismo, incluyen unos "pianos de ratón" de 4 (o 5) vías (al contrario de los estándar, que usan estos DIP-Switches con 8 vías para simular los 3 estados de la entradas, (aunque por economía los estándar en el DIP-Switch también sacrifican una dirección, círculo amarillo en la foto). Además no es necesario el circuito para rectificar la señal de la vía. Si los compro hechos hay que eliminar esos componentes, y tener cuidado en la disposición de los switches para no establecer ninguna combinación fuera de los estados "1" y "0". Como información adicional, en la imagen de la derecha podemos ver el esquema del decoder de Viessmann (click para agrandar). En él vemos el chip MC145027, y el decoder 3->8 74HC138 (que trabaja en este caso de un modo diferente al multiplexor MC14051 empleado por Märklin). Si fabrico los circuitos emplearé este último. Con el se escoge según los datos enviados la bobina correspondiente y a través suyo se transmite el bit de control, tres veces como se explica mas adelante. Un esquema del K83, aunque a mano alzada, se puede ver aquí.

     
El software. En principio controlar la placa del codificador es muy sencillo: Cada vez que pulsamos un icono de un desvío enviamos al puerto paralelo un byte con la siguiente configuración: 4(5) bits de dirección de la placa del decoder + 2 bits para escoger entre los 4 desvíos de la placa + 1 bit para determinar la posición deseada del desvío + 1 bit de activación. Esta operación la realizamos 3 veces, para simular la señal, activa baja, de control: Una vez con el bit alto, otra con el bit bajo, y finalmente de nuevo con el alto. Esto, incluyendo la correspondiente temporización (programable) entre los tres envíos. Los iconos se arreglan en pantalla en una matriz (16x11), e incluyen gráficos para los artículos mas comunes. En un fichero se almacena información sobre el modo de comportamiento de cada uno (posibles estados, último estado, clase de activación, etc). No es lo mismo pulsar sobre un espacio vacío (no hay acción alguna) que sobre un desvío triple, (al tener mas de dos posible estados, y al incluir dos motores, necesita dos juegos de órdenes consecutivas) que sobre una luz o un tramo de frenado, (el estado ON/OFF permanece) o una vía de desenganche (hay un pulso, como en los desvíos). Además hay una pantalla en la que configuramos la disposición de los iconos y sus direcciones, otra de utilidades, y botones específicos para definir trayectos, aunque yo en mi programa prefiero denominarlos "macros". También se incluye la posibilidad de definir dependencias entre unos iconos y otros: p.e. cuando activamos una señal podemos también activar la zona de frenado y un desvío, y quizás alguna otra orden. En la siguiente imagen podemos ver la pantalla de configuración, que aunque funciona, todavía está falta de verificaciones internas y de la correspondiente "lógica": Como pueden ver se ha escogido un tramo recto, pero aún así se permite la asignación de direcciones de placa y canal, que además están configuradas fuera de rango (sólo hay 4 canales posibles).  

      
Los iconos están dibujados en Paint Shop Pro, y definidos en las propiedades de los controles en Visual Basic. Este lenguaje tiene la característica de que los ficheros gráficos definidos como propiedades se incluyen en el mismo código del programa una vez compilado, por lo que no es necesario tenerlos en la carpeta del mismo. Este es práctico excepto si queremos tener la posibilidad de escoger entre varias apariencias o "skins". En mi programa todos los gráficos de cargan en tiempo de ejecución, lo que permite editar o modificar los iconos y otros elementos mas tarde sin tener que volver a compilar el programa.
Todos los controles están pensados para su uso con la pantalla táctil, con botones grandes, y sin menús o otros elementos menos controlables. Hay que tener en cuenta que el PC va a estar oculto, y todo el control se debe de hacer en pantalla y sin salir a Windows, mas difícil de manejar táctilmente.
Mas adelante, y ya que se dispone del PC, se pueden añadir otras aplicaciones, como una base de datos con las locomotoras, o incluso un "JukeBox" para reproducir música ambiente.

(1) Un "Trit", al contrario de un "Bit", presenta tres estados: "0" (conexión a masa), "1" (conexión a +), y "Flotante" (sin conexión alguna).


4. Estado del proyecto:

  Actualmente me estoy centrando en el desarrollo del software, que está bastante avanzado. Tengo pendiente la confección de la placa de control, y, o bien la compra de decoders, o la confección de los mismos. En esta página iré dando cumplida información de los avances realizados.

Quiero agradecer la colaboración prestada por nuestro compañero y programador Ignacio de la Fuente, idelafuente@, por su ayuda con el Visual Basic, que ya tenía algo olvidado. En agradecimiento a su colaboración, le he despertado el "gusanillo" del control por PC, y ya anda trasteando con tarjetas de entrada/salida para su maqueta "zetera". Esperamos los resultados de sus investigaciones.

 

 

Ültima actualización: 2 de Marzo de 2008.

 

 

Gerardo Rivero, grr_1954@
San Fernando, Cádiz.


 


© 2008 El Autor y LCTM.
 Logotipo de Märklin ©
Gebr. Märklin & Cie. GmbH


Se permite enlazar y citar esta página en cualquier medio, siempre citando su origen. No se permite la copia ni la reproducción sin permiso expreso del autor.
Esta página está diseñada para ser vista a una resolución de 1024x768 pixels o superior.