Altium 365와 클라우드에서의 DbLibs 및 전자 부품

David Bortolami
|  작성 날짜: 오월 13, 2020  |  업데이트 날짜: 일월 18, 2021
클라우드에서의 전자 부품 및 Altium 365의 Altium DbLibs

Altium의 DbLib 지원은 전자 부품과 그 데이터를 관리하기 위한 Altium Designer의 가장 오래되고 사랑받는 기능 중 하나입니다. 오옴의 법칙이 존재한다는 것을 인식하기도 전부터 소프트웨어 세계에 존재해 왔습니다. 이제 Altium 365가 새로운 프로젝트 생성 및 관리 모드가 되면서, 설계 팀은 프로젝트, 라이브러리, 부품 데이터 및 제조 데이터를 호스팅하고 공유할 수 있는 안전한 클라우드 환경을 사용할 수 있게 되었습니다.

부품 데이터의 경우, Altium Designer 20.1은 Altium 365와 거의 모든 데이터베이스 또는 데이터베이스 라이브러리를 동기화할 수 있는 새로운 Component Sync 기능을 포함하고 있습니다. 여기서 제시된 같은 아이디어들은 보안 환경에서 온프레미스 배포를 위한 Concord Pro에서도 적용됩니다. DbLib이 무엇인지, 어떻게 작동하는지, 어떤 도움을 줄 수 있는지, 그리고 Altium 365와 어떻게 통합할 수 있는지에 대해 논의할 것입니다. 스포일러 경고: 끔찍하게 쉽습니다. 이 가이드는 경험이 풍부한 DbLib 사용자와 초보자 모두에게 적합하며, Altium의 문서와 함께 성공적인 통합을 위해 필요한 모든 것을 포함하고 있습니다. 더 이상 관련이 없는 모든 과거 접근 방식을 넘어서 새로운 기술만을 먼저 다룰 것입니다.

DbLibs와 DbLink 이해하기

DbLibs에 익숙하지 않다면, 이것은 빠른 소개가 될 것입니다.

Altium Designer는 다양한 파일 기반 라이브러리 형식을 지원합니다: PcbLib, SchLib, LibPkg, IntLibs; PcbLibs는 풋프린트를 포함하고, SchLibs는 회로도 기호를 포함하며 PcbLib 내부의 풋프린트와 연결되고, IntLibs와 LibPkg는 사용자가 여러 라이브러리를 통합할 수 있게 합니다.

평균적인 Altium 사용자가 앞서 언급한 라이브러리 종류에 익숙하다고 가정하면, 관계형 데이터베이스 비유를 사용하여 그들의 데이터 구조를 조금 더 깊이 파고들 수 있습니다.

우리는 SchLib를 Excel 스프레드시트와 유사한 데이터베이스 테이블처럼 상상할 수 있습니다. 테이블의 각 행은 이름으로 식별되는 하나의 구성요소입니다. 이러한 테이블에는 많은 열이 있을 것입니다: 하나는 회로도 그림을 위한 것이고, 하나는 “Comments” 필드를 위한 것이고, 하나는 지정자를 위한 것이고, 하나는 우리의 전자 구성요소의 모든 매개변수, 예를 들어 “Voltage”나 “Temperature”를 위한 것입니다.

동일한 비유 하에 PcbLib는 “Name” 열, 설명, 우리의 풋프린트 그림, 그리고 그다지 많지 않은 것을 포함하는 비슷하지만 단순화된 테이블일 것입니다.

SchLib는 PcbLib를 가리켜야 합니다. 이것들은 관계형 데이터베이스에서 보통 링크 또는 외래 키라고 불리지만, 다소 어려운 용어에 익숙하지 않다면, 클릭하면 올바른 풋프린트를 열어주는 하이퍼링크로 생각할 수 있습니다.

추가로 고려할 수 있는 열에는 데이터시트, 응용 노트, RoHS 준수 선언, 그리고 Altium의 통합된 혼합 시뮬레이션 환경에서 사용할 시뮬레이션 데이터와 같은 문서들이 있습니다.

우리의 비유를 완성하자면, LibPkg는 모든 테이블(또는 Excel 스프레드시트)의 목록이 될 것이고, IntLibs는 데이터베이스의 압축된 내보내기로, 필요한 사람과 공유할 준비가 된 것입니다.

DbLibs는 이러한 정신적 개념을 현실로 가져오는 기능으로, Altium Designer를 ODBC 호환 데이터베이스에 연결할 수 있게 합니다.

Altium은 하나 이상의 데이터베이스 테이블을 읽게 되며, 각각은 별도의 SchLib 파일로 작동합니다. 테이블의 모든 행은 DbLib의 구성 요소가 됩니다. 여러 표준 열이 사용되어 기본 구성 요소 매개변수를 정의하고 Altium을 올바른 SchLib 및 PcbLib 파일로 가리키는데, 보통 하나의 회로도 기호 또는 PCB 풋프린트만 있습니다.

DbLink는 DbLibs와 유사하게 작동하지만, 포함된 회로도 기호와 PCB 풋프린트 없이 외부 파일 기반 라이브러리에 의존하며, 기존 전자 부품과의 매개변수 동기화에만 제한됩니다.

DbLibs의 숨겨진 강점

DbLibs는 그 유연성에서 놀랍습니다. 그래서 경쟁 소프트웨어 회사들이 유사한 기능을 활성화하기 위해 과도한 가격을 부과하는 것도 놀랄 일이 아닙니다. 왜냐하면 그것들은 기존 기업 시스템에 구성 요소 라이브러리를 깊게 통합할 수 있게 해주기 때문입니다.

Altium은 하나의 고정된 구조 테이블만을 지원하지만, 그 테이블이 어떻게 생성되는지에 대한 제한은 없습니다. 모든 현대 관계형 데이터베이스는 데이터베이스 뷰를 생성할 수 있습니다. 뷰는 데이터베이스가 SQL 언어로 작성된 지시에 따라 동적으로 자동 생성하는 가상 테이블입니다.

데이터베이스 뷰의 가장 전형적인 예는 두 개의 다른 테이블을 함께 결합하는 것입니다. 예를 들어, 우리가 표준 DbLibs를 포함하는 테이블 A와 전자 부품에 대한 외부 문서를 포함하는 테이블 B를 가지고 있다고 가정할 때, 다음과 같은 쿼리로 뷰를 생성하여 두 테이블을 결합할 수 있습니다:

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

ETL(추출, 변환, 로드) 프로세스라고 불리는 것을 통해, 어떤 소프트웨어도 DbLibs를 통해 Altium Designer의 라이브러리에 연결할 수 있습니다.

수많은 회사들이 ETL 소프트웨어와 서비스를 제공하며, 종종 몇 줄의 파이썬 코드만으로도 많은 작업을 수행할 수 있습니다.

예시 구현: 내부 창고 정보 연결하기

구조화된 회사에서 근무한다면, 연구개발 부서는 각각의 전자 부품이 선반과 상자 번호를 가진 소규모 창고를 운영할 수 있습니다.

소규모 창고는 Excel 스프레드시트, Microsoft Access 또는 PartKeepr과 같은 오픈 소스 소프트웨어와 같이 비슷하게 가벼운 소프트웨어에 의해 관리될 가능성이 높습니다.

연구개발 창고와 Altium DbLibs를 통합하면 개발 속도를 크게 높일 수 있습니다. 방금 보드에 추가한 부품이 생각한 것이 맞는지, 또는 커넥터 크기를 빠르게 확인하고 싶으신가요? 그저 더블 클릭하고 관련 파라미터를 읽으면 됩니다. 마찬가지로, 이러한 통합은 전자 부품의 선반과 상자를 BOM에 직접 나열하고 Altium OutJob 파일에서 한 번의 클릭으로 종이에 인쇄할 수 있게 합니다.

예시 구현: 제조업체 데이터 동기화

Altium Designer 환경 외부에서 편집하고자 하는 가장 중요한 파라미터 중 일부는 각 부품의 제조업체와 제조업체 부품 번호일 수 있습니다.

예를 들어, 수동 전자 부품은 때때로 자주 업데이트가 필요할 수 있습니다: 시장 변동, 제품 제조 국가, EMS 연결 상태에 따라 10uF 16V 0603 커패시터에 대한 다른 부품 번호를 추가하고 싶을 수 있습니다. Altium의 기본 기능과 Octopart 통합은 엔지니어가 이러한 전자 부품을 신속하게 선택하는 데 크게 도움이 될 수 있지만, 일부 회사에서는 과정이 특수 부서를 거쳐야 할 수도 있습니다.

방위 및 항공 우주 기업은 데이터 유출을 방지하기 위해 인터넷 접속 없이 방화벽 뒤에서 작업해야 할 수 있으며, 따라서 Altium의 Octopart 통합을 맞춤형 솔루션으로 교체해야 할 수 있습니다.

이러한 경우에는 Altium Designer 외부에서 제조업체 및 제조업체 부품 번호 매개변수를 편집하는 것이 유리할 수 있으며, 여전히 Active BOM, Draftsman 및 Altium의 Excel 템플릿 기능을 활용하여 자세한 BOM을 생성할 수 있습니다.

구현 예: P&P 데이터 추적 유지

많은 회사들이 생산 및 프로토타이핑을 위해 내부 Pick & Place 라인을 운영합니다.
P&Ps는 무거운 카테시안 기계입니다: 특정 지점에서 XY 오프셋과 회전을 기반으로 부품을 집어 다른 지점으로 이동시키며, 이 역시 유사한 XY 오프셋과 회전을 기반으로 합니다.

이러한 매개변수 중 일부는 다른 보드에 따라 변경됩니다. 가장 유명한 예는 보드 원점에 대한 구성요소 중심이며, 이는 EMS에 제공해야 하는 P&P를 구성합니다. 다른 값들은 특정 부품 번호에 따라만 변경되는데, 예를 들어, 릴 내 부품 간 거리나 전자 구성요소의 기본 회전 등이 있습니다.

많은 P&P 라인들은 모든 전자 구성요소의 데이터베이스를 유지하고 작업을 단순화하기 위해 자체 관리 소프트웨어를 운영합니다. 시장 출시 시간을 줄이기 위해, 많은 회사들은 PCB 디자인이 진행 중일 때 이러한 매개변수의 설정을 시작합니다. 이를 위해, 픽 앤 플레이스 관리 소프트웨어는 Altium DbLibs와 통합되어 Altium의 모든 환경에서 사용될 수 있습니다.

이러한 모든 값들은 Altium Active BOM, ODB++ 내보내기 또는 Draftsman 테이블과 같이 전자 구성요소 매개변수를 지원하는 모든 Altium 기능으로 내보낼 수 있습니다.

구현 예: 회사 ERP에 연결하기

저는 수중 펌프용 전력 인버터를 제조하는 선도 기업에서 근무했을 때, 회사는 많은 다른 회사들처럼 맞춤형 ERP 소프트웨어를 운영했습니다. 이 소프트웨어는 수십 년에 걸쳐 수많은 업데이트를 견뎌냈으며, 디지털 아키텍처의 가장 아름다운 작품은 아니었지만, 매번 임무를 완수했습니다.

Altium Designer를 이 소프트웨어와 통합하기 위해, 우리는 기존 라이브러리에 SKU 매개변수를 추가했습니다. 각 SKU(Stock Keeping Unit, 재고 유지 단위)는 ERP 소프트웨어 내의 "제품"을 가리켰습니다.

ERP는 수만 개의 전자 부품에 대한 데이터시트와 RoHS 승인 보고서와 같은 문맥 데이터를 포함하고 있었습니다. 데이터 중에는 ERP 밖으로 전송되어서는 안 되는 기밀 문서들도 있어 데이터 유출을 방지했습니다.

ERP는 데이터를 Microsoft SQL Server 테이블로 내보냈고, "ComponentLink1Description"과 "ComponentLink1URL" 패턴을 따르는 열 이름을 지정함으로써 형식화된 문서 링크를 표시하는 뷰가 몇 개 생성되었습니다. 마찬가지로, 우리는 구매 부서가 지금까지 보아온 것 중 가장 세심하고 일관된 기록을 유지해왔고 앞으로도 그럴 것이라고 판단되어 ERP 소프트웨어 내부에 직접 구성 요소 설명을 작성하기로 결정했습니다.

DbLibs와 Altium 365의 과거 제한사항들

Altium의 20.0 버전까지, Altium 365를 DbLibs와 함께 사용할 때는 현장 내에서만 협업 기능을 전부 활용할 수 있었습니다. 이는 보안이 유지되는 캠퍼스 내 협업과 부품 관리에는 적합하지만, 외부 디자이너들과 이해관계자들과의 전면적인 협업은 구식 파일 교환 프로세스를 사용했습니다.

Altium 365는 모든 엔지니어가 동일한 단일 공유 라이브러리에서 작업할 수 있도록 함으로써 항상 최신이며 완벽하게 표준화된 구성 요소 데이터를 귀사의 조직에서 채택할 수 있게 합니다. 하나 이상의 사서는 회로도 기호, 구성 요소 풋프린트 및 구성 요소 매개변수를 그리고 검증할 수 있으며, 전체 팀은 Altium의 부품 요청 양식을 통해 새로운 전자 구성 요소를 생성하도록 요청할 수 있습니다.

Altium 365에서는 부품 수명 주기를 통해 구성 요소 변경이 관리되며, 사용처 기능을 통해 프로젝트에서의 채택도 추적됩니다. 이러한 기능을 통해 구성 요소가 불가피하게 단종될 때 모든 설계를 신속하게 파악하고 업데이트할 수 있습니다. 이는 중앙 집중식 환경이 아닌 경우 종종 수일의 작업이 걸릴 수 있는 작업입니다.

이러한 모든 기능, 그리고 더 많은 기능들은 DbLibs를 채택할 때 부분적으로 제한되었습니다. DbLibs는 Altium 365가 내부적으로 사용하는 데이터베이스와 별개의 데이터베이스에 연결되며; 회로도 기호와 PCB 풋프린트는 독립적으로 공유되고 조직되어야 하며, 모든 수명 주기 관리는 구성 요소 라이브러리 관리의 요구 사항에 종종 적합하지 않은 외부 ERP 소프트웨어에 불가피하게 의존하게 됩니다.

여러 해 동안 일부 사용자들은 큰 라이브러리를 다룰 때 성능 부족에 대해 불평해 왔으며, 주된 해결책은 DbLib 내에 여러 개의 별도 테이블을 사용하는 것이었습니다. 반면, Altium 365는 모든 검색 쿼리가 서버 측에서 실행되고 구성 요소가 구성 요소 패널 내에서 스크롤할 때 작은 배치로 동적으로 로드되므로 사실상 무제한의 라이브러리를 처리할 수 있습니다.

Altium의 새로운 DBlib에서 서버 구성 요소 동기화 기능

Altium 20.1 릴리스 노트는 읽기에 상당히 길 수 있으며, 무려 106개의 버그 수정, Draftsman을 위한 13개의 작은 새 기능, 그리고 7개의 성능 개선 사항을 포함합니다; 적어도 55개의 문제는 커뮤니티에서 제기되었습니다.

이 글은 많은 기능 중 하나에 대한 것입니다: 구성 요소 데이터베이스에서 서버 데이터 동기화.

말이 복잡해 보이지만, 요지는 간단합니다. DbLibs의 힘을 가져다가 Altium 365 클라우드 제공과 통합하세요.

이 기능은 다음과 같이 작동합니다: 이전에 라이브러리 마이그레이터를 사용하여 DbLib를 Altium 365로 마이그레이션한 경우, 새로운 구성 요소 동기화 기능을 통해 중단한 작업을 이어갈 수 있습니다.

이제 DbLib 열을 Altium 전자 부품 매개변수에 매핑할 수 있게 되었습니다. DbLib에서와 같은 방식이지만, 퍼센트와 같은 확장 데이터 유형 및 단위(볼트, 암페어, 옴, …)에 대한 추가 지원이 포함됩니다. 곧 논의할 세 가지 방법 중 하나로 동기화 작업이 트리거되면 Altium은 데이터베이스를 기존 구성 요소와 비교하여 업데이트합니다. 필요한 경우 새로 생성된 전자 부품에 대해 구성 요소 템플릿을 선택하고 어떤 매개변수가 새로운 개정을 트리거할지 결정할 수도 있습니다. 예를 들어, 제조업체 부품 번호의 변경이 새로운 개정을 트리거하길 원할 수 있지만, 창고 위치를 업데이트할 때는 그럴 필요가 없을 수 있습니다.

두 번째 작동 모드는 전체 DbLib를 연결하는 대신 스키마틱 심볼이나 PCB 풋프린트가 없는 더 간단한 데이터베이스(예: Microsoft Access 데이터베이스, Excel 스프레드시트, CSV(쉼표로 구분된 값) 파일 또는 OLE DB 또는 ODBC 드라이버를 포함하는 기타 데이터 소스)를 연결할 때 트리거됩니다. 이 모드에서는 Component Sync가 이전의 DbLink처럼 작동합니다: 전자 부품은 Altium Designer에 의해 정의되어 Altium 365에 저장되며, 데이터베이스의 열은 구성 요소 내의 매개변수가 됩니다.

기존 전자 부품과 데이터베이스 행은 지정된 열의 값이 특정 부품 매개변수와 동일할 때 일대일로 매칭됩니다.

Component Sync 기능은 데스크탑에서 실행되므로, 인터넷에 접근할 수 없는 데이터베이스를 Altium 365와 동기화할 수 있습니다. 또한, 데이터는 Altium 365로 전송되기 전에 압축되므로, 방대한 라이브러리를 쉽게 마이그레이션할 수 있으며 인터넷 연결이 막히는 것을 방지할 수 있습니다.

시연

이 예에서, 저는 Mark Harris의 Celestial Database Library에 있는 0603 MLCC 캐패시터를 포함하는 테이블을 Library Migrator 기능을 사용하여 Altium 365로 마이그레이션했습니다.

이 전자 부품 라이브러리에는 거의 6000개의 캐패시터가 포함되어 있지만, Altium은 부담 없이 처리합니다.

Migration completed! We can now rest and watch the sun rise on a grateful universe.
마이그레이션이 완료되었습니다! 이제 우리는 감사한 우주에서 휴식을 취하고 일출을 볼 수 있습니다.

저는 데이터베이스를 시연 목적으로 쉽게 편집할 수 있도록 Microsoft SQL 서버에서 호스팅되던 데이터베이스 테이블을 오픈 소스 데이터베이스 관리 소프트웨어인 DBeaver를 사용하여 Excel 테이블로 변환했습니다.

Database library converted to Excel
전자부품 데이터베이스 라이브러리를 엑셀로 변환

Altium Designer의 플랫폼 확장 페이지에서 기능을 활성화한 후, 새로운 Component Sync 구성을 만들었습니다.

Component Synchronization feature enabled under Extensions & Updates
확장 및 업데이트에서 전자 부품 동기화 기능 활성화

설정은 Excel 파일 내의 유일한 시트를 읽고 클라우드와 동기화합니다. 컴포넌트 동기화는 PartId라는 키 파라미터/열로 컴포넌트를 매칭하도록 설정되었습니다.

팁: 속성 패널을 항상 열어두어 클릭할 때 추가 구성이 필요한 것을 놓치지 않도록 하세요!

The key parameter has been changed to match the library
주요 매개변수가 라이브러리와 일치하도록 변경되었습니다.

저는 우리 Excel 파일의 캐패시터 설명 필드를 수정했습니다.

The component has been edited on Excel
구성요소가 Excel에서 편집되었습니다.

수동 컴포넌트 동기화를 트리거한 후, 컴포넌트 및 탐색기 패널에서 새로 업데이트된 캐패시터가 표시되는 것을 볼 수 있습니다.

Resulting updated component in the Explorer panel
탐색기 패널의 결과 업데이트된 구성요소
Resulting updated component in the Components panel
구성 요소 패널의 결과 업데이트된 구성 요소

실행 모드

새 컴포넌트 동기화 기능을 세 가지 다른 방법으로 트리거할 수 있습니다:

수동으로

CmpSync 파일을 열고 실행 버튼을 눌러 수동으로 동기화를 트리거하세요. 작업은 현재 Altium Designer 인스턴스 내에서 실행되며, 다른 인스턴스를 열지 않는 한 작업이 실행되는 동안 다른 작업을 수행할 수 없습니다.

일정에 따라

일정 버튼을 사용하여 매일 또는 매주 일정을 설정하거나 Altium Designer 작업 공간에 로그인할 때 동기화를 트리거할 수 있습니다.

Altium Designer는 새로운 Windows 일정 작업을 생성할 것입니다.

Component synchronization schedule window
구성요소 동기화 일정 창

명령 줄을 통해

마지막으로, 명령 줄을 사용하여 구성 요소 동기화를 트리거하는 것입니다. “C:\Program Files\Altium\AD20\System\ComponentSync.Executor.exe” 아래의 명령 줄 유틸리티를 사용합니다.

이 모드는 외부 스크립트에 의해 트리거될 수 있기 때문에 매우 유연합니다.

예를 들어, 내부/외부 네트워크에 노출된 개인 API를 쿼리할 간단한 Python 스크립트를 작성하고 싶을 수 있습니다. 다음 절차를 통해:

  • REST API에 연결
  • 데이터 다운로드
  • 임시 위치에 CSV 파일로 데이터 작성
  • 구성 요소 동기화를 트리거하고 완료될 때까지 기다림
  • 성공적으로 완료되면 임시 파일을 삭제하고 종료
  • 실패한 경우, 로그 파일을 이메일로 보내고 종료

결론

Altium의 DbLibs 기능은 항상 Altium Designer에서 가장 강력한 기능 중 하나였으며, 다소 숨겨져 있었습니다. 엔터프라이즈 전자 부품 데이터 관리에 대한 많은 배경 지식(그리고 종종 명상의 좋은 세션)이 필요할 수 있지만, 이를 최대한 활용하는 방법을 이해하는 것은 설계의 효율성과 오류율 감소에 놀라운 개선을 가져올 수 있습니다.

Altium 20까지는 여러 충돌하는 데이터 소스로 인해 혼란이 발생할 수 있기 때문에 Altium 365와 DbLibs를 동시에 활용하는 것이 기능과 사용성 측면에서 타협 없이 가능하지 않았습니다.

Altium 20.1부터 새로운 컴포넌트 동기화 기능을 통해 데이터베이스 라이브러리의 기능과 Altium 365의 단순성 및 협업을 결합하여 부분들의 합보다 훨씬 뛰어난 시스템을 만들 수 있게 되었습니다. 이러한 방식으로 전자 부품 데이터를 동기화하면 관리 및 데이터 추적을 위한 강력한 기능 세트를 사용할 수 있습니다.

이 새로운 기능에 대한 문서는 여기에서 찾을 수 있습니다. 구성 요소의 자동화된 라이브러리 마이그레이션 및 관리의 최신 및 최고를 배우고 싶다면, 최근 기사를 읽어보세요.

작성자 정보

작성자 정보

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

관련 자료

관련 기술 문서

홈으로 돌아가기
Thank you, you are now subscribed to updates.