06-15-2021 02:56 AM
Hello Everyone,
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.
Thanking You
Gokul Gopakumar
Solved! Go to Solution.
06-15-2021 03:07 AM
Hi Gokul,
@Speedyindian wrote:
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…)
06-15-2021 03:13 AM
Hey Gerd,
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?
Thanking You
Gokul Gopakumar
06-15-2021 04:03 AM - edited 06-15-2021 04:04 AM
Hallo Gokul,
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)…
06-15-2021 04:05 AM - edited 06-15-2021 04:07 AM
According to this your conversion is:
voltage = raw * 10 / 27648
7564dez would be about 2.74 V
Regards, Jens