Eng-Tips is the largest engineering community on the Internet

Intelligent Work Forums for Engineering Professionals

  • Congratulations waross on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

Stage programming questions

Status
Not open for further replies.

HamiltonWoods

Electrical
Mar 8, 2004
2
0
0
US
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
 
Replies continue below

Recommended for you

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.
 
djs,

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
 
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.
 
Status
Not open for further replies.
Back
Top