Campbell Scientific CR9000X Measurement and Control System User Manual

Page 365

Advertising
background image

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

Advertising