Jump to content

Faster way to actuate relays with niSwitch?


BrokenArrow

Recommended Posts

Hello all,

I'm using niSwitch to actuate relays on a 2576 MUX, via the method in the attached picture. I was dissapointed that niSwitch doesn't have a way to feed multiple relay actuations at one time, unless I'm missing something. The attached method takes about 50mS to switch the relays. Oddly, the Wait for Debounce is NOT causing the bulk of the wait. I think it's just the fact that the VI (an API call I think) has to run 8 times to switch 8 relays.

Is there a better way to do this? A relay should be able to actuate and debounce in just about 10mS tops, and there's no reason why you shouldn't be able to actuate 8 at one time (IMO).

Thanks,

Richard

Link to comment

QUOTE(BrokenArrow @ Jan 23 2008, 09:48 AM)

Hello all,

I'm using niSwitch to actuate relays on a 2576 MUX, via the method in the attached picture. I was dissapointed that niSwitch doesn't have a way to feed multiple relay actuations at one time, unless I'm missing something. The attached method takes about 50mS to switch the relays. Oddly, the Wait for Debounce is NOT causing the bulk of the wait. I think it's just the fact that the VI (an API call I think) has to run 8 times to switch 8 relays.

Is there a better way to do this? A relay should be able to actuate and debounce in just about 10mS tops, and there's no reason why you shouldn't be able to actuate 8 at one time (IMO).

Thanks,

Richard

What MUX are you using? Maybe it is slow in parsing all the commands that NI switch is sending it. Maybe you need to figure out lower level commands to the MUX to make it switch in the pattern you want, but faster.

For example if Relay "a" needs to be closed for operation 1 and 2, then don't send that command twice or something like that.

Or there might be a mode where you can pre-program the device to "remember" the sequence of relays for each command you send it. Then you just activate that mode instead of sending it a high-level command.

In the past, I have worked with relay devices in VXI and yes, when you need to switch 6-8 relays to connect a single channel, then it does take a significant amount of time to send the commands (using GPIB-VXI module in those days) and for the relays to actually switch themselves. I had to program at the register level for some of the modules to make it switch faster.

Neville.

Link to comment

QUOTE(Neville D @ Jan 23 2008, 01:46 PM)

What MUX are you using? ....

Neville.

Thanks Neville. It's a 2576 Mux. I actually misspoke in my post. Running that Wait 'til Debounced VI every time IS adding to the time (as you'd expect). I moved that VI outside the for loop, and shaved off 20mS. Like you said, I'd like to have a method of telling the device to remember a known sequence and treat it like one relay closure rather than 8 sequential ones.

I guess I'm wanting this thing to run as fast as it can, electrically, without the VI's adding more than the typical mS or two. The datasheet says it takes 3.4mS to switch a relay, so 8 in sequence, I'm almost spot on. However, I'd much rather have it be 3.4mS TOTAL, which should be acheivable, if all 8 relays were actuated at the same time.

I haven't investigated lower level methods of talking to the mux. It's crunch time, and I may have to settle with the extra time.

Thanks again

Richard

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.