F0-04THM on DL06: Why Is My Load Cell Reading Frozen?

Brian Holt8 min read
AutomationDirectOther TopicTroubleshooting
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

Prove the Data Path Before You Rewire Anything

A number that never moves is a pointer problem until proven otherwise. The DL06 LCD instruction formats whatever V-memory word you aim it at, so a display holding 10087 on line 1 and 3 on line 2 proves the rung is scanning — nothing more. Line 2 sitting at a handful of counts while line 1 sits pinned high is the classic picture of one channel driven out of range and another effectively at zero.

  1. Go online with DirectSOFT and open a Data View on the four channel words belonging to the option slot the F0-04THM occupies. That V-memory block is fixed per slot — read it out of the DL06 option-module memory map, not from a program copied off another machine.
  2. Watch the channel 1 word raw, in decimal, with every scaling rung bypassed.
  3. Press on the load cell by hand or hang a known weight while you watch.

If the raw word is dead, the module or the field wiring owns the fault and the ladder is innocent. If the raw word moves and the LCD does not, the display instruction points at the wrong address, the rung never enables, or the format truncates. Get it running, then fix it properly — but do the split first, because everything below assumes you are reading the word the module actually writes.

Symptom at the raw channel word Mechanism Check that decides it
Frozen at a large value Input pinned by common-mode volts on a millivolt range, or a thermocouple type is selected and linearization is saturating Jumper ch1+ to ch1- at the terminal block and reread the word
Frozen even with the jumper installed Ladder is reading a word the module never writes Re-verify the slot-to-V-memory block for the installed slot
Moves, but bears no relation to load A bridge arm shorted by a negative-to-ground jumper Measure ch1+ and ch1- to analog common with a DMM
Walks all shift with the cell unloaded Excitation droop Log the unloaded value and excitation voltage together
Steps only when the machine runs Coupled noise; shield landed at both ends or not at all Single-point shield, re-route away from motor leads

Give the Bridge One Ground, and Keep It Off the Signal Leg

Both output legs of a strain gauge bridge float at roughly half the excitation voltage. With 9 V on the bridge, the signal pair sits near 4.5 V above the excitation return, and the weight information is only the few-millivolt difference between the two legs. Tying all of the channel negatives to a ground bus wrecks that in one of two ways. If your ground bus is the same node as excitation-, you have shorted the lower half of one bridge arm straight to the return; the bridge collapses and ch1+ presents half the excitation to an input expecting millivolts. If the ground bus is chassis or earth and the battery genuinely floats, nothing sets the common-mode potential at all, and leakage plus static walk the pair outside the module's input window until the converter pins.

  1. Pull every jumper off the channel negative terminals. On this module, each channel negative is a signal input, not a ground bus.
  2. Land the bridge signal pair on ch1+ and ch1- and nothing else on those two screws.
  3. Tie excitation- to the module's analog common with one wire, at one point.
  4. Land the cable shield at the panel end only.

Check: with the DMM common on the module's analog common, measure ch1+ and then ch1-. Both must sit inside the common-mode input range printed in the module's specification table. Then measure ch1+ to ch1- differentially — that is the number the converter is supposed to digitize. Stop here if either leg reads volts to common; on a millivolt range you are risking the input stage, not just the reading.

Get the 9 V Battery Out of the Loop

Bridge output is ratiometric: Vout = sensitivity(mV/V) x Vexc x (load / capacity). The module sees only the signal pair, so a millivolt of excitation droop and a millivolt of real weight change are the same event to it. That alone disqualifies a battery.

Run the load: a 350 ohm bridge, the most common value, pulls about 26 mA from a 9 V source (9 V / 350 ohm = 25.7 mA). An alkaline 9 V sags under that continuously and its terminal voltage walks all shift. Run the span: a 2 mV/V cell at 9 V gives 18 mV at rated capacity (2 mV/V x 9 V), so the 0.1 mV to 10 mV you can measure at the terminals says the cell is alive and somewhere under half capacity — the front end is what is broken, not the transducer. Confirm your cell's actual sensitivity and rated excitation on its calibration certificate before you apply anything.

Swap in a regulated DIN-rail supply at the cell's rated excitation voltage. Check: log the unloaded reading for fifteen minutes. On a battery it drifts one direction; on a regulated supply it sits inside the noise band.

Set the Range to Millivolts, Not a Thermocouple Type

Leave a thermocouple type selected and the module does two irreversible things to your bridge output. It adds a cold-junction offset taken from its internal reference sensor, then pushes the sum through that thermocouple's linearization curve and reports the result as a temperature in tenths of a degree. Ten millivolts of bridge signal becomes a temperature number; a near-zero input reports something near ambient. No scaling rung recovers the original millivolts.

  1. Power down the DL06 and pull the module.
  2. Set the DIP switches for the voltage/millivolt input range using the switch table in the module documentation. Read the exact millivolt span and its switch code out of the specification table — do not inherit settings from a temperature job.
  3. Reseat the module, power up, and confirm the module status and error bits per the manual.

Check: jumper ch1+ to ch1- at the terminal block. The channel word should sit at or very near zero counts. Remove the jumper and inject a known level from a millivolt calibrator or a precision divider; counts must track linearly. That one test separates a configuration fault from a wiring fault in under two minutes.

Run the Resolution Math Before You Trust the Weight

Two divisions decide whether this architecture is worth finishing. First, mV per count = full-scale span / resolution counts, both from the module spec table. Second, counts at full load = cell full-scale output / mV per count, where the cell's full-scale output is sensitivity times excitation. Under about 1000 counts at rated capacity you have a coarse, noisy weight readout; under about 100 counts it is a presence check, not a scale.

Three things the module does not have, and every one of them shows up as error rather than noise: no ratiometric excitation reference, so supply drift reads as weight; no sense lines, so cable resistance eats span; no shunt-cal input, so you cannot verify the channel without hanging iron. If you need better than a couple of percent, put a bridge transmitter in front — regulated excitation with sense leads, zero and span trims, and a 4-20 mA or 0-10 V output into a current or voltage analog input option module. Confirm the part number for that module in the DL06 option-module chapter. The F0-04THM then goes back on thermocouples, where its cold-junction hardware is an asset instead of a liability.

Verify End to End, Then Escalate

  1. Dead load, unloaded: raw counts stable within a few counts over ten minutes.
  2. Known test weight: counts move by the amount your math predicts. Apply and remove three times and confirm return to zero.
  3. Half-load and full-load points: linearity inside your tolerance.
  4. Ladder scaling: the engineering-units value on the LCD matches the test weight, and the LCD instruction points at the scaled word rather than the raw one.
  5. Noise soak: start the contactors and drives. Counts that only move when the machine runs are a routing and shield problem, not a scaling problem.
  6. Thermal: after an hour at operating temperature, recheck zero and re-trim if the transmitter allows it.

Stop if the channel still pins after you have proven near-zero counts with ch1+ jumpered to ch1- and a clean millivolt injection — at that point the input stage is damaged, usually from common-mode voltage applied on a millivolt range, and no ladder work brings it back. Call AutomationDirect technical support with the module part number, the DIP switch positions, the option slot, and the V-memory block you are reading, and have the jumpered and injected count values in hand. Do not keep rewriting the program against a dead channel.

FAQ

Why does my F0-04THM channel stay at a fixed number no matter what the load cell does?

Either the channel is pinned out of range or the ladder is reading a word the module never writes. Jumper ch1+ to ch1- and watch the raw channel word in that slot's V-memory block: near-zero counts points at wiring or common mode, while an unchanged value points at the wrong address or a thermocouple type still selected on the DIP switches.

Why does grounding all the negative inputs break a load cell reading?

The bridge output legs float near half the excitation voltage and carry the weight signal only as the difference between them. Grounding the negative terminal either shorts a bridge arm to the excitation return or destroys the differential pair, driving the input outside its common-mode window. Land the signal pair on the channel's + and - only, and reference excitation- to analog common at exactly one point.

Why does the weight reading drift when the load cell is excited from a 9 V battery?

Bridge output is ratiometric — sensitivity in mV/V times excitation — so every millivolt of battery droop is indistinguishable from a weight change. A 350 ohm bridge draws roughly 26 mA at 9 V, which sags an alkaline cell continuously. Use a regulated supply at the cell's rated excitation, or better, a transmitter that regulates and senses excitation itself.

Back to blog