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

Appendix G. CRBasic Program Library
'Standard Deviation of the dynamic readings that occurred during the latest one-second interval
Public
DynStdDev(8)
'The following arrays are used to configure the CDM-VW300 series device. Refer to the
'CDM_VW300Config instruction used below.
'
' CH1 CH2 CH3 CH4 CH5 CH6 CH7 CH8
' --- --- --- --- --- --- --- ---
'Set to true (Enabled=1, Disabled=0) only those channels which have sensors connected
Dim
Enable(8)
As Long
=
{ 1, 1, 1, 1, 1, 1, 1, 1}
'Specify the target/desired resonant amplitude at which the sensor will be maintained
'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 (20Hz output)
Sample
(8,Freq(),IEEE4)
'Diagnostic code for the current dynamic reading
Sample
(8,Diag(),IEEE4)
EndTable
BeginProg
'20 Hz/50msec scan rate
Scan
(50,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-3