Project objective

Davis Core and Pad was a small manufacturing company of about 60 employees. I was hired to build an embedded control system to run the production machines on the manufacturing floor. Twenty-five years ago, we were using a custom built z80 processor and serial rs485 networking with a custom coded real time kernel and token ring type networking protocol that I personally coded in assembly and dynamic C. Technology has come a long way since then, and the latest iteration is built using an x86 industrial PC running Windows Embedded Standard 7 and using a standard Ethernet network coded in c++ feeding into PostgreSQL database for reporting. Reporting software is written in c# and provides among other things, the live $/hr, employee efficiency monitoring, inventory control, along with yearly, monthly and daily customizable reports. The company was sold in January 2020. With a fully functioning system and new management moving in a different direction, I moved on in February 2020. I gained full ownership of the software as part of the sale other than a perpetual license for the purchasing company, Drew Foam.

Current Project Status

Through a negotiated agreement, Brian Davis acquired full ownership of all controller related software when Davis Core and Pad was sold to Drew Foam. Drew Foam acquired a perpetual license to the existing version of the software but not any future updates. The software is no longer in active development at this time.

Current Project Overview

This system allows control and monitoring of the shape molding machines throughout the plant at Davis Core and Pad. It is broken into three components: This document is only intended to be a summary of these applications. A complete list of all of the functionality is beyond the scope of this document.

Controller Hardware

The hardware for the controller includes: The only hardware that is not straight off the shelf is the industrial PC. A hard drive image can be ghosted directly to the PC to create spare controllers, so no complicated configuration is needed. However, the controller software and DBconnector will run on any basic windows installation from Windows XP all the way up to Windows 10.

Controller Software

Controller is the software and hardware running on each shape molding machines in the plant. It uses a touch screen to interact with the user and a relay bank to interact with the machine. The controller software is written in the C++ language and is composed of 17583 lines of custom code.
The following screenshot is the home screen of the controller application. It shows a live Controller program running.
Main Page
The above image provides a summary of the Controller software Home Page. Core controller functionality:

DBconnector

DBconnector provides the networking component of the controller. Separating it out allows better isolation between the network and Controller. This increases the stability of Controller since its task is only to run the machine. Controller can run standalone safely with no network or with the network connection down. The design of the system is to be as robust as possible so that the production line never goes down.
DBconnector is written in the c# language targeting the .net 4.0 platform and contains 2792 lines of custom code.

Database

The database is written in standard SQL and PL/pgSQL using stored procedures. It is constructed as a 37 table relational database with around 20 stored procedures that provide the API. It can be hosted on any standard PostgresSQL server either from an on-site server or from a server hosted somewhere on the intranet or internet. The database uses standard SQL technology in a Postgres database. It is possible to run Controller Reports from anywhere in the world and see live streaming data from the Controllers.
Core Database Functionality:

Controller Reports

Controller View is the application that runs on the office desktop computers to monitor the data generated by the controllers. Foremen will use this program to enter their final numbers for the day. Quality PSS sheet data is entered into the system using this program. This program is essentially the front end or client for the database.
The intent here is to give an overview of how it can be used. The code is 5,572 lines of custom code written in the c# language targeting the .net 4.0 platform.
Existing functionality includes: Some Screen shots may help with understanding Controller Reports:
Yearly Employee Report
This chart shows the employees in the year 2018 ranked by efficiency. The top two are foreman and their cycles are test cycles as you can see by the very low cycle count. In 2018, Sam Smith (name changed) was our most efficient employee with a stunningly small quantity of wasted time of 51 minutes total over the course of the year.
Shift Report
The above chart shows the 3 machines that were running on 1st and 2nd shifts and 5 machines running 3rd. You can see that 3rd shift was the most efficient this day at 107.5% efficiency. It also shows that the 3rd shift employee, #3013, started his shift an hour late at 1:08AM, took a long 38 minute lunch, and ended his shift 26 minutes early. The machine was running on automatic since there is almost no red in the chart, and the cycle time is perfectly flat at 70 seconds.
Core Controller View Functionality: