Resolving Delta AS228T-A X0.0 Output Coil Test Errors

Ryan Tanaka5 min read
Delta ElectronicsPLC HardwareTroubleshooting
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

DIA Designer rejects the rung before upload with test error, the output coil must be set from M,Y.... Start here: X0.0 is a physical input status, so use it as a contact, not as an output coil. Drive an internal M bit such as M105, then use that internal bit in the rest of the program.

Read the test error correctly

The test fails because the destination of the rung is X0.0. On the Delta AS228T-A, the X area represents physical discrete inputs. DIA Designer therefore treats an X address as read-only from the ladder program's point of view.

The message identifies the valid destination classes directly: place an M internal bit or a Y physical output at the coil position. Moving contacts around, changing the physical input wiring, or attempting another upload will not correct an invalid coil address.

Symptom Cause First check
Test fails before upload An X address is used as a coil Inspect the address at the right-hand coil position
Error says the coil must use M,Y The destination is outside the writable bit classes Replace the coil with an internal M bit or the intended Y output
Input state changes back to the field-device state The input module refreshes the X status before each logic scan Monitor both the physical input and its mapped internal bit
An override appears to work but field diagnostics become confusing The program uses one bit for both physical status and commanded status Separate the raw input indication from the effective logic state

Understand why the X coil cannot work

A physical input address has a different job from a coil destination. The input module reads the field terminal and updates the associated X status before each logic scan. Ladder instructions then evaluate that status as a condition.

An output coil performs the opposite job: it writes the result of a rung to a writable destination. An M coil writes internal memory. A Y coil writes a physical output command. Writing a coil to X0.0 would make the program compete with the input module over the same status.

That is not the fault: the physical input does not need to be repaired merely because DIA Designer rejects the program. The rejection is a programming-address error. Confirm the input separately by monitoring X0.0 while operating the connected switch or sensor.

Choose the state the program actually needs

Decide whether you need a physical indication, a software copy, or an overrideable operating condition:

  • Use X0.0 directly as a contact when the logic must follow the physical terminal.
  • Map X0.0 to M105 when downstream logic should use an internal representation of the input.
  • Build the override into the logic that writes the internal bit when software must replace or modify the physical state.
  • Use a Y coil only when the rung is intended to command a physical output.

Keep the raw input visible. If X0.0 is connected to a limit switch, the state of X0.0 tells you what the input module reads. An overridden M105 tells you what the control program has chosen to use. Those are different facts.

Map X0.0 into writable memory

  1. Remove X0.0 from the coil position.
  2. Place X0.0 as a normally open or normally closed contact according to the required logical sense.
  3. Place M105 at the coil position. A direct active-high mapping has this form:
|----[ X0.0 ]----------------------------( M105 )----|
  1. Put the mapping network at the top of the scan, before any downstream rung reads M105.
  2. Replace downstream uses of the physical input with the mapped internal bit where override behavior is required.
  3. Apply the same mapping convention to all physical discrete inputs used by that override architecture. A partial mixture of raw and mapped references lets some rungs bypass the override.
  4. Run the DIA Designer test again before uploading.

The direct mapping above makes M105 follow X0.0; it does not create an override by itself. To force the effective condition on, combine the physical-input condition and the override condition in the single network that writes M105. To force it off, make that network select between the raw input and the commanded state. Keep one final writer for M105 so scan order cannot silently replace an earlier result.

Verify the mapping and override

  1. Run the offline test. The M105 coil must pass the address-class check that rejected X0.0.
  2. Upload the corrected program through the normal project procedure.
  3. Monitor X0.0 and M105 together.
  4. Change the physical input. With no override active, confirm that M105 follows the selected logical sense of X0.0.
  5. Activate the override condition. Confirm that M105 changes as designed while X0.0 continues to show the field input.
  6. Monitor each downstream rung that was converted. Confirm that it reads M105, not X0.0.
  7. Remove the override and verify that control returns to the physical input without leaving a latched internal state.

If the test passes but behavior is wrong, search the project for every reference to X0.0 and M105. A second coil writing M105, a raw X0.0 contact left in downstream logic, or a mapping rung placed after its consumers can produce scan-dependent results.

Avoid the recurring mapping mistakes

  • Do not try to clear the compiler error by changing input wiring. The invalid destination is in the ladder program.
  • Do not use a physical input as both a contact and a coil. The input module owns its reported state.
  • Do not scatter override logic across several downstream rungs. Centralize the raw-to-effective conversion.
  • Do not write the same internal bit from multiple ordinary coils. The last executed write can hide earlier logic.
  • Do not label an overridden internal bit as though it were the raw limit-switch status. Display or diagnose both states separately.
  • Do not map only selected references to an input and leave hidden raw references elsewhere. Search the full project after conversion.

If DIA Designer still rejects a rung after its destination has been changed to a valid M or intended Y address, record the full test message and capture the failing network. Check the project configuration and address declaration, then escalate with those details through an official Delta support channel.

FAQ

Why does DIA Designer reject X0.0 as an output coil?

X0.0 belongs to the physical input area. Use it as a contact and write the rung result to an M internal bit or an intended Y output.

Why does X0.0 return to the physical switch state?

The input module updates the X status before each logic scan. Store the effective program state in an internal bit such as M105 instead of trying to write the input address.

Why does my input override work in one rung but not another?

The other rung probably still reads X0.0 directly or reads the mapped bit before the mapping network executes. Map the physical inputs at the top of the scan and use the internal representation consistently downstream.

When should I stop troubleshooting and contact Delta support?

Stop when a minimal rung using X0.0 as a contact and a valid M destination still fails the DIA Designer test. Send official Delta support the AS228T-A model, the exact error text, the project configuration, and a capture of the failing ladder network; do not keep changing field wiring for a programming-address error.

Back to blog