RAD 1월 19일에 포스트됨 공유하기 1월 19일에 포스트됨 원문제목: Electronics Manufacturing Made Easy With Delphi And RAD Server 원문: https://blogs.embarcadero.com/electronics-manufacturing-made-easy-with-delphi-and-rad-server 작성자: Ian Barker (2023.1) We recently asked developers to get in touch with their stories of building enterprise solutions with RAD Studio’s IDE software including Delphi, C++ Builder, as well as related technologies such as RAD Server, FireDAC, and Interbase. Today’s article was written by Bruce McKibben about his Macaos system. Thanks Bruce! 최근 엔터프라이즈 솔루션을 RAD스튜디오 IDE 소프트웨어로 구축한 사례를 모으고 있으며, 이를 제출해줄 것을 개발자들에게 요청했다. 델파이, C++빌더 뿐만 아니라 연관 기술인 RAD서버, FireDAC, 인터베이스 등의 사례까지 말이다. 이 글은 많은 분들이 보내주신 여러 사례 중 하나인 Macaos 시스템에 대한 것으로, Bruce McKibben 씨가 보내준 것이다. 다시 한 번 감사를 표한다! 목차 Macaos 스토리 이 프로젝트에 델파이를 선택한 이유 우리가 선택한 엔터프라이즈 시장 살펴보기 Macaos System이란? RAD서버, FireDAC, 델파이가 리눅스에서 어떤 역할을 하는가? Macaos Enterprise 데스크탑 애플리케이션에서 델파이로 해소하고 싶었던 부분 이 엔터프라이즈 급 솔루션에서 활용한 RAD스튜디오와 엠바카데로 요소들 엔터프라이즈 솔루션에 델파이 및 RAD서버를 사용하는 것에 대한 결론 Macaos 스토리 Although there are many good tools available for electronics design, most of them stop at the point of generating design description data for a single printed circuit board (PCB). However, there are numerous data manipulation steps from there to a finished electronics assembly—including panelization and depanelization, solder paste stencil design, component data management, and in-circuit test. The Macaos system is built to fill this gap. 전자 기기 설계에 사용할 수 있는 좋은 도구들은 많지만, 대부분은 단일 인쇄 회로 기판(PCB) 설계 설명 데이터를 생성하는 단계에서 끝난다. 그러나 전자 기기 어셈블리가 나오기까지는 패널화 및 디패널화, 솔더 페이스트 스텐실 설계, 부품 데이터 관리, 내부 회로 테스트 등 수많은 데이터 조작 단계가 필요하다. Macaos 시스템은 이 간극을 메우기 위해 구축했다. 이 프로젝트에 델파이를 선택한 이유 We started in the late 1990s with a simple price calculation tool for PCBs, written in Delphi 3 and distributed on diskette. Today, our flagship application, Macaos Enterprise, is a cloud-based system encompassing online pricing and ordering, manufacturing data management, data archiving and much more. 1990년대 후반, 델파이 3으로 작성해 디스켓으로 배포했던 PCB용 간단한 비용 계산툴이 그 첫 시작이었다. 현재 주력 애플리케이션인 Macaos Entperise는 클라우드 기반 시스템으로 온라인 가격과 주문, 제조 데이터 관리, 데이터 아카이빙 등등의 기능을 제공한다. Features which drove the initial choice to use Delphi include a shallow learning curve, rapid UI development, event-based interactivity, and native code compilation. Twenty-five years down the road, these features are still important to us. As we started to expand to a multi-tier system, the availability of Kylix allowed us to build middle-tier services for our Linux servers—some of which are still in operation. However, in the 12-year gap between the discontinuation of Kylix and the release of Linux support in Delphi 10.2 we came very close to porting to another development environment. 델파이를 선택하게 된 배경에는 낮은 학습 곡선으로 배우기 쉽고, 빠른 UI 개발, 이벤트 기반 상호작용, 네이티브 코드 컴파일 등이 있다. 25년이 지난 지금도 이 부분은 여전히 중요하다. 멀티티어 시스템으로 확장하면서, 카일릭스(Kylix) 가용성을 활용해 리눅스 서버용 미들티어 서비스를 구축할 수 있었으며, 이 중 일부 서버는 지금도 운영 중이다. 하지만 카일릭스가 중단되고 델파이 10.2에서 리눅스를 지원하기 전까지의 12년 공백기 동안은 다른 개발 환경으로 이전하는 것을 고려하기도 했었다. Today, our main products are VCL-based desktop applications. We have also developed mobile companion apps on iOS and Android. And our middle-tier is a Linux-deployed RAD Server implementation. 현재 우리의 주요 제품들은 VCL 기반의 데스크탑 애플리케이션들이다. iOS와 안드로이드용 모바일 동반자 앱(companion app)도 개발했다. 그리고 미들티어는 리눅스에 배포한 RAD서버 구현체이다. 우리가 선택한 엔터프라이즈 시장 살펴보기 The path from electronics design to a finished assembly or product includes many steps. 전자 기기 설계부터 완성된 어셈블리 및 제품에 이르기까지의 과정에는 여러 단계가 있다. Typically, a customer’s layout engineer will generate manufacturing data from their CAD system and send these to their purchasing department. The purchaser would then send the manufacturing data to one or more suppliers, requesting a price quotation for manufacture of bare PCBs (without components) or PCB Assemblies (with components mounted). The supplier’s sales department would then calculate a price, which might include requesting price quotations from various PCB manufacturers and electronic component suppliers. 일반적으로, 고객의 레이아웃 엔지니어는 CAD 시스템에서 제조 데이터를 생성하고 이를 구매 부서로 보낸다. 그러면 구매 담당자는 여러 공급업체에 제조 데이터를 보내 PCB 자체(부품이 없는 상태) 또는 PCB 어셈블리(부품 장착 상태) 제작에 대한 견적을 요청한다. 공급업체의 영업 부서는 여러 PCB 제조업체 및 전자 부품 공급 업체에 가격 견적 요청 등을 통해 가격을 계산할 수 있다. Individual PCBs need to be stepped up to a panel of suitable size for the machines in the manufacturing line. It is also often necessary to design a stencil for applying the right amount of solder paste to each solder joint on the PCB. After components have been mounted, the individual boards need to be depanelized (separated from the panel)—carefully, so that solder joints are not compromised. 개별 PCB는 제조 라인 기계에 적합한 크기의 패널로 증대해야 한다. 또한 PCB의 각 납땜 이음에 솔더 페이스를 적정하게 도포하기 위한 스텐실을 설계해야 하는 경우도 종종 있다. 부품을 장착한 뒤에는, 개별 기판을 조심스럽게 디패널화(패널에서 분리)해서 납땜 이음 부위가 손상되지 않도록 해야 한다. PCBAs are usually function-tested to ensure that components have been mounted correctly, and that the circuit functions as expected. Often, testing will also include the upload of firmware to the PCBA. PCBA는 일반적으로 부품이 올바르게 장착되었는지, 회로가 예상대로 작동하는지 확인하는 기능 테스트를 거치게 된다. 종종 테스트에는 PCBA에 펌웨어를 업로드하는 작업도 포함된다. Macaos System이란? The Macaos System is built around three main client applications: Macaos System은 세 가지 주요 클라이언트 애플리케이션으로 구축되었다: Macaos Enterprise is used by customers to upload their manufacturing data, get price quotes, place and track orders and archive documentation. There are also modules for panelization, stencil design, solder pallet design, depanelization, component data management, and test fixture design. Many of these modules would also be used by the PCBA manufacturer. Users may also access a subset of this functionality through the Macaos Rover mobile apps on iOS and Android. Macaos Enterprise: 고객이 제조 데이터를 업로드하고, 가격 견적을 받고, 주문 및 주문 추적, 문서 보관에 사용된다. 패널화, 스텐실 설계, 솔더 팔레트 설계, 디패널화, 부품 데이터 관리 및 텍스트 픽스처 설계를 위한 모듈도 있다. 이 모듈 중 다수는 PCBA 제조업체에서도 사용한다. 사용자는 iOS와 안드로이드의 Macaos Rover 모바일 앱을 통해 일부 기능을 사용할 수도 있다. Macaos Perception is used by suppliers to manage their orders and customer relations. Macaos Perception: 공급업체가 주문 및 고객 관계를 관리하는데 사용한다. Macaos Convergence is used by suppliers and manufacturers to manage the flow of supply chain information. Macaos Convergence: 공급업체와 제조업체가 공급망 정보 흐름을 관리하는데 사용한다. Uploaded manufacturing data is stored on our servers and passed to the client programs as needed. This greatly improves security, version control and data integrity, compared to the traditional market practice of sending the data in email attachments. 업로드된 제조 데이터는 서버에 저장되며, 필요할 때 클라이언트 프로그램에 전달된다. 이는 이메일 첨부 파일로 데이터를 전송하는 기존 관행과 비교해보면 보안, 버전 관리, 데이터 무결성이 크게 향상되는 것이다. RAD서버, FireDAC, 델파이가 리눅스에서 어떤 역할을 하는가? RAD Server’s combination of solid FireDAC-based database connectivity and local system functionality allows us to process manufacturing data on the server side, ensuring that various users access data on a need-to-know basis. RAD서버는 견고한 FireDAC 기반 데이터베이스 연결과 로컬 시스템 기능을 결합해 서버 측에서 제조 데이터를 처리할 수 있도록 해준다. 이를 통해 다양한 사용자가 필요에 따라 데이터에 액세스할 수 있다. With the Delphi Linux compiler, we were able to port our proprietary code for processing manufacturing data from Windows with minimal effort. 델파이 리눅스 컴파일러를 사용하면, 윈도우의 제조 데이터 처리 전용 코드 이식 작업은 최소한의 노력만으로도 충분하다. Macaos Enterprise 데스크탑 애플리케이션에서 델파이로 해소하고 싶었던 부분 Our current development project is a simple yet flexible platform for function testing of PCBAs. The platform consists of a test fixture/jig, an electronics cage, and a Test Routine module to be included in our Macaos Enterprise desktop application. The fixture/jig for a PCBA would be designed in the Test Fixture module of Macaos Enterprise. We envision that a design engineer would configure test procedures, which would then be carried out by the manufacturer prior to shipment. 현재 개발 프로젝트는 PCBA 기능 테스트에 사용할 간단하면서도 유연한 플랫폼이다. 이 플랫폼은 테스트 치공구(fixture/jig), 전자 케이지, 테스트 루틴 모듈로 구성되며, Macaos Enterprise 데스크탑 애플리케이션에 포함될 것이다. PCBA용 치공구(fixture/jig)는 Macaos Enterprise의 Test Fixture 모듈에서 설계할 수 있다. 처리 순서는 설계 엔지니어가 테스트 절차를 구성하고 난 다음, 제조업체가 출하 전 해당 테스트 절차를 수행하는 것으로 구상하고 있다. 프로젝트 목표는 다음과 같다: 손쉽게 구성 가능한 테스트 루틴 커스터마이징 가능한 시스템 클라우드에서의 테스트 루틴 및 테스트 결과 아카이빙 데스크탑 또는 모바일 애플리케이션, 웹 브라우저를 통해 테스트 결과에 액세스 테스트 결과를 외부 데이터베이스로 내보내기 재사용 가능한 전자 기기 The reusable electronics cage includes a 64-to-4 test point to probe crossbar switch, allowing measurements to be made at any of up to 64 test points on the PCBA. There are also several built-in measurement instruments, as well as a variety of additional plug-in instruments available. A microcontroller manages the operation of a wide variety of low-level test operations, driven through an http-based API. 재사용 가능한 전자 기기 케이지에는 측정 가능한 크로스바 스위치로 연결된 64-to-4 테스트 포인트가 포함되어 있어, PCBA의 최대 64개 테스트 지점 중 어디에서는 측정이 가능하다. 또한 측정 기기가 내장되어 있으며, 다양한 추가 플러그인 기기도 사용할 수 있다. 마이크로컨트롤러는 http 기반 API를 통해 구동되는 다양한 저수준 테스트 작업을 관리한다. 이 엔터프라이즈 급 솔루션에서 활용한 RAD스튜디오와 엠바카데로 요소들 We believe that Delphi and RadServer are ideal tools for this project. The Test Routine module communicates with the electronics cage using a THttpClient, and communicates with servers via a Linux-deployed RAD Server middle tier. Client applications, both desktop and mobile, also use RAD Server to access test results. Delphi’s support for compilation to Windows (VCL), iOS and Android (FMX), and Linux (RAD Server) allow us to reuse much of the code across these platforms. Delphi’s TJSONTextWriter and TJSONTextReader classes are used to serialize test routines, giving a standardized and flexible storage format. 델파이와 RAD서버가 이 프로젝트에 이상적인 도구라고 생각한다. 테스트 루틴 모듈은 THttpClient를 사용해 전자 기기 케이지와 통신하고, 서버와는 리눅스에 배포된 RAD서버 미들티어를 통해 통신한다. 데스크탑과 모바일 용 모두를 지원하는 클라이언트 애플리케이션 또한 RAD서버를 통해 테스트 결과에 액세스한다. 델파이는 윈도우(VCL), iOS와 안드로이드(FMX), 리눅스(RAD서버) 컴파일을 지원하기 때문에, 사용하고자 하는 플랫폼들에서 코드 대부분을 재사용 할 수 있다. 테스트 루틴 직렬화에는 델파이의 TJSONTextWriter와 TJSONTextReader 클래스를 사용하며, 이 클래스들은 표준화된 유연한 저장 형식을 제공한다. One of the challenges in this project is to make it easy and straightforward to design a test routine. The paradigm would be to select an individual test operation from a toolbox, configure it for the specific measurement to be made, and drop it into the appropriate point in the test routine sequence. The wide variety of third-party components available for Delphi are a great help in developing an intuitive user interface. We will most likely use the TMS TAdvTableView component to manage and display the test routine sequence. 이 프로젝트의 과제 중 하나는 테스트 루틴을 쉽고 간단하게 설계하는 것이다. 전체적인 방식은 도구상자에서 개별 테스트 작업을 선택하고, 특정 측정값에 맞게 구성한 다음, 테스트 루틴 시퀀스의 적절한 지점에 놓는 것이다. 델파이에서 사용 가능한 다양한 타사 컴포넌트들은 직관적인 UI 구축에 큰 도움이 된다. 우리가 테스트 루틴 시퀀스를 관리하고 표시하는데에는 TMS TAdvTableView 컴포넌트를 사용할 가능성이 높다. 엔터프라이즈 솔루션에 델파이 및 RAD서버를 사용하는 것에 대한 결론 The multi-platform capabilities of Delphi and RAD Server provide great flexibility for data access between Linux servers and desktop and mobile clients. RAD Server’s use of FireDAC technology has improved stability and flexibility substantially compared to our previous Kylix-based middle-tier services. And Delphi’s graphical UI design paradigm and event-driven paradigm helps us to create a clean and intuitive user experience. 델파이, RAD서버가 제공하는 멀티 플랫폼 기능은 리눅스 서버와 데스크탑, 모바일 클라이언트 간에 데이터를 유연하게 액세스할 수 있도록 해준다. RAD서버의 FireDAC 기술로 이전 카일릭스 기반 미들티어 서비스에 비해 안정성과 유연성이 크게 향상되었다. 또한 델파이의 그래픽 UI 설계 방식과 이벤트 기반 방식은 깔끔하고 직관적인 UX를 구축하는데 도움이 되었다. Submitted by Bruce McKibben. You can reach Bruce at www.macaos.com Bruce McKibben 제공. Bruce와의 컨택이 필요하다면 www.macaos.com을 방문해보길 바란다. -------------------------------------------------------------------------------------------------------------------------------------------- 해당 글은 엠바카데로에서 주최한 엔터프라이즈 개발사례 쇼케이스에 등록된 사례를 정리한 것입니다. 이 외에도 더 많은 사례들을 여기를 클릭해 확인할 수 있습니다. 데브기어는 여러분의 개발사례를 함께 홍보하고, 그 가치를 공유하고자 '무상 보도자료 배포 & 데브기어 홈페이지 게재' 등의 서비스를 제공하고 있습니다. 자세한 내용은 www.devgear.co.kr/casestudy/reg에서 확인해보시기 바랍니다. 인용하기 이 댓글 링크 다른 사이트에 공유하기 더 많은 공유 선택 사항
Recommended Posts
이 토의에 참여하세요
지금 바로 의견을 남길 수 있습니다. 그리고 나서 가입해도 됩니다. 이미 회원이라면, 지금 로그인하고 본인 계정으로 의견을 남기세요.