Altium DbLibs dans le cloud avec le tout dernier Altium Designer 20.1
Le support DbLib d'Altium est l'une des fonctionnalités les plus anciennes et les plus appréciées d'Altium Designer. Ils sont présents dans le monde du logiciel depuis bien avant que je puisse sonder l'existence de la loi d'Ohm.
La nouvelle fonction Synchronisation des composants d'Altium 20.1 vous permet de synchroniser pratiquement n'importe quelle base de données ou bibliothèque de bases de données avec Altium 365, en tirant parti des atouts des deux approches, aussi permettant un collaboration en ligne.
Nous discuterons de ce que sont les DbLibs, comment elles fonctionnent, ce qu'elles peuvent vous aider à réaliser et comment les intégrer à Altium 365. Alerte au spoiler : c'est d'une facilité dégoûtante.
Ce guide convient aussi bien aux utilisateurs expérimentés qu'aux novices de DbLibs et contient, avec la documentation d'Altium, tout ce dont vous avez besoin pour une intégration réussie.
Nous survolerons toutes les approches passées qui ne sont plus pertinentes, en nous plongeant d'abord uniquement dans les techniques les plus récentes.
Comprendre DbLibs et DbLink
Si vous n'êtes pas habitués à DbLibs, ceci servira d'introduction rapide.
Altium Designer prend en charge de nombreux formats de bibliothèque basés sur des fichiers : PcbLib, SchLib, LibPkg, IntLibs ; PcbLibs contient l'empreinte, SchLibs contient le symbole schématique et le lien vers l'empreinte à l'intérieur d'une PcbLib, et IntLibs et LibPkg permettent aux utilisateurs de consolider plusieurs bibliothèques.
En supposant que l'utilisateur moyen d'Altium soit familier avec les types de bibliothèques mentionnés ci-dessus, nous pouvons approfondir un peu plus la structure de leurs données en utilisant une analogie avec les bases de données relationnelles.
Nous pouvons imaginer le SchLib comme un tableau de base de données, analogue à une feuille de calcul Excel. Chaque ligne du tableau est une composante, identifiée par son nom. Un tel tableau comporterait de nombreuses colonnes : une pour le schéma, une pour le champ « Commentaires », une pour l'indicatif, une pour chaque paramètre de nos composants, comme « Tension » ou « Température ».
Un PcbLib sous la même analogie serait un tableau similaire mais simplifié, ne contenant qu'une colonne « Nom », une description, le dessin de notre empreinte, et pas beaucoup plus.
Le SchLib devrait également pointer vers le PcbLib. On les appelle généralement « liens » ou « Clés étrangères » dans les bases de données relationnelles, mais si vous n'êtes pas familier avec cette terminologie un peu envahissante, vous pouvez les considérer comme des hyperliens sur lesquels vous cliquez et qui vous ouvrent la bonne empreinte.
Les colonnes supplémentaires que nous pourrions envisager d'ajouter concernent les documents tels que les fiches techniques, les notes d'application, les déclarations de conformité à la directive RoHS et les données de simulation à utiliser avec l'environnement de simulation mixte intégré d'Altium.
Pour compléter notre analogie, LibPkg serait une liste de tous nos tableaux (ou feuilles de calcul Excel), et IntLibs serait une exportation zippée de notre base de données prête à être partagée avec tous ceux qui en ont besoin.
Les DbLibs sont une fonctionnalité qui concrétise ce concept mental, en vous permettant de connecter Altium Designer à n'importe quelle base de données compatible ODBC.
Altium lira une ou plusieurs tableaux de base de données, chacun d'eux fonctionnant comme un fichier SchLib séparé. Chaque ligne de vos tableaux deviendra un composant de votre DbLib. Plusieurs colonnes standard sont utilisées pour définir les paramètres de base des composants et diriger Altium vers les fichiers SchLib et PcbLib de droite, généralement avec un seul symbole schématique ou une seule empreinte de circuit imprimé.
DbLink fonctionne de manière similaire à DbLibs, mais sans symbole schématique ni empreinte sur le circuit imprimé. Il s'appuie plutôt sur une bibliothèque externe basée sur des fichiers et se limite à la synchronisation des paramètres avec les composants existants.
La force cachée des DbLibs
Les DbLibs sont étonnants de par leur flexibilité. Il n'est donc pas étonnant que les éditeurs de logiciels concurrents pratiquent des prix exorbitants pour permettre des fonctionnalités similaires, car ils permettent une intégration profonde des bibliothèques de composants dans les systèmes d'entreprise existants.
Bien qu'Altium ne prenne en charge qu'un seul tableau à structure fixe, il n'y a aucune limitation quant à la manière dont ce tableau peut être créé. Toute base de données relationnelle moderne vous permet de créer des vues de base de données. Les vues sont des tableaux virtuels créés dynamiquement et automatiquement par la base de données, en suivant des instructions écrites en langage SQL.
L'exemple le plus typique d'une vue de base de données est la fusion de deux tableaux différents. Par exemple, en supposant que nous ayons un tableau A contenant les DbLibs standard et un tableau B contenant la documentation externe de nos composants, nous pouvons les fusionner en créant une vue avec une requête similaire à la suivante :
SÉLECTIONNER * D'UN JOINT GAUCHE B OÙ « Part ID » = « Part ID »
Grâce à ce que l'on appelle les processus ETL (Extract, Transform, Load), il est possible de connecter n'importe quel logiciel aux bibliothèques d'Altium Designer par le biais de DbLibs.
D'innombrables entreprises proposent des logiciels et des services ETL, et souvent, une grande partie du travail peut être réalisée avec seulement quelques lignes de Python.
Exemple de mise en œuvre : Connexion aux informations sur les entrepôts internes
Si vous travaillez dans une entreprise structurée, votre département de recherche et développement peut gérer son petit entrepôt de composants d'échantillons, chaque composant ayant un numéro de rayon et de boîte.
Les petits entrepôts sont susceptibles d'être gérés par un logiciel tout aussi léger, tel qu'un tableur Excel, Microsoft Access ou un logiciel à code public comme PartKeepr.
L'intégration d'Altium DbLibs à votre entrepôt de recherche et développement peut accélérer considérablement votre développement tout en améliorant votre collaboration en ligne. Vous voulez vérifier si le composant que vous venez d'ajouter à votre carte est bien celui que vous pensez, ou vérifier rapidement la taille d'un connecteur ? Il suffit de double-cliquer et de lire les paramètres pertinents. De même, cette intégration permet de lister les étagères et les boîtes de composants directement dans la nomenclature et de les imprimer sur papier en un seul clic à partir d'un fichier Altium OutJob.
Exemple de mise en œuvre : Synchroniser les données des fabricants
Certains des paramètres les plus critiques que vous souhaiterez peut-être modifier en dehors de l'environnement Altium Designer sont le fabricant et les numéros de pièce du fabricant pour chaque composant.
Les composants passifs, par exemple, doivent parfois être mis à jour assez fréquemment : vous pouvez vouloir ajouter des numéros de pièces différents pour les condensateurs 10uF 16V 0603 en fonction de la fluctuation du marché, du pays où votre produit est fabriqué et de ses connexions EMS. Les fonctionnalités natives d'Altium et l'intégration d'Octopart peuvent aider considérablement l'ingénieur à sélectionner rapidement ces composants, mais dans certaines entreprises, le processus doit inévitablement passer par des départements spécialisés.
Les entreprises des secteurs de la défense et de l'aéronautique peuvent être amenées à travailler derrière un pare-feu sans accès à Internet pour éviter les fuites de données, et doivent donc remplacer l'intégration Octopart d'Altium par une solution ad hoc.
Dans ces cas, il peut être avantageux de modifier les paramètres des numéros de pièce fabricant et constructeur en dehors d'Altium Designer, tout en exploitant les capacités de modélisation Excel d'Active BOM, Draftsman et Altium pour générer des nomenclatures détaillées.
Exemple de mise en œuvre : Suivre les données de P&P
De nombreuses entreprises disposent de lignes internes Pick & Place pour la production et le prototypage.
Les P&P sont de lourdes machines cartésiennes : elles prennent un composant en un certain point, sur la base d'un décalage XY et d'une rotation, et le déplacent vers un autre, sur la base également de décalages XY et de rotations similaires.
Certains de ces paramètres changent avec les différentes cartes ; l'exemple le plus notoire étant le centre de composants par rapport à l'origine de la carte, constituant le P&P que vous devez fournir à votre EMS. D'autres valeurs ne changent qu'avec le numéro de pièce spécifique, par exemple, la distance entre les pièces d'une bobine ou la rotation par défaut des composants.
De nombreuses lignes P&P utilisent leur propre logiciel de gestion afin de conserver une base de données de tous les composants et de simplifier le fonctionnement.
Pour réduire le délai de mise sur le marché, de nombreuses entreprises commencent à définir ces paramètres alors que la conception du circuit imprimé est encore en cours. A cette fin, un logiciel de gestion de pick and place peut être intégré à Altium DbLibs et utilisé dans tous les environnements d'Altium.
Toutes ces valeurs peuvent être exportées vers toute fonctionnalité Altium qui prend en charge les paramètres des composants, comme la nomenclature active Altium, les exportations ODB++ ou les tableaux Draftsman.
Exemple de mise en œuvre : Se connecter à le PGI de votre entreprise
Lorsque je travaillais chez un grand fabricant d'onduleurs pour pompes à eau, l'entreprise fonctionnait, comme beaucoup d'autres, avec un logiciel PGI développé sur mesure. Le logiciel a survécu à d'innombrables mises à jour pendant de nombreuses décennies, et bien qu'il ne soit pas le plus beau fleuron de l'architecture numérique, il a fait son travail à chaque fois.
Pour intégrer Altium Designer à ce logiciel, nous avons ajouté un paramètre SKU à nos bibliothèques préexistantes. Chaque SKU (Stock Keeping Unit), pointait vers un « produit » à l'intérieur du logiciel PGI.
Le PGI contenait des fiches techniques pour des dizaines de milliers de composants, et des données contextuelles telles que les rapports d'approbation RoHS. Parmi les données figuraient des documents confidentiels qui ne pouvaient pas être transférés en dehors du PGI pour éviter les fuites de données.
Le PGI a exporté les données vers des tableaux Microsoft SQL Server, et quelques vues ont été créées pour afficher les liens de documents formatés uniquement en nommant les colonnes selon les modèles « ComponentLink1Description » et « ComponentLink1URL ». De même, nous avons décidé de rédiger les descriptions des composants directement dans le logiciel PGI, car notre service des achats avait conservé les dossiers les plus méticuleux et les plus cohérents que j'aie jamais vus, et aurait continué à le faire dans un avenir prévisible.
Limites DbLibs et Concord Pro Past
Jusqu'à la version 20.0 d'Altium, lors de l'utilisation de Concord Pro sur Altium 365 en conjonction avec DbLibs, il n'était pas possible de profiter pleinement de toutes les fonctionnalités de collaboration en ligne.
Concord Pro permet d'adopter des données de composants toujours actualisées et parfaitement standardisées dans votre organisation en permettant à chaque ingénieur de travailler à partir d'une seule et même bibliothèque partagée.
Grâce à la collaboration en ligne, un ou plusieurs bibliothécaires peuvent dessiner et valider des symboles schématiques, des empreintes de composants et des paramètres de composants, tandis que toute l'équipe peut leur demander de créer de nouveaux composants via le formulaire de demande de pièces d'Altium.
Dans Concord Pro, les modifications des composants sont gérées par le biais d'un Cycle de vie des composants, et leur adoption est également suivie dans vos projets grâce à la fonctionnalité Where Used. Ces fonctionnalités permettent de découvrir et de mettre à jour rapidement toutes les conceptions lorsqu'un composant devient inévitablement obsolète, une tâche qui, dans un environnement moins centralisé, peut souvent prendre des jours de travail.
Toutes ces fonctionnalités, et bien d'autres encore, ont été partiellement compromises lors de l'adoption de DbLibs. DbLibs se connecte à des bases de données distinctes de celle utilisée par Concord Pro en coulisse ; les symboles schématiques et les empreintes de circuits imprimés doivent être partagés et organisés de manière indépendante, et toute gestion du cycle de vie s'appuiera inévitablement sur un logiciel PGI externe souvent peu adapté aux besoins de la gestion des bibliothèques de composants.
Au fil des ans, certains utilisateurs se sont également plaints d'un manque de performance lors de la gestion de grandes bibliothèques, la principale solution étant l'utilisation de plusieurs tableaux séparés à l'intérieur du DbLib. En revanche, Concord Pro sur Altium 365 est capable de gérer des bibliothèques pratiquement illimitées car toutes les requêtes de recherche s'exécutent côté serveur, et les composants sont chargés dynamiquement en petits lots lorsque vous faites défiler le panneau des composants.
Nouvelle fonctionnalité de synchronisation entre DBlib et le composant serveur d'Altium
Les notes de publication d'Altium 20.1 peuvent être assez longues à lire, car elles comprennent un nombre impressionnant de 106 corrections de bogues, 13 petites nouvelles fonctionnalités pour Draftsman, et 7 améliorations des performances ; Au moins 55 problèmes abordés proviennent de la communauté.
Cet article traite d'une fonctionnalité parmi d'autres : la synchronisation des données entre la base de données des composants et le serveur.
Cela semble très parlant ! Mais le principe est simple. Prenez la puissance de DbLibs, unifiez-la avec l'offre cloud d'Altium 365.
Le dispositif fonctionne comme suit : Si vous avez déjà migré un DbLib vers Altium 365 à l'aide du Library Migrator, la nouvelle fonctionnalité Synchronisation des composants vous permet de reprendre le travail là où vous l'avez laissé.
Vous pourrez désormais faire correspondre vos colonnes DbLib aux paramètres des composants de l'Altium, de la même manière que dans un DbLib, mais avec un support supplémentaire pour des types de données étendus tels que le pourcentage et les unités de mesure (Volt, Ampère, Ohm, ...). Lorsque l'action de synchronisation est déclenchée de l'une des trois manières dont nous parlerons bientôt, Altium compare votre base de données avec les composants existants et les met à jour. Si nécessaire, vous pouvez également choisir des modèles de composants pour les composants nouvellement créés et décider des paramètres qui déclencheront une nouvelle révision. Par exemple, vous pouvez souhaiter qu'un changement de numéro de pièce du fabricant déclenche une nouvelle révision, mais cela peut ne pas être nécessaire lors de la mise à jour des emplacements d'entrepôt.
Le second mode de fonctionnement est déclenché lorsque, au lieu de connecter un DbLib complet, vous connectez une base de données plus simple (sans symboles schématiques ni empreintes de circuits imprimés), telle qu'une base de données Microsoft Access, un tableur Excel, un fichier CSV (Comma Separated Values) ou toute autre source de données comprenant un pilote OLE DB ou ODBC. Dans ce mode, la synchronisation des composants agit comme l'ancien DbLink : vos composants seront définis par Altium Designer et Altium Concord pro sur Altium 365, et les colonnes de votre base de données deviendront des paramètres à l'intérieur de vos composants.
Les composants existants et les lignes de la base de données sont mis en correspondance un à un lorsque la valeur d'une colonne donnée est égale à un paramètre spécifique du composant.
La fonctionnalité Synchronisation des composants fonctionne sur votre bureau, vous permettant ainsi de synchroniser Altium 365 avec des bases de données qui ne sont pas accessibles depuis Internet. En outre, les données sont compressées avant d'être envoyées à Altium 365, ce qui vous permet de migrer facilement de vastes bibliothèques sans encombrer votre connexion Internet et d'améliorer votre collaboration en ligne.
Demonstration
Dans cet exemple, j'ai migré le tableau contenant les condensateurs 0603 MLCC de la Celestial Database Library de Mark Harris vers Altium 365 en utilisant la fonctionnalité Library Migrator.
La bibliothèque contient près de 6000 condensateurs, mais Altium gère le stress avec grâce.
J'ai converti le tableau de la base de données (initialement hébergé sur un serveur Microsoft SQL) en un tableau Excel en utilisant DBeaver, un logiciel de gestion de base de données open-source. De cette façon, la base de données peut être facilement éditée à des fins de démonstration.
J'ai créé une nouvelle configuration de Synchronisation des composants, après avoir activé la fonctionnalité dans la page des extensions de plateforme dans Altium Designer.
La configuration lit la seule feuille à l'intérieur de notre fichier Excel et la synchronise avec le cloud. La Synchronisation des composants a été configurée pour faire correspondre les composants par un paramètre/colonne clé nommé PartId.
CONSEILS : N'oubliez pas de toujours garder le panneau des propriétés ouvert, afin de ne rien manquer qui nécessite une configuration supplémentaire lorsque vous cliquez !
Je suis passé à l'action et j'ai modifié le champ Description des condensateurs dans notre fichier Excel.
Après avoir déclenché une synchronisation manuelle des composants, nous pouvons voir le condensateur nouvellement mis à jour apparaître dans le panneau Composants et Explorateur.
Modes d'exécution
Vous pouvez déclencher la nouvelle fonctionnalité Synchronisation des composants de trois manières différentes :
Manuellement
Ouvrez le fichier CmpSync et appuyez sur le bouton Exécuter pour déclencher la synchronisation manuellement. La tâche s'exécutera dans votre instance Altium Designer actuelle, et vous ne pourrez pas effectuer d'autres tâches pendant que l'opération est en cours, à moins que vous n'ouvriez une autre instance.
Sur un calendrier
En utilisant le bouton Calendrier, vous pouvez définir un calendrier quotidien ou hebdomadaire, ou déclencher la synchronisation lorsque vous vous connectez à votre espace de travail Altium Designer.
Altium Designer va créer une nouvelle tâche Windows Calendrier.
Par la ligne de commande
Enfin et surtout, la synchronisation des composants est déclenchée par la ligne de commande, en utilisant l'utilitaire de ligne de commande sous “C:\Program Files\Altium\AD20\System\ComponentSync.Executor.exe”.
Ce mode est extraordinairement flexible, car il peut être déclenché par un script externe.
Par exemple, vous pourriez vouloir écrire un simple script Python qui interrogera une API privée exposée dans votre réseau interne en suivant la procédure suivante :
- Connexion à votre API REST
- Télécharger les données
- Ecrire les données dans un fichier CSV dans un emplacement temporaire
- Déclencher la synchronisation des composants et attendre qu'elle se termine
- En cas de réussite, supprimer le fichier temporaire et quitter
- En cas d'échec, envoyez le fichier journal par courrier électronique et quittez
Conclusions
La fonction DbLibs d'Altium a toujours été l'une des plus puissantes, bien que quelque peu cachée, dans Altium Designer. Comprendre comment en tirer le meilleur parti possible peut demander beaucoup de connaissances de base en matière de gestion des données d'entreprise (et souvent une bonne séance de méditation), mais cela peut conduire à des améliorations étonnantes de l'efficacité et à une réduction du taux d'erreur pour vos conceptions.
Jusqu'à Altium 20, il n'était pas possible de tirer parti à la fois d'Altium 365 et de DbLibs sans faire de compromis sur les fonctionnalités et la collaboration en ligne, car de multiples sources de données conflictuelles peuvent être source de confusion.
À partir d'Altium 20.1, la nouvelle fonctionnalité Synchronisation des composants permet de fusionner les capacités des bibliothèques de bases de données avec la simplicité et la collaboration en ligne d'Altium 365, créant ainsi un système qui est bien plus grand que la somme de ses parties.
La documentation sur cette nouvelle fonctionnalité peut être trouvée ici