Appendix g. crbasic program library, G-20 – Campbell Scientific CDM-VW300 Series Dynamic Vibrating-Wire Analyzer System User Manual
Page 112

Appendix G. CRBasic Program Library
Dim
OutForm(2)
As Long
=
{ 1, 1}
'Use a multiplier of 0.001 to divide by 1000 and get digits
'Then scale further to get to Strain
Dim
Mult(2)
=
{ 0.001*GageFactor*NomBatchFactor,
0.001*GageFactor*NomBatchFactor}
'Digits (Hz^2/1000) times G times B results in strain
Dim
Off(2)
=
{ 0.0, 0.0}
'Use Steinhart-Hart coefficients To get Thermistor output in DegC
Dim
SteinA(2)
=
{1.4051E-3, 1.4051E-3}
Dim
SteinB(2)
=
{ 2.369E-4, 2.369E-4}
Dim
SteinC(2)
=
{ 1.019E-7, 1.019E-7}
Dim
RFMB(2)
As Long
=
{ 20, 20}
Dim
RFAB(2)
As Long
=
{ 20, 20}
Dim
RFLL(2)
=
{ 400.0, 400.0}
Dim
RFHL(2)
=
{4000.0,4000.0}
Dim
RFHY(2)
=
{ 0.005, 0.005}
Dim
RFOF(2)
As Long
=
{ 100, 100}
CDM_VW300Config
(0,CPI_ADDR,0,Enable(),Max_AMP(),F_Low(),F_High(), _
OutForm(),Mult(),Off(), SteinA(),SteinB(),SteinC(), _
RFMB(),RFAB(),RFLL(),RFHL(),RFHY(),RFOF())
DataTable
(static,true,-1)
DataInterval
(0,1,Min,10)
CardOut
(0 ,-1)
Average
(2,StaticStrain(),IEEE4,False)
Average
(2,Temp(),IEEE4,False)
Average
(2,StrainStdDev(),IEEE4,False)
EndTable
DataTable
(dynamic,true,-1)
CardOut (0 ,-1)
DataEvent
(100,(Strain(1) > 200) OR (Strain(2) > 200),1,100)
Sample
(2,Strain(),IEEE4)
Sample
(2,DCode(),IEEE4)
EndTable
DataTable(CalHist,NewFieldCal,-1)
CardOut
(0 ,-1)
SampleFieldCal
EndTable
BeginProg
'50 Hz/20msec scan rate
Scan
(20,msec,500,0)
CDM_VW300Dynamic
(CPI_ADDR,Strain(),DCode())
'Get unshifted strain
'Now shift the given Strain using the Baseline/Offset value
Strain(1)
=
Strain(1) + StrainBL(1) : Strain(2)
=
Strain(2) + StrainBL(2)
'Zeroing calibration for Geokon 4000 Vibrating Wire Strain Gage
'Strain offset and Temperature baseline readings
FieldCal
(0,Strain(),2,0,StrainBL(),ZeroMode,0,1,100)
'Calibrate for 2 seconds
FieldCal
(4,Temp(),2,0,TempBL(),ZeroMode,0,1,100)
CallTable
dynamic
CallTable
CalHist
If TimeIntoInterval
(0,1,Sec) Then
CDM_VW300Static
(CPI_ADDR,StaticStrain(),Temp(),StrainStdDev())
'Obtain un-shifted static
'strain
'Calculate static digits reading (for troubleshooting)
StaticDigits(1)
=
StaticStrain(1)/GageFactor/NomBatchFactor
StaticDigits(2)
=
StaticStrain(2)/GageFactor/NomBatchFactor
'Now shift the given StaticStrain using the Offset/Baseline reading to obtain
'
final/adjusted StaticStrain
StaticStrain(1)
=
StaticStrain(1) + StrainBL(1) : StaticStrain(2)
=
StaticStrain(2) + _
StrainBL(2)
'Calculate static frequency from static digits (for troubleshooting)
StaticFreq(1)
=
SQR(StaticDigits(1)*1000) : StaticFreq(2)
=
SQR(StaticDigits(2)*1000)
CallTable
static
EndIf
NextScan
EndProg
G-20