Project management and code generation software

orionk

Member
Join Date
Oct 2011
Location
Atlanta
Posts
12
Hi everyone! I have a question to all of you guys - do you ever use any software or online tools to manage your automation/electrical engineering projects?
I have worked in a number of companies and have seen various scenarios, from using excel tables to run multi-million dollar projects to using proprietary SW for every little tiny project. Unfortunately I do not have experience working for any major big integrator and am very curious how projects are managed at this level (and if every engineer likes the way it is handled).
Additional question - does anyone have ever used a software to automatically generate the PLC code? I know some companies develop products to generate the "skeleton" of PLC program and I think it is a great thing to have.
 
I don't know of any automatic plc generating software.

what I have done is to develop my own system for the default stuff.
bits, counters, default main program - when the system powers up.
I have created multiple libraries of slc 500 routines.
displaying I/o on a panelview, alarm messaging using timed based errors with 20 words of messages telling the fault condition, repeating stuff. sometimes I remember the code used in another program and use that.

in regards to projects, we did the following.
a folder for customer, plant location, then job number, 1-99, 100-199, 200-299 and so on. the folder had folders for mechanical, electrical, pneumatic, hydraulic, manuals, plc, panelview, ….

regards,
james
 
I worked for a massive company and they had a software solution built by themselves to manage documentation for project. Usually, each project or product were under the name of each facility and they had every machine they sold to that facility in that folder with all the associated documentation (drawings, manuals, calculations, software, etc...).



The drawings were pretty much standardised for the parts they normally used, so it wasn't a massive drain to re-do them per project.



On the software front, they had standard blocks and skeleton for the PLCs (with start up code, comms already configured, etc...) and for the SCADA system had faceplates and icons already built.



This made them be very fast on getting a new order prepared usually and only for legacy equipment would it take a bit longer.



As for software that writes PLC code... the only things I've seen is the automation of creating repeated code, not new code as such. TIA Openness for example allows you to generate a lot of code automatically, but it will be a repetition of code. Say that you have programmed a function block to control a motor and have 50 in your plant to control, you can set up Openness to generate the code to control the 50 motors in one go instead of manually doing it.



PCS7, and other DCS packages I assume, will populate SCADA pages with the icons of the process blocks that are existing in the code so that all you have to do is make them look in the right position on the SCADA page.
 
I have a lot of project management under my belt, and AFAIK no one app does it all and is everything you need. Typically it's a collection of apps and services and software packages.

Popular things are services like Monday.com and Trello and MS Excel, MS Project, MS Word, and MS OneNote and Evernote.

There are things like AutoCAD vault which help with drawing management and revisions and Things like Rs Logix Architect and Studio 5000 Application code manager.

Every company has it's own tools and systems some common and some custom solutions that they use, and IMHO this is something that's always evolving and changing to support the needs of the company, and it's customers.

As far as something to create code for you check out WonderLogix

WonderLogix Overview Video https://www.youtube.com/watch?v=NP87kib8xIs

WonderLogix with Studio 5000 https://www.youtube.com/watch?v=ynTxp27UBAg
 
Last edited:
Regarding automatically generated PLC code, I created my own, making it more sophisticated along the years.
In my case, a project can have dozens of like 10 different types of machines. Instead of manually creating dozens of UDTs instances, tags, and AOIs instances, the software does all the labor intense part for me. I need to populate a spreadsheet with the I/O info, the type of each machine, the VFD models, the interlocks, the processor model, the I/O modules, etc., and then I process the spreadsheet with a VB program. The VB program generates a L5K file that I import to Studio 5000, and it's ready to go, it''s compilable and bug free. I save around 8 hours of manually writing PLC code.

Regarding sophistication, the program has a UDT and AOI manager. The idea is that I have a repository of UDTs and AOIs, and the program detects if you are missing UDTs or AOIs that you need and/or adds them for you. So you don't have to add unnecessary UDTs or AOIs, making the program cleaner.

My software also creates all the tag structure for Crimson 3: the whole tag tree, with all the tag info that you need: name, type, format, colors, range, labels, triggers, etc. Another day of coding that I save, since I can have hundreds of tags per project.

The downside of this approach is that you need to customize the program for your own needs: define your company/project program structure, define your own UDTs and AOIs, etc. But once you have the template, it will save you a lot of time per project.
 
At times I use Excel sheets for creating parts of code for use in Codesys, ASCII style only. Declaration of variables, hardware addressing, and some ST code.


CoDeSys v3 has Python scripting. This allows for much more advanced automated code generation. It is on my TODO list to look into this, but I have not had time yet to do so.
 
I have also seen all of the above - excel spreadsheets, VB scripts, template projects. RS Logix Architect and Studio 5000 Application code manager seemed too bulky and inconvenient to use for me but may be they work just fine for someone...

What seems very strange to me is that controls and electrical engineering industry in general tends to be either super conservative or very outdated. Look at all the online services to help IT industry handle their projects! Trello, Asana, Jira, too many to name! I was thinking that maybe it's just me who did not see too many companies willing to use such tools. Seems like it's not just me! Correct me if I am wrong....
 
I was somewhat involved in a project that generate PLC code by an Australian outfit in the early 2000s. One of the partner of the project was Foxboro who basically failed to develop this mini-DCS system then they decided to try this program out. The entire idea is so that DCS engineers doesn't have to learn ladder.

The project ended badly because it created so much code that it sunk the PLC and online editing was impossible.

Honestly, you can copy and paste stuff faster than using something like that. Logix's ability to use AOI also basically kill off any need for that.

However, if you are an OEM that does some specialized process over and over then it might make sense to have a customized program to generate the initial base code.
 
i have used a web based issue tracker called redmine to manage projects. There are several hosted derivatives or you can get a virtual machine from bitnami and run it yourself with one-click, or if you can set up a ruby on rails webserver just install it.



redmine can integrate with e-mail, source code management such as cvs, git etc. Unfortunately the PLC world is not compatible with git yet, but really it is only a matter of time. to the victor go the spoils. a history of visual diff of FB programs with blame is my holy grail.


as for computer generated code, there was a program for unity that did it. i forget what it was called. I think it made genies in citect or some other scada package that corresponded with function blocks or tags in the program.


RSlogix architect or whatever they call it can take some steps out of using their plant pax blocks. while it isn't computer generated code their library of process objects are real heavyweights with dozens of inputs and outputs.


the problem with computer generated code or one size fits all reusable blocks is that they are a nightmare to debug or require adding one missing thing or changing one thing so it fits your problem better which then blows away half the value of having this standard block.


I'm all for automating or cutting/pasting repetitive busywork but it seems to be prone to getting taken too far. Perhaps management types are thinking that if they just had a program that could write the program they wouldn't need the programmers, or if they had these amazing huge solve-it all blocks they wouldn't need to depend on hard to find creative problem solving programmers who can think, they could just cut and paste from the library of canned solution components.


as you might be able to tell i like concise programs tailored for the problem.
 
Siemens PCS7 has "bulk" engineering tools built in. Of course it requires an additional license. With that system, you develop a template for a motor for instance, with interlocks, permissives, etc.. then you use a spread sheet like tool to duplicate it as many times as needed, just change the IO points and description. Works very well, and does save a lot of time. Once you create the bulk of your items, you can go back and make any one off's. We often have more than one template, one for VFD's, one for Simocodes, one for hardwired, etc...
 
the problem with computer generated code or one size fits all reusable blocks is that they are a nightmare to debug or require adding one missing thing or changing one thing so it fits your problem better which then blows away half the value of having this standard block.
It depends on the PLC code you ask your program to generate, and on the blocks you choose to use. In my particular case, the automatic generated code was the same code I would have written manually. Regarding the one fits all reusable blocks, you can have problems either if they were generated with your VB program or if you manually entered them.

I'm all for automating or cutting/pasting repetitive busywork but it seems to be prone to getting taken too far. Perhaps management types are thinking that if they just had a program that could write the program they wouldn't need the programmers, or if they had these amazing huge solve-it all blocks they wouldn't need to depend on hard to find creative problem solving programmers who can think, they could just cut and paste from the library of canned solution components.
I used to have the same concern. Several thoughts about it. One, many times the managers don't know what are you talking about, for them you are always programming, either the PLC or the computer. And, you can see your PLC generation code as a extra layer on top of Studio 5000 (for example), so it's like you are using an improved PLC programming software. Two, somebody needs to program, adapt, create the libraries, and maintain the PLC code generator. Three, making a program modular and creating well designed UDTs and AOIs, requires creativity. Four, with your PLC code generator you are saving time from the repetitive stuff, then you can devote that saved time to the creative stuff.

as you might be able to tell i like concise programs tailored for the problem.
Like I said, you will have more time to customize your program when you have all the standard code already created.
 
Honestly, you can copy and paste stuff faster than using something like that. Logix's ability to use AOI also basically kill off any need for that.
With computer generated PLC code, you can do much more than that. Just think about tag creation, I/O assignment, PLC module selection, interlocks, VFD profiles, plain ladders rungs, etc..

However, if you are an OEM that does some specialized process over and over then it might make sense to have a customized program to generate the initial base code.
Not necessarily specialized, it can be anything. As long as you have your UDTs, AOIs, and your chunks of code, you can combine them as needed. Alos, no reason to have everything encapsulated in UDTs and AOIs, if you don't want/need to.
 
Siemens PCS7 has "bulk" engineering tools built in. Of course it requires an additional license. With that system, you develop a template for a motor for instance, with interlocks, permissives, etc.. then you use a spread sheet like tool to duplicate it as many times as needed, just change the IO points and description. Works very well, and does save a lot of time. Once you create the bulk of your items, you can go back and make any one off's. We often have more than one template, one for VFD's, one for Simocodes, one for hardwired, etc...
Interesting. How much is the license?
 
Siemens PCS7 has "bulk" engineering tools built in. Of course it requires an additional license. With that system, you develop a template for a motor for instance, with interlocks, permissives, etc.. then you use a spread sheet like tool to duplicate it as many times as needed, just change the IO points and description. Works very well, and does save a lot of time. Once you create the bulk of your items, you can go back and make any one off's. We often have more than one template, one for VFD's, one for Simocodes, one for hardwired, etc...

Is this the Advanced Process Library? That was some really neat piece of software.
 

Similar Topics

Hi I have a question regarding managing a plc project. I don't program PLCs in as my background but I am an experienced software developer...
Replies
1
Views
776
What do you folks use to keep a project together and organized as it moves through the various stages of development? We have several techs...
Replies
15
Views
6,951
Here's the skinny. I'm running Unity Pro XL v13.1 in a VM. I installed PlantStruxture GPL for Unity 2018 and am using those FBDs in a new program...
Replies
0
Views
1,523
Hi, does anyone know any good Automation/Controls project Management course/training ? I'm looking for one (preferably in Europe) but can't find...
Replies
4
Views
2,164
Greetings, This is a little OT, but most of us manage projects in some capacity. I'm familiar with a lot of the project management software...
Replies
3
Views
4,556
Back
Top Bottom