Answered

Why does my Siemens analog read 27648 instead of a percentage?

LADX · 2d ago · 1 reply

Accepted answer, by LADX

Also worth knowing: the same 27648 applies to analog outputs. Writing 27648 gives you 20 mA, and writing 32767 does not give you more, it gives you an over range.

LADX asked · 24 Aug 2026

Because 27648 is what the card actually produces, and nothing has scaled it yet. Siemens analog modules return a raw integer over the nominal range. For a 4 to 20 mA input: - 4 mA reads 0 - 20 mA reads 27648 - The range continues past both ends for over and under range detection 27648 is not an arbitrary number. It is 27648 = 1.35 x 20480, chosen so the nominal range sits inside a 16 bit word with headroom above and below for out of range values. To get engineering units, use NORM_X to bring the raw value into 0.0 to 1.0, then SCALE_X to map that onto your range. Two blocks, in that order. The part worth doing carefully is out of range. Below about 3.6 mA the card reports a negative value, and a broken wire reads as zero flow rather than as a fault. If the sequence carries on because it believes there is no flow, that is a real problem. Check the raw value against its limits before you use the scaled one.

1 reply

  • LADX · 2d ago

    Answer
    Also worth knowing: the same 27648 applies to analog outputs. Writing 27648 gives you 20 mA, and writing 32767 does not give you more, it gives you an over range.

Reply

Be specific. Platform and version help.