Pop-up on the ring control and look at the Representation. You'll
notice that in some versions of LabVIEW it's an I16 and in others it's
a U16. You can change the representation to an I16 and then -1 is a
valid number for the ring (instead of just a wrap-around).
And, no, I don't know why they
The Windoze technical info states that they do not guarantee timing
better than 100ms with the system clock. You're right, that generally
it's much better than that, but I have seen pauses in my VIs that vary
up to 25ms (using a take time before the loop and then check time
after the loop). My old
Just a guess, but... One of the biggest problems with building
executables is the path to other VIs. In the development environment,
an example path might be
C:\this path\my vi.vi
While in the executable, the path changes to:
C:\this path\executable.exe\my vi.vi
I'm sure you can see the problems
Go into MAX and see what versions of NI-VISA and NI-SERIAL you are
running. We have had lots of problems matching up LabVIEW and the
correct versions of these (especially with RT). LV7 has some problems
with older versions of VISA and Serial and LV6.1 has problems with
newer versions of them. And
Depending on the parallel port and the driver, the output would only
be a momentary change in the output. Parallel ports were designed for
sending data not latching and holding a data value. Can you put an
oscilloscope on the port and see what the data looks like?
Rob
Depending on the parallel port and the driver, the output would only
be a momentary change in the output. Parallel ports were designed for
sending data not latching and holding a data value. Can you put an
oscilloscope on the port and see what the data looks like?
Rob
Question: did you check your serial port setup to make sure that local
echo was turned off? I see this kind of thing in my machine when I
have local echo turned on. It could be turned on in the LabVIEW serial
port setup or in the Windoze setup.
Rob
A note that some PDAs (as we're finding here) have a local echo of
everything that you send to the serial port. You may have to parse
your input to remove the sent command and then read again to get any
new input. A pain and it doesn't happen with all PDAs, so if you're
only working with one type,
Depending on the driver in use - there may be a setting in the
hardware settings/device manager in Windoze control panel. My system
allows me to turn on local echo through the driver in the device
manager. Annoying since my program does that function automatically.
Rob
Gee, thanks folks. I know that it's a kind of messy way to do
something like that, but it works (even if it takes a bunch of clock
cycles). For myself, in the long run I'd probably use a functional
global.
I thought about it afterwards and wasn't sure that I'd put the example
together correctly.
There is another way to put a subVI into a VI as well. Have the subVI
on your screen (with the icon visible - not the connector pane) and
the VI that you want to put it into. Then click and drag the icon for
the subVI and drop it onto the diagram of the VI you want it in. I do
this all the time.
Yes, unfortunately, event structures do not notice data changes when
you use the VI server like this (only when you manually change the
control - Doh). So that idea is out.
It might be possible to build a parallel loop in the subVI that does
nothing except watch for the button to be pressed and
How does your VI decide which subVI to close when you hit the button
on the front panel? Is it by name? If so, then that's all you need to
open a reference to the subVI.
There is a property node that will list all VIs in memory, but if you
have a large program, this could be a huge list.
Windows
Having done serial and parallel port control a few times, here are
some of the things that I've found:
Most serial and parallel ports send output as pulses. So if you want
to turn a line on you have to build some hardware to latch that
state (I built a simple circuit with line 0 of my parallel
One of the things that you might try is that the property node for
front panels includes the Front Panel Open property that you can READ
to see if the panel is open before you try to close it. It's a boolean
so easy to build a case structure after it.
Hope this helps.
Rob
If your array is an array of U8 type numerics, then all you have to do
is sum the elements. This will return a U8. No carries. Sounds like
what you're looking for.
Rob
Another way to handle this is to have any subVIs that you want to
close watch a notifier and close if the notifier tells them to. Then
in your main VI code open a reference to the front panel (use the
Current VI's Path function and connect it to the VI Path input of Open
VI Reference), connect the
The most likely cause of that error is calling a function in a DLL
with the incorrect number of parameters. Too many or too few
parameters can mess things up quite well (trust me on this one - been
there, done that). Usually, no damage is done. Check the function in
your DLL and reproduce the
We got away from using system colours on all of our GUIs for just this
reason. Explicitly stated colours allow us to have a consistent
looking GUI on whatever OS. Might be an idea so that whatever scheme
the OS producers come up with, the GUI will still be usable. BTW, we
had some comments in the
Five years ago that should have been LabVIEW 4 or 5. But then, as
we've seen here, some people keep versions around forever. I have
always worked with the professional packages, so I've always had
access to compilers for LabVIEW.
Where I work now, we use Perforce for revision control. It works
The red square border is indeed a breakpoint. Just select the
breakpoint tool and point to some blank space inside the diagram. If
the cursor is an empty (not filled in) stop sign then there IS a
breakpoint there. Just click and the red border should go away and the
cursor change to a filled stop
Personally, I would store the parameters in an .ini file. In the File
VIs are the Configuration File VIs and they are really good for
reading sections and keys. You could have one large .ini file with a
section for each instrument or you could create an .ini file for each
instrument. Either way,
I LabVIEW 6.1 and up, you can use the event structure to capture mouse
clicks. On the left side of the event structure is a nice little box
that includes an input called Button this input is the button number
that was pressed. You can catch all clicks with whatever button this
way and perform
We had meetings about this. It was in the package that we got that was
marked Only for distribution in Canada. Maybe their lawyer were
working overtime figuring what the licensing should be for different
countries - I don't know. But we definitely had a couple of meetings
to discuss this. I don't
I remember the 5.1 licensing. It used to be that you could distribute
an EXE that you made with LV5.1 to 6 (I remember the number 6) other
computers, but you could distribute the EXE to as many computers as
you had NI cards in (and only NI DAQ, GPIB, etc. cards - no other
vendors). We thought that
One of the better tests is temperature shock. Move the sample from
-40C to +40C and back again with enough time in between the moves for
the equipment to reach that temperature. If there are cold solder
joints then there is a very high probability that the solder will
actually break the
Does the reference in the subVI say Bool Refnum on it or is it a
Control Refnum? You also might try right clicking on the refnum in
the subVI and selecting Include Data Type. This will turn on or off
the strictly typed reference property. That's where I ran into
problems.
Rob
Oh I agree with that. Like it said, this is just the quick and dirty
way of doing it. You have to lock up the computer to stop the
animation (something which we've managed to do a couple of times). A
real progress indicator is much better. Instead of just saying Please
Wait on screen you can also
Having run LabVIEW on a variety of systems, I've found that it's not
that unusual to find a program run faster on an NT system than on
other systems. I haven't compared WIN2000 with NT yet, but WIN2000
does run faster than on XP.
NT has *MUCH* better multitasking than Win98, so this explains
LabVIEW 6.1 and up allow you to put animated GIF files on the panel
and on the diagram (we have a picture of a burning computer on one
diagram :). You can put an animated GIF in a picture control and hide
the control until you want people to see it. We are using an animated
hourglass to show that
We use a queue to queue up states for a seperate state machine. The
event handler only adds states to the queue. I know that it sounds a
little awkward, but it has many advantages since you can take things
out of the queue or put things in the front of the queue. When it come
right down to it, you
Interesting that we use the (-1) case in our LV 7.0 programs. So I did
a little digging. The default for menu rings is to be a U16 in which
case what you're mentioning makes a lot of sense (it's an unsigned
number after all). Click on the terminal in the block diagram and make
it I16 and the (-1)
Yes, you can load more than one version. The problem comes with things
like MAX and NI-DAQ. These only allow one version to be loaded at a
time. We have a machine here with LV 5.1, 6.0, 6.1 7.0 on it. They
all still work.
Rob
I just had a thought (don't everyone cringe at once)...
You could change the text on the button programmatically using
property nodes and then when the button was pressed, read the button
text to see which state it was in. A little clunky but it should
work.
There are other, better ways of doing
Some of the newer PCs (some DELLs included) have the parallel port
disabled to free up some resources for other things in the system.
Check in the BIOS (during boot) and ensure that the parallel port is
enabled. Can you check the port with a parallel printer (or some other
device)?
Rob
35 matches
Mail list logo