Host Engineering Forum

General Category => Do-more CPUs and Do-more Designer Software => Topic started by: jwbaker3 on January 06, 2014, 10:17:52 AM

Title: Add a command to DMD
Post by: jwbaker3 on January 06, 2014, 10:17:52 AM
Would it possible to add a command like the Rockwell AB "MCR" that will suspend all of the logic between the first and the last entry of the "MCR" command if the first "MCR" is false. It is really handy, you may want to call it something else, how it works is more important than the name. (to me anyway)

Thanks,
JW
Title: Re: Add a command to DMD
Post by: franji1 on January 06, 2014, 10:47:50 AM
It's on our "todo" list
Title: Re: Add a command to DMD
Post by: jwbaker3 on January 06, 2014, 10:58:18 AM
Thanks!
JW
Title: Re: Add a command to DMD
Post by: LWgreys on January 06, 2014, 09:17:06 PM
This topic is also on Automation Direct forum. Stages, Tasks, Programs will do the same thing as MRC instruction. Me personally don't see a use for duplicating the instruction.
Title: Re: Add a command to DMD
Post by: franji1 on January 06, 2014, 09:33:51 PM
The instruction in question is a hidden instruction related to complex ladder rungs, aka "And above join" error in DirectSOFT and Do-more.
It's going to let you create the following rung constructs (see attached screen shot).

This is a powerful ladder logic construct.
Title: Re: Add a command to DMD
Post by: b_carlton on January 06, 2014, 09:59:02 PM
If I run into the 'AND Above A Join' situation the rung is more complex then I like.
I would have broken the rung shown into 3. Each of the first two outputs on its own rung.
The last is tapping off earlier than it should. If the output branch came one contact later it would be legal and more understandable. I like my rungs to be readable as a sentence from the contact descriptions, rarely requiring a rung comment.
Title: Re: Add a command to DMD
Post by: Controls Guy on January 06, 2014, 11:48:50 PM
The instruction in question is a hidden instruction related to complex ladder rungs, aka "And above join" error in DirectSOFT and Do-more.
It's going to let you create the following rung constructs (see attached screen shot).

This is a powerful ladder logic construct.

THANK YOU THANK YOU THANK YOU THANK YOU THANK YOU!!

I've always hated that, and would like to be able to build the rungs the way they make sense.

When do you expect to release this?

Does this also mean we'll be able to use inline one-shots deeper than stack level 0, since the two issues are related?
Title: Re: Add a command to DMD
Post by: BobO on January 07, 2014, 12:33:38 AM
The instruction in question is a hidden instruction related to complex ladder rungs, aka "And above join" error in DirectSOFT and Do-more.
It's going to let you create the following rung constructs (see attached screen shot).

This is a powerful ladder logic construct.

THANK YOU THANK YOU THANK YOU THANK YOU THANK YOU!!

I've always hated that, and would like to be able to build the rungs the way they make sense.

When do you expect to release this?

Does this also mean we'll be able to use inline one-shots deeper than stack level 0, since the two issues are related?

No timetable. It would also probably not be implemented using a MCR, but a different instruction that is already in the controller. Code gen and PLC side is easy. Rung parser is the hard part and a huge unknown. That code hasn't been meaningfully touched for nearly 20 years...
Title: Re: Add a command to DMD
Post by: franji1 on January 07, 2014, 09:30:15 AM
If I run into the 'AND Above A Join' situation the rung is more complex then I like.
I would have broken the rung shown into 3. Each of the first two outputs on its own rung.
The last is tapping off earlier than it should. If the output branch came one contact later it would be legal and more understandable. I like my rungs to be readable as a sentence from the contact descriptions, rarely requiring a rung comment.
Agreed.  I made the example complex on purpose, but a one level "MCR" is very useful, and for some, multi-level is still useful.  Once we make it work for 1 level, it can work for N levels.  However, I do not want to limit it - let the individual customer decide.
Title: Re: Add a command to DMD
Post by: franji1 on January 07, 2014, 09:40:02 AM
Does this also mean we'll be able to use inline one-shots deeper than stack level 0, since the two issues are related?
Interesting that you caught that.  Initially, I'm going to say "no", but we'll see.  However, I point to Bernie's comment that if you are using in-line one-shots NOT at the top of stack (i.e. generating pulses in parallel to drive???), your logic may not (or may not appear) to be doing what you think it is doing.  Best to break it up into multiple rungs.  Then again, I'll point back to my comment to Bernie's comment, that if we can give customers a lot of rope, they can use it wisely, or possibly use it with their neck as a pulley  ;D.
Title: Re: Add a command to DMD
Post by: Controls Guy on January 07, 2014, 11:52:39 AM
Well, yes it is possible to try to do to much in one rung.  However, sometimes the intent is more clear or the rung tighter when combined.  I want to have the flexibility to write the way it makes the most sense to me for the particular case rather than have to work around the limits of the ladder implementation, and that, for this issue, is what you're giving us.  Thank you!

If a rung doesn't do what it looks like it does to a person reading it and applying normal ladder solving rules, that's a sign the engine needs work, not the person.

In a somewhat related issue, I'd like to request the editor start each rung with an invisible LD ST1 (at least for rungs that only connect to the left rail one time), so we don't have to put one in explicitly to keep it from combining with the previous rung.  There's a place where I think less screen clutter WOULD add to readability.

Thanks!