NI does not actively maintain this document.
This content provides support for older products and technology, so you may notice outdated links or obsolete information about operating systems or other relevant products.
Programmable resistors are test modules that replicate the behavior of resistance-based inputs and outputs such as potentiometers, RTDs, voltage dividers, and bridge elements.
The NI 272x programmable resistor modules programmatically control the values of resistance appearing through an I/O connector. This ability enables the resistors’ usage in hardware-in-the-loop (HIL) validation, which performs rapid system tests during a variety of simulated system conditions. During production, NI 272x modules provide complete resistance test coverage on up to 18 test elements in a single PXI(e) slot.
The four NI 272x resistor modules share the same principal architecture. The modules differ in the number of channels per module and the resistance range per channel, as shown in Table 1.
Table 1. NI 272x Resistor Modules
Module number | Bits per channel | Number of channels | Resistance range per channel |
NI PXI-2720 | 8 | 10 | 0-255 |
NI PXI-2722 | 16 | 5 | 0-16K |
NI PXIe-2725 | 8 | 18 | 0-255 |
NI PXIe-2727 | 16 | 9 | 0-16K |
Refer to the NI Switches Help and your NI 272x module Specifications for more information about the NI 272x devices. This documentation can be accessed from the NI Product Manuals Library at ni.com/manuals.
Once you have installed the NI-272x Reference VIs, you can use the NI Example Finder to search for or browse NI 272x examples. Search examples by keyword to find a particular device or measurement VI. To browse the NI 272x examples available in LabVIEW, launch LabVIEW, and select Help»Find Examples. To browse examples by task, select Hardware Input and Output»Modular Instruments»NI-272x (Programmable Resistor Modules). To browse examples by directory structure, select instr»ni272xReferenceVIs.
Note: NI recommends using the NI-272x Reference VIs to program the NI 272x modules. Download the NI-272x Reference VIs at ni.com/drivers by searching for “NI 272x.”
Note: The NI-272x Reference VIs are designed to operate as a virtualized reference architecture between the user and the underlying device-native NI-DAQmx driver. NI reserves the right to change the NI-272x Reference VIs in the future to meet specialized customer needs.
Caution: Do not use the NI-272x Reference VIs within time- critical loops. If the switch must operate in a time- critical loop, use the NI-DAQmx API instead of the NI-272x Reference VIs.
The NI-272x Reference VIs provide session-based device support for the NI 272x modules. These VIs provide utility functions to convert a user-defined resistance or temperature into a list of the corresponding relays to open or close, then applies the lists to hardware. The NI-272x Reference VIs are written for the LabVIEW programming environment and require NI-DAQmx 9.5 or later.
The ni272x Initialize Session VI opens a session to all channels on a single NI 272x device specified by the DAQmx Device Name parameter. Only one session per NI 272x device is permitted. Calling the ni272x Initialize Session VI multiple times invalidates previous sessions.
The ni272x Connect VIs allow multiple connection operations. The operations supported are:
Under most conditions, the ni272x Connect 2Chan VI should be used. The ni272x Connect 2Bank VI controls the hardware level banks, and should be used only if the low-level hardware configuration is thoroughly understood. The ni272x Connect 2Chan VI controls the software level channels. All NI 272x modules are composed of 8-bit banks. On 8-bit modules, each channel is composed of one bank. For example, channel 4 is composed of bank 4. On 16-bit modules, each channel is composed of two adjacent 8-bit banks. For example, channel 1 is composed of banks 2 and 3. Using the higher level channel calls abstracts the underlying architecture. Under most conditions, the ni272x Connect 2Chan VI should be used.
The ni272x Connect 2Chan VI addresses the software channels exposed to the user. For example, in the 16-bit example above, CH0 maps to banks 0 and 1, and CH1 maps to banks 2 and 3. Therefore, CH0+ maps to hardware bank1+, and CH1- maps to hardware bank2-. See the 272x device pinouts in the NI Switches Help for a complete listing of channel and bank connections.
The ni272x Connect 2Chan VI allows manual connection of adjacent software channels. For example, calling ni272x Connect 2Chan VI on a 16-bit module with channel N set to “0” and channel N + 1 set to “1” internally connects CH0+ to CH1-, creating two 16-bit resistors in series. These resistors could be used as a voltage divider or to create a dual N bit potentiometer. Multiple channels can be simultaneously connected. For example, connecting four channels together creates four series resistors, each of which is accessible via the front panel.
Similarly, the ni272x Connect to Connector 1Chan VI allows manual connection of channels to the front test connectors on your NI 272x module. The channels can connect to one of two channels: the "DUT Connector" or the "DMM Test Connector." The NI-272x Reference VIs only allow one channel to be simultaneously connected to the "DMM Test Connector."
Some NI 272x hardware topologies require an adjacent bank be disconnected from the "DUT Connector" before being utilized for connection to the "DMM Test Connector." The NI-272x Reference VIs will display an error if the required adjacent channel has been reserved for connection to a DUT. Likewise, operations on a reserved adjacent channel will fail until the selected channel has been disconnected from the "DMM Test Connector."
Caution: Be careful when using the ni272x Connect (Poly) VI with "ni272x Connector Identifier" set to "DMM Test Connector.” 8-bit modules require the reservation of an adjacent DUT channel, which causes the adjacent channel to be shunted to 0 Ohms in order to measure the channel under test. This may short out a DUT attached to the adjacent reserved channel. Therefore, NI recommends disconnecting the 37-pin DSUB connector on 8 bit modules before internally connecting channels to the DMM test connector.
The ni272x Disconnect (Poly) VIs allow multiple disconnection operations. The operations supported are:
The ni272x Disconnect 2Bank VI controls the hardware level banks. The ni272x Disconnect 2Chan VI controls the software level channels by allowing manual disconnection of adjacent software channels.
Similarly, the ni272x Disconnect from Connector 1Chan VI allows manual disconnection of channels to the front test connectors on your NI 272x module.
The ni272x Write (Poly) VI contains the following VIs:
ni272x Write Potentiometer 2Chan 1Samp VI
ni272x Write Resistance 1Chan 1Samp VI
ni272x Write Temperature 1Chan 1Samp VI
The ni272x Write Resistance 1Chan 1Samp VI and ni272x Write Temperature 1Chan 1Samp VI are used to set the corresponding resistance or temperature for each channel. Unit conversion VIs allow you to convert between resistance and temperature. For an example, see the block diagram of the ni272x Write Temperature 1Chan 1Samp VI.
The ni272x Write Potentiometer 2Chan 1Samp VI operates like a potentiometer. This VI connects channel N and channel N+1 together, sets channel N to closest channel N resistance, and sets channel N+1 to total potentiometer resistance minus coerced channel N resistance.
Note: Both legs of the potentiometer execute in parallel, so there’s a short period of time during relay settling when the physical resistance sum across both channels can be less than the user-defined total potentiometer resistance.
The ni272x Write Resistance 1Chan 1Samp VI determines and configures a coerced resistance value based on the requested resistance input for the device initialized in the ni272x Initialize Session VI. If you request a value that exceeds the maximum resistance of the device, error out returns an error. The coerced resistance displays the coerced output resistance available based the requested resistance values and the limitations of the initialized device.
The NI 272x modules use reed relays that settle over a period of milliseconds. During a resistance change, the driver outputs an intermediate resistance that is always higher than the requested value. Higher resistances are guaranteed on a single channel because the relays are always opened before they are closed. For example, if four relays in a bank are open and four relays are closed, calling the ni272x Write Resistance 1Chan 1Samp VI with an output that would require two relays to open and six relays to close will have an intermediate state where up to two additional relays are guaranteed to open before the additional relays close.
Note: This protection only exists per software channel. Connecting multiple channels with the ni272x Connect Channels VI and calling multiple ni272x Set Resistance VIs guarantees that the intermediate resistance on a given channel is higher than the current or final resistance.
The ni272x Write Temperature 1Chan 1Samp VI converts the requested temperature and Callendar-Van Dusen RTD parameters into a resistance. The VI outputs a resistance value based on the Requested Temperature, then calls the ni272x Write Resistance 1Chan 1Samp VI to set the resistance to the value outputted. Custom A, B and C Callendar-Van Dusen RTD parameters are required inputs. Values correspond to the physical characteristics of the RTD you wish to simulate.
The ni272x Close Session VI allows you to close the session initialized by the ni272x Initialize Session VI.
The ni272x Relay Control VI allows you to specify relays to open and close. The operations supported are:
Refer to the Hardware Fundamentals section of this document or your device book in the NI Switches Help for more information about individual relay names.
Converts from a Temperature in degrees Celsius to a Resistance in ohms given a set of Callendar-Van Dusen RTD Parameters for the device initialized by the ni272x Initialize Session VI.
Converts from a Resistance in ohms to a Temperature in degrees Celsius given a set of Callendar-Van Dusen RTD Parameters for the device initialized by the ni272x Initialize Session VI.
The ni272x Get Attribute (Poly) VIs return attributes (either integers or strings) specified by for a device or a device's resistor channel initialized by the ni272x Initialize Session VI. The VIs included are:
Additional low-level VIs can be found in the ni272xReferenceVIs.llb library in your LabVIEW directory under
instr.lib\ni272xReferenceVIs\ni272xReferenceVIs.llb.
This section explains the interconnections between relays, resistors, and banks on all NI 272x modules. This information is useful if you are using the lower-level DAQmx or NI-SWITCH APIs. However, NI recommends using the NI-272x Reference VIs for the easiest programming experience. If not using these reference VIs, NI recommends using the low-level NI-SWITCH or NI-DAQmx relay control VIs or functions instead of the connect channel VIs or functions. The DAQmx Relay API supports closing multiple relays in a single driver call, which is faster than the channel API.
NI 272x modules all share the same topology. The number of populated banks and the number of banks used per channel differ on each of the four modules. A single bank consists of the components shown in Figure 1.
Figure 1. Single 8-bit Bank
The total resistance across each bank, measured across the To Front Connector terminals, is controlled by manipulating the circuit path resistance using relays to selectively route through discrete resistors. This path manipulation is achieved as follows.
Table 2 lists the relay names with examples for each and numbered references to Figure 1.
Table 2. Relay Names
Relay Name | Example | Figure 1 Reference |
kbNrX | kb0r2 is the relay that controls the third relay (‘4R’) of bank 0 | 3 |
kbN | kb0 is the relay that controls the bank connect relay of bank 0 | 2 |
kbNshunt | kb0shunt is the relay that controls the short relay of bank 0 | 4 |
kbcNN+1 | kbc01 is the relay that connects bank 0 to bank1 | 1 |
The NI 272x hardware is composed of banks, but the NI-272x Reference VIs high-level operation are intended for use primarily with channels. The NI 2720 and NI 2725 consist of 8-bit channels, where each channel consists of one bank. The NI 2722 and NI 2727 consist of 16-bit channels that each consists of two adjacent banks.
Note: The NI Switches Help contains a complete diagram of each of the modules, including nominal discrete resistor values and channel/bank names.
Each bank is internally connected to two neighboring banks to form a chain. This allows connection of each bank to one or more neighboring banks to create multi bank resistance chains. On 8-bit modules, all banks are populated as R-128R, as shown in Figure 2. For 8-bit modules, R is 1 Ohm. On 16-bit modules, even banks are populated as R-128R while odd banks are populated as 256R-8192R. For 16-bit modules, R is 0.25 Ohms. Figure 2 shows two 8-bit banks. Changing the right bank to 256R-8192R yields a single 16-bit bank. Refer to your NI 272x device Specifications document for a complete hardware overview.
Figure 2. Two 8-bit Banks
Bank connect relays allow adjacent banks or channels to connect together internally. For example, you can connect two or more adjacent channels together to create a potentiometer, a voltage divider, or a multi segment resistor chain.
The NI 272x modules have an internal, 2-wire, interleaved multiplexer that enables resistance verification when paired with a DMM. The variable nature of the contact resistance of the relays and the self-heating effects of resistors under load make calibration difficult. Utilization of the DMM test connector is accurate enough to verify the proper operation of the module and determine if resistance values have changed over time.
On 16-bit modules, resistance can be determined on each channel. On 8-bit modules, an adjacent bank must be connected to, and shunted, in order to measure the approximate resistance value. For example, to measure the resistance of bank 4, close kb5, kbc45, and kb5shunt to provide a direct path to the test circuit. This will produce a 0 Ohm shunt across bank 5. For this reason, NI recommends disconnecting the 37- pin DSUB connector before testing the 272x module. Lastly, close ktest2 and ktest3 to connect the DMM to the bank for resistance measurements. See the hardware diagram for a complete connections list.
Caution: For more accurate results, disconnect the 37-pin DSUB cable before connecting the test relays. Damage to the module can occur if an external DUT is able to source more than 1/4W through any single NI 272x channel.
Table 3. Accessories for the NI 272x Modules
Accessory | Part Number |
37-pin female to male shielded I/O cable, 1 m | 778621-01 |
37-pin female to male shielded I/O cable, 2 m | 778621-02 |
37-Pin solder cup terminals, D-SUB female shell w/strain relief | 779184-01 |
High-voltage DIN-rail screw terminal block | 779491-01 |
Crimp-and-poke 37-Pin D-SUB custom connectivity accessory | 779185-01 |
Solder cup 37-Pin D-SUB custom connectivity accessory | 779184-01 |
2 x 2 microfit DMM connector | 782465-01 |
The 37-pin D-SUB cable and terminal block interface the NI 272x module to DUTs. The 4-pin DMM test cable allows the test circuit to take 4-wire resistance measurements using an external DMM. The cable consists of an over molded 4-pin connector on the module side, and four banana plugs on the DMM side.
Table 4: Error Codes for NI 272x
Error Code | Hex Code | Description |
---|---|---|
-363523 | 0xFFFA73FD | A previously reserved adjacent bank is no longer reserved. The hardware may be in an unknown state. To resolve this issue, call the ni272x Close Session VI on this instrument handle and open a new instrument handle with one of the ni272x Initialize Session VIs. |
-363522 | 0xFFFA73FE | An adjacent bank is required to connect the specified channel to the DMM test connector. The adjacent bank is already connected to the DUT connector. To connect the specified channel to the DMM connector, call the ni272x Disconnect (Poly) VI to disconnect the adjacent channel from the DUT connector. |
-363521 | 0xFFFA73FF | One of the banks that is required to be closed for connection to the specified connector is already connected to the DMM connector. Call the ni272x Disconnect (Poly) VI to disconnect the appropriate channel from the DMM test connector first. |
-363520 | 0xFFFA7400 | A bank in the requested connection channel is reserved for another connector. Use ni272x Disconnect (Poly) VI to disconnect the adjacent channel from the appropriate connector first. |
-363519 | 0xFFFA7401 | The bank could not connect to the connector identifier specified because the bank is already connected. |
-363518 | 0xFFFA7402 | The bank string passed in could not be parsed. Use the ni272x Get Attribute (Poly) VI to get a list of valid bank names for this device by selecting the instance "Device->1D Array of String" and a specified channel, "Channel->1D Array of String". |
-363517 | 0xFFFA7403 | The channel string passed in could not be parsed. Use the ni272x Get Attribute (Poly) VI instance for "Device->1D Array of String" to get a list of valid channel names for this session. |
-363516 | 0xFFFA7404 | Internal error. The semaphore refnum is invalid. Contact NI support for more information. |
-363515 | 0xFFFA7405 | The configuration file in the path provided was not loaded successfully and may be corrupt. |
-363514 | 0xFFFA7406 | The configuration data version is unsupported. This version of the NI-272x Reference VIs only supports configuration data version 100. |
-363513 | 0xFFFA7407 | The configuration data is invalid. |
-363512 | 0xFFFA7408 | Internal error. The calculated number of bits per channel is unsupported. Contact NI for support. |
-363511 | 0xFFFA7409 | The set resistance value has not been cached for this channel. Pass True for "Reset Device? (T)" on the ni272x Initialize Session VI, or use an instance of ni272x Write (Poly) VI to read back the configured resistance for a channel. |
-363510 | 0xFFFA740A | The specified attribute is read-only for the initialized device or channel. |
-363509 | 0xFFFA740B | The instrument handle provided is not valid. Use the ni272x Initialize Session VI to create a valid instrument handle. |
-363508 | 0xFFFA740C | The channel parameters provided are not adjacent so they can not be connected or disconnected. Pass in two adjacent channels when attempting to connect or disconnect channels. |
-363507 | 0xFFFA740D | The bank parameters provided are not adjacent so they can not be connected or disconnected. Pass in two adjacent banks when attempting to connect or disconnect banks. |
-363506 | 0xFFFA740E | The specified resistance is out of range for the specified channel on the initialized device. Use the ni272x Get Attribute (Poly) VI to get the minimum and maximum allowable resistances for a specific channel on an initialized device. |
-363505 | 0xFFFA740F | The attribute ID you provided is invalid. |
-363504 | 0xFFFA7410 | The channel number provided is out of range for the initialized device. Use the ni272x Get Attribute (Poly) VI to get the channel numbers for the initialized device. |
-363503 | 0xFFFA7411 | The provided bank number is out of range for the initialized device. Use the ni272x Get Attribute (Poly) VI to get the bank numbers for the initialized device. |
-363502 | 0xFFFA7412 | Either the session handle provided does not reference an initialized device or the session was closed after the device was initialized. Call ni272x Initialize Session VI to initialize the device. |
-363501 | 0xFFFA7413 | The DAQmx device you selected is not a valid NI-272x device. |
-363500 | 0xFFFA7414 | Internal error. |
363800 | 0x00058D18 | NI_272x_WARNING_BASE. This is the start of the NI-272x Reference VIs warning error codes. |
363801 | 0x00058D19 | The bank specified for disconnection is not currently connected or there may be other inconsistencies with the hardware. This may occur if you call a ni272x Disconnect (Poly) VI more than one time on a specified channel of a specified connector. To remove this warning, remove superfluous instances of the ni272x Disconnect (Poly) VIs. |
363802 | 0x00058D1A | The channel specified for disconnection is not currently connected or there may be other inconsistencies with the hardware. This may occur if you call a ni272x Disconnect (Poly) VI more than one time on a specified channel of a specified connector. To remove this warning, remove superfluous instances of the ni272x Disconnect (Poly) VIs. |
For additional help, please refer to the NI 272x help manual or contact NI Support.