Altium DbLibs y componentes electrónicos en la nube con Altium Designer 20.1

Davide Bortolami
|  Creado: Mayo 13, 2020  |  Actualizado: Enero 18, 2021
Electronic components and Altium DbLibs in the Cloud with Altium Designer 20.1

La ayuda de DbLibs en Altium es una de las funcionas más antiguas, y más apreciadas, de Altium Designer. Estas han estado presentes en el mundo del software desde antes de poder desentrañar la existencia de la ley de Ohm.

La nueva función Component Sync de Altium 20.1 le permite sincronizar casi todas las bases de datos o biblioteca de base de datos con Altium 365, aprovechando de estos dos acercamientos sus fortalezas.

Explicaremos qué son las DbLibs en la nube, cómo funcionan, qué permiten hacer y cómo integrarlas con Altium 365. Un pequeño adelanto: demasiado fácil.

Esta guía es apropiada tanto para usuarios de DbLibs con experiencia como para novatos, y junto con la documentación de Altium, contiene todo lo que necesita para una integración de éxito.

Descartaremos todos los acercamientos pasados que ya no son relevantes, sumergiéndonos primero solo en técnicas recientes.

Entendiendo DbLibs y DbLink

Si no conoce DbLibs, esta guía le servirá de introducción rápida.

Altium Designer es compatible con numerosos formatos de bibliotecas de componentes basados en archivos: PcbLib, SchLib, LibPkg, IntLibs; PcbLibs contienen las huellas, SchLibs contienen los símbolos esquemáticos y enlaces a las huellas dentro de una PcbLib e IntLibs y LibPkg permiten a los usuarios consolidar varias bibliotecas.

Teniendo en cuenta que el usuario habitual de Altium conoce los tipos de bibliotecas anteriores, podemos profundizar un poco en su estructura de datos con una analogía de base de datos relacional.

Podemos imaginar SchLib como una tabla de una base de datos, análoga a una hoja de datos de Excel. Cada fila de la tabla es un componente identificado por su nombre. Dicha tabla tendría muchas columnas: una para el dibujo del esquemático, otra para el campo de «Comentarios», una tercera para el diseñador, otra para cada parámetro de nuestros componentes, como la tensión o la temperatura.

Una PcbLib bajo la misma analogía sería una tabla similar pero simplificada, que contiene solo una columna para el nombre, una descripción, nuestro dibujo de la huella y poco más.

SchLib también tendría que estar enlazada a la PcbLib. Normalmente se llaman enlaces o Foreign Keys (claves externas) en bases de datos relacionales, pero si no conoce la terminología, en cierto modo abrumadora, piense en ella como los hiperenlaces sobre los que hace clic y que abren la huella correcta.

Las columnas adicionales que consideremos añadir son para documentos como hojas de datos, notas de aplicaciones, declaraciones de cumplimiento con la RoHS y datos de simulación para utilizar con el entono de simulación mixta integrado de Altium.

Para completar nuestra analogía, LibPkg sería una lista de todas nuestras tablas (u hojas de datos de Excel) e IntLibs sería un fichero de exportación comprimido de nuestra base de datos para compartir con cualquiera que lo requiera.

DbLibs es una funcionalidad que trae este concepto mental a la realidad, permitiéndole conectar Altium Designer a cualquier base de datos compatibles con ODBC.

Altium leerá una o más tablas de bases de datos, cada una con un archivo SchLib diferente. Cada fila en las tablas será un componente en su DbLib. Varias columnas estándares se utilizan para definir los parámetros de componentes básicos y enlazar Altium a los archivos SchLib y PcbLib adecuados, normalmente con solo un símbolo esquemático o huella de PCB.

DbLink trabaja de forma similar a DbLibs, pero sin símbolo esquemático y huella de PCB incluidos, confiando, en cambio, en una biblioteca de componentes externa basada en archivos y limitándose a sincronizar parámetros con componentes existentes.

La fuerza oculta de DbLibs

DbLibs sorprende por su flexibilidad. Así que no es de extrañar que empresas de software de la competencia carguen precios exorbitantes para habilitar funciones similares, ya que permiten la integración a fondo de bibliotecas de componentes en sistemas empresariales existentes.

Ya que Altium es solo compatible con una tabla de estructura fija, no hay límites de cómo esa tabla podría crearse. Cualquier base de datos relacional moderna le permite crear vistas de bases de datos. Las vistas son tablas virtuales creadas de forma dinámica y automática por la base de datos, que siguen instrucciones escritas en lenguaje SQL.

El ejemplo más típico de una vista de una base de datos es enlazar dos tablas diferentes. Por ejemplo: si asumimos que una tabla A contiene DbLibs estándares y una tabla B contiene documentación externa para nuestros componentes, podemos unirlas creando una vista con una consulta similar a la siguiente:

SELECT * FROM A LEFT JOIN B WHERE “Part ID” = “Part ID”

Mediante los que llamamos procesos ETL (extracción, transformación y carga, del inglés Extract, Transform, Load), es posible conectar cualquier software a bibliotecas de Altium Designer mediante DbLibs.

Innumerables empresas ofrecen software ETL y servicios y, con frecuencia, mucho de su trabajo se puede lograr con solo unas cuantas líneas de Python.

Implementación de ejemplos: conectar a información interna de almacenes

Si trabaja en una empresa estructurada, su departamento de I+D puede contar con un pequeño almacén de componentes de muestra, cada uno de ellos en una estantería y en una caja numeradas.

Los pequeños almacenes se pueden administrar igualmente bien con un software ligero, como una hoja de datos de Excel, Microsoft Access o software de código abierto como PartKeepr.

Al integrar Altium DbLibs con su almacén de I+D puede acelerar su desarrollo de forma considerable. ¿Quiere comprobar si el componente que acaba de añadir a la placa es el que pensaba o comprobar rápidamente el tamaño de un conector? Simplemente haga doble clic y lea los parámetros relevantes. De igual modo, tal integración le permite listar las estanterías y cajas donde se encuentran los componentes directamente en la BOM e imprimirlos en papel con un solo clic desde un archivo OutJob de Altium.

Implementación de ejemplos: Sincronizar los datos del fabricante

Algunos de los parámetros más críticos que puede desear editar fuera del entorno de Altium Designer son los códigos del fabricante y del componente del fabricante.

Los componentes pasivos, por ejemplo, a veces necesitan actualizarse con bastante frecuencia: puede querer añadir diferentes códigos de componentes para capacitores 0603 de 16 V y 10 uF, en función de la fluctuación del mercado, del país en el que se fabrica el producto y sus conexiones EMS. Las funciones nativas de Altium y la integración de Octopart pueden ayudar de forma significativa al ingeniero a seleccionar estos componentes rápidamente, aunque en algunas empresas el proceso debe pasar inevitablemente por departamentos especializados.

Las empresas de defensa y aeronáuticas se pueden ver obligadas a trabajar protegidas por un firewall sin acceso a Internet para evitar filtraciones de datos y, por ello, tienen que sustituir la integración de Octopart de Altium con una solución ad-hoc.

En estos casos, puede ser conveniente editar los parámetros de fabricante y de código de componente del fabricante fuera de Altium Designer, mientras se siguen potenciando las funciones de plantillas de Active BOM, Draftsman y Excel en Altium para generar BOM detallados.

Implementación de ejemplos: Controla los datos de selección y colocación

Muchas empresas ejecutan líneas de selección y colocación (Pick & Place) para producción y prototipado.
La selección y el prototipado son maquinaria pesada cartesiana: seleccionan un componente de un punto determinado, basado en una compensación XY y una rotación, y lo mueven a otro, basándose en compensaciones XY y rotaciones similares.

Algunos de estos parámetros cambian con diferentes placas; el ejemplo más notable es el centro del componente en relación con el origen de la placa que constituye la selección y colocación que debe facilitar a su EMS. Otros valores solo cambian con el código de componente específico, por ejemplo, la distancia entre las partes en un carrete o la rotación predeterminada de los componentes.

Muchas líneas de selección y recogida gestionan su propio software de gestión para mantener una base de datos de todos los componentes y simplificar el funcionamiento.

Para reducir el tiempo hasta el mercado, muchas empresas comienzan con la configuración de estos parámetros cuando el diseño de PCB está aún en progreso. Con ese fin, un software de selección y colocación puede integrarse en las DbLibs de Altium y utilizarse en todos los entornos de Altium.

Todos estos valores pueden exportarse a cualquier funcionalidad de Altium compatible con parámetros de componentes, como Active BOM de Altium, exportaciones de ODB++ o tablas de Draftsman.

Implementación de ejemplos: Conectar a ERP de su empresa

Cuando solía trabajar en una fabricante líder de inversores de energía para bombas de agua, la empresa desarrolló, como muchas otras, un software ERP personalizado. El software sobrevivió a incontables actualizaciones durante muchas décadas y, aunque no era la pieza más bonita de arquitectura digital, cumplía con su función.

Para integrar Altium Designer con este software, añadimos un parámetro SKU a nuestras bibliotecas de componentes ya existentes. Cada SKU (unidad de mantenimiento de stock) enlazaba a un producto dentro del software ERP.

El ERP contenía hojas de datos para decenas de miles de componentes y datos contextuales como información de aprobación RoHS. Entre los datos había documentos confidenciales que no se podían transferir fuera del ERP para evitar filtraciones de datos.

El ERP exportaba los datos a tablas de Microsoft SQL Server, y se creaba un par de vistas para mostrar los enlaces a documentos formateados únicamente asignando a las columnas un nombre que siguiera los patrones «ComponentLink1Description» y «ComponentLink1URL». De igual modo, decidimos escribir las descripciones de componentes directamente dentro del software de ERP, puesto que nuestro departamento de compras conservaba los registros más coherentes y meticulosos que nunca antes había visto, y hubiera continuado en mantenerlos en un futuro previsible.

Limitaciones pasadas de DbLibs y Concord Pro

Hasta la versión 20.0 de Altium, cuando se utilizaba Concord Pro en Altium 365 con DbLibs, no era posible aprovechar todas las funciones de colaboración.

Concord Pro permite siempre estar al día y sin complicaciones de datos de componentes estandarizados para adoptarlos en su empresa, permitiendo que cada ingeniero trabaje desde una misma biblioteca compartida.

Uno o más bibliotecarios pueden dibujar y validar símbolos esquemáticos, huellas de componentes y parámetros de componentes mientras el equipo entero puede solicitarles que creen nuevos componentes a través de un formulario de componentes de Altium.

En Concord Pro los cambios de componentes se gestionan a través de Part Lifecycle (ciclo de vida del componente) y su adopción se registra también los proyectos con la función Where Used. Estas funciones permiten que rápidamente descubra y actualice todos los diseños cuando un componente queda inevitablemente obsoleto, una tarea que en un entorno menos centralizado puede, a menudo, llevar días de trabajo.

Todas estas funciones, y más, se vieron parcialmente afectadas al adoptar DbLibs. DbLibs se conecta a las bases de datos de forma separada a la utilizada por Concord Pro entre bastidores; los símbolos de esquemáticos y las huellas de PCB deben compartirse y organizarse de forma independiente, y cualquier gestión del ciclo de vida se basará de forma inevitable en software ERP externo no adaptado a menudo a las necesidades de gestión de la biblioteca de componentes.

Con los años algunos usuarios se han quejado también de la ausencia de rendimiento al administrar bibliotecas grandes, con la solución alternativa principal de múltiples tablas separadas en DbLib. Por contra, Concord Pro en Altium 365 es capaz de gestionar bibliotecas casi ilimitadas, ya que todas las consultas de búsqueda se hacen desde el servidor, y los componentes se cargan de forma dinámica en pequeños lotes al desplazarse por el panel de componentes.

Nueva DBlib de Altium a la función de sincronización de componentes del servidor

Las notas de lanzamiento de Altium 20.1 quizá sean un poco largas de leer, ya que incluyen 106 correcciones de errores importantes, 13 pequeñas nuevas funciones para Draftsman y 7 mejoras de rendimiento. Al menos 55 problemas abordados surgieron de la comunidad.

Este artículo versa sobre una función de muchas: las bases de datos de componentes a la sincronización de datos del servidor.

¡Suena farragoso! Pero es sencillo. Aprovecha la potencia de DbLibs y súmala a la oferta en la nube de Altium 365.

La función va del siguiente modo: Si ya ha migrado antes una DbLib a Altium 365 con Library Migrator, la nueva función de sincronización de componentes le permite retomar el trabajo donde lo dejó.

Ahora podrá asignar sus columnas de DbLib a parámetros de componentes de Altium, como en una DbLib, pero con soporte adicional para tipos de datos extensos como porcentajes y unidades de medidas (voltios, amperios, ohmios, etc.). Cuando la sincronización se produce en una de las tres formas que discutiremos pronto, Altium compara su base de datos con los componentes existentes y las actualiza. Si es necesario, puede seleccionar también plantillas de componentes para componentes recientemente creados y decidir qué parámetros producirán una nueva revisión. Por ejemplo, podría querer realizar un cambio en el número del componente del fabricante para realizar una nueva revisión, pero esto mismo puede no ser necesario cuando actualiza lugares de almacenes.

El segundo modo de funcionamiento se realiza cuando, en vez de conectar una DbLib completa, conecta una base de datos más sencilla (sin símbolos esquemáticos o huellas de PCB), como una base de datos de Microsoft Access, una hoja de datos de Excel, un archivo CSV (valores separados por comas) o cualquier otra fuente de datos que incluya un controlador OLE DB u ODBC. En este modo, Component Sync actúa como una antigua DbLink: sus componentes se definirán por Altium Designer y Altium Concord Pro en Altium 365, y las columnas de su base de datos serán parámetros dentro de sus componentes.

Las filas de componentes y bases de datos existentes se enlazan una a una cuando el valor de una columna concreta se iguala con un parámetro de componentes específico.

La función Component Sync se ejecuta en su escritorio, habilitándole sincronizar Altium 365 a bases de datos que no son accesibles desde Internet. Adicionalmente, los datos se comprimen antes de ser enviados a Altium 365, así que puede migrar fácilmente grandes bibliotecas sin saturar su conexión a internet.

Demostración

En este ejemplo, he dado un paso adelante y migrado la tabla con capacitores 0603 MLCC de la biblioteca de datos celestial de Mark Harris a Altium 365 con la función Library Migrator.

La biblioteca contiene casi 6000 capacitores, pero Altium gestiona el estrés sin despeinarse.

Sincronización de bibliotecas de componentes con Altium 365
Sincronización de bibliotecas de componentes con Altium 365

He convertido la tabla de la base de datos, inicialmente en un servidor Microsoft SQL, a una tabla de Excel con DBeaver, un software de gestión de base de datos de código abierto. De esta forma, la base de datos se puede editar para fines de demostración.

Biblioteca de componentes. Librería de base de datos convertida a Excel
Biblioteca de componentes. Librería de base de datos convertida a Excel

He creado una nueva configuración Component Sync después de habilitar la función en la página de extensiones de la plataforma en Altium Designer.

DbLibs en la nube. Función de sincronización de componentes habilitada en la sección de extensiones y actualizaciones
DbLibs en la nube. Función de sincronización de componentes habilitada en la sección de extensiones y actualizaciones

La configuración lee la única hoja dentro de nuestro archivo Excel y lo sincroniza con la nube. La función Component Sync se ha configurado para enlazar componentes con un parámetro/columna clave llamado PartId.

Consejos: Recuerda siempre mantener el panel de propiedades abierto, de modo que no pierdas nada que requiera una configuración adicional al hacer clic!

El parámetro clave se ha cambiado para que coincida con la biblioteca de componentes
The key parameter has been changed to match the library

He ido más allá y modificado el campo de la descripción de los capacitores en nuestro archivo Excel.

Biblioteca de componentes. El componente se ha editado en Excel
Biblioteca de componentes. El componente se ha editado en Excel

Después de realizar una sincronización manual de componentes, podemos ver que el capacitor recientemente actualizado se muestra en el panel de componentes y del explorador.

Resulting updated component in the Explorer panel
Componente actualizado resultante en el panel del explorador
(Alt Text: Componente actualizado resultante en el panel del explorador)Componente actualizado resultante en el panel de componentes
Componente actualizado resultante en el panel del explorador

Modos de ejecución

Puede activar la función Component Sync de tres formas diferentes:

Manualmente

Abra el archivo CmpSync y presione el botón Execute para activar la sincronización de forma manual. La tarea se ejecutará dentro de la instancia actual de Altium Designer y no podrá realizar ninguna otra tarea mientras está funcionando, a menos que abra otra instancia.

Programada

Con el botón Schedule, puede configurar una hora todos los días o semanalmente, o iniciar la sincronización cuando inicia sesión en su espacio de trabajo de Altium Designer.

Altium Designer creará una nueva programación de una tarea en Windows.

A través de una línea de comando

Y por último, pero no menos, puede proceder con la sincronización de componentes a través de una línea de comandos en la utilidad de línea de comandos «C:\Program Files\Altium\AD20\System\ComponentSync.Executor.exe».

Este modo es extraordinariamente flexible, ya que puede realizarse desde un script externo.

Por ejemplo, podría querer escribir un sencillo script Python que realizará una consulta a una API privada expuesta en su red interna siguiendo este procedimiento:

  1. Conéctese a API de REST.
  2. Descargue los datos.
  3. Escriba los datos en un archivo CSV en una ubicación temporal.
  4. Active la sincronización de componentes y espere hasta que termine.
  5. Si se finaliza correctamente, borre el archivo temporal y cierre.
  6. Si no funciona, mande por correo el archivo de registro y cierre.

Conclusiones

La función DbLibs de Altium siempre ha sido una de las más potentes, aunque en cierto modo oculta, de Altium Designer. Entender cómo aprovechar esto de la mejor forma posible puede requerir de muchos conocimientos de fondo en la gestión de datos corporativos (y con frecuencia una buena sesión de meditación), pero pueden darse mejoras sorprendentes en cuanto a eficiencia y a reducción de la tasa de errores de su diseño.

Hasta Altium 20 no ha sido posible aprovechar Altium 365 y DbLibs a la vez sin comprometer funcionalidades y usabilidad, ya que múltiples fuentes de datos en conflicto pueden originar confusión.

Desde Altium 20.1, la nueva función de sincronización de componentes permite unir las funcionalidades de las librerías de bases de datos con la simplicidad y colaboración de Altium 365, creando un sistema que es mucho superior a la suma de sus partes.

Documentación de esta nueva función aquí.

 

Sobre el autor / Sobre la autora

Sobre el autor / Sobre la autora

David Bortolami es ingeniero electrónico con un amplio conocimiento en diseño de circuitos y PCB. Actualmente, es el director de Fermium, una pequeña empresa británica que fabrica algunos de los instrumentos científicos más avanzados del mundo para la enseñanza y la investigación.

"Cada producto se puede fabricar el doble de bueno a la mitad del costo; es cuestión de profundizar en la causa de su existencia y luego eliminar el resto".

Como emprendedor, David tiene experiencia con todos los obstáculos de la fabricación, el diseño integrado de productos electrónicos-mecánicos, el cumplimiento de los requisitos reglamentarios y de EMC. En el pasado, dirigió uno de los mayores Fablab / Hackerspace y Coworkings italianos y estuvo a cargo de la ingeniería de PCB para empresas especializadas en industrias pesadas por EMI, como los inversores electrónicos.

Puede contactar a David directamente en: d@fermium.ltd.uk

Recursos Relacionados

Documentación técnica relacionada

Volver a la Pàgina de Inicio
Thank you, you are now subscribed to updates.