Bonjour,
J'ai quelques problèmes avec une CR1000, multiplexeur et 32 jauges de contrainte 2 fils. Les valeurs relevées sont de 0, 130 et 260 µm/m sans aucune contrainte appliquée. Est-ce un problème de vitesse de prise de mesure avec le multiplexeur ou est-ce juste un problème de distance entre mes jauges et la centrales (distance entre 10 et 20m) ?
Hello,
I have some problems with a CR1000, multiplexer and 32 strain gauges 2 wire. The measured values are 0, 130 and 260 microns / m without any applied stress. Is it a problem of speed measurement with the multiplexer or is it just a matter of distance between my gauges and the datalogger (distance between 10 and 20m)?
Sometimes when you install a gage, it has what is called "apparent strain". This is a non-zero strain value caused by simply being attached to a member that already is experiencing some amount of stress/strain.
So I think you need to consider baseline readings and "zeroing" very carefully. ShortCut can generate a program for you that will zero out all of the gages at once (apply an offset, etc.) using a common Flag (boolean value/trigger).
There could be a settling time issue (lack of settling time will appear as a measurement offset). We would need to see the program to get a feel for that.
I recommend you contact your local Campbell Scientific support contact.
I use one 4WFBS120 on CR1000.
It's wired like this :
H(4WFBS120) and L(4WFBS120) with ODD L(AM16/32)
G(4WFBS120) with ODD H(AM16/32)
4WFBS120 on VX1
And this is my program :
Dim I, J, K, Y
Const NbrJauge_Master = 32
Const NbrJauge_Slave1 = 32
Const NbrJauge_Slave2 = 32
Const Facteur = 2.09
Const NbrPT100_Master = 5
Const NbrPT100_Slave1 = 5
Const NbrPT100_Slave2 = 5
Const SCRUT = 1
Const ENRE = 30
Const UnitSCRUT = Min
Const UnitENRE = Min
Public PTemp_Master,PTemp_Slave1, PTemp_Slave2, Result_Slave1, Result_Slave2
Public BrPT100(5), RPT100(5)
Public ZStrain(32), MesureJauge_Master(32)
Public Jauge_Master(32), PT100_Master(5)
Public Jauge_Slave1(32), PT100_Slave1(5)
Public Jauge_Slave2(32), PT100_Slave2(5)
Units PT100_Master = DegC
Units PT100_Slave1 = DegC
Units PT100_Slave2 = DegC
DataTable (Table_Master,1,-1)
DataInterval (0,ENRE,UnitENRE,10)
Sample (1,PTemp_Master,FP2)
Sample (NbrJauge_Master,Jauge_Master(),IEEE4)
Sample (NbrPT100_Master,PT100_Master(),FP2)
EndTable
DataTable (Table_Slave1,1,-1)
Sample(1,PTemp_Slave1,FP2)
Sample(NbrJauge_Slave1,Jauge_Slave1(),IEEE4)
Sample(NbrPT100_Slave1,PT100_Slave1(),FP2)
EndTable
DataTable (Table_Slave2,1,-1)
Sample(1,PTemp_Slave2,FP2)
Sample(NbrJauge_Slave2,Jauge_Slave2(),IEEE4)
Sample(NbrPT100_Slave2,PT100_Slave2(),IEEE4)
EndTable
DataTable (ZERO_1,true,10)
Average (NbrJauge_Master,ZStrain(),IEEE4,0)
EndTable
Sub Zero
Scan (5,Sec,0,5)
PortSet (1,1)
K=1
Delay (0,300,mSec)
SubScan (0,uSec,NbrJauge_Master)
PulsePort (2,10000)
BrFull (ZStrain(K),1,mV2500,1,Vx1,1,2500,True,True,0,250,1.0,0)
K = K+1
NextSubScan
PortSet (1,0)
ZStrain(K)=ZERO_1.ZStrain_AVG(1,1)
CallTable ZERO_1
NextScan
Y = 1
EndSub
BeginProg
Y = 0
SerialOpen (Com2,115200,0,0,100000)
Scan (SCRUT,UnitSCRUT,0,0)
PanelTemp (PTemp_Master,250)
If Y = 0 Then Call Zero
PortSet (1,1)
J = 1
SubScan (0,uSec,NbrJauge_Master)
PulsePort (2,10000)
BrFull (MesureJauge_Master(J),1,mV2500,1,Vx1,1,2500,True,True,0,250,1.0,0)
StrainCalc (Jauge_Master(J),1,MesureJauge_Master(J),ZStrain(J),-1,Facteur,0)
J = J + 1
NextSubScan
PortSet(1,0)
BrHalf (BrPT100(),NbrPT100_Master,mV250,3,Vx2,NbrPT100_Master,1250,True ,0,_50Hz,1,0)
For I = 1 To NbrPT100_Master Step +1
RPT100(I) = ((5620/((1/BrPT100(I))-1))/100)
PRT (PT100_Master(I),1,RPT100(I),1,0)
Next I
GetDataRecord (Result_Slave1,Com2,0,1,0000,100,2,32769,Table_Slave1)
GetDataRecord(Result_Slave2,Com2,0,3,0000,100,2,32769,Table_Slave2) CallTable Table_Master
NextScan
EndProg
If you could help me I would appreciate it because I have a lot of problems with these strain gauges.
Thanks.
The input voltage range you are using is far too high which will result in very coarse resolution that I believe is one of your complaints. You either need to use the lowest range possible based upon knowledge of how well your bridge is balanced and the range or measurement or use the autorange option in the logger.
I am not sure if you have one TIM module (4WFBS120) per sensor or you have put the multiplixer between a single TIM module on the logger and the sensors. If the latter is the case I am afraid you will not get very good measurements as the relay contacts will be in series with the gauge. The resistance of the contacts, although small, varies with each closure and will increase slowly with the age (switching cycles) of the relay. This will result in increasing noise and apparent drift of the gauge.
If you have one TIM per sensor, with the TIMs mounted on the sensor side of the multiplexer, then the effects of the relay contacts resistance is much smaller, almost negligible.
According to last coment from APS, have you solve your problem ? If not please you contact Campbell Scientific French Office (ask : M. Crescenzo)
I changed the program by increasing the time between scanning each channel multiplexer and a few other changes and my program has become:
Dim I, J, K, Y
Const NbrJauge_Master = 32
Const NbrJauge_Slave1 = 32
Const NbrJauge_Slave2 = 32
Const Facteur = 2.09
Const NbrPT100_Master = 5
Const NbrPT100_Slave1 = 5
Const NbrPT100_Slave2 = 5
Const SCRUT = 30
Const ENRE = 1
Const UnitSCRUT = Min
Const UnitENRE = Hr
Public PTemp_Master,PTemp_Slave1, PTemp_Slave2, Result_Slave1, Result_Slave2
Public BrPT100(5), RPT100(5)
Public ZStrain(32), MesureJauge_Master(32)
Public Jauge_Master(32), PT100_Master(5)
Public Jauge_Slave1(32), PT100_Slave1(5)
Public Jauge_Slave2(32), PT100_Slave2(5)
Units PT100_Master = DegC
Units PT100_Slave1 = DegC
Units PT100_Slave2 = DegC
DataTable (Table_Master,1,-1)
DataInterval (0,ENRE,UnitENRE,10)
Sample (1,PTemp_Master,FP2)
Sample (NbrJauge_Master,Jauge_Master(),FP2)
Sample (NbrPT100_Master,PT100_Master(),FP2)
EndTable
DataTable (ZERO_1,true,10) 'Table pour la mise a zero des jauges de contraintes
Average (NbrJauge_Master,ZStrain(),FP2,0)
EndTable
Sub Zero
Scan (22,Sec,0,4)
PortSet (1,1)
K=1
Delay (0,300,mSec)
SubScan (0,uSec,NbrJauge_Master)
PulsePort (2,10000)
BrFull (ZStrain(K),1,Autorange,1,Vx1,1,2500,True,True,0,_50Hz,1.0,0)
Delay (0,500,mSec)
K = K+1
NextSubScan
PortSet (1,0)
ZStrain(K)=ZERO_1.ZStrain_AVG(1,1)
CallTable ZERO_1
NextScan
Y = 1
EndSub
BeginProg
Y = 0
SerialOpen (Com2,9600,0,0,10000)
Scan (SCRUT,UnitSCRUT,0,0)
PanelTemp (PTemp_Master,250) If Y = 0 Then Call Zero
PortSet (1,1)
J = 1
SubScan (0,uSec,NbrJauge_Master)
PulsePort (2,10000)
BrFull (MesureJauge_Master(J),1,Autorange,1,Vx1,1,2500,True,True,0,_50Hz,1.0,0)
StrainCalc (Jauge_Master(J),1,MesureJauge_Master(J),ZStrain(J),-1,Facteur,0)
Delay (0,1,Sec)
J = J + 1
NextSubScan
PortSet(1,0)
BrHalf (BrPT100(),NbrPT100_Master,mV250,3,Vx2,NbrPT100_Master,1250,True ,0,_50Hz,1,0) 'Mesure des sondes PT100
For I = 1 To NbrPT100_Master Step +1
RPT100(I) = ((5620/((1/BrPT100(I))-1))/100)
PRT (PT100_Master(I),1,RPT100(I),1,0)
Next I
CallTable Table_Master
NextScan
SlowSequence
DataTable(Table_Slave1,1,10000) Sample(1,PTemp_Slave1,FP2) Sample(NbrJauge_Slave1,Jauge_Slave1(),FP2) Sample(NbrPT100_Slave1,PT100_Slave1(),FP2)
EndTable
DataTable (Table_Slave2,1,10000)
Sample(1,PTemp_Slave2,FP2)
Sample(NbrJauge_Slave2,Jauge_Slave2(),FP2)
Sample(NbrPT100_Slave2,PT100_Slave2(),FP2)
EndTable
Scan (ENRE,UnitENRE,3,0)
GetDataRecord (Result_Slave1,Com2,0,1,0000,1000,2,1,Table_Slave1)
GetDataRecord (Result_Slave2,Com2,0,3,0000,1000,2,1,Table_Slave2)
NextScan
EndProg
Thank you for your help !
I am still recommending that you make contact with the appropriate Campbell Support office. I would start with the
office in France as nccsf recommended.
After looking briefly at your program, I am making a strong recommendation that you use Short Cut to generate a 1/4 bridge strain program. We have put a lot of work into getting Shortcut to create a program that does all of the calibration and zeroing, as well as using StrainCalc etc. in just the right way. Your program is using a zeroing method similar to how we did zeroing before the FieldCal instruction was added to the datalogger OSes.
Also, your BRFull instruction uses "Autorange" :
BrFull (ZStrain(K),1,Autorange,1,Vx1,1,2500,True,True,0,_50Hz,1.0,0)
A few customers have complained before of strain gage
noise and measurements when using Autorange.
After they set a fixed range code, things worked fine.
So you should examine the kinds of voltage you are getting from the sensors and set the appropriate, fixed, rangecode.
Your program uses 50 Hz integration, so settling time default is 3 mSec. That should be fine for long cable lengths (up to a few hundred feet). If the lead wires are longer, it might be nice to bump the settling time up to 5 milliseconds or so.