beautypg.com

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

Page 95

background image

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