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.