Our full technical support staff does not monitor this forum. If you need assistance from a member of our staff, please submit your question from the Ask a Question page.


Log in or register to post/reply in the forum.

4-20 mA measures too low voltage


Benjamin.vial Sep 21, 2020 08:09 AM

Hello,

I have problem with two 2-wire sensors (extensometers) that's works in 4-20 mA.

I have 100 ohm high precision resistance for each sensor, works like a CURS100. But The voltage measured is too low, I think something is not fine plugged.

Looking from CURS100 manual, I seen that the "L" terminal must be connected to the "G" power out, but I didn't. I just put a jumper wire between "L" and earth pin.

I though the earth and "G" were internally connected, but maybe they don't, and I loose some current in the earth that is not measured.

Measured should be between 100 mV and 2000 mV, but I have 33 to 100 mV.

I can provide a comparative schema if my explanation is not clear.

What's the problem ?


smile Sep 22, 2020 08:10 AM

Hi, yes post the schema. Please let me know if you use SE o Diff measurements.


Benjamin.vial Sep 22, 2020 09:25 AM

Hi,

here it is :

https://drive.google.com/file/d/1t3e1vJptIO7w1Ai06b1mrdgkpergsePO/view?usp=sharing

The picture on the left is my stuff, on the right the CURS100 scheme.

On the picture, red/yellon wires are powering a 2-wire sensor and black/white are powering a second one.

Let me know if you have any question.

Thanks,

bye.


smile Sep 22, 2020 12:16 PM

Hi, in the programm logger use VoltDiff or VoltSE?

and as described in the CS diagram, the 12V return (the negative) must be connect on one of the G and not on the GND.

G and GND are not exactly the same thing, in fact CS connects the cable shield, which maybe yours doesn't have.

I advise you to put a fuse on the 12V lines or use the SW12 if  not used, always on or if are slow measurements only when needed, calculating a delay for the heating of the sensors.

If something happens along the cable, you are better protected.


Benjamin.vial Sep 22, 2020 12:35 PM

Hi,

it's VoltDiff in the prog.

Ok I'll unplug the jumper between "L" and "G" and put one between "L" and "GND" on the two sensors.

And yes, you totally right about the fuse. I'll prepar that for my next mission.

Thanks for your help, I'll post a last message if this is finally resolve.

Bye


Benjamin.vial Sep 25, 2020 10:03 AM

Hi,

Last question before go on the field, there is a particularity on my measure station.

I have 2 sensors, but not of the same model. The first can be supplied in 12Vdc (where I'll put a fuse), and the second one can only powered by 24Vdc. So I had to plug a power convertissor, 12-24Vdc.

Here is my proposition of connection diagram: https://drive.google.com/file/d/1F52aThfV0wefGMSotG30tkLNd8p3AheS/view?usp=sharing

What do you think about it ?

Thanks,

bye.


smile Sep 25, 2020 10:52 AM

Hi

something is wrong .....


The negative of the 24 V must always pass through 100 Ohm, it cannot go directly to the G of the logger or both as in the diagram.

Also is the 24V sensor 2 or 3 wires?

is the 12to24 converter isolated or  the negative of the 12V is common to the 24V?

Smile


Benjamin.vial Sep 25, 2020 11:29 AM

So where can I connect the 24V GND ? I have 2 autonomous powering battery pack, maybe I can connect the power sypply of the sensor 2 on the other battery pack than the datalogger ?

The two sensors are 2-wires.

The converter is isolated (you can find it on radiospares ref 140-8100).


smile Sep 25, 2020 02:01 PM

Hi

make these modifications:

Eliminate the direct wire between the negative of the converter and G of the logger.
Eliminate the wire between L and G
Make a new connection between L and the negative of the converter

Unfortunately, I am not familiar with links and I don't know how to attach an image. If you want to create the new scheme and create the link as the previous ones, I will be able to confirm the correctness.

Smile


Benjamin.vial Sep 25, 2020 02:34 PM

The new sheme with your modifications :

https://drive.google.com/file/d/1Hx2NzskNMJ7fTBBjtdWy3k3Ku4-sUYjZ/view?usp=sharing

Is this correct ?


smile Sep 25, 2020 02:57 PM

Ok it's correct!

Smile


Benjamin.vial Sep 25, 2020 03:03 PM

Cool ! After thinking, I agree with your modifications, it's logical.

My station is something about 2000m high and need to be reach by foot, approximatively 2h ...

I'll let you know if all became normal after modifications !

Thanks a lot,

bye


smile Sep 25, 2020 04:13 PM

So have a nice walk! :-)


Benjamin.vial Oct 27, 2020 07:46 AM

Hi,

we were finally able to go on the field.

I made all modification, and it seem I have exactly the same measures of approximatively 3 and 60 mV read on the CR1000. That's not good for a 4-20 mA sensor with a 100 ohm resistance.

However I checked all continuity and power supply. But there were so much wind that I was not be able to go down on the sensors (I must to equip myself with a harness and descned on a rope).

The last thing I think is programmation. Do you confirme that it must be a "voltdiff" function that must be used for a 4-20mA shunted resistance measure ?

Here is my code :

 

'CR1000
'Created by Short Cut (4.0)

'Declare Variables and Units

Public rTime(9)

Public BattV
Public PTemp_C
Public extenso_10m
Public extenso_1m
Public T107_95
Public T107_150
Public T107_300
Public SlrkW
Public SlrkJ

Units BattV=Volts
Units PTemp_C=Deg C
Units extenso_10m=mV
Units extenso_1m=mV
Units T107_95=Deg C
Units T107_150=Deg C
Units T107_300=Deg C
Units SlrkW=kW/m^2
Units SlrkJ=kJ/m^2

'Define Data Tables
DataTable(extenso,True,-1)
	DataInterval(0,10,Min,10)
	Average(1,extenso_10m,FP2,False)
	StdDev(1,extenso_10m,FP2,False)
	Average(1,extenso_1m,FP2,False)
	StdDev(1,extenso_1m,FP2,False)
	'TableFile ("USR:exten",8,-1,0,24,Hr,Outstat1,LastFileName1)
EndTable

DataTable(soleil,True,-1)
	DataInterval(0,10,Min,10)
	Average(1,T107_95,FP2,False)
	Average(1,T107_150,FP2,False)
	Average(1,T107_300,FP2,False)
	StdDev(1,T107_95,FP2,False)
	StdDev(1,T107_150,FP2,False)
	StdDev(1,T107_300,FP2,False)
	Average(1,SlrkW,FP2,False)
	StdDev(1,SlrkW,FP2,False)
	Totalize(1,SlrkJ,IEEE4,False)
EndTable

DataTable(soh,True,-1)
	DataInterval(0,10,Min,10)
	Minimum(1,BattV,FP2,False,False)
	Average(1,PTemp_C,FP2,False)
	'TableFile ("USR:soh",8,-1,0,24,Hr,Outstat2,LastFileName2)
EndTable

'Main Program
BeginProg
  'SetStatus("USRDriveSize",10000000) 'pour CR1000 uniquement
	'Main Scan
	Scan(10,Sec,1,0)
		'Default CR1000 Datalogger Battery Voltage measurement 'BattV'
		Battery(BattV)
		'Default CR1000 Datalogger Wiring Panel Temperature measurement 'PTemp_C'
		PanelTemp(PTemp_C,_50Hz)
		'Generic 4-20 mA Input measurement 'extenso_10m'
		VoltDiff(extenso_10m,1,mV2500,1,True,0,_50Hz,0.0625,-25)
		'Generic 4-20 mA Input measurement 'extenso_1m'
		VoltDiff(extenso_1m,1,mV2500,2,True,0,_50Hz,0.0625,-25)
		'107 Temperature Probe measurement 'T107_95'
		Therm107(T107_95,1,5,1,0,_50Hz,1,0)
		'107 Temperature Probe measurement 'T107_150'
		Therm107(T107_150,1,6,1,0,_50Hz,1,0)
		'107 Temperature Probe measurement 'T107_300'
		Therm107(T107_300,1,7,1,0,_50Hz,1,0)
		'CMP3/CMP6/CMP11 Pyranometer measurements 'SlrkJ' and 'SlrkW'
		VoltDiff(SlrkW,1,mV25,5,True,0,_50Hz,1,0)
		If SlrkW<0 Then SlrkW=0
		SlrkJ=SlrkW*0.6075334
		SlrkW=SlrkW*0.06075334
		'Call Data Tables and Store Data
		CallTable extenso
		CallTable soleil
		CallTable soh
	NextScan
	SlowSequence
	  Scan (10,Sec,3,0)
	  NetworkTimeProtocol ("fr.pool.ntp.org",0,100) 'ntp.pool...
	  RealTime(rTime)
  EndSequence
  NextScan
EndProg

 

Thanks,

bye


Benjamin.vial Nov 2, 2020 08:41 AM

Hello,

sorry to insist,

so what do you think about the program ?

Or more generally about the measures, out of a normal 4-20 mA measure ?


bye


nsw Nov 2, 2020 12:00 PM

Your code includes 2 x VoltDiff instructions which is fine. These output the result in mV if the mutiplier and offset on the end of the instruction are "1" and "0". I.e. multiply the value obtained by the measurement by 1 and offset it by zero. 

In your program, there is a multiplier of "0.0625" and offset of "-25". This converts the range 4-20mA as follows :-

4mA (100x 0.4) = 400mV.

(400 x 0.0625)-25 = 0

20mA (100x 0.2) = 2000mV

(2000 x 0,0625)-25 = 100

So, your multiplier and offset yu are using are converting te mV measured in to a range of between 0 to 100. If you want this to be something else, you just need to do the maths to work out what mulitplier and offset to use.

If you are seeing values of 3 and 60, those are not the mV reading, but the values converted to be within this 0 to 100 range.


Benjamin.vial Nov 2, 2020 03:07 PM

It was obvious, however ...

Thanks for show me the multiplier and offset, that's maybe automatically add with shortcut to convert in percent of the sensor range ?

The good new is we don't have to go back on the field ! And anyway we can't because of the lockdown, so ...

Thanks a lot, you have been of great help.

Bye.


evaaa Feb 22, 2021 09:16 AM

Hi,

we were finally able to go on the field.

I made all modification, and it seem I have exactly the same measures of approximatively 3 and 60 mV read on the CR1000. That's not good for a 4-20 mA sensor with a 100 ohm resistance.

However I checked all continuity and power supply. But there were so much wind that I was not be able to go down on the sensors (I must to equip myself with a harness and descned on a rope).

The last thing I think is programmation. Do you confirme that it must be a "voltdiff" function that must be used for a 4-20mA shunted resistance measure ?

Here is my code :

 

'CR1000
'Created by Short Cut (4.0)

'Declare Variables and Units

Public rTime(9)

Public BattV
Public PTemp_C
Public extenso_10m
Public extenso_1m
Public T107_95
Public T107_150
Public T107_300
Public SlrkW
Public SlrkJ

Units BattV=Volts
Units PTemp_C=Deg C
Units extenso_10m=mV
Units extenso_1m=mV
Units T107_95=Deg C
Units T107_150=Deg C
Units T107_300=Deg C
Units SlrkW=kW/m^2
Units SlrkJ=kJ/m^2

'Define Data Tables
DataTable(extenso,True,-1)
	DataInterval(0,10,Min,10)
	Average(1,extenso_10m,FP2,False)
	StdDev(1,extenso_10m,FP2,False)
	Average(1,extenso_1m,FP2,False)
	StdDev(1,extenso_1m,FP2,False)
	'TableFile ("USR:exten",8,-1,0,24,Hr,Outstat1,LastFileName1)
EndTable

DataTable(soleil,True,-1)
	DataInterval(0,10,Min,10)
	Average(1,T107_95,FP2,False)
	Average(1,T107_150,FP2,False)
	Average(1,T107_300,FP2,False)
	StdDev(1,T107_95,FP2,False)
	StdDev(1,T107_150,FP2,False)
	StdDev(1,T107_300,FP2,False)
	Average(1,SlrkW,FP2,False)
	StdDev(1,SlrkW,FP2,False)
	Totalize(1,SlrkJ,IEEE4,False)
EndTable

DataTable(soh,True,-1)
	DataInterval(0,10,Min,10)
	Minimum(1,BattV,FP2,False,False)
	Average(1,PTemp_C,FP2,False)
	'TableFile ("USR:soh",8,-1,0,24,Hr,Outstat2,LastFileName2)
EndTable

'Main Program
BeginProg
  'SetStatus("USRDriveSize",10000000) 'pour CR1000 uniquement
	'Main Scan
	Scan(10,Sec,1,0)
		'Default CR1000 Datalogger Battery Voltage measurement 'BattV'
		Battery(BattV)
		'Default CR1000 Datalogger Wiring Panel Temperature measurement 'PTemp_C'
		PanelTemp(PTemp_C,_50Hz)
		'Generic 4-20 mA Input measurement 'extenso_10m'
		VoltDiff(extenso_10m,1,mV2500,1,True,0,_50Hz,0.0625,-25)
		'Generic 4-20 mA Input measurement 'extenso_1m'
		VoltDiff(extenso_1m,1,mV2500,2,True,0,_50Hz,0.0625,-25)
		'107 Temperature Probe measurement 'T107_95'
		Therm107(T107_95,1,5,1,0,_50Hz,1,0)
		'107 Temperature Probe measurement 'T107_150'
		Therm107(T107_150,1,6,1,0,_50Hz,1,0)
		'107 Temperature Probe measurement 'T107_300'
		Therm107(T107_300,1,7,1,0,_50Hz,1,0)
		'CMP3/CMP6/CMP11 Pyranometer measurements 'SlrkJ' and 'SlrkW'
		VoltDiff(SlrkW,1,mV25,5,True,0,_50Hz,1,0)
		If SlrkW<0 Then SlrkW=0
		SlrkJ=SlrkW*0.6075334
		SlrkW=SlrkW*0.06075334
		'Call Data Tables and Store Data
		CallTable extenso
		CallTable soleil
		CallTable soh
	NextScan
	SlowSequence
	  Scan (10,Sec,3,0)
	  NetworkTimeProtocol ("fr.pool.ntp.org",0,100) 'ntp.pool...
	  RealTime(rTime)
  EndSequence
  NextScan
EndProg

 

You must change sensor a 4-20 mA sensor with a 100 ohm resistance.


Benjamin.vial Feb 22, 2021 10:33 AM

Hi again, I'm back on this problematic, something new.

First, I deleted the conversion in %, that's not usefull in our data uses, and create some confusion sometimes. So I set the multiplier to "1" and offset to "0".

But there is another thing we observed that is confusing.

Sometimes, we have negative mV values. I personnaly make a measure during an intervention, to calibrate the sensor max and min, I read the CR1000 mV value when sensor is totally close and totally open, in theory I should have something about 0 to 2000 mV (with a 100 ohm resistance), but there is -34 mV when sensor is totally close : how can we obtain negative values ?

I could understand if we didn't have 0 or 2000 mV precisely of course, but negative, I'm not sure that's normal.

What do you think about it ?

@evaaa we already have 100 ohm shunt resistances on the wiring diagram.


Benjamin.vial Feb 26, 2021 07:35 AM

Hi,

I'm still interested by some genius idea :-).

bye


nsw Feb 26, 2021 11:57 AM

Hi, I do not know why that would be, but I suggest you check out the different wiring recommendations shown in the CURS100 module manual, which is a Campbell Scientific simple plug in module for measuring 4-20mA sensors. There are a few alternatibves depnding on the device/power, etc. This may help.

CURS100 (campbellsci.com)


Benjamin.vial Feb 26, 2021 12:09 PM

Hi,

thanks for your aswer,

I already read this documentation, it seem I followed the recommendations. This is 2 wires 4-20 mA sensors so we just used them as seen on the manual (of the curs100).

But we have decide to install CUR100 devices in place of the "normal" resistance, just to be sure and erase any doubt about this.

I'll let you know after our next intervention if something change.

bye


Benjamin.vial Aug 19, 2021 06:02 AM

Hello,

just to "close" or "resolve" this topic, I make a  conclusion for all problems talked and solved here.

Just a reminder ; it's about 2 steel wire extensometer in 4-20mA, measuring mountain rocks displacement, on a CR1000, on an isolated field measure station, data are send by GPRS.

1. The wiring diagram : make a current loop with my sensor with a dedicated power supply (to have a regulated supply of the sensor, avoid voltage variation and so, response variation).

2. The program : be careful in the function VoltDiff

VoltDiff(extenso_10m,1,mV2500,1,True,0,_50Hz,0.0625,-25)

the two last number is the multiplier (0.0625) and the offset (-25).The multiplier 0.0625 is to get closer of a percent results but it can't be perfect because of the precision of the sensor, so it's confusing. And honestly I don't remember why there is an offset by default.

Advice : put them to 1 and 0, take your raw mV value and convert it in your study.

Now our station is operational (it took time ... We finished just yesterday), and the displacement data are usable.

Thanks to all intervenant,

bye

Log in or register to post/reply in the forum.