Jump to content

Neville D

Members
  • Posts

    752
  • Joined

  • Last visited

  • Days Won

    2

Posts posted by Neville D

  1. OK, your requirements are fairly complex and will not be solved by simple remote panels or web browser interfaces considering re-entrancy/panel size/display requirements.

    Design a protocol to talk to each instrument. Display commands sent and responses recieved in separate tabs on your HOST or control PC. That way you have complete freedom to setup and run the instrument without the complexities of panel size etc.

    You can use shared variables to simplify the communication protocol.

    Check out:

    Command based architecture (you can replace TCP-IP with Shared Variables to simplify; there are examples on the NI site using SV's instead of TCP-IP)

    Advanced LV-RT resources (you can read up stuff here and apply to your LV-based targets as well).

    Neville.

  2. Can you upload some code?

    I would try it first with remote panels instead of using a web browser. Its more robust. You can build a VI that calls up the front panels of remote running VI's. This will need the LV-RT engine installed on the "Host" PC.

    You could build a TCP/shared variable communication protocol that runs the appropriate VI remotely (based on selected instrument) and then opens its front panel. I saw an example of this probably on the NI website or in the LV examples.

    Re-entrant VI's or subpanel VI's might not update their panels correctly (search the help) especially in a web browser. I am not sure where the re entrant VI's are running..?

    N.

  3. I'm not sure why your comparing raw values. Why don't you use scaled values and compare those? Use a 1.5V battery connected to a channel and compare that with both codes. I'm sure it will read the same.

    Raw DAQ values are only useful when you are doing extremely high-speed DAQ and you would rather scale the values post-data acquisition. For anything less than 1kHz sample rates its unnecessary.

    N.

  4. QUOTE (Aristos Queue @ May 22 2009, 01:42 PM)

    Look at the online help for Obtain Queue. Search the help for the phrase "This function might return". Is this the sort of thing you're wanting to see on all functions?

    Exactly. That would help find other possible errors to deal with, when an error from a particular function pops up during debug.

    Hmm.. never noticed that before. Is it a new addition? (Good work though!!)

    Neville.

    PS And while your at it, it would be nice to remove the explanation of the error in and error out clusters which are mostly unnecessary. A simple link to explain what they are would REALLY clean up the help functions, and help focus attention to other parameters which are always more important.

  5. QUOTE (rahul @ May 21 2009, 09:32 PM)

    The cameras suddenly get undetected while the system is still running normally and then i have to just replug it (NO RESTART OR BOOT REQUIRED)

    Seems to me you have a bad cable/connector on the card. Try a new better quality cable. I have multiple firewire cameras on PXI-RT running for many months at a time 24-7 acquiring 500,000+ images without needing to reboot. I reboot them once in a while when I visit the customer-site or when uploading new software.

    I have had problems with cheapo cables from the electronics store. More expensive cables are usually more reliable.

    I use Prosilica cameras by the way.

    Neville.

  6. QUOTE (bobfrat @ May 21 2009, 01:25 PM)

    I took a look at the example and it works great when putting files onto the SD Card. However it doesn't list the files located on the FTP server. Instead i get this error... "226 Closing data connection. Listing Complete." This message comes up as soon as I run the program but it still lets me put files onto the server. Has anyone seen this before?

    Thanks,

    Bob

    226 is not an error. FTP VI's (for whatever reason) generate 226 when theyr'e done with a task. It works fine when I point it to my PXI-RT chassis, correctly listing all the files under the root folder. Try IP address under "machine".

    Neville.

  7. After a reboot, can you see the cameras in NI-MAX? If you can, then your code should be able to see them too.

    Display a code snippet showing what you are doing at camera initialisation. Maybe during reboot the camera looses power and firewire doesn't provide power until after windows starts up? Dunno. Try swapping the firewire card to another slot? Or try another card? They are cheap enough.

    The fact that windows can't find them either is a bit suspicious.

    Neville.

  8. Make sure the port is closed by the application using it (CVI/Hyperterminal whatever).

    Make sure to initialise the port correctly before starting communication Port#, Baud rate/stop bits etc etc.

    These are most likely the causes of garbage communication; there is likely NOTHING wrong with the com port itself.

    Try another com port if you have two..

    N.

  9. Why don't you post a quick snapshot of what you mean?

    There is no need to "initialize" an array in LV.

    Using Local Variables of an array is a bad habit to get into. (Race conditions, calls to memory manager affect performance, creates unnecessary copies of data).

    Maybe a quick look at the Getting Started with LV manual would help.

    N.

  10. A quick and dirty way would be to copy the matlab code into a mathscript node and run that (assuming you don't have any esoteric matlab function calls that are not supported by the mathscript node).

    It might not be too fast, but should get you started quickly enough.

    Neville.

  11. QUOTE (amila @ May 12 2009, 05:58 AM)

    I've tried the second suggestion: make a cluster for each edge. I have the results that I want. But the problem is how to save all of them in a file?

    You can't use the Express VI's to do anything but very simple tasks. Look at examples of writing data to file. You already have the strings, write a simple VI to put that stuff into a file.

    You can also right-click and convert an ExpressVI to a regular VI to look at the code inside to see if you can modify/re-use any of it. But from the level of questions you are asking, that might just further confuse you.

    I would look at the file write examples and go from there. Maybe you can write data line by line (within the loop) instead of collecting it outside the loop and writing everything at once. But the file header (column names) would have to be written prior to loop start.

    N.

×
×
  • Create New...

Important Information

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