Campbell Hausfeld SDM-CAN Network Card User Manual


 
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