Troubleshooting Scaling DL06 F0-04DAH-2 RPM Values to 0–10 VDC

Brian Holt7 min read
AutomationDirectI/O ModulesTechnical Reference
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

The DL06 installation scaled each channel’s RPM setpoint by subtracting that channel’s minimum, multiplying by 18.724, dividing by 1,000, and writing a double-word output; for channel 1, that produced 0 V at 4,900 RPM, about 5.00 V at 6,650 RPM, and about 9.99 V at 8,400 RPM.

Check the HMI value format before changing the scale math

Read the HMI’s raw setpoint in DL06 memory and determine whether it is BCD or binary. The working installation used a BCD HMI entry. A displayed value of 4,900 does not by itself prove that the PLC stores the value in the format expected by its math instructions.

Then check the analog option module’s configured output format. The scaling routine and module configuration must agree on whether the channel data is BCD or binary. Do not add a conversion instruction simply because another example uses one: applying BIN to a value that is already binary, or omitting conversion for a BCD value when using binary math, corrupts the calculation.

  • If the HMI setpoint and module output are both BCD, use a BCD-compatible calculation path.
  • If both are binary, use binary math and write the binary result.
  • If the formats differ, convert at the boundary and verify the value after conversion before scaling.

The successful channel 1 routine in this installation used BCD throughout. A separate troubleshooting suggestion proposed conversions between BCD and binary or real math, but those alternatives were not the final working implementation.

Check the minimum and maximum RPM for each channel

Record the minimum and maximum RPM that correspond to the drive’s low and high analog references. For channel 1, the installation used 4,900 RPM at 0 V and 8,400 RPM at the top of the configured 0–10 V range. The RPM span is:

8,400 - 4,900 = 3,500 RPM

Use each channel’s own endpoints. The four drives have different RPM ranges, so copying channel 1’s minimum or multiplier to another channel produces the wrong output even if the ladder logic executes without errors.

At the low endpoint, subtracting the minimum must yield zero. At the high endpoint, subtracting the minimum must yield that channel’s full RPM span. These two checks catch reversed endpoints, an incorrect minimum, and an incorrect range before you troubleshoot the analog output hardware.

Calculate the output counts per RPM

For a 16-bit output span of 0–65,535 counts, calculate the proportional scale factor using the channel’s RPM span:

Scale factor = 65,535 / (maximum RPM - minimum RPM)

For channel 1:

65,535 / 3,500 = 18.7242857 counts per RPM

The implemented ladder used the rounded factor 18.724, represented as 18,724 and divided by 1,000 because the multiplier was entered as a whole number:

Output counts = (RPM - 4,900) × 18,724 / 1,000

This yields approximately zero counts at 4,900 RPM, 32,977 counts at 6,650 RPM, and 65,534 counts at 8,400 RPM before integer handling. That one-count shortfall from 65,535 is inherent in using the rounded multiplier; the reported top-end output was approximately 9.99 V rather than exactly 10 V. If exact endpoint behavior matters, review the arithmetic precision and rounding supported by the chosen DL06 instructions and verify the actual module output.

Compare the observed symptom with likely causes

Observed reading Likely cause to check Next check
4,900 RPM produces a nonzero command Incorrect minimum subtraction, wrong HMI data format, or stale intermediate value Inspect the raw HMI value and result immediately after subtraction.
8,400 RPM is far below the top output Wrong RPM span, wrong multiplier or divisor, or format mismatch Check the post-subtraction and post-multiply values against the calculations.
Intermediate RPM values are not proportional Integer scaling, a misplaced divide, or BCD/binary interpretation mismatch Monitor each math result and compare it to the formula.
Math looks right but module output is wrong Output-format configuration or output word write mismatch Verify the option module configuration and confirm both words are written.
Channel 1 works but another channel does not Channel-specific limits, multiplier, or destination register may be wrong Recalculate and trace that channel independently.

Write the BCD scaling result as a double word

The working all-BCD sequence used the HMI RPM value, subtracted the channel’s minimum, multiplied by the scaled factor, divided by 1,000, and sent the result to the option module’s channel register. The reported channel 1 destination was V2100; use the correct destination for each channel in the actual DL06 configuration.

LD    Vxxx       ; HMI RPM setpoint (BCD)
SUB   Vyyy       ; channel minimum RPM (BCD)
MULD  Vzzz       ; multiplier 18724 (double word)
DIV   K1000      ; restore 18.724 scale factor
OUTD  V2100      ; channel 1 output value (double word)

Vxxx, Vyyy, and Vzzz are placeholders, not addresses from the installation. The multiplier storage is double-word and the final output is written with OUTD, which writes the two-word value. A single-word write can leave the companion word incorrect for an output value that occupies two V-memory locations.

The option module’s data format must match the value written. If configured for binary, the result must be binary; if configured for BCD, the value must be BCD. A BCD output path may require BCD conversion before writing, while a binary output path must not receive an unconverted BCD result.

Choose math format based on scan-time needs

All-BCD arithmetic was the working choice for this application. Reported execution times were 1,322.9 microseconds for BCD math, 337.4 microseconds for BCD-to-binary-to-real math with conversion back to BCD, and 281.6 microseconds for BCD-to-binary math with conversion back to BCD. The reported BCD/binary conversion pairs alone took nearly 200 microseconds. Treat these as installation observations, not guaranteed DL06 timings; measure the controller’s scan time under the actual program load before changing formats for performance.

When scan time is not critical, retain a format path that is easy to inspect and consistent with the HMI and module settings. If scan time is critical, benchmark a binary or real-math alternative and confirm that conversions, precision, and output format preserve the endpoint behavior.

Verify both endpoints and the analog signal

  1. With the drive and machine in a safe test condition, enter the channel minimum RPM and monitor the raw setpoint, post-subtraction result, scaled result, and module output register. Confirm the calculated command is zero and measure the analog signal at the relevant output.
  2. Enter the channel maximum RPM. Confirm the post-subtraction result equals the RPM span, then verify the register approaches the configured maximum count and measure the analog output. For channel 1, the installation reported approximately 9.99 V at 8,400 RPM.
  3. Test an intermediate point. At 6,650 RPM, halfway between 4,900 and 8,400, the expected proportional output is about 5.00 V; the installation observed that result.
  4. Repeat the endpoint and intermediate checks independently for each channel, using its own RPM limits, scale factor, destination, and module configuration. Confirm the drive’s configured analog range agrees with the signal being measured.

Use conventional ladder logic addressing instructions documented for the DL06. The installation reported that an option-module IBox addressing example did not work as expected and that DL05 and DL06 addressing details differed in the manual; check the DL06-specific addressing guidance rather than carrying over a DL05 example.

FAQ

How do I convert 4,900–8,400 RPM to 0–10 V?

Subtract 4,900 from the RPM setpoint, then multiply by 18.724 counts per RPM, or by 18,724 followed by division by 1,000. Write the result in the data format and double-word location expected by the configured module.

How do I get 0 V at the minimum RPM?

Subtract the channel minimum from the HMI setpoint before multiplying. At 4,900 RPM, 4,900 - 4,900 = 0, so the scaled output command is zero.

How do I know whether to use BCD or binary math?

Inspect the HMI value representation and the analog module’s output-format setting. The successful example used BCD setpoints and all-BCD math; binary or real math requires appropriate conversions and a matching output representation.

Why does my 8,400 RPM command output about 9.99 V?

The implemented factor, 18.724, is rounded; multiplying it by the 3,500 RPM span yields about 65,534 counts, just below 65,535. Verify the actual output register and measured voltage, and check the DL06 arithmetic precision and rounding if exact full scale is required.

When should I stop troubleshooting the DL06 analog output?

Stop if the raw input, intermediate math, module format, and double-word output all check out but the measured signal still disagrees, or if DL06-specific addressing remains unclear. Keep the machine in a safe state and contact AutomationDirect official support with the DL06 configuration, option-module setup, measured values, and ladder sequence.

Back to blog