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

Appendix G. CRBasic Program Library
'via excitation, given in volts. This should be in the range 0.010 to 0.001
Dim
Max_AMP(8)
=
{ 0.002, 0.002, 0.002, 0.002, 0.002, 0.002, 0.002, 0.002}
'Low-Frequency Boundary (sensor frequency should never fall below
'this value regardless of environmental changes)
Dim
F_Low(8)
=
{ 300, 300, 300, 300, 300, 300, 300, 300}
'High-Frequency Boundary (sensor frequency should never exceed
'this value regardless of environmental changes)
Dim
F_High(8)
=
{ 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000}
'Output Format - Hz vs. Hz^2 :: Value of 0 – measured frequency is given in units of Hz,
'Value of 1 – measured frequency is squared and given in units of Hz^2
Dim
OutForm(8)
As Long
=
{ 0, 0, 0, 0, 0, 0, 0, 0}
'Multiplier (factor) to be applied to sensor output frequency
Dim
Mult(8)
=
{ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0}
'Offset (shift) to be applied to sensor output frequency
Dim
Off(8)
=
{ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0}
'Steinhart-Hart coefficients [A,B,C] for converting thermistor ohms to
'temperature in Celsius. Specifying zeroes for A,B,C results in a reading in Ohms.
Dim
SteinA(8)
=
{ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0}
Dim
SteinB(8)
=
{ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0}
Dim
SteinC(8)
=
{ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0}
'Rainflow configuration (not used in this program, but required as configuration arguments)
Dim
RFMB(8)
As Long
=
{ 20, 20, 20, 20, 20, 20, 20, 20}
Dim
RFAB(8)
As Long
=
{ 20, 20, 20, 20, 20, 20, 20, 20}
Dim
RFLL(8)
=
{ 400.0, 400.0, 400.0, 400.0, 400.0, 400.0, 400.0, 400.0}
Dim
RFHL(8)
=
{4000.0,4000.0,4000.0,4000.0,4000.0,4000.0,4000.0,4000.0}
Dim
RFHY(8)
=
{ 0.005, 0.005, 0.005, 0.005, 0.005, 0.005, 0.005, 0.005}
Dim
RFOF(8)
As Long
=
{ 100, 100, 100, 100, 100, 100, 100, 100}
'Configure the CDM-VW300 series device. Use the variable arrays declared above
CDM_VW300Config
(1,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)
'Static Frequency reading (1Hz output)
Sample
(8,StaticFreq(),IEEE4)
'Thermistor reading : Ohms or DegC
Sample
(8,Therm(),IEEE4)
'Standard Deviation of dynamic readings taken during the most recent second.
Sample
(8,DynStdDev(),IEEE4)
EndTable
DataTable
(dynamic,true,-1)
'Dynamic Frequency (50Hz output)
Sample
(8,Freq(),IEEE4)
'Diagnostic code for the current dynamic reading.
Sample
(8,Diag(),IEEE4)
EndTable
BeginProg
'50 Hz/20msec scan rate
Scan
(20,msec,500,0)
CDM_VW300Dynamic
(CPI_ADDR,Freq(),Diag())
'Get dynamic readings.
CallTable
dynamic
If TimeIntoInterval
(0,1,Sec)
Then
'Process static data only once per second.
CDM_VW300Static
(CPI_ADDR,StaticFreq(),Therm(),DynStdDev())
'Get static readings
CallTable
static
EndIf
NextScan
EndProg
G-10