beautypg.com

1 reading can data – Campbell Hausfeld SDM-CAN User Manual

Page 43

background image

Section 4. Programming the CR9000 and CR5000

4.2.1 Reading CAN Data

The following example reads a 16 bit engine speed value from a CAN network
running at 250K baud.

'Set scan rate

Const PERIOD = 1 'Scan interval number
Const P_UNITS = 2 'Scan interval units (Secs)

'\\\\\\\\\\\\\\\\\\\\\\\\\ CANBUS CONSTANTS //////////////////////

'------------------- Physical Network Parameters -----------------

Const TQUANT = 4 ')Set SDM-CAN to 250K
Const TSEG1 = 5 ')Network speed
Const TSEG2 = 2 ')

'---------------------- Data Frame Parameters --------------------

'___________________________CANbus Block1_________________________

'Collect and retrieve 16 bit data value

'Data type 2, unsigned integer, least significant byte first

Const CANREP1 = 1 'Repetitions
Const ADDR1 = 0 'SDM address of SDM-CAN Module
Const DTYPE1 = 2 'Collect and retrieve data values
Const STBIT1 = 33 'Start position in data frame
Const NBITS1 = 16 'Number of bits/value
Const NVALS1 = 1 'Number of values
Const CMULT1 = 0.4 'Multiplier
Const COSET1 = 0 'Offset
Dim CANBlk1(CANREP1) 'Dimensioned source

'\\\\\\\\\\\\\\\\\\ ALIASES & OTHER VARIABLES //////////////////

Alias CANBlk1(1) = Engine_Speed 'Assign an alias name to CANBlk1(1)

'\\\\\\\\\\\\\\\\\\\\\\\\\\\ PROGRAM ///////////////////////////

BeginProg 'Program begins here

'MainSequence
Scan(PERIOD,P_UNITS,0,0) 'Scan once every 1 Secs, non-burst

'__________________________ CAN Blocks __________________________

'Retrieve Data from CAN network

CanBus(CANBlk1(),ADDR1,TQUANT,TSEG1,TSEG2,217056256,
DTYPE1,STBIT1,NBITS1,NVALS1,CMULT1,COSET1)

Next Scan 'Loop up for the next scan

EndProg 'Program ends here

4-3