Campbell Scientific CR9000X Measurement and Control System User Manual
Page 365

Section 9. Program Control Instructions
FieldCal Example
'\\\\\\\\\\\\\\\\\\\\ DECLARE VARIABLES //////////////////////////////
Public
ZeroMode1, KnownVar1, ZeroMode2, KnownVar2, ZeroMode3, KnownVar3(3)
Public
AccelA(1),
AccelB(1),
AccelC(3)
Units
ACCELA = GForce :
Units AccelB = GForce :
Units AccelC = GForce
Public
AccelAmult(1), AccelBmult(1),AccelCmult(3), AccelAoset(1), AccelBoset(1), AccelCoset(3)
Alias
AccelA(1) = Accel1 : Alias AccelB(1) = Accel2 : Alias AccelC(1) = Accel3
Alias
AccelC(2) = Accel4 : Alias AccelC(3) = Accel5
Public
LoadTest, Flag(8)
Dim
I
Public
RepA, IndexA, RepB, IndexB, RepC, IndexC
DataTable
(ACCEL,True,-1)
'Trigger, auto size
DataInterval
(0,0,0,0)
'Synchronous, 0 lapses, autosize
Sample
(1,AccelA(),IEEE4)
'1 Reps,Source,Res
Sample
(1,AccelB(),IEEE4)
'1 Reps,Source,Res
Sample
(3,AccelC(),IEEE4)
'3 Reps,Source,Res,Enabled
EndTable
'End of table ACCEL
DataTable
(CalTable,
NewFieldCal
,100)
'Cal Table that stores Calibration values
CardOut
(0 ,100)
'for retrieval by user for tracking purposes
SampleFieldCal
EndTable
BeginProg
'Program begins here
‘Inilialize rep and Index parameters
RepA = 1 : IndexA = 1 : RepB = 1 : IndexB = 1 : RepC = 3 : IndexC = 1
KnownVar2 = 1
‘Set KnownVar2 used for the Offset calibration
' Initialize mult & offset values for ACCELA & B
AccelAMult(1) = 1 : AccelBMult(1) = 1:
AccelAoset(1) = 0 : AccelBoset(1) = 0
For
I = 1
To
3
AccelCmult(I)=1 : AccelCoset(I) = 0
'
Initialize mult & offset values for ACCELC
Next
I
LoadTest =
LoadFieldCal
(0)
'Load Cal Values from Calibration File
Scan
(1,mSec,100,0)
'Scan once every 1 mSecs, 100 Scan Buffer, non-burst
' Input Var,Reps, Range,InChan, Excit mV, Reverse,
Integ/Settling,
Mult Offset
BrFull
(AccelA(),1, mV200,4,5, 5,7,1,5000, False,False,
20,20, AccelAmult,AccelAoset())
BrFull
(AccelB(),1, mV200,4,6, 5,8,1,5000, False,False, 20,20, AccelBmult,AccelBoset())
BrFull
(AccelC(),3, mV200,4,7, 5,9,1,5000, False,False, 20,20, AccelCmult,AccelCoset())
' Setup a two point Calibration function for AccelA
'(Function,Var, Rep,Multiplier,
Offset,
Mode,
KnownVar, Index, Avg)
FieldCal
(2,AccelA(),RepA,AccelAmult(1),AccelAoset(1),ZeroMode1,KnownVar1, IndexA, 1)
' Setup a offset function for AccelB
'(Function,Var, Rep, Multiplier, Offset,
Mode,
KnownVar,Index, Avg)
FieldCal
(1,AccelB(),RepB, 0, AccelBoset(), ZeroMode2,KnownVar2, IndexB, 1)
' Setup a zero function for the 3 reps of AccelC
'(Function,Var, Rep, Multiplier, Offset,
Mode,
KnownVar,Index, Avg)
FieldCal
(0,AccelC(), RepC, 0,
AccelCoset(), ZeroMode3, 0,
IndexC, 1)
CallTable
ACCEL
CallTable
CalTable
Next Scan
'Loop up for the next scan
EndProg
'Program ends here
9-35