Log In

Come Join Us!

Are you an
Engineering professional?
Join Eng-Tips Forums!
  • Talk With Other Members
  • Be Notified Of Responses
    To Your Posts
  • Keyword Search
  • One-Click Access To Your
    Favorite Forums
  • Automated Signatures
    On Your Posts
  • Best Of All, It's Free!

*Eng-Tips's functionality depends on members receiving e-mail. By joining you are opting in to receive e-mail.

Posting Guidelines

Promoting, selling, recruiting, coursework and thesis posting is forbidden.


Stage programming questions

Stage programming questions

I am submitting a quote for an AD DL06-based system that the specification calls for "stage or state programming". I used to program using steps per the Whirlpool Standards for Industrial Equipment document of January 1993. Lately, I have converted over to state machines using integer addresses, one for the top-level state machine and one for each "subroutine" section, each of which is implemented as a state machine (I call those substates). Keep in mind that because I work with PLC's from an array of manufacturers, I implement "subroutine" sections in a way that does not use subroutine call statements (for instance the AD Click does not allow a subroutine to call a subroutine). Basically, a "subroutine" section is "called" by setting a "call subroutine" bit that is reset in the "subroutine" section at the end of its execution.

I was not aware of stage programming, so I have a few questions:

1) Is it likely that "stage or state programming" could be translated as "use stage programming or use state programming" or is it more likely that it should be translated as "use state programming implemented using stages"?

2) Are there any discussions regarding multistaging (top-level state calls lower level state machine)?

3) Is there a way to reuse a "subroutine" section in multiple stages, or does each stage need its own copy of the "subroutine" section.

4) I have always mapped inputs at the top of the scan and outputs (with interlocks) at the bottom of the scan. It appears to me that the last stage includes all the rungs after its definition until the END statement. Would the outputs therefore have to be placed before any stages?

Thanks for any help
Hamilton Woods

RE: Stage programming questions

I believe that the AutomationDirect DL06 implements stage programming directly. You can get their programming manual for free off of their website. I suggest looking it over.

RE: Stage programming questions


Thanks for the suggestion. My first thought was, "I've already skimmed it." But Chapter 7 of the DL06 manual is much more extensive than the version I saw on the internet. Chapter 7 answers some of my questions.

2) Multistaging would be accomplished by enabling a stage rather than jumping to it.

3) Similar to 2). A "subroutine" section would be "called" by setting the stage bit for the "subroutine" and would end by resetting its own stage bit.

4) It appears that some stages can be set to always execute. So input mapping can be in a stage at the beginning that is set to be always enabled. And outputs with interlocks can be in a stage at the bottom that is set to be always enabled.

Now, this begs the next set of questions:

5) Is it considered poor programming style to move from one state to the next by setting and resetting stage bits rather than jumping from one state to the next (this would allow stages to be "called" from multiple other stages - not simultaneously)?

6) I like to use capabilities that are available on all PLC's that I work with so I am not having to implement designs using different architectures. If I want to use stage programming for other projects, how limited is its availability for other PLC's?

7) If stage programming is not available directly on another PLC, how would it be implemented indirectly?

Thanks again for your help,
Hamilton Woods

RE: Stage programming questions

Packml standard - look it up

I believe this is what you need for your guide. I think a lot of plc manufacturers have implemented this spec as a module install for their development software.

RE: Stage programming questions

You can put logic you always want to execute before the first stage block.

The only time I used it was for master/slave communications between a DL205 and a DL05. Basically, each stage communicates with a different DL05 and then changes some logic based on the result. So, I simply jmp'd through the stages to sequentially communicate with each DL05. I put all the general logic before the first stage block.

In your case, it sounds like enabling and disabling each stage as you need them would be a workable solution.

Red Flag This Post

Please let us know here why this post is inappropriate. Reasons such as off-topic, duplicates, flames, illegal, vulgar, or students posting their homework.

Red Flag Submitted

Thank you for helping keep Eng-Tips Forums free from inappropriate posts.
The Eng-Tips staff will check this out and take appropriate action.

Reply To This Thread

Posting in the Eng-Tips forums is a member-only feature.

Click Here to join Eng-Tips and talk with other members!


Close Box

Join Eng-Tips® Today!

Join your peers on the Internet's largest technical engineering professional community.
It's easy to join and it's free.

Here's Why Members Love Eng-Tips Forums:

Register now while it's still free!

Already a member? Close this window and log in.

Join Us             Close