Legacy Hardware and Apps
DT800 power monitoring

Hi,

I am fairly new to the dt800 logger and therefore have done no training with regards to programming.

I have an application where i am monitoring power consumption using three power transducers outputting an analogue 0+10V signal back to the dt800 where i am adding the data form the three transducers within a channel variable to give me total power from the three.

I need to convert the power in watts to watt hours therefore i also need to log the period of time that the load consuming the power is active to give watt hours. the 3 loads i believe will be consistent in the amount of power they use as they will simply be on or off motors.

Suggestions welcome.
Stephen

Hi, I am fairly new to the dt800 logger and therefore have done no training with regards to programming. I have an application where i am monitoring power consumption using three power transducers outputting an analogue 0+10V signal back to the dt800 where i am adding the data form the three transducers within a channel variable to give me total power from the three. I need to convert the power in watts to watt hours therefore i also need to log the period of time that the load consuming the power is active to give watt hours. the 3 loads i believe will be consistent in the amount of power they use as they will simply be on or off motors. Suggestions welcome. Stephen

Good morning Stephen,

What is the output of your sensors? (Volts, Amps, Watts??)

By definition 1 Watt hour is a 1 Watt load running for 1 hour http://en.wikipedia.org/wiki/Watt-hour

If your sensor output is in Watts and you are running your schedule every 1 second then 1 Watt in one second is 1 / 3600 Watt hour.

I would use a span to range the sensor output to Watt hours then assign the values to a channel variable then sum the variables and report the every 1 hour in another schedule

Cheers,
Roger

Good morning Stephen, What is the output of your sensors? (Volts, Amps, Watts??) By definition 1 Watt hour is a 1 Watt load running for 1 hour http://en.wikipedia.org/wiki/Watt-hour If your sensor output is in Watts and you are running your schedule every 1 second then 1 Watt in one second is 1 / 3600 Watt hour. I would use a span to range the sensor output to Watt hours then assign the values to a channel variable then sum the variables and report the every 1 hour in another schedule Cheers, Roger

Hi Roger,

Thank you for your reply. The power transducer has an analog output of 0+5V which I can scale no problem. I think most of the way with it but have encountered a problem.

I have the program scaling and converting where needed, when the power is on it seems to be calculating ok. But when the power is off, the power in kWh (because I have the calculation in the program 7CV which is from the voltage output from the transducer to the logger) returns to zero as there is no power consumption or voltage signal because the motor is off.

What I am trying to achieve is a total power consumption from time of setup of logger to motor but the kWh 6CV returns to zero once the motor power switches of, where I need it to store the measurement and continue from each measurement on. Please see below program and excuse the lack of knowledge in programming. I would appreciate your help on this its driving me insane.

'JOB=JOB1
'COMPILED=2007/07/09 00:53:20
'deLogger generated program file for dataTaker 8 series
DT=\d
BEGIN"JOB1"
CATTN
'Spans and polynomial declarations
S1=0,100,0,100"KW"
S2=0,10,0,10000"V"
S3=0,100,0,100"Sec"
S4=0,100,0,100"Hrs"
S5=0,100,0,100"KWH"
'Thermistor declarations
'Switches declarations

'Parameter declarations
P31=3
'Global declarations
RS1S
'main schedule definitions

'schedule definition
RA1S LOGONA GA
10CV=0
1V(S2,=1CV)
1CV(S1,0.48,=7CV)
IF(10CV<10)AND
IF(1CV>0.1)"ON ^m^j"{[T(=2CV)10CV=1]}
IF(1CV<0.1)"Off ^m^j"{[T(=3CV)10CV=0]}

2CV(S3,"ON",=2CV)
3CV(S3,"OFF",=3CV)
5CV(S4,"ON TIME HRS")=2CV/3600
6CV(S5,"Power per Time")=5CV*7CV
5CV
7CV
END
'end of program file

Thank you
Stephen

Hi Roger, Thank you for your reply. The power transducer has an analog output of 0+5V which I can scale no problem. I think most of the way with it but have encountered a problem. I have the program scaling and converting where needed, when the power is on it seems to be calculating ok. But when the power is off, the power in kWh (because I have the calculation in the program 7CV which is from the voltage output from the transducer to the logger) returns to zero as there is no power consumption or voltage signal because the motor is off. What I am trying to achieve is a total power consumption from time of setup of logger to motor but the kWh 6CV returns to zero once the motor power switches of, where I need it to store the measurement and continue from each measurement on. Please see below program and excuse the lack of knowledge in programming. I would appreciate your help on this its driving me insane. ```` &#039;JOB=JOB1 &#039;COMPILED=2007/07/09 00:53:20 &#039;deLogger generated program file for dataTaker 8 series DT=\d BEGIN&quot;JOB1&quot; CATTN &#039;Spans and polynomial declarations S1=0,100,0,100&quot;KW&quot; S2=0,10,0,10000&quot;V&quot; S3=0,100,0,100&quot;Sec&quot; S4=0,100,0,100&quot;Hrs&quot; S5=0,100,0,100&quot;KWH&quot; &#039;Thermistor declarations &#039;Switches declarations &#039;Parameter declarations P31=3 &#039;Global declarations RS1S &#039;main schedule definitions &#039;schedule definition RA1S LOGONA GA 10CV=0 1V(S2,=1CV) 1CV(S1,0.48,=7CV) IF(10CV&lt;10)AND IF(1CV&gt;0.1)&quot;ON ^m^j&quot;{[T(=2CV)10CV=1]} IF(1CV&lt;0.1)&quot;Off ^m^j&quot;{[T(=3CV)10CV=0]} 2CV(S3,&quot;ON&quot;,=2CV) 3CV(S3,&quot;OFF&quot;,=3CV) 5CV(S4,&quot;ON TIME HRS&quot;)=2CV/3600 6CV(S5,&quot;Power per Time&quot;)=5CV*7CV 5CV 7CV END &#039;end of program file ```` Thank you Stephen

Good morning Stephen,

It's actually a lot simpler.

  1. Scaling your transducer.
    If your transducer puts out 0 to 5 VDC = 0 to 1 kW and you are reading the sensor every second and we know that a 1 kW load running for 1 hour is 1 kWh then 1 kW running for 1 second is 1/3600 kWh (0.0027777 kWh)

    So the scaling for the sensor will be S1=0,0.0027777,0,1"kWh"

  2. Calculating kWh
    All we need to do now is to sum all the one second readings.

So

BEGIN"kWh"
S1=0,0.0027777,0,1"kWh"
RA1S
1V(S1,+=1CV,W)
1CV("Total~kWh)
END

The channel option +=1CV says add the new reading to the current value of 1CV. This way it keeps a running sum.

You will need to reset the value at some stage which you can do with a n other schedule

Cheers,
Roger

Good morning Stephen, It&#039;s actually a lot simpler. 1. Scaling your transducer. If your transducer puts out 0 to 5 VDC = 0 to 1 kW and you are reading the sensor every second and we know that a 1 kW load running for 1 hour is 1 kWh then 1 kW running for 1 second is 1/3600 kWh (0.0027777 kWh) So the scaling for the sensor will be S1=0,0.0027777,0,1&quot;kWh&quot; 2. Calculating kWh All we need to do now is to sum all the one second readings. So ```` BEGIN&quot;kWh&quot; S1=0,0.0027777,0,1&quot;kWh&quot; RA1S 1V(S1,+=1CV,W) 1CV(&quot;Total~kWh) END ```` The channel option +=1CV says add the new reading to the current value of 1CV. This way it keeps a running sum. You will need to reset the value at some stage which you can do with a n other schedule Cheers, Roger

Hi Roger,

Thank you for your simplistic clarity on the issue. I programmed the dt800 for application as you detailed the only difference is that the signal from the transducer is 0+10V output for a range of 2.3 kW therefore the scaling shall have to be different maybe I can put a second scaling on CV as with the suggested scaling it was just a time scaling sec hrs.

Also another issue that cropped up is that the DT800 is measuring the voltage in mV or micro V and the DT800 1V channel displaying possible a noise voltage of about 0.0006V which is not a great deal but this means that the calculation in 1CV is falsely calculating a power consumption when there is not one and over a period of time this becomes significant.

Can I change the reading to voltage or change the resolution to avoid scaling it as i have to scale it from mV to V, also i have tried to run the power monitoring on a separate schedule with fast mode enabled but it makes no difference.

Your suggestions are much appreciated as i am at the start of this learning curve.

Regards,
Stephen.

Hi Roger, Thank you for your simplistic clarity on the issue. I programmed the dt800 for application as you detailed the only difference is that the signal from the transducer is 0+10V output for a range of 2.3 kW therefore the scaling shall have to be different maybe I can put a second scaling on CV as with the suggested scaling it was just a time scaling sec hrs. Also another issue that cropped up is that the DT800 is measuring the voltage in mV or micro V and the DT800 1V channel displaying possible a noise voltage of about 0.0006V which is not a great deal but this means that the calculation in 1CV is falsely calculating a power consumption when there is not one and over a period of time this becomes significant. Can I change the reading to voltage or change the resolution to avoid scaling it as i have to scale it from mV to V, also i have tried to run the power monitoring on a separate schedule with fast mode enabled but it makes no difference. Your suggestions are much appreciated as i am at the start of this learning curve. Regards, Stephen.

Good morning Stephen,

I do like keeping things as simple as possible, I just hope I haven't been too simplistic.

There is a code fragment on the FAQ that shows how to remove small numbers from your data:

Data acquired from the real world is very rarely exactly zero and the data acquisition systems will return very small floating point numbers.

Version 9.08 introduces an inline If Else (?:):

1I(=1CV,W)             'Read a voltage and save in a channel variable
2CV("Current~mA")=(1CV>1)?0:1CV 'If the current is less than 1 mA return a 0 else return mA reading

Code for previous firmware version (older than 9.08):

1I(=1CV,W)             'Read a voltage and save in a channel variable
2CV("Current~mA")=1CV*(1CV>1) 'If the current is less than 1 mA return a 0 else return mA reading

Cheers,
Roger

Good morning Stephen, I do like keeping things as simple as possible, I just hope I haven&#039;t been too simplistic. There is a code fragment on the FAQ that shows how to remove small numbers from your data: Data acquired from the real world is very rarely exactly zero and the data acquisition systems will return very small floating point numbers. Version 9.08 introduces an inline If Else (?:): ```` 1I(=1CV,W) &#039;Read a voltage and save in a channel variable 2CV(&quot;Current~mA&quot;)=(1CV&gt;1)?0:1CV &#039;If the current is less than 1 mA return a 0 else return mA reading ```` Code for previous firmware version (older than 9.08): ```` 1I(=1CV,W) &#039;Read a voltage and save in a channel variable 2CV(&quot;Current~mA&quot;)=1CV*(1CV&gt;1) &#039;If the current is less than 1 mA return a 0 else return mA reading ```` Cheers, Roger
41
5
2
live preview
enter atleast 10 characters
WARNING: You mentioned %MENTIONS%, but they cannot see this message and will not be notified
Saving...
Saved
With selected deselect posts show selected posts
All posts under this topic will be deleted ?
Pending draft ... Click to resume editing
Discard draft