Host Engineering Forum

General Category => General Discussion => Topic started by: pbw on January 30, 2018, 04:05:07 PM

Title: BRX Drum
Post by: pbw on January 30, 2018, 04:05:07 PM
I'm having issues with a two drums operating under the same stage. I realize moving the drums into separate stages might fix the issue but for code simplicity I'd like to keep them in the same stage.
The Drums control a shutdown procedure and only one is enabled at a given time.
If the system needs to shut down (after completion) the orderly shutdown stage is called, wherein these drums reside. the bits to enable the drums are set in the corresponding stages that ran the operation and are used to detect what type of operation the shutdown stage is dealing with.
Everything works fine if I only have one drum in the code but with multiple drum I'm getting unexpected results. For example when c56 is on the drum operates how it should except that it turns on "EastBinAuger.Run". I have tried taking that bit out of the drum or even clearing it before the drum operation but to no avail.

I'll put them into a different stage for now but I'd like to understand why this happening. :'(
Thanks in advance
Title: Re: BRX Drum
Post by: franji1 on January 30, 2018, 04:41:59 PM
DRUMs are ALWAYS controlling their outputs.  So when it is "disabled", all of the DRUM's outputs are turned OFF.

Hence, if you have 2 drums controlling the same output, the last one wins.

If you stuck them in 2 different stages that are mutually exclusive (neither or just one of the SG are enabled, but never both), then it could work.

An alternative is to use the OUTPUT MASK which is a set of bits at each step for determining IF the DRUM CONTROLS EACH INDIVIDUAL OUTPUT.  This is a way to "override" the DRUM having control (e.g. for manual override, which is sort of what you are wanting to do).  Basically, you can tweak a bit for a specific output at a specific step whether the drum's ON/OFF is written to the OUTPUT bit (otherwise it does not write ANYTHING to the output, neither an ON nor an OFF). Let us know if this is something you might consider.  I do not know if this option is better, but chances are the 2 different stage approach may be easier.
Title: Re: BRX Drum
Post by: plcnut on January 30, 2018, 05:06:24 PM
I would use different bits in each drum, and then OR the bits to your outputs ladder after the drums.
Kinda like this:
Code: [Select]
------------------DRUM 1 OUTPUT = C1---
                           Etcetera,

------------------DRUM 2 OUTPUT = C2---
                           Etcetera,


-[C1]---|-------------------------(C3)-
-[C2]---|
Title: Re: BRX Drum
Post by: franji1 on January 30, 2018, 05:09:06 PM
I would use different bits in each drum, and then OR the bits to your outputs ladder after the drums.

That works!
Title: Re: BRX Drum
Post by: pbw on January 30, 2018, 05:43:16 PM
I dropped them into separate stages for now.
Thanks for your help guys.