From 04:00 PM CDT – 08:00 PM CDT (09:00 PM UTC – 01:00 AM UTC) Tuesday, April 16, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

Switch Hardware and Software

cancel
Showing results for 
Search instead for 
Did you mean: 

How does NI Switch Executive calculate settling times?

Hello,

 

I have:

  • 1 unit of PXIe-2527 (Topology: 2527/2-Wire 32x1 Mux)
  • 8 units of PXIe-2529 (Topology: 2529/2-Wire 8x16 Matrix)

 

I created one Switch Executive Virtual Device to manage them all. I exported the configuration, and see that the listed settling times are:

  • Mux: 0.003 s
  • Matrices: 0.004 s

 

I measured how long Switch Executive waits for settling, but got strange numbers:

NISE Measurements.png

 

 

  • If I don't make any connections/disconnections, niSE Wait For Debounce.vi waits 18 ms.
  • If I make connections/disconnections on one matrix only, niSE Wait For Debounce.vi waits 19 ms.
  • If I make connections/disconnections on one matrix and the mux, niSE Wait For Debounce.vi waits 20 ms.

 

Why does Switch Executive decide to wait 18 ms or more? I expected it to wait 4 ms (the longest settling time in the config), or perhaps 8 ms (disconnect first and wait 4 ms, then connect and wait 4 ms). Am I misunderstanding how the wait VI works?

Thanks in advance for any insights!

Certified LabVIEW Developer
0 Kudos
Message 1 of 4
(5,524 Views)

JKSH,

 

With a 2534 matrix (1.8 ms) and a 2576 mux (3.0ms) I did the same test and on my test machine where I had a single connection on each module that was disconnected and another different connection was made in the Connect and Disconnect VI. This same test produces the following numbers:

 

No connections - 0-2 ms

Connections on just the 2534 - 2-3ms

Connections on both - 3-4ms

 

Is the Disconnection specification always the same?

What version of NI Switch Executive are you running?

Perhaps there is some additional SW that is causing additional jitter on your system?

Frank,
National Instruments
Software Group Manager
Message 2 of 4
(5,507 Views)

Hi Frank,

 

Thanks for looking into this. It's odd that you're getting different numbers from me.

 

If it makes any difference, here's more info about my hardware:

  • Controller: NI PXIe-8135 Core i7-3610QE with ExpressCard, Win 7(64 bit)
  • Chasses: 2 units of PXIe-1085
    • Connected using ExpressCard (Chassis 1's controller) <-> PXIe-8360 (Chassis 2)
  • Switches: All placed in Chassis 2

I've also attached my Switch Executive config file.

 

 

> Is the Disconnection specification always the same?

 

When I wrote "If I don't make any connections/disconnections, niSE Wait For Debounce.vi waits 18 ms", I meant that the "Switch?" input is FALSE, so that niSE Connect and Disconnect.vi isn't called at all. (Refer to the VI snippet in original post.) Calling niSE Wait For Debounce.vi by itself, without niSE Connect and Disconnect.vi, made it wait 18ms.

 

This suggests to me that niSE Wait For Debounce.vi doesn't query the modules to see if they've settled or not, but instead just calculates a safe period to wait.

 

 

> What version of NI Switch Executive are you running?

 

NI Switch Executive 3.6

 

 

> Perhaps there is some additional SW that is causing additional jitter on your system?

 

No other software was running, except for the usual background Windows processes, and the test VI I showed in the original post.

 

Also, the results weren't jittery -- when "Switch?" is FALSE, "Wait time (ms)" consistently shows 18 ms. No fluctuations.

Certified LabVIEW Developer
0 Kudos
Message 3 of 4
(5,494 Views)

This suggests to me that niSE Wait For Debounce.vi doesn't query the modules to see if they've settled or not, but instead just calculates a safe period to wait.

I just verified that we simply call the IVI SWITCH Wait for Debounce function on all modules in the Virtual Device regardless of the previous connection.

 

AKA if you have a connection on Device 1 and 2, Wait For Debounce will wait for debounce on device 1 and then on device 2.

  • If 1 is faster than 2 it waits two seperate instances
    • Calls WFD on Device 1. waits once for time 1, Device 1 returns as complete
    • Calls WFD on Device 2.Then waits until device 2 is debounced. This would be equivelant to (time 2 - time 1). [This is not calculated but simply the device returns after that amount of time because it has already been waiting for time one during the wait for debounce call to device 1]
  • If 2 is faster than 1 it does the following
    • Calls WFD on Device 1. Waits once for time 1, Device 1 returns as complete
    • Calls WFD on Device 2. Returns immediatly because Device 2 has already finished its settling time.

If however you have a connection on Device 1 only. Wait for debounce does the following

    • Calls WFD on Device 1. Waits once for time 1, Device 1 returns as complete
    • Calls WFD on Device 2. Returns immediatly because Device 2 did not need to settle

 

Given that you have a total of 9 devices it could be that its making WFD calls to these other devices adds up to a delay of 18 ms, but I doubt it...

 

What version of NI-SWITCH do you have? 

Frank,
National Instruments
Software Group Manager
0 Kudos
Message 4 of 4
(5,473 Views)