beautypg.com

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

Page 102

background image

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