Main Content

Encoder Input

Read from one or multiple incremental encoder input channels

  • Encoder Input block

Libraries:
Simulink Desktop Real-Time

Description

The Encoder Input block connects to and reads from specific encoder input channels into your Simulink® model. After you have added an Encoder Input block to your model, you can enter the parameters for its I/O driver.

Examples

Ports

Output

expand all

Data representing the state of an encoder. The data type and range of the output values depend upon the capabilities of the board.

Data Types: single | double | int8 | uint8 | int16 | uint16 | int32 | uint32

In Connected IO mode, returns the number of timer ticks that your model lags behind the real-time kernel. When the model lags by more than Maximum missed ticks, the software reports an error and simulation stops.

Dependency

When you select Show “Missed Ticks” port, this port is visible.

Data Types: double

Parameters

expand all

When you click Install new board, the software displays a list of manufacturers of supported boards. When you select a manufacturer, the software displays a list of boards available from that manufacturer. When you select a board, the software adds the board to the list of registered boards and makes that board the current board.

By default, the initial selection in the list of registered boards is < no board selected >.

For more information about driver support for I/O boards, see Hardware Support from Simulink Desktop Real-Time.

Dependency

When you select a board in the list of registered boards, the Delete current board and Board setup buttons are available.

Programmatic Use

Block Parameter: DrvName

To delete the current board, click this button. The initial selection of the list of registered boards changes to < no board selected >.

Dependency

To activate this parameter, select a board in the list of registered boards.

When you delete the current board, the Delete current board and Board setup buttons are no longer available.

Programmatic Use

Block Parameter: DrvName

To set up the board, click this button.

A board-specific dialog box opens to set up the board. For more information, see the board manufacturer documentation.

Dependency

To activate this parameter, select a board in the list of registered boards.

To deactivate this parameter, click Delete current board.

Programmatic Use

Block Parameter: DrvAddress
Block Parameter: DrvOptions

Enter a value, in seconds, that represents how frequently you want the block to execute and interact with the I/O hardware. The block synchronizes your model with the real-time clock at this sample rate.

If you are using a fixed-step solver, enter the value that you entered as the Fixed step size configuration parameter or an integer multiple of that value.

Programmatic Use

Block Parameter: SampleTime

In Connected IO mode, enter the number of timer ticks that your model can lag behind the real-time kernel. When the model lags behind by this number or fewer timer ticks, the software assumes that the lag is temporary. It allows the model to catch up, even if the model misses some ticks. When the model lags by more than this number, the software reports an error and simulation stops.

In Run in Kernel mode, the software ignores this value.

Programmatic Use

Block Parameter: MaxMissedTicks

In Connected IO mode, select this check box to send the number of missed ticks to output port Missed Ticks.

In Run in Kernel mode, the Missed Ticks port is zero.

Programmatic Use

Block Parameter: ShowMissedTicks

In Connected IO mode, select this check box to grant other programs more CPU time while the kernel waits for a response from the hardware.

In Run in Kernel mode, the software ignores this value.

Programmatic Use

Block Parameter: YieldWhenWaiting

Enter a channel vector that selects the encoder input channels that you are using on this board. The vector can be any valid MATLAB® vector form. For example, to select the first four encoder input channels, enter:

[1,2,3,4]

or

[1:4]

Programmatic Use

Block Parameter: Channels

Encoders use two sets of stripes, shifted in phase, to detect optically the amplitude and direction of movement. This parameter specifies which encoder stripe edges the encoder counts. From the list, select:

  • quadruple (default) — Counts rising and falling edges from both stripe sets.

  • double — Counts the rising edges from both stripe sets.

  • single — Counts the rising edges from one stripe set.

  • two-pulse — Counts the rising edges from two pulse encoder input with channel A input incrementing the count and input from channel B decrementing the count. This option is available when an NI-62xx or NI-63xx board is selected.

Quadruple mode yields four times more pulses per revolution than the single mode. Therefore, quadruple is more accurate. Use quadruple mode unless other parameters dictate otherwise.

Programmatic Use

Block Parameter: QuadMode

The encoder interface chip has a reset pin in addition to encoder inputs. Usually, you connect this pin to the index output of the encoder. However, you can connect it to any signal or not at all. This parameter specifies the function of this pin. From the list, select:

  • reset (default) — Level reset of the encoder count.

  • gate — Enables encoder counting.

  • rising edge index — Resets the encoder count on the rising edge.

  • falling edge index — Resets the encoder count on the falling edge.

Programmatic Use

Block Parameter: IndexPulse

The encoder interface chip includes a low-pass filter that filters out high frequencies, which the chip interprets as noise. This parameter is the cutoff frequency (Hz) of this filter. The cutoff frequency that you specify is rounded to the nearest frequency supported by the chip.

If the encoder is moving slowly and high-frequency noise is present, use the filter to eliminate the noise. With the filter in operation, the chip does not count the noise as encoder pulses. If the encoder is moving quickly, the filter can filter out the high-frequency pulses, including pulses that you want to count. In this case, consider disabling the filter by setting the cutoff frequency to Inf.

Programmatic Use

Block Parameter: InputFilter

From the list, select the type of data that the block outputs to the model. The valid values depend on the capabilities of the board.

Programmatic Use

Block Parameter: DataType

Version History

Introduced before R2006a

expand all

See Also