EleLa - Elektronik Lagerverwaltung Hilfe

KiCAD an EleLa Anbindung

Dieses Tutorial zeigt wie man die Bauteile aus der EleLa Datenbank für den KiCAD verfügbar machen kann. Das Ziel ist es einen Datenbestand für die Bauteile zu haben sowie der Import der Projektpositionen anhand dem Export der Bauteile aus dem CAD Projekt. Die Bauteile werden nur in EleLa angelegt und verwaltet und über KiCAD können diese benutzt werden. In diesem Tutorial werden die Änderungen und die Möglichkeiten von EleLa beschrieben.

Man kann KiCAD mit EleLa in der Variante SQLite oder MariaDB/MySQL benutzen. Für diesen beiden SQL Dialekte kann EleLa automatische generierte Scripte erzeugen.

Vorgehen bei neu Anlegen von Bauteilen um diese in KiCAD verwenden zu können:

  • In EleLa: Anlegen des neu gewünschten Bauteils, incl. Bilder und technischen Daten.
  • In KiCAD: Zeichnen vom Schaltplan Symbol.
  • EleLa: Verlinken den neuen Symbols bei Gehäuse/Variante mit Library und Library Ref des zuvor neu angelegten Symbols von KiCAD.
  • EleLa: Zuweisung des Gehäuses in EleLa. Überprüfung ob in EleLa bereits bei Gehäuse-F6 ein Footprint verbunden wurde. Wenn nicht dann eines aus der KiCAD Footprint Bibliothek zuweisen. Sollte kein apssendes Footprint vorhanden sein, so:
  • KiCAD: Erstellen eines Footprint Symbols.
  • EleLa: Zuweisung des neuen Footprints zu, Gehäuse.

Mit dieser Vorgehensweise legt man die Verknüpfungen zum Schaltplan Symbol sowie zum Gehäuse Footprint fest.

Installation:

Bevor man jedoch mit KiCAD die Bauteile von EleLa sehen kann muss man ein paar Einstellungen tätigen, bzw. einen ODBC Datenbank Treiber installieren:

  1. Installation von KiCAD ab V8
  2. Einstellung der KiCAD Ordner der Symbole und Footprints in der EleLa Konfiguration (EleLa kann diese Dateien lesen)
  3. Installation des ODBC Datenbank Treibers (für SQLite oder MySQL (=MariaDB))
  4. Views für die Datenansicht in KiCAD erzeugen (Extras-F10 > Datenbank > Import/Export Menü > "CAD KiCAD View SQL erzeuen" und den Script ausführen.
  5. Datei "EleLa.kicad_dbl" eventuell anpassen und in KiCAD eintragen
  6. KiCAD konfiguration

Punkt 2: Einstellung der Ordner im EleLa Konfigurationsmenü:

In EleLa werden die Ordnern "KiCAD Smybols" und "KiCAD Footprints" eingerichtet, so wie diese in KiCAD verwendet werden.
Nach dem Neustart von EleLa ist EleLa bereits für den Betreib mit KiCAD konfiguriert, sobald diese beiden Ordner eingerichtet wurden.

Extras-F10 > Log > Optionen > Verzeichnisse

Hinweis: Bei jedem Arbeitsplatz mit KiCAD und ELeLa müssen diese Ordner separat ausgewählt werden, da bei jedem Arbeitsplatz vermutlich der Speicherort ein anderer ist.

Hinweis: Generell sollte man sich diese Ordner in einen anderen Ordner kopieren, der immer wieder gesichert wird da ansonsten eigene Symbole oder Änderungen bei einem Update von KiCAD überschrieben werden können.
Diese Sicherung könnte man am besten über eine Quellcode Verwaltung erledigen, damit hätte man eine Historie der Änderungen (z.B. SVN oder GIT) sowie bei mehreren Arbeitsplätzen können diese Systeme gegenseitige Änderungen zusammenführen.

EleLa kann mehrere KiCAD Symbole und Footprint Pfade wenn man diese mit Semikolon ; getrennt nacheinander ein gibt. Jedoch dürfen die Dateinamen der Bibliotheken dann nicht die gleichen sein, EleLa ignoriert doppelte gleiche Dateinamen da da ansonsten keine eindeutige Zuordnung zwischen den verschiedenen Pfaden bestehen würde. Dabei liest EleLa zu erst den ersten Pfad ein, wenn im zweiten Pfad ein gleicher Dateiname sein sollte wird dieser ignoriert und es wird ein Log Eintrag generiert.

Wenn Punkt 1 + 2 erledigt sind kann EleLa bereits unter Gehäuse/Variante und Gehäuse-F6 die KiCAD Bibliotheken lesen und man kann die Bauteile bereits mit EleLa verknüpfen.

Punkt 3: ODBC Treiber installation:

ODBC wird benötigt damit KiCAD auf die Daten von EleLa zugreifen kann. KiCAD hat eine ODBC Schnittstelle und kann über unterschiedliche Datenbank Treiber die Datenbank benutzen.

Je nach Datenbank System das man benutzt muss der passende ODBC Treiber geladen werden. Bitte beachten Sie dazu die Lizenzbestimmungen der jeweiligen Hersteller dieser Treiber.

- Download für SQLite von www.ch-werner.de die Datei "sqliteodbc_w64.exe" für ein 64 Bit Windows.
- Download für MariaDB / MySQL von www.mysql.com der "ODBC Driver for MySQL (Connector/ODBC)" für Windows 64 Bit.

Es können auch andere Treiber von anderen Herstellern verwendet werden.

Punk 4: Verknüpfung der Tabellen:

Felder aus den Tabellen von "Adresse", "Bauteil", "Gehäuse/Variante" sowie "Gehäuse" werden als eine VIEW verknüpft. Dabei können alle Felder der Datenbank sowie Daten aus den technischen Daten verwendet werden. Durch die VIEW ist gewährleistet dass die Bauteile über KiCAD nicht geändert werden können da eine VIEW prinzipiell Read-Only ist.

EleLa verknüpft diese Spalten zu KiCAD:

EleLa Tabelle.Spalte KiCAD Spalte Bemerkung
bauteilvariante.ID ID Eindeutige ID vom Bauteil Gehäuse/Variante in EleLa
bauteil.Bezeichnung Description Eindeutige Bezeichnung vom Bauteil
bauteilvariante.Bezeichnung DetailDescr Bezeichnung der Gehäuse/Variante
bauteilvariante.Bemerkung Comment Beschreibung von Gehäuse/Variante
bauteilvariante.BezKurz
bauteilvariante.Bezeichnung
bauteilvariante.ArtikelNr
bauteil.Bezeichnung
Value Die View verwendet aus diesen 4 möglichen Spalten die erste Spalte bei denen ein Wert drin steht, die folgenden Spalten werden ignoriert.
Der Wert von "Value" wird als Wert vom Bauteil im Schaltplan angezeigt
bauteilvariante.ArtikelNr MPN Hersteller Artikelnummer
adr.Bezeichnung Manufakturer Der Hersteller, sofern bei Gehäuse/Variante ein Hersteller eingetragen ist
gehause.Bezeichnung Case Bezeichnung des Gehäuses des verknüpften Gehäuses aus Gehäuse-F6
bauteilvariante.SMD SMD Die Zahl in EleLa wird zu "yes" oder "no" konvertiert.
gehause.Pins Pins Anzahl Pins des Gehäuses, welches unter Gehäuse-F6 parametriert wurde
bauteilvariante.Library + : + bauteilvariante.LibraryRef Symbol Zusammen setzen des Symbols bei Gehäuse/Variante. <Library>:<LibraryRef>
gehause.LibraryRef Footprint Die in EleLa hinterlegte Footprints, wobei ein Footprint <Library>:<Footprint> ist, EleLa kann mehre dem KiCAD übermitteln indem diese mit ";" getrennt werden.

Diese EleLa Spalten sollten alle ausgefüllt werden damit man die Daten vollständig in KiCAD sieht.

Der SQL Befehl um eine VIEW zu erzeugen:

In EleLa unter "Extras-F10 > Datenbank > Import/Export Menü > KiCAD VIEW SQL erzeugen" kann der SQL Befehl für die eigene Datenbank automatisch generiert werden. Der SQL Befehl besteht aus mehreren einzelnen Befehlen da je Typ-F8 Haupt Eintrag eine separate View erzeugt wird. EleLa baut dabei je nach Datenbank Typ SQLite oder MariaDB einen entsprechend für die SQL Syntax passenden SQL Befehl zusammen.

Mit der Taste "Execute" führt EleLa alle Befehle nacheinander aus. Die Befehle für die View können mehrfach ausgeführt werden, EleLa löscht automatisch die View, bzw. überschreibt die bestehende View. Mit der Änderung oder einem Erzeugen einer View wird der Datenbestand nicht manipuiliert, dennoch sollte man vorher ein Backup der Datenbank erstellen.

Beispiel bei SQLite:

DROP VIEW IF EXISTS `EleLa_Widerstand`
;
CREATE VIEW IF NOT EXISTS `EleLa_Widerstand` (
 ID, Description, DetailDescr, Comment, Value, MPN, Manufakturer, `Case`, SMD, Pins, Symbol, Footprint, Alternative, Datasheet) AS
 SELECT v.ID,
 b.Bezeichnung AS Description, v.Bezeichnung AS DetailDescr, v.Bemerkung AS Comment,
 IFNULL(IFNULL(IFNULL(v.BezKurz, v.Bezeichnung), v.ArtikelNr), b.Bezeichnung) AS Value,
 v.ArtikelNr AS MPN, a.Bezeichnung AS Manufakturer, g.Bezeichnung AS `Case`, IIF(g.SMD=1,"yes","no") AS SMD, g.Pins,
 v.Library || ":" || v.LibraryRef AS Symbol,
 JSON_EXTRACT(g.LibraryRef, '$."F1"') || 
   IFNULL(";" || JSON_EXTRACT(g.LibraryRef, '$."F2"'), "") AS Footprint,
 GROUP_CONCAT(c.ArtikelNr, ' | ') AS Alternative,
 CAST(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(IFNULL(v.Handbuch, b.Handbuch), "($H)", x'433A5C456C654C615C48616E6462756368'),
"($L)", x''), "($P)", x'433A5C456C654C615C50726F6A656B74'), "($G)", x'433A5C456C654C615C476572C3A474'),
"($D)", x'433A5C456C654C615C446F6B75'), "($F)", x'') AS VARCHAR(255)) AS Datasheet FROM bauteil b LEFT JOIN bauteilvariante v ON (v.Bauteil_ID=b.ID) LEFT JOIN gehause g ON (g.ID=v.Gehause_ID) LEFT JOIN adr a ON (a.ID=v.Adr_ID) LEFT JOIN bauteilvariante c ON (c.BauteilVerwandt_ID=v.BauteilVerwandt_ID AND c.ID <> v.ID) WHERE v.Library <> "" AND v.LibraryRef <> "" AND v.Art IN (0,2) AND b.tree_typ_ID IN (1,56,55,54,86) GROUP BY b.ID, v.ID, g.ID, a.ID ;

Funktion: Als erstes wird eine eventuell bestehende View gelöscht um anschließend die View neu zu erstellen. Dieses Beispiel zeigt alle Bauteile, die in der Typ-F8 Kathegorie Widerstand sowie deren Unterkathegorieen zugeordnet wurden. Da die ID's bei jeder Datenbank andere sind sollte der Script unbedingt von EleLa selbst erzeugt werden und nicht dieser aus der EleLa-Hilfe verwendet werden.

Die angelegten Views zeigt EleLa bei "Extras-F10" > "Datenbank" im linken Baum erst nach dem Neustart von EleLa mit an. Dabei ist das Symbol der Tabelle mit einem Auge versehen.

Die VIEW für KiCAD kann man im SQL Server jederzeit wieder löschen und neu erstellen, die Daten innerhalb von EleLa werden dadurch nicht beeinflusst. Sollte man mit der Zeit merken dass man andere, bzw. mehr Verknüpfungen benötigt, so kann dies jederzeit erweitert werden.

Die Funktion einer View:

  • Je Typ-F8 Haupt Eintrag wird eine View erzeugt. Diese zeigt KiCAD als eine einzelne Bibliothek an.
  • Es werden nur Bauteile und Kleinmaterial gezeigt, keine Arbeitszeit.
  • Bauteile müssen das Feld "Library" und "LibraryRef" ausgefüllt haben.
  • Wenn man unter Typ-F8 die Struktur ändert, so müss die KiCAD View SQL Befehle neu erzeugt werden, da ansonsten KiCAD nicht alle Bauteile sieht.

Besondere Felder:

  • Description: Bezeichnung vom Bauteil
  • Value: Ist der Wert des Symbols im Schaltplan.
  • Symbol: Ist das hinterlegte Schaltplan Symbol.
  • Footprint: Sind die passenden Footprint Symbole, die man verwenden kann. (z.B. Widerstand Axial als liegende oder stehende Ausführung)

Löschen der View:

Mit dem SQL Befehl kann die View wieder von der Datenbank gelöscht werden:

DROP VIEW `EleLa_Widerstand`

Das löschen der View wirkt sich nicht auf die Daten innerhalb von EleLa aus, eine View kann jederzeit gelöscht werden. Jedoch kann damit KiCAD die Daten von EleLa nicht mehr sehen.

Punk 5: Datei "EleLa.kicad_dbl":

Diese "KiCAD DataBaseLibrary" Datei erzeugt EleLa automatisch beim erzeugen des SQL Befehles mit. Diese Datei benötigt KiCAD um zu wissen welche Views der Datenbank KiCAD überhaupt nutzen darf und wie die Sturktur der View Tabellen ist. Sowie steht in der Datei die ODBC Datenbank Parametrierung drin.

ODBC Datenbank Verbindung, Beispiel SQLite:

  "name" : "EleLa Database Library",
  "description" : "EleLa components",
  "source" : {
    "type" : "odbc",
    "dsn" : "",
    "username" : "",
    "password" : "",
    "timeout_seconds" : 10,
    "connection_string" : "DRIVER=SQLite3 ODBC Driver;DATABASE=D:\\svn\\EleLa\\Temp\\EleLaV42.sq3"
  },

Bei SQLite braucht man in der Datei weiter nichts verändern, sofern man den oben genannten ODBC Treiber installiert hat.

Die Bezeichnung von "DRIVER" muss mit dem installierten Treiber übereinstimmen, ansonsten klappt die Verbindung nicht.

ODBC Datenbank Verbindung, Beispiel MariaDB / MySQL:

  "name" : "EleLa Database Library",
  "description" : "EleLa components",
  "source" : {
    "type" : "odbc",
    "dsn" : "elela_kicad",
    "username" : "elela",
    "password" : "<geheim>",
    "timeout_seconds" : 10,
    "connection_string" : ""
  },

EleLa trägt hier automatisch "username" und "password" aus der bestehenden Datenbank Verbindung ein.
Als "DSN" trägt EleLa den Name "elela_kicad" ein. Dieser DSN Name muss nun in der "ODBC-Datenquellen-Administrator" manuell eingerichtet werden.

Hinzufügen eines neuen Benutzer-DSN
Auswahl des "MySQL ODBC 8.2 ANSI Driver" und "Fertig stellen".

Data Source Name: "elela_kicad" (gleich wie in der Datei "EleLa.kicad_dbl".

Description ist optional

Mein Server muss die TCP/IP Adresse sowie der Port eingetargen werden (so wie bei EleLa auch.

Ebenfalls der User und das Passwort.

Wenn diese Daten korrekt eingegeben wurden, so kann mit dem DropDown Feld bei "Database" die EleLa Datenbank ausgewählt werden.

"Test" zeigt anschließend ob man alles richtig gemacht hat.

Mit OK wird die Eingabe abgeschlossen.

Nun kann KiCAD die ODBC Verbindung mit dem Name "elela_kicad" verwenden.

Einstellung in KiCAD:

KiCAD nutzt die ODBC Verbindung die in der Datei "EleLa.kicad_dbl" parametriert ist, daher ist es aus Sicht von KiCAD unwichtig ob der Datenbank Server SQLite oder MySQL/MariaDB ist.

Einstellungen für die "Database Library" zu EleLa konfigurieren.

Hinzufügen der Zeile für die "Database Library"

Alias Name: "EleLa"

Bibliothekspfad: Ordner und Dateiname der Datei "EleLa.kicad_dlb"

Bibliotheksformat: "Database"

Mit "OK" den Dialog schließen.

Im Schaltplan Editor kann nun das Bauteil mit dieser Taste eingefügt werden.

Im "Symbol Wählen" Dialog werden nun die EleLa Einträge gezeigt. Wenn man einen Eintrag anwählt, so zeigt KiCAD das verknüpfte Symbol sowie das verknüpfte Footprint.

Links unten werden die Daten, die in EleLa eingegeben sind gezeigt. KiCAD kann so konfiguriert werden dass man diese Felder bereits in der Auswahltabelle links oben sieht.

Wenn man diese Felder nun so sieht können die anderen Bibliotheken, die bei KiCAD schon mit dabei sind, im Konfigurationsdialog "Symbolbibliotheken" ausgeblendet werden, damit man nur noch die von EleLa sieht.

In diesem Beispiel sieht man nur die eine Diode in der Liste, da die anderen Bauteile alle noch nicht in EleLa verknüpft sind.

Wenn man einzelne Views nicht in KiCAD angezeigt haben möchte, so kann man diese aus der Datei "EleLa.kicad_dbl" löschen.

Das eingefügte Symbol in KiCAD.
Die Bezeichnung "1N4007G" stammt aus der Definition von ELeLa aus dem Feld "BezKurz".

Hinweis: KiCAD liest die Symbolbibliothek nur einmalig beim Start ein. Wenn man Änderungen in EleLa vor nimmt, so muss KiCAD neu gestartet werden. Leider gibt es aktuell noch kein "Refresh" der Daten von der Datenbank in KiCAD. Es ist in KiCAD bekannt und es gibt dazu bereits ein Bugticket.

Danksagung

Dieses Tutorial ist entstanden mit freundlicher Unterstützung von Manuel.


© 2010-2024 by Markus Müller