DbLibs e Componentes Eletrônicos na Nuvem com Altium 365

David Bortolami
|  Criada: Maio 13, 2020  |  Atualizada: Janeiro 18, 2021
Componentes eletrônicos e Altium DbLibs na nuvem com Altium 365

O suporte DbLib da Altium é uma das características mais antigas e amadas do Altium Designer para gerenciar componentes eletrônicos e seus dados. Eles estão presentes no mundo do software desde antes de eu poder compreender a existência da lei de Ohm. Agora, com o Altium 365 sendo o novo modo de criar e gerenciar projetos, as equipes de design têm um ambiente seguro na nuvem que podem usar para hospedar e compartilhar seus projetos, bibliotecas, dados de componentes e dados de fabricação.

Para dados de componentes, o Altium Designer 20.1 incluiu um novo recurso de Sincronização de Componentes que permite sincronizar praticamente qualquer banco de dados ou Biblioteca de banco de dados com o Altium 365. As mesmas ideias apresentadas aqui também se aplicam ao Concord Pro para implantações locais em um ambiente seguro. Vamos discutir o que são DbLibs, como funcionam, o que podem ajudá-lo a alcançar e como integrá-los com o Altium 365. Alerta de spoiler: é absurdamente fácil. Este guia é adequado tanto para usuários experientes quanto novatos em DbLibs, e junto com a documentação da Altium, contém tudo o que você precisa para uma integração bem-sucedida. Vamos sobrevoar todas as abordagens passadas que não são mais relevantes, mergulhando primeiro nas técnicas mais novas.

Entendendo DbLibs e DbLink

Se você não está familiarizado com DbLibs, isso servirá como uma rápida introdução.

O Altium Designer suporta vários formatos de bibliotecas baseadas em arquivos: PcbLib, SchLib, LibPkg, IntLibs; PcbLibs contêm o footprint, SchLibs contêm o símbolo esquemático e link para o footprint dentro de um PcbLib, e IntLibs e LibPkg permitem aos usuários consolidar múltiplas bibliotecas.

Assumindo que o usuário médio do Altium esteja familiarizado com os tipos de bibliotecas mencionados, podemos mergulhar um pouco mais fundo na estrutura de dados deles usando uma analogia com banco de dados relacional.

Podemos imaginar o SchLib como uma tabela de banco de dados, análoga a uma planilha do Excel. Cada linha da tabela é um componente, identificado pelo seu nome. Tal tabela teria muitas colunas: uma para o desenho esquemático; uma para o campo “Comentários”; uma para o designador; uma para cada parâmetro dos nossos componentes eletrônicos, como “Voltagem” ou “Temperatura”.

Um PcbLib sob a mesma analogia seria uma tabela similar, mas simplificada, contendo apenas uma coluna “Nome”, uma descrição, nosso desenho de footprint, e não muito mais.

O SchLib também precisaria apontar para o PcbLib. Isso geralmente é chamado de links ou Chaves Estrangeiras em bancos de dados relacionais, mas se você não está familiarizado com a terminologia um tanto quanto pesada, pode pensar neles como hiperlinks nos quais você clica e que abrem a pegada certa para você.

Colunas adicionais que poderíamos considerar adicionar são para documentos como folhas de dados, notas de aplicação, declarações de conformidade com RoHS e dados de simulação para usar com o ambiente de Simulação Mista integrado da Altium.

Para completar nossa analogia, LibPkg seria uma lista de todas as nossas tabelas (ou planilhas do Excel), e IntLibs seria uma exportação compactada do nosso banco de dados pronta para ser compartilhada com quem precisar.

DbLibs são um recurso que traz esse conceito mental para a realidade, permitindo que você conecte o Altium Designer a qualquer banco de dados compatível com ODBC.

O Altium lerá uma ou mais tabelas de banco de dados, cada uma delas funcionando como um arquivo SchLib separado. Cada linha em suas tabelas se tornará um componente em seu DbLib. Várias colunas padrão são usadas para definir os parâmetros básicos do componente e apontar o Altium para os arquivos SchLib e PcbLib corretos, geralmente com apenas um símbolo esquemático ou pegada de PCB.

DbLink funciona de maneira semelhante aos DbLibs, mas sem incluir um símbolo esquemático e footprint de PCB, dependendo em vez disso de uma biblioteca externa baseada em arquivos e limitando-se a sincronizar parâmetros com componentes eletrônicos existentes.

A Força Oculta dos DbLibs

Os DbLibs são surpreendentes em sua flexibilidade. Portanto, não é de admirar que casas de software concorrentes cobrem preços exorbitantes para habilitar recursos semelhantes, pois eles permitem uma integração profunda das bibliotecas de componentes em sistemas empresariais existentes.

Enquanto o Altium suporta apenas uma tabela de estrutura fixa, não há limitação sobre como essa tabela pode ser criada. Qualquer banco de dados relacional moderno permite que você crie vistas de banco de dados. Vistas são tabelas virtuais criadas dinâmica e automaticamente pelo banco de dados, seguindo instruções escritas em linguagem SQL.

O exemplo mais típico de uma vista de banco de dados é juntar duas tabelas diferentes. Por exemplo, assumindo que temos a tabela A contendo DbLibs padrão e a tabela B contendo documentação externa para nossos componentes eletrônicos, podemos juntá-las criando uma vista com uma consulta semelhante à seguinte:

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

Através do que é chamado de processos ETL (Extract, Transform, Load), é possível conectar qualquer software às bibliotecas do Altium Designer através dos DbLibs.

Inúmeras empresas oferecem software e serviços ETL, e muitas vezes, grande parte do trabalho pode ser realizada com apenas algumas linhas de Python.

Exemplo de Implementação: Conectando-se às Informações do Armazém Interno

Se você trabalha em uma empresa estruturada, seu departamento de P&D pode gerenciar um pequeno armazém de componentes eletrônicos de amostra, com cada componente tendo um número de prateleira e caixa.

Pequenos armazéns provavelmente são gerenciados por softwares igualmente leves, como uma planilha do Excel, Microsoft Access ou softwares de código aberto como o PartKeepr.

Integrar Altium DbLibs com o seu armazém de P&D pode acelerar consideravelmente o seu desenvolvimento. Quer verificar se o componente que você acabou de adicionar à sua placa é o que você pensa, ou verificar rapidamente o tamanho de um conector? Basta dar um duplo clique e ler os parâmetros relevantes. Da mesma forma, tal integração permite listar nas BOM as prateleiras e caixas de componentes eletrônicos, e imprimi-las em papel com um único clique a partir de um arquivo Altium OutJob.

Exemplo de Implementação: Sincronizar Dados do Fabricante

Alguns dos parâmetros mais críticos que você pode desejar editar fora do ambiente Altium Designer são o fabricante e os números de peça do fabricante para cada componente.

Componentes eletrônicos passivos, por exemplo, às vezes precisam ser atualizados com bastante frequência: você pode querer adicionar diferentes números de peças para capacitores de 10uF 16V 0603 dependendo da flutuação do mercado, do país em que seu produto é fabricado e de suas conexões EMS. As funcionalidades nativas da Altium e a integração com o Octopart podem ajudar significativamente o engenheiro a selecionar esses componentes eletrônicos rapidamente, mas em algumas empresas, o processo deve inevitavelmente passar por departamentos especializados.

Empresas de defesa e aeronáutica podem ser obrigadas a trabalhar atrás de um firewall sem acesso à internet para evitar vazamentos de dados, e assim precisam substituir a integração da Altium com o Octopart por uma solução ad-hoc.

Nesses casos, pode ser vantajoso editar os parâmetros do Fabricante e Número de Peça do Fabricante fora do Altium Designer, enquanto ainda se aproveita o Active BOM, Draftsman e as capacidades de modelagem do Excel da Altium para gerar BOMs detalhados.

Exemplo de Implementação: Manter o Controle dos Dados de P&P

Muitas empresas operam linhas internas de Pick & Place tanto para produção quanto para prototipagem.
P&Ps são máquinas cartesianas pesadas: elas pegam um componente em um certo ponto, baseado em um deslocamento XY e uma rotação, e o movem para outro, também baseado em deslocamentos XY e rotações similares.

Alguns desses parâmetros mudam com diferentes placas; o exemplo mais notório sendo o centro do componente em relação à origem da placa, constituindo o P&P que você deve fornecer ao seu EMS. Outros valores só mudam com o número específico da peça, por exemplo, a distância entre as peças em um carretel ou a rotação padrão dos componentes eletrônicos.

Muitas linhas de P&P executam seu próprio software de gestão para manter um banco de dados de todos os componentes eletrônicos e simplificar operações. Para reduzir o tempo de colocação no mercado, muitas empresas iniciam a configuração desses parâmetros quando o design da PCB ainda está em andamento. Para isso, um software de gestão de pick and place pode ser integrado com Altium DbLibs e usado em todos os ambientes da Altium.

Todos esses valores podem ser exportados para qualquer recurso da Altium que suporte parâmetros de componentes eletrônicos, como Altium Active BOM, exportações ODB++ ou tabelas do Draftsman.

Exemplo de Implementação: Conectando ao ERP da Sua Empresa

Quando eu trabalhava em um fabricante líder de inversores de potência para bombas de água, a empresa funcionava, como muitas outras, em um software ERP desenvolvido sob medida. O software sobreviveu a inúmeras atualizações ao longo de muitas décadas, e embora não fosse a peça mais bonita de arquitetura digital, ele cumpria o trabalho todas as vezes.

Para integrar o Altium Designer com este software, adicionamos um parâmetro SKU às nossas bibliotecas pré-existentes. Cada SKU (Stock Keeping Unit), apontava para um “produto” dentro do software ERP.

O ERP continha fichas técnicas de dezenas de milhares de componentes eletrônicos, e dados contextuais como relatórios de aprovação RoHS. Entre os dados estavam documentos confidenciais que não podiam ser transferidos para fora do ERP para evitar vazamentos de dados.

O ERP exportava os dados para tabelas do Microsoft SQL Server, e algumas visualizações foram criadas para exibir links de documentos formatados apenas nomeando as colunas seguindo os padrões “ComponentLink1Description” e “ComponentLink1URL”. Da mesma forma, decidimos escrever as descrições dos componentes diretamente dentro do software ERP, pois nosso departamento de compras mantinha os registros mais meticulosos e coerentes que eu já tinha visto e continuaria a fazê-lo por um futuro previsível.

DbLibs e Limitações Anteriores do Altium 365

Até a versão 20.0 do Altium, ao usar o Altium 365 em conjunto com DbLibs, não era possível aproveitar totalmente todas as funcionalidades de colaboração, exceto quando confinado em instalações locais. Isso é adequado para colaboração segura, no campus, e gerenciamento de peças, mas a colaboração completa com designers externos e partes interessadas usava processos de troca de arquivos desatualizados.

O Altium 365 permite a adoção de dados de componentes sempre atualizados e padronizados sem falhas em sua organização, permitindo que cada engenheiro trabalhe a partir da mesma biblioteca compartilhada única. Um ou mais bibliotecários podem desenhar e validar símbolos esquemáticos, pegadas de componentes e parâmetros de componentes, enquanto toda a equipe pode solicitar a criação de novos componentes eletrônicos através do formulário de solicitação de peças do Altium.

No Altium 365, as alterações de componentes são gerenciadas por meio de um Ciclo de Vida da Peça, e a adoção delas também é rastreada em seus projetos através do recurso Onde Usado. Esses recursos nos permitem descobrir e atualizar rapidamente todos os designs quando um componente se torna inevitavelmente obsoleto, uma tarefa que em um ambiente menos centralizado pode levar dias de trabalho.

Todas essas funcionalidades, e mais, foram parcialmente comprometidas ao adotar DbLibs. DbLibs se conecta a bancos de dados separados do usado pelo Altium 365 por trás dos panos; os símbolos esquemáticos e as pegadas de PCB devem ser compartilhados e organizados independentemente, e qualquer gerenciamento de ciclo de vida inevitavelmente dependerá de software ERP externo, muitas vezes não adequado às necessidades de gerenciamento de biblioteca de componentes.

Ao longo dos anos, alguns usuários também reclamaram de uma falta de desempenho ao lidar com grandes bibliotecas, sendo a solução alternativa primária a utilização de múltiplas tabelas separadas dentro do DbLib. Em contraste, o Altium 365 é capaz de lidar com bibliotecas praticamente ilimitadas, pois todas as consultas de pesquisa são executadas no lado do servidor, e os componentes são carregados dinamicamente em pequenos lotes quando você rola dentro do Painel de Componentes.

A Nova Função de Sincronização de Componentes do DBlib para Servidor do Altium

As notas de lançamento do Altium 20.1 podem ser uma leitura bastante longa, pois incluem impressionantes 106 correções de bugs, 13 pequenas novas funcionalidades para o Draftsman e 7 melhorias de desempenho; Pelo menos 55 problemas abordados foram originados pela comunidade.

Este artigo é sobre uma funcionalidade entre muitas: sincronização de dados de banco de dados de componentes para servidor.

Parece complicado! Mas a essência é simples. Pegue o poder dos DbLibs e unifique-o com a oferta na nuvem do Altium 365.

A funcionalidade funciona da seguinte forma: Se você já migrou um DbLib para o Altium 365 usando o Migrador de Biblioteca, a nova funcionalidade de Sincronização de Componentes permite que você retome o trabalho de onde parou.

Agora você poderá mapear suas colunas DbLib para parâmetros de componentes eletrônicos da Altium, da mesma forma que em um DbLib, mas com suporte adicional para tipos de dados estendidos, como percentual e unidades de medida (Volt, Ampere, Ohm, ...). Quando a ação de sincronização é acionada de uma das três maneiras que discutiremos em breve, a Altium compara seu banco de dados com os componentes existentes e os atualiza. Se necessário, você também pode escolher modelos de componentes para componentes eletrônicos recém-criados e decidir quais parâmetros acionarão uma nova revisão. Por exemplo, você pode querer que uma mudança no número da peça do fabricante acione uma nova revisão, mas o mesmo pode não ser necessário ao atualizar locais de armazenamento.

O segundo modo de operação é acionado quando, em vez de conectar um DbLib completo, você conecta um banco de dados mais simples (sem símbolos esquemáticos ou footprints de PCB), como um banco de dados do Microsoft Access, uma planilha do Excel, um arquivo CSV (Valores Separados por Vírgula) ou qualquer outra fonte de dados que inclua um driver OLE DB ou ODBC. Neste modo, o Component Sync atua como o antigo DbLink: seus componentes eletrônicos serão definidos pelo Altium Designer e armazenados no Altium 365, e as colunas do seu banco de dados se tornarão parâmetros dentro dos seus componentes.

Os componentes eletrônicos existentes e as linhas de banco de dados são correspondidos um a um quando o valor de uma coluna especificada é igual a um parâmetro específico do componente.

A funcionalidade de Sincronização de Componentes é executada no seu desktop, permitindo assim que você sincronize o Altium 365 com bancos de dados que não estão acessíveis pela internet. Além disso, os dados são comprimidos antes de serem enviados para o Altium 365, para que você possa migrar facilmente vastas bibliotecas sem sobrecarregar sua conexão de internet.

Demonstração

Neste exemplo, eu prossegui e migrei a tabela contendo capacitores MLCC 0603 da Biblioteca de Banco de Dados Celestial de Mark Harris para o Altium 365 usando a funcionalidade Migrador de Biblioteca.

Esta biblioteca de componentes eletrônicos contém quase 6000 capacitores, mas o Altium lida com o estresse com elegância.

Migration completed! We can now rest and watch the sun rise on a grateful universe.
Migração concluída! Agora podemos descansar e observar o nascer do sol em um universo agradecido.

Eu converti a tabela do banco de dados—originalmente hospedada em um servidor Microsoft SQL—para uma tabela Excel usando o DBeaver, um software de gerenciamento de banco de dados de código aberto. Desta forma, o banco de dados pode ser facilmente editado para fins de demonstração.

Database library converted to Excel
Biblioteca de banco de dados de componentes eletrônicos convertida para Excel

Eu criei uma nova configuração de Sincronização de Componentes, após ativar a funcionalidade na página de extensões da plataforma no Altium Designer.

Component Synchronization feature enabled under Extensions & Updates
Recurso de sincronização de componentes eletrônicos habilitado em Extensões e Atualizações

A configuração lê a única folha dentro do nosso arquivo Excel e sincroniza-a com a nuvem. A Sincronização de Componentes foi configurada para combinar os componentes por um parâmetro/chave de coluna chamado PartId.

Dicas: Lembre-se de sempre manter o painel de propriedades aberto, para não perder nada que exija configuração adicional ao navegar!

The key parameter has been changed to match the library
O parâmetro chave foi alterado para corresponder à biblioteca

Eu fui adiante e modifiquei o campo Descrição dos capacitores no nosso arquivo Excel.

The component has been edited on Excel
O componente foi editado no Excel

Após acionar uma sincronização manual de Componentes, podemos ver o capacitor recém-atualizado aparecendo no painel de Componentes e Explorador.

Resulting updated component in the Explorer panel
Componente atualizado resultante no painel Explorer
Resulting updated component in the Components panel
Componente atualizado resultante no Painel de Componentes

Modos de execução

Você pode acionar o novo recurso de Sincronização de Componentes de três maneiras diferentes:

Manualmente

Abra o arquivo CmpSync e pressione o botão Executar para acionar a sincronização manualmente. A tarefa será executada dentro da sua instância atual do Altium Designer, e você não poderá realizar nenhuma outra tarefa enquanto a operação estiver em execução, a menos que você abra outra instância.

Em um Agendamento

Usando o botão Agendar, você pode definir um agendamento diário ou semanal, ou acionar a sincronização quando fizer login no seu espaço de trabalho do Altium Designer.

O Altium Designer criará uma nova tarefa de Agendamento do Windows.

Component synchronization schedule window
Janela de agendamento de sincronização de componentes

Através da Linha de Comando

Por último, mas não menos importante, é a sincronização de componentes acionada pela linha de comando, usando a utilidade de linha de comando em “C:\Program Files\Altium\AD20\System\ComponentSync.Executor.exe”.

Este modo é extraordinariamente flexível, pois pode ser acionado por um script externo.

Por exemplo, você pode querer escrever um simples script Python que consultará uma API privada exposta na sua rede interna/externa através do seguinte procedimento:

  • Conectar à sua API REST
  • Baixar os dados
  • Escrever os dados em um arquivo CSV em um local temporário
  • Acionar a sincronização de componentes e esperar que ela termine
  • Se completada com sucesso, deletar o arquivo temporário e sair
  • Se não for bem-sucedido, enviar o arquivo de log por email e sair

Conclusões

A funcionalidade DbLibs da Altium sempre foi uma das mais poderosas, embora um tanto oculta, no Altium Designer. Entender como tirar vantagem dela da melhor maneira possível pode exigir muito conhecimento de fundo em gestão de dados de componentes eletrônicos empresariais (e muitas vezes uma boa sessão de meditação), mas pode levar a melhorias surpreendentes na eficiência e uma redução na taxa de erros para seus designs.

Até o Altium 20, não era possível aproveitar tanto o Altium 365 quanto os DbLibs ao mesmo tempo sem comprometer os recursos e a usabilidade, pois múltiplas fontes de dados conflitantes podem originar confusão.

A partir do Altium 20.1, o novo recurso de Sincronização de Componentes permite mesclar as capacidades das bibliotecas de banco de dados com a simplicidade e colaboração do Altium 365, criando um sistema que é muito maior do que a soma de suas partes. Sincronizar os dados dos componentes eletrônicos dessa maneira oferece um poderoso conjunto de recursos para gestão e rastreamento de dados.

A documentação sobre este novo recurso pode ser encontrada aqui. Se você quer aprender o mais recente e melhor em migração e gestão automatizada de bibliotecas para seus componentes, leia este artigo recente.

Sobre o autor

Sobre o autor

David Bortolami is electronic engineer with a broad knowledge in PCB and circuit design. Currently, he is the head of Fermium, a small British enterprise that manufactures some of the world's most advanced scientific instruments for teaching and research. "Every product can be made twice as good at half the cost; it's a matter of diving deeply into why it should exist - then taking the rest out." As an Entrepreneur, David has experience with all the hurdles of manufacturing, integrated electronic-mechanical product design, meeting EMC & Regulatory requirements. In the past, he ran one of the biggest Italian Fablab/Hackerspace and Coworkings and was in charge of PCB Engineering for companies specialised in EMI-heavy industries such as electronic inverters. You can contact David directly at: d@fermium.ltd.uk

Recursos relacionados

Documentação técnica relacionada

Retornar a página inicial
Thank you, you are now subscribed to updates.