Jump to content

hooovahh

Moderators
  • Posts

    3,388
  • Joined

  • Last visited

  • Days Won

    283

Everything posted by hooovahh

  1. I'd be curious to see how your tasks are created and the type that they are. Are you starting and stopping tasks all the time? I'd suggest setting them up to be continuous, and then just read the values that essentially are in the buffer, then close when you need to modify the task or the application is done. I think you're going to have to do some debugging and figure out where the extra slow downs are occurring, and maybe write some test code to test the performance of doing the same thing, different ways. I've not seen a the type of slow down you describe, and it sounds pretty extreme. Oh are you connected to any USB hub? If this is a desktop try the USB ports on the back of the computer instead of the ones on the front. Any other computers you can test with?
  2. Yup. In the configuration software you make a COM port, then tell it the IP address, and port to expect the ethernet to serial device. Then I think there is a service running in the background that handles the back and forth, but to Windows it just looks like a COM port that any application can use. When the COM port is closed (by any application) by default the connection to the IP device is also closed, so any other computer on the network can open the same device. In our situation we could run a bunch of extra RS-485 cables across our lab, and have each PC have a PCI serial concentrator card, so it has the 2-8 COM ports needed on each PC, but this seems more flexible. We'll see if it holds up.
  3. Wow this is a fantastic discovery. I always knew the OpenG config functions were really slow for large structures but always blamed the NI INI config functions that had to be called so many times. In the past I've switched over to using the MGI Read/Write Anything code (modifying it a bit for my needs) but I'll look into the improved OpenG solution in the future. If someone does take on the updating of this package and code, they also may want to use some of the newer LabVIEW features that can improve performance, like inlining, and conditional or concatenating array tunnels.
  4. I'm a bit confused (not about resurrecting a 6 year old thread). Do they sell only the software? How much for the hardware? EDIT: I see how the software version works now, that is interesting, but seems like a lot of overhead to have a server if the only purpose is to talk to a serial device. We've recently had a need for some basic serial to ethernet devices and bought the UDS-1100 which is a single port to ethernet device by Lantronix. It's only $130 at CDW or $190 for a two port version that I haven't used yet. Software and drivers are free with the hardware which is available for download from their site. Updating firmware for the devices is a bit of a pain, and does have a wizard like UI. I also had a bit of difficulty with the web interface which sometimes didn't look like it saved my settings but would. But once you get it going they work pretty well. We've only been using them for a couple of weeks but we plan on getting more if we don't see any issues.
  5. Sweet indeed. I actually have a list of Idea Exchange items that could be completed with XNodes, and just haven't gotten around to doing them. I try to make my XNodes not have any external dependencies, since it is a bit of a pain to ask users of your code to go get an API that they are unfamilar with, and isn't on the tools network. I've heard good things about the CodeGen Engine NI built, and if you get some time you may want to look into porting some of those scripting functions into VIs that use the CodeGen Engine since that is shipped with LabVIEW and the dependencies won't need to be tracked down. https://decibel.ni.com/content/docs/DOC-47786
  6. Yeah I like that property, but there are still a few instances where a VI could be inlined, but doing so would effect the code in some way the developer needs to be aware of. If you use the Call Chain primitive, then it will return one less level, if the VI is inlined. I only say this so that others are aware that turning on inlining for all VIs that can be inlined, is not always a good idea.
  7. Remembering to version can be an issue, which is why I made a prebuild VI that runs which prompts you for the version. It also sets all installers to have the same version as the EXE you are setting, and I modified it so it sets the build number to the commit number in SVN.
  8. OpenG is free as in beer, and free as in speech. It is licensed under a BSD agreement, The majority of it is licensed under a BSD agreement, which basically means you can use it in commercial applications, edit it, change it, do as you please, as long as you attribute the creator (leaving in the text on the front panel) and there are a couple of other considerations when distributed as a binary.
  9. http://sine.ni.com/nips/cds/view/p/lang/en/nid/209027
  10. Yup, when I have to do something similar I make sure there is only one VISA resource open, and one close. Every read/write calls into an Action Engine that uses the VISA resource. Sure you can get into cases where loop 2 is waiting to perform a write then read, because loop 1 is already waiting on the read to return, but in the end you really only have one port. Data is going to come in and out for multiple devices and a lock of resources must happen at some level. If you truly need 3 loops to run in parallel, and not block each other, then you need 3 VISA resources one for each piece of hardware.
  11. I don't have 2011 installed so I can't test that this opens correctly, but I back saved it into 2011. Again be sure and have OpenG stuff installed. ClusterView 2011.zip
  12. Not really. I mean when you run your host VI on your PC you would need to compile the RT VI for the target, and optionally any FPGA compiling that needs to take place, then deploy it. I think it might be possible but probably isn't what you want. A better solution might be to just write your code for the myRIO, and then have it run on startup. Then your myRIO is always running, and always looking for a request to do something. Sorry I don't have any specifics I don't have a myRIO to test with, or any available RT hardware.
  13. Is what I said: Is what I meant. I can see how I wasn't being clear.
  14. That's what I was trying to say. I like that I can do that with an NI VI. Just hit run and start interacting with the front panel for debugging. But this version looks like you have to perform a separate compile operation, which makes the bit file, and then you have to write host code to talk to it.
  15. I partially know what you mean. I know I am more than just where I work (it's Samsung by the way). But I appreciate knowing when a user works at NI. It's a badge, or a hat, or some other flair that other can appreciate. In either case I don't have control over it.
  16. I'm sure there is. And looking at the Hand-RIO videos I'd say it too does some similar tricks with the Xilinx compiler.
  17. I've absolutely done the list box approach. Similar UI as you where the listbox is on the left and populated at run time, then the subpanel can be loaded in the main UI. Each of these subpanels VIs can be poped out and pinned too, but that's only done during debugging so you can look at two manual panels at the same time and see how changing one effects another. Another good example of this type of UI is the configuration dialog, which is seen in the Tools >> Options dialog in LabVIEW. All of these are more modular approaches than a static tab control, but I don't think this answers the original question.
  18. A text file can be opened in Excel if columns are separated by commas "," and then the file is named with a .csv file extension. This is by far the easiest solution, but the most simple. For more control over the look and format you can use the Report Generation Toolkit (included with 2014 and newer I think, and a paid add on before that). This uses the ActiveX API to read and write data so Excel must be installed on the machine. There are a few free wrappers for this API as well. There is also XLR8, a 3rd party company that makes a toolkit which creates the file using the documented format, not ActiveX so then you don't need Excel installed on the machine. And starting in 2014 the Write Measurement File has a .xlsx option. But don't expect a lot of control, it works similar to the XLR8 toolkit. Oh and you can make a TDMS file and then use the free NI add-on to open it in Excel. This all really depends on what type of data you have, how you want it to look, and the amount of time and money you want to invest.
  19. Very interesting. Certainly parts of the work flow are different from the NI implementation, like being able to just run the FPGA from the front panel, instead of having to compile it, then create a host to control it. Also the change to using your own custom (XNodes I assume) for the interfacing. Also is it me or does the transfer of the bit file seem slow? I mean you show a very basic program but it seems to take a while to download. Beyond that I'm not aware of any precedence being set by NI on these clone hardware. Plenty of DAQ devices have been made by 3rd party vendors, most with a simple interface via a DLL wrapper, or VISA calls to the hardware. LabJack is one that comes to mind. Then there is the more advanced clones like the mentioned Hand-RIO. I've not heard of a time when NI has come down and not allowed a company to make a product, but then again some of these advanced ones that clearly use the NI tool chain in ways that NI didn't intend, are out of countries that NI is not headquartered in. I'm not a lawyer, but I would not make a business out of these types of products, due to concerns that NI would sue the pants off of me.
  20. Why do you want it removed? Do you not work for NI? I don't think changing the email will change your status. That is a thing manually set on the profile by an administrator. It doesn't look like I have access to change that part of a users profile so I'll contact Michael and see if he can change it.
  21. It probably would be possible. But as mentioned earlier a limitation of the API at the moment is all users share the same front panel displays. So having multiple users connected wouldn't work well, unless you can modify it to serve different pages to each user connected to the host.
  22. In regards to tabs, there is an idea exchange item to have them fit to pane which I think would be very helpful. https://forums.ni.com/t5/LabVIEW-Idea-Exchange/Fit-to-pane-Fit-to-tab/idi-p/932452 Aside from that I have come up with a solution, where there ware two tabs, in two panes. The bottom tab has no control, and is just changed when the top tab value changes. Then I hide everything on the top tab, other than the tab controls, and the bottom tab I had the tab controls but leave the tab content. This allows for the objects in the tab to fit to pane, and resize as you would expect. In this tab you can still have a subpanel that fits to the pane, or graph, chart table, or whatever. It is just another example of UI work arounds in LabVIEW to make a good UX.
  23. So I haven't looked into it completely, but it would probably be possible to install VLC, which has an ActiveX control. So you maybe able to insert that on the front panel of a VI, then tell VLC to open a stream.
  24. For PDF generation I've been using this toolkit for several years and love it. https://decibel.ni.com/content/docs/DOC-10952 It has the ability to paste in front panels, and individual controls, but it also can just add a table, or text, as normal PDF tables and texts, that can be selected. No PDF printer needed.
  25. I think what rolfk is trying to say, is if you have an error when i=2, then that error will be passed back when iteration is equal to 3, and passing an error into 99% of the functions that use the error in, will not perform the operation. So if you have an error when i=2, you will still go to i=3 and i=4, but that same error will be passed around each loop iteration, and those other runs of the loop will likely do nothing (or very little). You can code around this with clearing or ignoring errors but if that is what you wanted to happen, then you probably wouldn't use a shift register to remember the previous error anyway. The other thing that can cause a loop to stop is the conditional terminal, and in some cases the developer will wire the error to the stop, which will stop running the loop if an error is seen. So if an error occurred with i=2, then the loop will not execute i=3, doing effectively the same thing but better, since it will not run the other iterations at all. EDIT: Oh and I don't know of any restriction on new user file uploading.
×
×
  • Create New...

Important Information

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