ReferenceDriverNICounter Read Task

NI counter read task

Learn how to acquire counter data from NI devices with Synnax.

This task follows the standard task lifecycle.

Task configuration reference

Table

Parameter Type Required Default Description
sample_rate number No 10 Samples per second (Hz), determined by module
stream_rate number No 5 Rate data is streamed to Synnax (Hz), must be ≤ sample_rate
channels array Yes - List of counter input channel configurations

Channel types reference

Frequency (ci_frequency)

Measures the frequency of digital pulses.

Table

Parameter Type Required Default Description
channel number Yes - Synnax channel key
device string Yes - Device identifier
port number Yes - Counter port (0-indexed)
min_val number No 2 Minimum frequency
max_val number No 100 Maximum frequency
units enum No Hz Hz, Ticks
edge enum No Rising Rising, Falling
meas_method enum No DynamicAvg LowFreq1Ctr, HighFreq2Ctr, LargeRng2Ctr, DynamicAvg
meas_time number No 0.000006 Measurement time (seconds), used with HighFreq2Ctr
divisor number No 4 Integer divisor, used with LargeRng2Ctr
terminal string No - PFI terminal for signal routing
custom_scale object No - Custom scaling

Edge Count (ci_edge_count)

Counts rising or falling edges on a digital signal.

Table

Parameter Type Required Default Description
channel number Yes - Synnax channel key
device string Yes - Device identifier
port number Yes - Counter port (0-indexed)
active_edge enum No Rising Rising, Falling
count_direction enum No CountUp CountUp, CountDown, ExternallyControlled
initial_count number No 0 Starting count value
terminal string No - PFI terminal for signal routing

Period (ci_period)

Measures the time between edges of a periodic signal.

Table

Parameter Type Required Default Description
channel number Yes - Synnax channel key
device string Yes - Device identifier
port number Yes - Counter port (0-indexed)
min_val number No 0.000001 Minimum period
max_val number No 0.1 Maximum period
units enum No Seconds Seconds, Ticks
starting_edge enum No Rising Rising, Falling
meas_method enum No DynamicAvg LowFreq1Ctr, HighFreq2Ctr, LargeRng2Ctr, DynamicAvg
meas_time number No 0.001 Measurement time (seconds), used with HighFreq2Ctr
divisor number No 4 Integer divisor, used with LargeRng2Ctr
terminal string No - PFI terminal for signal routing
custom_scale object No - Custom scaling

Pulse Width (ci_pulse_width)

Measures the width of pulses in a digital signal.

Table

Parameter Type Required Default Description
channel number Yes - Synnax channel key
device string Yes - Device identifier
port number Yes - Counter port (0-indexed)
min_val number No 0.000001 Minimum pulse width
max_val number No 0.1 Maximum pulse width
units enum No Seconds Seconds, Ticks
starting_edge enum No Rising Rising, Falling
terminal string No - PFI terminal for signal routing
custom_scale object No - Custom scaling

Semi Period (ci_semi_period)

Measures the half-period of a periodic signal.

Table

Parameter Type Required Default Description
channel number Yes - Synnax channel key
device string Yes - Device identifier
port number Yes - Counter port (0-indexed)
min_val number No 0.000001 Minimum semi-period
max_val number No 0.1 Maximum semi-period
units enum No Seconds Seconds, Ticks
terminal string No - PFI terminal for signal routing
custom_scale object No - Custom scaling

Two Edge Separation (ci_two_edge_sep)

Measures the time between two different edges of a signal.

Table

Parameter Type Required Default Description
channel number Yes - Synnax channel key
device string Yes - Device identifier
port number Yes - Counter port (0-indexed)
min_val number No 0.000001 Minimum separation time
max_val number No 1 Maximum separation time
units enum No Seconds Seconds, Ticks
first_edge enum No Rising Rising, Falling
second_edge enum No Falling Rising, Falling
first_terminal string No - PFI terminal for first edge signal
second_terminal string No - PFI terminal for second edge signal
custom_scale object No - Custom scaling

Velocity Linear (ci_velocity_linear)

Measures linear velocity using a quadrature encoder.

Table

Parameter Type Required Default Description
channel number Yes - Synnax channel key
device string Yes - Device identifier
port number Yes - Counter port (0-indexed)
min_val number No 0 Minimum velocity
max_val number No 1 Maximum velocity
units enum No m/s m/s, in/s
decoding_type enum No X4 X1, X2, X4, TwoPulse
dist_per_pulse number No 0.001 Distance traveled per encoder pulse
terminal_a string No - PFI terminal for encoder A signal
terminal_b string No - PFI terminal for encoder B signal
custom_scale object No - Custom scaling

Velocity Angular (ci_velocity_angular)

Measures angular velocity (rotational speed) using a quadrature encoder.

Table

Parameter Type Required Default Description
channel number Yes - Synnax channel key
device string Yes - Device identifier
port number Yes - Counter port (0-indexed)
min_val number No 0 Minimum angular velocity
max_val number No 1 Maximum angular velocity
units enum No RPM RPM, Radians/s, Degrees/s
decoding_type enum No X4 X1, X2, X4, TwoPulse
pulses_per_rev number No 24 Number of encoder pulses per revolution
terminal_a string No - PFI terminal for encoder A signal
terminal_b string No - PFI terminal for encoder B signal
custom_scale object No - Custom scaling

Position Linear (ci_position_linear)

Tracks linear position using a quadrature encoder.

Table

Parameter Type Required Default Description
channel number Yes - Synnax channel key
device string Yes - Device identifier
port number Yes - Counter port (0-indexed)
units enum No Meters Meters, Inches, Ticks
decoding_type enum No X4 X1, X2, X4, TwoPulse
dist_per_pulse number No 0.000001 Distance traveled per encoder pulse
initial_pos number No 0.0 Starting position
terminal_a string No - PFI terminal for encoder A signal
terminal_b string No - PFI terminal for encoder B signal
z_index_enabled boolean No false Enable Z-index signal
z_index_val number No 0 Position value when Z-index pulse occurs
z_index_phase enum No AHighBHigh AHighBHigh, AHighBLow, ALowBHigh, ALowBLow
terminal_z string No - PFI terminal for Z-index signal
custom_scale object No - Custom scaling

Position Angular (ci_position_angular)

Tracks angular position (rotation angle) using a quadrature encoder.

Table

Parameter Type Required Default Description
channel number Yes - Synnax channel key
device string Yes - Device identifier
port number Yes - Counter port (0-indexed)
units enum No Degrees Degrees, Radians, Ticks
decoding_type enum No X4 X1, X2, X4, TwoPulse
pulses_per_rev number No 24 Number of encoder pulses per revolution
initial_angle number No 0.0 Starting angle
terminal_a string No - PFI terminal for encoder A signal
terminal_b string No - PFI terminal for encoder B signal
z_index_enabled boolean No false Enable Z-index signal
z_index_val number No 0 Angle value when Z-index pulse occurs
z_index_phase enum No AHighBHigh AHighBHigh, AHighBLow, ALowBHigh, ALowBLow
terminal_z string No - PFI terminal for Z-index signal
custom_scale object No - Custom scaling

Duty Cycle (ci_duty_cycle)

Measures the duty cycle of a periodic signal.

Table

Parameter Type Required Default Description
channel number Yes - Synnax channel key
device string Yes - Device identifier
port number Yes - Counter port (0-indexed)
min_val number No 2 Minimum duty cycle frequency
max_val number No 10000 Maximum duty cycle frequency
active_edge enum No Rising Rising, Falling
terminal string No - PFI terminal for signal routing
custom_scale object No - Custom scaling

Important rules

  • One task per module -> Only one running task can claim a module at a time.
  • Unique ports -> A counter port can appear only once in a task.
  • Stream rate -> For sample rates under 50 Hz, set the stream rate equal to the sample rate. Above that, keep the stream rate under 50 Hz.

How-to