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!
Table of Contents
What is Macaos story?
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.
Why did we choose Delphi for our Enterprise project?
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.
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.
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.
What is the overview of our chosen enterprise market?
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.
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.
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.
What is the Macaos System?
The Macaos System is built around three main client applications:
- 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 Perception is used by suppliers to manage their orders and customer relations.
- Macaos Convergence is used by suppliers and manufacturers to manage the flow of supply chain information.
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.
How do RAD Server, FireDAC, and Delphi on Linux play a part?
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.
With the Delphi Linux compiler, we were able to port our proprietary code for processing manufacturing data from Windows with minimal effort.
What problem did we want to solve with Delphi in the Macaos Enterprise desktop application?
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.
Project goals include:
- Easily configurable test routines
- Expandable and customizable system
- Cloud archiving of test routines and test results
- Access test results in desktop or mobile applications and in web browser
- Export test results to external databases
- Reusable electronics
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.
What RAD Studio and Embarcadero elements did we use in our enterprise solution?
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
TJSONTextReader classes are used to serialize test routines, giving a standardized and flexible storage format.
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.
What are our overall conclusions about using Delphi and RAD Server for enterprise solutions?
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.
Submitted by Bruce McKibben. You can reach Bruce at www.macaos.com
This article was submitted as part of our Enterprise Article Showcase. If you have a success story to tell about a project which makes use of RAD Studio with Delphi or C++ Builder, or any of our other great enterprise products please get in touch, you could be featured too and win a prize! Read all about it here: Enterprise Article Showcase