Re: Serial port Write then Read issue
The serial port transmit and receive buffers are separate. They are not tied together. If you have nothing connected to the serial port and you write something to the port, you will not receive anything. You obviously have a loopback somewhere in your system. I am using LV7 and I have written a program to communicate with a device through the serial port. When I unplug the serial cable, write something, I receive nothing. Your problem lies within your system. The way I do it is to write the serial data, then call the Bytes at Serial Port function in a while loop. The loop contains a timer. The loop exits when either Bytes at Serial Port returns a positive number or the loop iteration count reaches a certain value. If the Bytes at Serial Port number is positive, I call the Serial Read function. If no bytes, I display a message or set a flag that nothing was received.
Re: error code no 6
Go to http://digital.ni.com/public.nsf/websearch/2FA525A8585A92E9862566EE002A3755#EABO
Re: file name in different directory
I think this is what may be happening. Lets say you have MainVi and SubVi in folder1. You copy the two VIs into folder2. MainVi calls SubVi. Now when you open MainVi from folder2, the sub vi that gets called is SubVi from folder1. You make changes to SubVi and the changed file exists in folder1 not folder2. So it looks as if Labview is changing all SubVi files but it is not. You should look at Browse - Show Vi Hierarchy to see where the sub VIs are located. These are the ones that will be changed. If necessary, replace the sub vi with the one from folder2.
Re: Can I open VIs in VisualBasic in Run-Time
Can you be more specific? Are you trying to run a VB program in Labview? If so, compile the VB code into an exe program, and use SystemExec in Labview to call the exe program. Or make a DLL and use the CodeInterface in Labview to call the DLL.
Re: Can anyone help with lost Serial no. ?
Also, in the future, always use a permanant marker to write the serial number on the CD in case you lose the paper work.
Re: How can i add more terminals to a SubVi without compiling it again?
To add more terminals to a vi, right click on the vi icon in the top right corner. Click on Show Connector. Right click again on the connector icon. The list of actions contains Add Terminal, Remove Terminal, Patterns, etc... You can choose either Add Terminal or Patterns to add one or more terminals. Assign your control/indicator by clicking on the newly created terminal and then clicking on the control/indicator you want to connect.
Re: Installer created by App Builder installs to wrong dir
I am not 100% sure, but I think that there is a registry key called Program Files Directory. The value of this key is usually C:\Program Files, but it could differ with a custom windows installation. In App Builder, when you see Program Files Directory in the selection for default directory, the App Builder looks up the registry key value and uses this directory. If you develop the app on one computer and install on another, and both computers have different values for Program Files Directory, you will see the installation go into a different directory. Did you run the installer to verify that it goes into the wrong directory? I've used App Builder in both LV 6.1 and LV 7.0 and have not had this problem.
Re: Simulate serial signals in LabVIEW 7.1?
First of all, I don't think there is a Labview 7.1 out (unless it just got released). I think you either mean LV 6.1 or 7.0. Anyway, when I want to simulate input data from anything, I use the Random Number generator (in Functions Numeric palette, looks like a pair of dice). The output is a random number from 0 to 1. You can scale it by multiplying it by some number. If you want to go all the way and simulate the actual serial transmission, use a breakout box to loop back serial port signals (TD to RD, DTR to DSR, etc.). Write a vi to output the random number to the serial port. The vi that you are developing can then read the serial port and get the random number.
Re: labview 7 subvi's loaded from other sources
If you click on Browse -> Show VI Hierarchy and then View -> Full VI Path in Label, you can see all sub vi's and their paths. Since you just upgraded to LV7, I would guess that some of the sub vi's are coming from previous version of LV. Did you have Report Genreation Tools in the old version, but did not install in LV7? The message about sub vi was not found at ... was loaded from... means that the sub vi was not found where it was expected to be (from that last time you ran the vi in older LV version). But LV searched and found the sub vi at a different location. When upgrading, the sub vi's under an old directory, like LabVIEW6.1, might not be there anymore, and the vi is now found under LabVIEW 7.0 directory. In this case, the message is valid and there is nothing to worry about. Save your main vi so that the new paths to sub vi's will be established and saved. In some cases, you may have to manually replace sub vi's in old paths with the same vi in a newer LV7 path. Once you have substituted all sub vi's with the ones from the right path, save your main vi and all sub vi's.
Re: Writing a new file every 24 hrs
Attach your code. You have some kind of error in building your pathname.
Re: I read data from RS232 port in bits format 0 &1.How i can convert these inputs to useful data?
Use Serial Read function to get a string of characters from the serial port. Pass this string into the String to Byte Array function. The output of this function will be an array of bytes (numerical). You should be able to work with this (extract elements, extract bits, etc...). Of course I am assuming that Labview 5.1 has a String to Byte Array function.
Re: Looks like a bug in Scan String for Tokens function...
I have LV7 and I see the same bug. I can put a blank entry (space, then backspace)into then operators array and then I get good results.
Re: Problem with simultaneous DIO with PCI-6024E
You are correct in assuming that the port is reconfigured each time in a loop iteration when using high level VI's. One solution would be to use one port (bits 0 to 7, or Port 0) to set your output bit high. Use a different port (Port 1 or 2) to read your required inputs. If wired correctly, port 0 will always be an output and will keep your bit high while reading port 1 or 2. Using high level VI's, you will not be able to write one bit high and expect it to stay high when reading other bits on the same port.
Re: MSVCRT.dll
I believe that MSVCRT stands for MicroSoft Visual C Run Time. So this must be the run time library for Visual C programs. There is MSVCRT and a MSVCRTD library file in Program Files\Microsoft Visual Studio\VC98\Lib. The DLLs should be in the Windows\System32 folder (I use XP). I have Visual Studio installed on my system, however I believe that the Windows operating system contains these DLLs even without having Visual Studio installed. Maybe you search Microsoft website and find them. If you do, put them in the System32 folder.
Re: Error 6 File Open
Are you re-initializing the array in your vi every time it executes? If not, the array will keep on growing. When you open the file for writing, what mode are you using, append or replace? If append, the file will continue growing, if replace the file will only hold the latest data. You have to match what you are doing with the array with how you open the file. It might be best to open the file for append and write the latest data only, initializing your array at each loop so that it holds only the latest data.
Re: PMD-1208LS
Is this a Measurement Computing device? If so, have you installed their Labview drivers? I have a USB PMD-1024LS and I am able to use it with Labview 7. After installing the MCC Universal Library and Labview Library, configure the board number using their Instacal tool. Your board should show up on the front panel list of devices. Right click on your device and select Change Board #. Then use standard Labview DAQ vi's with the new board number. At first, I mistook the board's configurable serial number for the device number. They are two different items.
Re: clear an array
I think what you want to do is to wire in an empty array into the shift register to initialize it. The way your vi is now, when you run it a second time, the array results from the previous run is still there. If you initialize the shift register, the array will be cleared every time you run the vi.
Re: HP4142B control
I/O Assistant is easy, but this is not what you want to use in this case. What you want to do in Labview will be somewhat similar to what you do in VEE. Instead of using I/O Assistant, use the basic GPIB functions. Create your controls on the front panel. You can wire these controls as inputs to the GPIB functions. Example: create a Numeric control called voltage. On the block diagram, create a string with the GPIB command except leave out the voltage setting. Use the Number To String function to convert the control value into a string. Concat the GPIB command with the voltage control string. Use this as input to the GPIB write function. If you are familiar with VISA, you do not have to look up the GPIB command string. You can use the VISA instrument drivers and wire the front panel voltage control directly to the VISA function for setting up the instrument. I am sure there are some examples for the 4142 on the NI website. Good Luck.
Re: creating a LabView VI from LabWindows application
There is no conversion utility that I know of that will convert a LabWindows program into a Labview vi. You have to do it the hard way. Create the vi manually. I have had to create a vi from a VB program. I used the VB code as a guideline and manually created the vi from scratch.
Re: VISA ERROR(hex 0xBFFF0011)
Seems like your instrument is not being found on the second computer. Most likely, your instrument drivers have not been properly installed. If using VISA, you must have VISA drivers for that instrument installed on the computer you are using to connect to that instrument. You can use MAX (Measurement and Automation Explorer) to see if that unit is properly installed. If it doesn't show up in MAX, your drivers are not properly installed.
Re: With Labview what do I need to run vi's on computers without Labview installed
On your development computer, click on Tools -> Build Application or Shared DLLs. Select Application and fill in the rest of the boxes with proper information (click Help button for more info). When all info is correctly filled, click on Build button. This will create an EXE file. On the other computer, install the Labview runtime engine. You can do this by using your regular Labview developer CD. Run the setup program but, when prompted for items to install, uncheck everything except the runtime engine box. Proceed with setup. This will install only the runtime engine on your target computer. Transfer your EXE file to the target computer. Run the EXE file, it should work.
Re: Getting started - help with general concepts?
I have used both VB and Labview to do what you are asking. In my opinion, Labview is far easier to use and maintain. Non-programmer design engineers have picked up on my Labview programs quite easily for minor modifications. They could not have done so as easily with VB. Also, if you use Labview instrument drivers, you will not have to look up any GPIB SCPI commands (like READ? or :FUNC:VOLTS DC), the drivers have all of this built in. This makes it much quicker to write your program. Also easier to create and write CSV files. Dialog boxes for testers are no problem either. Try it, you'll like it.
Re: How can I change a dynamic data into an integer representation I32?
The I32 conversion icon is in Functions Palette -> Numeric -> Conversion -> To Long Integer. Wire the formula output to the I32 input. The output will be of I32 type.
Re: What property settings to I need to set in order for VISA...
Usually, garbage characters are an indication of a baud rate or parity mismatch, or maybe a stop bit or number of data bits setting. Make sure that you have configured your port correctly with VISA Configure Serial Port. I have used VISA serial successfully many times.
Re: Numerous Start buttons in a while loop
Without seeing your code I will guess that your button's mechanical action is set to switch when pressed. It becomes true and stays true and your process always runs. Set the button to latch when pressed. The program will reset the button to false after it reads it as true. Your process will operate only once until you press the button again.
Re: load error code 9 - unable to open V7.0 work on V6.1
There is an option in LV 7 to save vi under a previous version. Look under File - Save With Options - Save for Previous 6.1. This will save the vi so that it can be opened with LV 6.1.
Re: Problem exchanging global values with an excutable vi
If you are using TestStand to call each vi, you can use a TestStand local variable to get the value from the first vi and send the value to the second vi. The TestStand local variable would be a parameter to each vi, output from first vi and input to second vi.
Re: How can I use LabVIEW to control actuators for testing push buttons
You need a Digital I/O device and actuators. You will need some interface circuit to take the DIO input and convert the voltage level to drive the actuator. The ULN2003 does this quite well. Use Labview to output ones and zeros on the DIO, which will turn the actuators on and off. The actuators must be positioned to push your UUT button/membrane/switch when fully extended. Look at the Labview examples for DIO, and look at a data sheet for the ULN2003. This should get you started.
Re: mouse up event on a slide
Sorry, I misunderstood your problem. I was able to re-create your problem. This could be considered a bug, moving off slider before letting mouse up should return the pointer to its original value, but it does not. So now your event doesn't fire because it never saw a mouse up event on the slider. The only fix I could see is to set the event trigger to Value Change. Yes you will have an event for each incremental change. Don't know of a good solution.
Re: mouse up event on a slide
It was meant to work that way so that you have a way to abort the event if you feel like you made a mistake when clicking on the control. Just keep your mouse in the proper area.
Re: How can I write bits through the COM1 serial port?
You are welcome. Look under String palette, then under Byte/Array/String sub palette.
Re: How can I write bits through the COM1 serial port?
Serial transmission (COM port) protocol requires sending a group of bits at one time. You cannot just send one bit. Standard COM port settings must be either 7 or 8 data bits, 1 or 2 stop bits, etc... You have to group your bits 7 or 8 at a time. You could probably send a 0 byte or a 1 byte. This would be like sending for a low bit and 0001 for a high bit. Your receiving end would have to know how to interpret what you are sending if you choose this method. Of course you have to convert your byte into a string before sending to COM port. Wire a U8 data type to a Build Array input. Then wire the array output to a Byte Array to String input. The output of this function will be the character representation of your byte suitable for sending across a serial port.
Re: toggle between subVI's
Michel (spelled like a French name, n'est pas): I am not sure what you are trying to do. Perhaps an example would make it more clear. Are you trying to jump to vi2 while inside vi1, and then jump to vi1 while in vi2? If so, you would need buttons in each vi to run the next vi. Or maybe you are trying to start one of two vi's from the main loop, with the vi being chosen by some button or condition. You could put a Message Dialog Box vi inside your Case structure, asking the operator which vi to run. Does this help? If not, please include an example of what you are trying to do.
Re: Bad VI repair
One trick is to open a good vi and put the bad vi inside the block diagram of the good vi. I've tried this but it still causes LV7 to crash. There may be no solution other than to re-write it from scratch. Bonne Chance! (Good Luck)
Re: Label alignment in LabVIEW
I have opened your example and changed the font size of label 2, back and forth between 14 and 18. The label expanded to the left and did not overlap with the numerical indicator. When contracting, it contracted from the left. The anchor point stayed at the right as it should. I am using LV7. I can't explain why it would behave differently on your computer. I moved the label to the right of the numeric indicator and the anchor point was set to the left, as it should be. Moved label back to the left and the anchor point was reset to the right. Can't recreate your problem here, sorry.