Two faults make the bar graphs unreadable: each ANSCL writes its scaled value into the same word that holds raw counts, and the panel tags read the wrong data type. Give every scaled value a word of its own outside the card's analog area, set the tag type to BCD int 16, then inject 4 mA and 20 mA to sort a scaling fault from a sensor fault.
The bar graphs sit empty or show nonsense while a multimeter on the loop reads a healthy 4 to 20 mA signal. On a D05 with an F0-08ADH-1 analog card, that combination points at the registers and the tags, and the field wiring is fine. ANLGIN writes the raw counts for eight channels into V-memory starting at V1200, and one ANSCL per channel turns each raw word into engineering units. The fix: give every ANSCL an engineering word of its own, outside the card's analog area; set each panel tag to the 16-bit BCD integer type; then, and only then, judge the sensor. This page works the register split, the tag type and the calibrator test in that order.
What each symptom points to
Read the screen before you edit anything. Each of these symptoms has one cause on this setup:
- The tag is dead or jumps between two unrelated numbers while the loop current holds steady. RAW and ENGINEERING point at the same word, and the scaled value and the raw counts overwrite each other.
- The tag shows one huge number that still moves a little with the loop. The register data reaches the panel, and the tag type reads the bits in the wrong format.
- The tag reads a plausible number that tracks the loop but sits at the wrong scale. The panel chain works, and the error sits in the K4 and K20 constants or in the sensor.
A multimeter that reads the expected milliamps on a channel clears the wiring and the transmitter for that channel, so the search stays in the PLC data and the tag database.
Recommendation: On a D05 with the eight-channel card, leave ANLGIN at V1200, move all eight ANSCL engineering outputs to a fresh block at V1300, point every tag at the new block, set each tag to BCD int 16, and then test the sensor with a calibrator. An engineering word anywhere inside the card's sixteen-word analog area keeps corrupting raw data, whatever the constants say.
Why the raw word changes under the tag
ANLGIN, set up with K0 for the base, K1 for the slot, K8 for the channels and V1200 as the data address, writes the raw counts for all eight channels into the block that starts at V1200. Each ANSCL reads one raw word as its RAW input and writes its scaled result to its ENGINEERING output. With RAW and ENGINEERING both at V1200, the scaled value lands on top of the raw counts, and the raw counts land on top of the scaled value on the next pass through the logic. The word flips between two meanings, and the tag reads dead or erratic numbers. The rule covers all eight channels: an ANSCL's RAW input and ENGINEERING output must be different words.
How much room the raw data takes
The card's chapter of the option modules manual specifies two 16-bit words of V-memory per channel, whatever data format the card uses. Eight channels occupy sixteen consecutive words from V1200. That is why engineering addresses stepped as V1202 and V1204 still sat inside the analog data: a two-word step per channel is correct for the raw words, and each of those addresses is a word the card owns. The engineering block has to start outside the whole sixteen-word area.
Example: placing the engineering block for eight 4-20 mA channels on the F0-08ADH-1
Inputs. Eight channels, from the ANLGIN channel count K8. Two words of raw V-memory per channel, from the card's chapter in the option modules manual. One 16-bit word per scaled value, because the tag type that reads these registers, BCD int 16, is a single-word type. First engineering address V1300, picked here as a block start clear of the analog data. Low and high scaling constants K4 and K20, as entered on the IBoxes.
Rule. The raw area takes channels x words per channel. The engineering block takes one word per channel and must begin outside the raw area.
Arithmetic. 8 channels x 2 words per channel = 16 raw words, starting at V1200. 8 channels x 1 word per scaled value = 8 engineering words, V1300 through V1307. The analog area ends at the sixteenth word from V1200; the first engineering word, V1300, sits outside it, so a scaled write can never land on raw counts.
Result. Channel 1 scales into V1300, channel 2 into V1301, channel 3 into V1302, and so on to channel 8 at V1307, each with K4 low and K20 high.
Decision. Any engineering word inside the sixteen words that start at V1200 corrupts raw data; all eight engineering words must sit outside that area. V1300 through V1307 passes. An output at V1207, or at any other word the analog data owns, fails and puts the fault straight back.
Split the registers and retarget the tags
Work in this order; the tags mean nothing until the registers are separated.
- Leave ANLGIN alone: K0 base, K1 slot, K8 channels, data address V1200.
- Edit each ANSCL. RAW keeps its channel's raw word. ENGINEERING moves to its word in the new block: channel 1 to V1300, channel 2 to V1301, through channel 8 at V1307. One ANSCL per channel.
- Write the channel-to-register map on paper first. Eight identical edits are easy to misnumber, and one swapped pair reads later like a bad sensor.
- Save and transfer the program, then open the PLC data view with the loop live. A raw word and its engineering word both move with current, and neither takes the other's value.
- In the tag database, point each bar graph tag at its engineering word. No tag points at the raw block.
- Set each tag's number type to BCD int 16 for a single 16-bit word, or BCD int 32 where the register holds a double word.
- Transfer the panel project and check the bar graphs against a known input.
If the floor needs a value on screen before the end of the shift, take one channel through all seven steps and repeat for the rest in the next window. One verified channel beats eight half-edited ones.
Set the tag type to match the register
Separate registers leave the second fault in place if a tag reads the bits in the wrong format. On this panel the bar graphs only read sensibly once each tag was set to BCD int 16. Match the type to what the register holds:
| Register content | Tag type |
|---|---|
| One 16-bit word holding BCD | BCD int 16 |
| Two consecutive words holding BCD | BCD int 32 |
The type tells the panel how to read the bits. Pick the wrong one and the register still holds good data while the screen shows a huge number that tracks the loop; a panel that shows nonsense numbers from a PLC BCD analog register works that fault in detail. The signed-value cousin, large positive numbers from a register that carries a sign, is the large positive numbers fix with the signed decimal data format.
Tell a scaling fault from a sensor fault
With the registers split and the types set, a value can still sit at the wrong scale. The remaining error on this job was the sensor. Prove the PLC chain before you touch the constants:
- Tell the floor first if the loop feeds a control or an interlock input, then pull the field transmitter off one channel and inject a known current from a loop calibrator.
- Inject 4 mA and read the engineering word in the data view. Inject 20 mA and read it again.
- With K4 as the low constant and K20 as the high, a healthy chain reads about 4 at 4 mA and about 20 at 20 mA.
- If the engineering word follows the calibrator and the process value still reads wrong, the fault is the sensor: its range, zero, span or installation. Correct the sensor and leave the IBox alone.
The K4-to-K20 output is coarse on a bar graph: 16 engineering units cover the 16 mA span of the loop, one step per milliampere. For real process units, enter the sensor's low and high engineering values in K4 and K20 and set the bar graph's range on the panel to match. When a value lands out by a constant factor, the fix for an HMI value that shows ten times too small works through the constant arithmetic.
Checks before the line runs again
- At one steady input, the loop milliamps, the engineering word and the bar graph agree on all eight channels.
- Drive one channel to 4 mA, 12 mA and 20 mA and watch the bar graph travel its full range with no jumps.
- Watch one raw word and its engineering word for a minute. Neither ever shows the other's value; any flip means an overlap is left.
- Cycle the PLC from stop to run and power-cycle the panel. Every value comes back with no manual step.
- Record the final register map in the program comments so the next person leaves V1300 through V1307 alone.
Questions
Does the word count change for a different analog card?
Yes. Two words per channel applies to the F0-08ADH-1. Other cards reserve their own amount of V-memory per channel, so take the count from that card's chapter of the option modules manual before you place an engineering block behind it. The rest of the fix holds on any card: one engineering word per channel, placed outside the analog data, with the panel tag type matched to the register format.
Can I scale in the panel and skip the ANSCL IBoxes?
Many panels can rescale a raw register on the object, so the bar graphs would read with the tags left on the raw words. The scaled number then exists only on the panel. Scaling once in the ANSCL keeps an engineering value in a register that any screen, alarm or log can read, and it keeps one pair of low and high constants to maintain. Scale in the PLC when more than one object uses the value.
How is the card's data format selected?
The card's chapter of the option modules manual lists the setup values that select the data format, and 700, 710, 720 and 730 are the values it documents. The format choice leaves the two words of V-memory per channel in place. Whatever format runs, the panel tag type must read that same format, or the screen shows a wrong number from good register data.
Planning information, not legal or engineering advice. Rules differ by place: check codes and permits with your local authority and your licensed trades.