As a part of my thesis, i am building a BMS for an Iron Air Battery. I am using the PLC from VIPA Systems to do this procedure. i am using an analog card to read the voltages from the cell. With the help of SP7 Toolkit, i was able to read the voltage from the cells, but the problem is that the values i was getting were Raw data and not scaled, for Example if i applied 5V to the cell, it is read as somewhere like 7564 or something. How can i convert this data into analog value ranging from 0-10V.
Any help would be appreciated.
Solved! Go to Solution.
i was getting were Raw data and not scaled, for Example if i applied 5V to the cell, it is read as somewhere like 7564 or something. How can i convert this data into analog value ranging from 0-10V.
What about reading the manual and applying simple math?
I guess the PLC reads those voltages using a 14bit ADC, resulting in a value range of 0…16383 for that 0…10V input range. The scaling will simply be
voltage := raw/16383 * (fullscale value)
By reading the manual of your PLC you will learn about the range of those raw values and the corresponding voltage values! (Most probably that module will allow slightly more than 10V as ful scale input…)
Thank you for your reply. Im attaching a Picture from the PLC Handbook. Its in german. But i think you can understand when you see the numbers. So is this the formula should i be using?
ja, das ist die passende Umrechnung!
Similar to what I wrote before:
voltage := raw * 10V/6C00h
You might apply an InRangeAndCoerce operation on the raw value to detect "out of range" data (called "Über-/Untersteuerung" by Siemens)…
According to this your conversion is:
voltage = raw * 10 / 27648
7564dez would be about 2.74 V