The output is not really stuck. The meter's current fuse was blown, the scaling multiplied by 4095 on a card that counts 0 to 65,535, and the BCD math box cannot hold 65,535. Fix the meter path, rescale the 30-200 fpm entry to 0-65,535 counts where the data format can hold it, and test the card with written counts of 0, 32,767 and 65,535 that must read 4, 12 and 20 mA.
You change the line speed on the HMI and the math result in the ladder moves. The current out of the analog output card never moves. That combination is almost never one fault. Three problems stack up and hide each other: the meter cannot read the loop current, the scaling multiplies by 4095 on a card that counts 0 to 65,535, and the BCD math box cannot hold 65,535 in the first place.
This article walks the signal path in the order that checks each stage: meter and fuse first, then the module's real count range, then where the 30 to 200 fpm arithmetic belongs, then a test that writes known counts to the output word and names the current each one must produce. The setup used throughout is a DL06 PLC, an F0-04DAH-1 4-20 mA output card, an IBox 461 pointer instruction and a numeric entry object on the HMI.
Why does my 4-20 mA output stay at one value when I change the HMI entry?
Three faults usually stack up here: a blown meter fuse hides the readings, 4095 scales a card that counts 0 to 65,535, and the BCD math box cannot hold 65,535 at all; work them in that order.
Each fault leaves its own fingerprint, and the fingerprint tells you which one you are standing on:
- The meter reads nothing, or 0.00 mA at every count. The measurement path is broken. The usual causes are a blown current-range fuse or test leads sitting in the voltage jacks. Fix the meter before reading anything into the measurements below.
- The meter sits near 4 mA while the math result follows the entry. The output word is probably changing, but the scaling writes so few counts that the signal barely leaves its live zero. That is a scaling-constant problem, fixed with 65,535.
- The math box rejects 65,535 as a constant but accepts 4095. The box works in single-word BCD, which tops out at 9999. No five-digit constant will ever go in.
- The output word tracks the raw entry: enter 200 and V410 shows 200. Something other than the scaled result is writing V410, usually a second HMI tag or an extra copy rung.
Work the list top to bottom. Each fix below assumes the one above is already true.
Is the meter actually measuring loop current?
A meter that reads nothing, or the same tiny figure at every count, usually has a blown current-range fuse or leads in the wrong jacks. The fuse most often dies when a voltage measurement was taken with the leads still in the current jacks.
A meter in current mode measures by becoming part of the circuit: leads in the meter's current and common jacks, meter in series between the channel's output terminal and the drive's positive input. With the meter connected that way, check the two things that produce a dead reading regardless of the loop: the selector on a milliamp range, and the fuse behind the meter's cover, tested the way the meter's own manual describes.
Never connect a meter in current mode across a live voltage. That shorts the source through the meter and the current fuse is the part designed to blow first; replace it with the type and rating the meter's manual specifies and the milliamp ranges come back.
In the setup this article follows, the replacement fuse immediately revealed a healthy output sitting at the live zero, exactly where it should have been all along. A steady reading at the live zero with a count of 0 is a working output, not a dead card. A reading that will not climb away from it is the next fault in the list.
What full-scale count does the output card use?
The F0-04DAH-1 output module is a 16-bit card: 2^16 is 65,536 counts, so the working range is 0 to 65,535 and the multiplier in the scaling must be 65,535, not 4095.
The DL06 analog manual spells out the conversion for this module family: 16-bit resolution turns the signal into 65,536 counts running from 0 to 65,535. The familiar 4095 is the full scale of a 12-bit card, and 4095 is 6.25 percent of 65,535, so carrying it over compresses the whole command into the bottom 6.25 percent of the new card's counts.
The original expression, (V500 × 4095) / (1000 - 0) with V500 holding the fpm entry, shows exactly how small that is:
- 30 fpm: 30 × 4095 = 122,850; 122,850 / 1000 = 122 counts; current = 16 mA × 122 / 65,535 above the live zero = 4.03 mA.
- 200 fpm: 200 × 4095 = 819,000; 819,000 / 1000 = 819 counts; current = 16 mA × 819 / 65,535 above the live zero = 4.20 mA.
The entire 30 to 200 fpm entry range therefore drives the output from 4.03 to 4.20 mA, a 0.17 mA change. Even with a good meter and clean wiring, the output looks stuck because at this scale it is: the card never receives a count above 819. The expression has a second defect; it divides by 1000 and never subtracts the 30 fpm zero, so even those few counts do not line up with the entry's endpoints.
Why will the BCD math box not accept 65,535?
A single BCD word stores four decimal digits, so its largest value is 9999; the multiplier 65,535 needs five digits and the intermediate product reaches 11,140,950, which is why this arithmetic cannot be arranged inside a single-word BCD math box.
In DirectSOFT, the MathBCD box, IBox 521, requires every V-memory reference to be a single-word BCD value. Four BCD digits hold 0 to 9999, so 65,535 is rejected as a constant no matter how the expression is arranged. The product (entry - 30) × 65,535 peaks at 170 × 65,535 = 11,140,950, which needs eight digits and a double word before any division happens. BCD division sheds low digits when a result overflows its word, the failure covered in fixing a PLC BCD conversion losing digits in division.
Lowering the endpoint until the box accepts the constant changes the range the drive receives; it is not a repair. The arithmetic has to move to a format that can hold the numbers, which is the next question.
Where should the 30 to 200 fpm scaling live?
Put the arithmetic where the data format can hold it: in the HMI numeric entry's own scaling option, or in PLC binary math whose result is copied to V410; either way the endpoints are 30 and 200 fpm in, 0 and 65,535 counts out.
The HMI route. In the numeric entry object, open the Option tab and check the Scaling Option box. Set PLC Value Point 1 to 0 and Point 2 to 65,535. Set Display Value Point 1 to 30 and Point 2 to 200. Set the tag's Data Type to BCD Int 32, because the word the panel writes has to line up with the BCD format the pointer expects; a mismatched data type is what puts nonsense numbers on the panel, covered in why an HMI panel shows nonsense numbers from a PLC BCD analog register.
If the tag editor offers only signed Int 16, delete the tag and create it again; a fresh tag exposes the BCD Int 32 choice. A signed Int 16 tops out at 32,767 and cannot hold 65,535 in any case. With the panel doing the scaling, set the entry limits to 30 and 200 so an out-of-range entry cannot ask for a count below 0 or above 65,535.
The PLC route. Keep IBox 461, delete the BCD math box, and convert in binary math that can hold the intermediate: count = (entry - 30) × 65,535 / 170, computed into a spare word such as V2200 and copied to V410. Mapping two engineering endpoints onto a signal range is the same job as scaling a 4-20 mA pressure transducer for an HMI display, run in reverse.
On either route, confirm the pointer instruction against the hardware as built before testing anything.
How do I test the card without the HMI in the loop?
Check the IBox 461 pointer against the real rack (base 0, slot 3, one channel, BCD format, V410), take the HMI out of the picture, then write 0, 32,767 and 65,535 to V410 from Data View in BCD Double Word format and expect the live zero, midpoint and full-scale currents.
- Confirm IBox 461's base, slot, channel count, output format and address against the hardware as actually installed.
- Confirm the external 24 V DC supply is wired to the module the way the manual's wiring diagram shows.
- Disable the HMI, or pull its write path, so nothing else touches V410 during the test.
- In DirectSOFT Data View, set the display format of V410 to
BCD Double Word, then write 0, then 32,767, then 65,535. - Read the meter after each write: 4.0 mA, then 12.0 mA, then 20.0 mA, within the meter's accuracy.
Counts that change under a current that will not move point at the hardware. Check the channel wiring against the manual's diagram, the external 24 V DC supply and the range configured for the channel, and stop adjusting scale values at that point; scale changes cannot fix wiring, and each one hides the evidence you have collected.
Worked example: what should 115 fpm on the keypad produce?
For a 30 to 200 fpm range mapped onto 0 to 65,535 counts, a keypad entry of 115 fpm works out to 32,767 counts, and the meter must read 12.0 mA, from 16 mA times 32,767 over 65,535 above the live zero.
Two formulas carry the example. The count conversion is count = (entry - 30) × 65,535 / 170, where 170 is the span 200 - 30. The current conversion is I = 4 mA + 16 mA × count / 65,535, because the live zero sits under the span and the 16 mA above it covers all 65,535 counts.
| Keypad entry | Count arithmetic | Count to V410 | Meter reading |
|---|---|---|---|
| 30 fpm | (30 - 30) × 65,535 / 170 = 0 | 0 | 4.0 mA |
| 115 fpm | 85 × 65,535 = 5,570,475; 5,570,475 / 170 = 32,767.5, truncated to 32,767 | 32,767 | 12.0 mA |
| 200 fpm | 170 × 65,535 / 170 = 65,535 | 65,535 | 20.0 mA |
The 32,767 truncates because integer math drops the 0.5, and the current still lands on 12.0 mA: 16 mA × 32,767 / 65,535 = 7.9998 mA above the zero. When the meter reads all three rows, the pointer, the card and the loop are confirmed end to end, and whatever is still wrong lives in the HMI scaling or the drive.
Why does the raw entry value show up in the output word?
If a keypad entry of 200 lands in V410 as 200, a second writer is on that word, because a numeric entry object writes its raw value straight to whatever address its tag names.
That direct-to-tag write is exactly how numeric entry objects behave; page on numeric entry objects writing directly to PLC integer tags walks through the mess it makes when the tag points at the wrong word. Hunt the second writer in three places: the keypad object's tag, which must name V500 and nothing else; any extra display or maintenance objects added while experimenting, which can hold a tag on V410; and the ladder, where only the scaled result, the copy from V2200 to V410, may touch the output word.
After the cleanup, repeat the three-count test. If V410 moves only when the test writes move it, the path from keypad to current is clean.
Recommendation: prove the meter with a fuse and jack check first, then move the scaling into the numeric entry's Scaling Option on a BCD Int 32 tag (PLC Value points 0 and 65,535, Display Value points 30 and 200) and keep the ladder down to IBox 461; use PLC binary math feeding V410 only when the tag editor will not offer BCD Int 32. Call the output fixed when the three written counts return the three currents in the worked example.
Once the three-count test has confirmed the loop, the PLC already holds the line speed where a screen can use it. If operators also need the number at the machine, how to display a PLC counter value where operators can see it covers putting a PLC value onto a shop-floor display.
Questions
Why does a working output read 4 mA instead of 0 mA?
4 mA is the live zero of a 4-20 mA signal: the span above it is 16 mA, so count 0 must give the live zero, count 32,767 about 12 mA and count 65,535 exactly 20 mA. A reading of 0 mA means the loop carries no current at all, which points to wiring or the module's external 24 V DC supply. A small steady reading at the live zero means the channel is alive and the search belongs upstream.
Can I keep 4095 as the multiplier if I only need coarse speed control?
No. On a 16-bit card, 4095 counts is 6.25 percent of full scale, so the whole 30-200 fpm entry range produces about 0.17 mA of change, from roughly 4.03 mA to 4.20 mA. The drive sees almost no command difference between minimum and maximum speed, and loop noise is larger than the signal being sent. Rescale to 0-65,535 so that 200 fpm asks for the full 20 mA.
How do I check the meter's current fuse with the meter itself?
Set the selector to a resistance or continuity range, put one lead in the current jack and the other in common, and touch the lead tips together. A good fuse reads near zero ohms or beeps; a blown one reads open. Fit a replacement with the type and rating the meter's own manual specifies, and move the leads back to the voltage jacks whenever the next measurement is a voltage, because that habit is what kills the fuse.
Planning information, not legal or engineering advice. Rules differ by place: check codes and permits with your local authority and your licensed trades.