Troubleshooting D05 Drum Programming Output States Correctly

Brian Holt5 min read
AutomationDirectOther TopicPLC Programming
Licensed PE Working through this on a live machine? A Maine-licensed engineer can take it from here — included with IMD hardware, by the hour for everything else. Book an engineer

Y0 is on with the selector in OFF, and Y1 remains on after the D05 drum finishes while X0 is still active. Correct the drum’s initial output data and completion reset path before changing the selector wiring or adding output logic.

Check the selector input before editing the drum

Read the PLC input status while moving the three-position selector through right, middle, and left. Record the actual states of X0 and X1 in each position. The described arrangement assigns X0 to the right position, leaves the middle position without an input, and uses X1 for a separate function at left; confirm those states in the input monitor rather than inferring them from the switch label.

Also inspect the ladder contact instruction that starts the drum. An open/closed contact description can refer either to the physical contact or to the ladder instruction’s logic sense. Confirm whether the rung is true when X0 is on, and whether the reset rung becomes true when the switch leaves the active position. Do not rewire the selector just because an output is wrong.

Check: The monitored X0/X1 states match the selector positions, and you know exactly which input condition starts and resets the drum.

Clear Y0 from the drum’s first data row

The drum begins at its first logic row even when that row’s conditional logic is false. Consequently, a condition that appears to block drum operation does not by itself guarantee that outputs are off at startup. If the first data row contains a one for Y0, the drum can energize Y0 while the selector is OFF.

Inspect the initial row in the drum data and set the Y0 and Y1 output values to zero if both lights must be off before the sequence starts. Verify the row values against the intended state of each light; do not assume that a false rung condition suppresses the row’s output data.

Check: With the machine in a safe state and the drum inactive, monitor the first row’s output data and confirm it specifies zero for each light that must remain off.

Give the drum a defined completion reset

The second symptom occurs because X0 remains active after the drum reaches its final instruction. If the drum is not reset on completion, its last output state can persist, leaving Y1 energized. Releasing X0 may not solve that condition if the program has no reset path tied to sequence completion.

Use the drum completion bit, identified in the programming information as CT#, in the reset rung so completion resets the drum. Check the actual completion-bit notation and reset instruction in the D05 programming environment; do not substitute a guessed address or assume the example token is a literal address for this program.

Confirm the reset rung is reachable and that its logic does not prevent the drum from starting again when X0 is subsequently operated. The selector input may remain active at the end of a sequence, so completion—not only a change in X0—must cause the intended reset.

Check: The reset rung uses the drum’s completion indication, and the reset condition is visible when the sequence completes.

Apply the correction without masking the fault

  1. Save a copy of the running program and identify the drum data row, start condition, and reset rung.
  2. Set the first row’s Y0 and Y1 data to zero if OFF is the required initial light state.
  3. Add the completion bit to the drum reset rung using the project’s valid completion-bit syntax.
  4. Review the logic for an unintended output coil or parallel rung that also writes Y0 or Y1; make sure the drum’s output state is not being overridden elsewhere.
  5. Download or apply the change using the site’s approved programming procedure, then monitor the input, drum state, reset condition, and outputs.

Do not use a forced output or an extra output rung as a permanent workaround. Those changes can hide the first-row or reset problem and make the observed light state disagree with the drum’s state.

Check: The changed project is active, X0/X1 monitor correctly, and the drum and reset indications can be observed during a test.

Run the sequence through OFF, active, and completion states

Test in a controlled condition where the lights can be observed and the machine can be stopped safely. First leave X0 inactive and verify Y0 and Y1 are off. Then operate X0 and confirm the intended blinking sequence occurs. Keep X0 active through the final drum instruction and verify the completion reset clears the retained Y1 state.

Finally, return the selector to its inactive position and start another cycle. This confirms both that completion resets the drum and that the reset arrangement has not blocked a later start. If outputs still disagree with the drum data, trace every program write to Y0 and Y1 and check the live input and drum status before making another change.

Check: OFF produces the required initial output state, an X0 start runs the sequence, completion clears the last output state even with X0 active, and a subsequent cycle can start normally.

FAQ

Why does Y0 turn on when the D05 drum is not running?

The drum executes its first data row even when the row’s conditional logic is false. Set the first-row data to zero for outputs that must be off before the sequence starts.

Why does Y1 stay on after the drum finishes?

The final output state can remain active if the drum is not reset at completion. Use the drum completion bit, shown as CT# in the programming information, in the reset rung.

Why does changing X0 not reset the finished drum?

An input change resets the drum only if the program’s reset logic uses that condition. Add the completion indication to the reset path, then verify that a new X0 start runs a fresh sequence. Stop and escalate to official AutomationDirect support if the project’s completion-bit syntax or reset behavior remains unclear after checking the D05 programming documentation.

Back to blog