Signal Conditioning

cancel
Showing results for 
Search instead for 
Did you mean: 

When switching more than 1 relay in my scxi 1160 there is a significant delay

Using Labview 5 and NI-Switch with my scxi 1160, I want to be able to switch relays 0 to 5 simultaneously at the moment there is a delay of about 1 second between relay 0 and relay 5 switching on. Looking at the program execution it runs switch ch0 then switch ch1 etc. I have tried putting the 'switch a single switch' VI's in both series and paralle and tried using 'connect channels' VI's but it makes no difference.

How can i make the relays switch at the same time?
0 Kudos
Message 1 of 3
(3,043 Views)
Instead of NI-Switch, try using the DIO VIs titled "DIO Port Config" and "DIO Port Write" in the Advanced Sub-Pallett of Data Acquisition>>Digital IO>>Adv. For DIO Port Config, specify the device ID, the digitial channel "sc(m)!md(n)!0 (where m is the chassis ID and n is the SCXI slot number). Notice you specify only channel 0. Set the port width to 16 and the line direction to -1 (write).

For DIO Port Write, wire the task ID out from the Port Config to the task ID on DIO Port Write. Now simply wire to the pattern terminal the binay pattern of relays you want to switch. Some examples:

1) To write to switch 0 - Input: 1
2) To write to 0,2,4,6 - Input: 1010101
3) To write to switch 8 - Input: 100000000
4) To switch 0 throu
gh 5 - Input: 111111

You can use the numerical equivalent if you choose (i.e. 15 instead of 1111), just remember to document the input format so that you do not confuse "binary 111" with the number "111". You can turn-on the "radix" to remind you of the number format.

As for speed, I use this technique to control 16 relays on a blow-down wind tunnel with no delays. The relays respond instantly.

This technique will give you fast, efficient control: however, it lacks the error checking and fail safes built into more robust VIs. Each time you perform a DIO write, you will be addressing ALL 16 channels (whether you want to or not) unless you use line masking. You MUST remember the past state of all of the relays so that all subsequent writes will maintain the relays in the proper state.

I hope this idea will get you started.
Message 2 of 3
(3,043 Views)
Thanks it worked perfectly
0 Kudos
Message 3 of 3
(3,043 Views)