Figuring Programming Time

Leadfoot

Member
Join Date
May 2005
Location
Red Stick, Cajun Land
Posts
577
I searched around and have not found much information on calculating programming time.

Typically I make a SWAG on how much time it should take, we add a fudge factor and quote. Then when programming time is about 2 times the actual amount built into the job, the head scratching starts. Any time I am learning the quirks of the PLC, I do not put that against the job.

Other than using the SWAG method, is there any published methods or how to's out there?
 
Thats where experience come into play. I've always used the SWAG method and sometimes use a bingo card and dart for the grief multiplication factor if its a Siemens plc w/profibus OR if the customer is a PITA.
 
I use 8/hrs per 8pt/16pt discrete IO module. Analog IO is a SWAG based on function and experience. I also use 8 hours per drawing sheet. If the project is not well defined, then double the hours.
 
Generally, I use LogicMaster. I find an hour a rung more then adequet for programming. A 14 or 28 point micro in an hour, or two at the most. Math blocks, longer, since I have to look them up 'cuase I don't do them often.

But when I start, I generally have a "schematic" made up of the control logic, so it is just punching keys.

Allen Bradley, multiply everything by 2 or 3.

Siemens, multiply Allen Bradley by 2 or 3.

Back in the board drafting days, I was doing six modules a day.
B size 4 hours, C size 8 hours. Is CAD faster? Somedays.

regards.....casey
 
I've used estimates like 45 minutes per digital I/O point, and 90 minutes per analog I/O point fairly successfully.

Marc
 
Leadfoot said:
I...when programming time is about 2 times the actual amount built into the job, the head scratching starts...

There are also several things that you can do that will improve your efficiency as well. Efficiency improvements are extra gravy on the job when you did a good job with the estimate, or when you do blow the estimate (which I've done a few times), they help make the taste more palatable while eating your shorts.

For starters, use Excel to pre-define the tag names and descriptions for all your IO points as well as any known internal registers. Everything that is known before you start the actual programming should be included. Then use a CSV import to bring all the tag names/symbols and descriptions into the PLC program file. If the database if predefined then you don't have to waste time looking up the next availalbe address or looking up what IO address a sensor/actuator is connected to. This is a gigantic time saver - I wouldn't program without it now. I sometimes do several imports over the course of a project as each part of the code is developed.

If the program authoring software supports auto-complete with symbolic addressing, turn on this feature. That way you only need to type the first few characters of the tag and the software will fill in the rest from the database.

If you use a consistent nomenclature with an imported tag database this can also be a huge timeaver. For example, flow switch symbols might always start with FS. In RSLogix with autocomplete, entering FS for the instruction address will drop down a list of all symbols that start with the first couple of letters you enter, so I could pick between FS_line1 or FS_line3 or whatever without bothering to look up the IO address again.

Employ top down programming design. Take the time ahead of time to decide how you are going to break down the job into smaller tasks, define the task, and create a subroutine for that task.

Develop re-usable code libraries

I program on a desktop. The lap top is for field work, but development happens on the desktop with a full sized keyboard, normal mouse, and large monitor. It makes a difference.
 
Alaric said:
Develop re-usable code libraries
That is a major point. As you collect snippets of code over time, your programming time continues to be reduced. 15 years ago, it probably took me 2 weeks to write the same program that I now can write in 2 days.

Estimates based on I/O count, etc. may work for some, but I just make a guess based on past projects. This has worked well for me.... so far... :oops:

🍻

-Eric
 

Similar Topics

Hello all and happy Friday, I'm curious if anyone here has experience sending data over an Anybus Bolt II (HMS AWB6001-A) using a Compact Logix...
Replies
4
Views
770
Hello everyone, I am looking for an easier way to configure all my IO for an OPTO22 PLC. I am developing in Codesys I have a GRV-EPIC-PR1 with a...
Replies
0
Views
585
Greetings to all. We have SST-SR4-CLX-RLL (Molex Modbus module) in remote backplane. The remote backplane, containing SST-SR4-CLX-RLL module, is...
Replies
0
Views
652
disclaimer- 1,no one in their right mind would pick this configuration but I want to try and get it working. 2, my MB knowledge is sketchy at...
Replies
5
Views
1,142
When configuring redundant ethernet cards, will the mac address change along with the IP address. A friend is having problems with IP security...
Replies
3
Views
1,263
Back
Top Bottom