My Automation Software Project
Over the last couple of months I have mentioned that I am working on a pretty big software project. The diagram above is a graphical layout of some of the tools I have used in the past to accomplish a typical automation or machinery system, and this software is an attempt to encapsulate most of the tasks involved. The modules listed below are the major elements of what I am working on:
1. Parts Tool
2. Applications Tool
3. Timing Chart
4. Mechanical Sizing Toolkit
5. Electrical Sizing Toolkit
6. BOM Generator
7. I/O and Tag Toolkit
8. Flowchart Generator
9. Code Generator
10. Documentation Tool
I have spent quite a bit of time exploring different options for getting this done, and I have come to some important conclusions. The first is: this is really too big to do by myself. I already have many of these tools in one form or another, from manufacturer-provided tools to spreadsheets. Some of the tools only work with one manufacturer’s brand while others don’t have nearly the flexibility or capability I need.
I spent quite a bit of time over the last few months talking with various software developers and companies in my area, and none of them could provide even a rough estimate of the time involved in creating such an enterprise product, though I did get some decent estimates on individual modules.
Rather than getting one of these software companies to start on the project, I have been modifying some of the tools I already use in Microsoft Excel. This has involved boning up on my VBA for applications and use of macros. I have also been importing a lot of data from manufacturers for the first module.
Over the next few months I will be describing some of the modules briefly and discussing what the tools are used for. This is as much for my own use and clarification as for the readers of this blog; as I proceed with development I discover new challenges and desired features regularly.
The first module is the Parts Tool. There are a lot of parts databases available commercially, but they are not optimal for searching for components by feature (such as voltage, stroke/bore, torque, IO count etc.) On the other hand, most manufacturers do have these kinds of tools, but only for their particular products. My goal for the first module is to create a parts database that allows users to search for parts by characteristic across manufacturer’s lines. This involves creating a lot of separate databases for categories such as controllers, pneumatics, wire management, motors, bearings…. you get the point. So far I have barely made a dent in it, but much of the functionality has been designed and categorized. My guess is that this module will be mostly cloud based, though there will be capability for companies to add their own components locally.
Much of the need for this functionality in searching for components is needed to provide the other modules (such as the Applications Tool, Sizing Toolkits, BOM Generators and Documentation Tool) with categorizeable information.
This software is still in its infancy, and obviously it will take a lot more resources than I have available to even get it started, but I do think the idea is viable. One of my goals is to attract interest from others with much deeper pockets and more resources.
Meanwhile, I still have to make a living, so today I am off to Denver as I mentioned last week. I expect that I won’t get a lot done on my software project while I am there, but I will be learning a lot about the wastewater and utility field while teaching a class on PLC and HMI programming. Wish me luck!