Next Generation Efficiency
By Brian Fenn on May 9, 2012.
Core pieces exist in almost every controls project. As we have discussed before, standards are used to keep these pieces consistent from system to system. Given a baseline of information, an exact procedure is followed to produce the various outputs required for the project. In 1995, Avanceon automated that process around the tools and technologies of the day through a software tool we called AutoGen. I/O lists and PLC rack layouts were among the information put into a MSAccess database to generate the documentation, drawing and controls outputs, the latter of which centered around register based PLC code and corresponding HMI tags. Over the years we have updated the output to be compatible with more modern technologies as well with ControlLogix PLC code and object creation and configuration directly in the Galaxy. However, the core design based around the I/O point limits the potential impact this tool can have on a project. As the technologies and architectures have changed, we needed to upgrade our AutoGen tool to allow us to maximize our efficiency. Thus producing, AutoGen 2.0.
With AutoGen 2.0 we looked to overhaul the data input process and overall structure of the application to allow for more flexibility, functionality and ease of use. Technology and approach has changed. Gone are the days of strict waterfall model with PLC registers and I/O modules mapped out in advance. Today we need to be agile and take an object oriented approach where we lay out the building blocks and move them around as we fine-tune the requirements and solutions. In order for AutoGen to reach its full potential, an over haul of the data input process and overall structure of the application was needed. Not only does this allow us to build AutoGen on current technologies that improve performance and deployment (SQL Server 2008 with a .NET Web front-end), but it also allows us to permit things like generation from partial input, iterative AutoGen updates and integrated customer management. By having the software centered around objects rather than I/O points, it is much easier to mine, format and formulate the data, increasing flexibility and capability in creating future and custom outputs.
The user experience begins in the AutoGen Management Application. This front-end tool, associates customers and projects with specific standard revisions as well as the current (or selected) version of the AutoGen executable. This allows us to make changes to Avanceon or customer standards, as well as AutoGen itself, without jeopardizing already implemented or currently developing systems. Device, I/O and other information is loaded into AutoGen via Excel imports that allow for flexible mapping and partial completeness. Placeholders are used for incomplete information to allow for generation and future replacement. Standard outputs for the PLC include overall program structure, device logic and configuration/touch points, messaging structure, PLIs and simulation logic. Standard HMI outputs are instantiated, configured and modeled ArchestrA objects or HMI (RSView, iFix, InTouch, etc.) tags depending on technology platform. Electrical design output consists of I/O schematics, loop diagrams and power distribution drawings while documentation and reporting includes DDS and FAT content, commissioning checklists and I/O summary information including spare allocations. Additional data can easily be incorporated in order to modify or add output. As the design changes, AutoGen is able to modify the working code as well. AutoGen can connect to development PLC code for instances, evaluate which information for the parts that it created has changed since last generation and update the code accordingly.
I would love to hear your feedback, we see AutoGen 2.0 as a great way to maintain efficiency and consistency in a seemingly ever-changing solution development lifecycle. Do you use similar tools? Do you see benefits or concerns with using such tools? What other types of things do you or would you like to do with such a tool?