Input pin (CTS)

The state of the input line can be read by using the special SDMGeneric() instruction in CRBasic.

Bit 16 of a value returned to the data logger using the SDMGeneric() instruction reports whether the input is logic high or low. The following example shows how to call the instruction with the required parameters.

Detecting the state of the input line

'CR1000 example program showing how to detect the state of the input line on an

'SDM‑SIO2R using the SDMGeneric instruction

Public sio1response As Long, Inputstate As Boolean

Const addr = 0  'constant sdm address CHANGE with SDM‑SIO2R address

Const cmd = 1  'constant, command 1 returns the input state in bit 16

Const bytes_out = 0  'constant number of bytes out - none sent

Const bytes_val = 2  'two bytes returned

Const big_endian = 1  '1=(big endian)

Const delay_usec = -0  'delay between outgoing bytes (negative means delay also

                       'for incoming bytes)

Const Values_in = 1

'Main Program

BeginProg

  Scan (1,Sec,0,0)  'Or whatever scan rate is being used

    'Use the SDMGeneric instruction to send command 0x01 which returns the input

    'line state as bit 16

    SDMGeneric(sio1response,addr,cmd,bytes_out,"",Values_in,bytes_val, _

    big_endian,delay_usec)

    'bit 16 set for input line high or low so check the value and set a Boolean

    'var TRUE or FALSE accordingly

    Inputstate = sio1response AND &H8000

  NextScan

EndProg

The input line can accept 0 and 5V logic inputs OR –12 and +12V RS-232 level inputs. The following table shows a breakdown of the different input voltages allowed and the state of the input line flag.

Voltage on the input line

State of bit 16

+12V

1

–12V

0

5V

1

0V

0