Jump to content


  • Content Count

  • Joined

  • Last visited

  • Days Won


Everything posted by bbean

  1. Are you suggesting one could copy/modify that Xnode to extend its capabilities to their liking?
  2. After reading this LabVIEW Idea exchange request: http://forums.ni.com/t5/LabVIEW-Idea-Exchange/Provide-a-better-way-to-implement-a-polymorphic-VI/idi-p/920487 I was inspired to create VI macro(s) to attempt to address the problem mentioned in the request. Attached is my first attempt and I'm looking for feedback since I know people here have strong opinions. The benefit of this method is that a single vim (or 2 could replace a polymorphic VI with over 48 separate VIs....unless I'm missing something. I know that VI macros are not officially supported by NI, but that hasn't stopped us
  3. Just a quick warning....based on the image you attached you have some parallax going on so the measurements of particle size will become more inaccurate (appear larger than actual) as you move away from the center of the image. You can see it in the ghosting of the droplets in the upper-left corner of the image. Depending on how accurate you need to be, you may have to go to a telecentric lens or move your camera farther away so that the majority of the image is in the center of the FOV.
  4. Does anyone have any experience good or bad with the PicoLog 1000 and LabVIEW? https://www.picotech.com/data-logger/picolog-1000-series/multi-channel-daq
  5. I have been having problems with Remote Front Panels not working anymore with IE as of the lastest MS security update. See here https://lavag.org/topic/19216-labview-ie-plugin-blocked-following-latest-win-7-update/ NI is still working on the issue, but based on my discussions it appears support for Remote Front Panels is bleeding a slow death. Here's how I would summarize the situation to date if you have the latest and greatest software versions and OS (Win7) updates: Internet Explorer - Does not work, reason unknown (may be an ActiveX signing (Not Verified) or registrat
  6. bbean

    VIM Demo-HAL

    Think of the scenario where you were a manufacturer who made single axis motion controllers and sold them to LabVIEW developers. You want to create a single axis "service" so the user can just plop down the VI as many times as he has axis (SP?) and you have no idea how many axis are in his system. could be 1 could be 100 I mocked up a crappy example in the project file After going through the exercise, I think you may be right even though it was unintentional . You just have to add an extra item to the event cluster contents that describes which axis sent the message. But the re
  7. bbean

    VIM Demo-HAL

    Should be fixed in this one. Sorry about that. VIX Event 2014.zip
  8. bbean

    VIM Demo-HAL

    Ok. I updated the code as follows renamed the project to VIX Event to avoid confusion since this version doesn't use VI Macros but rather the Xnode. Added the TCPIP Telemetry Service and Client Updated the SREventXnode Help to show help and also the terminal name in the help indicates what the event created is named Modfied the SREventXnode Image so it updates with datatype Fixed some bugs in the SREventXnode code I tried to downsave to 2012 but had some problems converting and errors when I ran the code. The Xnodes needed to be manually updated and for some reason the in place
  9. bbean

    VIM Demo-HAL

    Sure, just don't have time now. It needs a few more ability VIs to make it robust and a lot more testing but I don't see why not.
  10. This is a continuation of conversation from here https://lavag.org/topic/19163-vi-macros/?p=115771 So I decided to update ShaunR's VIM Event Demo with Xnodes. Its still rough around the edges, but I think it cleans up the diagram pretty well and adds some benefits to displaying relevant Event names in the Event Structures. For now I got totally rid of the "name in" input on the event / event register Xnode so you have to name all the constants or controls that go into the Xnode or it won't work. I could put the name in back in and make it so it would override, but I don't have time righ
  11. One other comment after looking at the VIs a bit more. Why do use different conventions for identifying the recipient/sender for MSG Get (the caller VI's name or name override) and MSG Send (parsed out of the Msg input string)? This is confusing. Why not just do the Msg Send the same as Msg Get (using the caller VI name)?
  12. I have an idea regarding the "Name" issue. Would an Xnode be a better solution instead of a .vim file? I think you could use the AdaptToInputs and GetTerms3 functions to figure out the "Name" of the data input (at development time only of course) when it was wired to a variant data terminal. Then in GenerateCode wire up a static name to the SEQ input of your template VI. Not sure if its possible, but you may also be able to dynamically (in dev env again) rename the "Data" input terminal in GetTerms3 to have the same name discovered during AdaptToInputs... potentially also fixing the generi
  13. Thanks for the example of VIM events and the hard work that went into that example. I noticed the VIM Event Test.vi ran a little choppy on the first run, hesitating every now and then. After stopping and restarting it seemed to be fine. Wonder what's happening here. Attached are recompiled versions for 2012 / 2014 to save others the pain of manually re-linking the .vim file. Do .vim files work more reliably if they are placed in the user.lib/macros/ ? Just a quick question....In your "subsytem" VIs (File and Sound) is there a reason for putting the srevent.vim file inside the whil
  14. Coffee hasn't kicked in yet and I feel a little slow this AM. Can you explain: the use of the queue primitives and what they are for in the .vim? why register flag doesn't get passed to the "created new" True case and wrap around the Reg Events Primitive? And is the jist of the naming issue:
  15. Still waiting on this front. LabVIEW needs to move to 3d diagrams like CAD programs. https://en.wikipedia.org/wiki/Dalek http://www.thedoctorwhosite.co.uk/dalek/
  16. Asynchronous wires seem to be an extension of the wireless wires I was working on with the Wormhole xnode. The wormhole xnode would have had the wireless cleanliness of a local variable with the speed of direct wire. Oh well. Disclaimer: do not use this anywhere in your code...its just for fun WormHole.zip
  17. "Return Settings" doesn't need file terminals. If you look at the code I added to delete terminals, I use a very rudimentary approach where I check to see if the case selector tunnels are wired to anything in the case structure and delete the controls with the same name as the tunnels that are unwired. Its crude and probably not very robust at this point. I agree with you concerns about code bloat which is why I dislike polymorphic VIs. Would there be a generic way to do this with an Xnode FGV wrapper that goes through similar operations as hoovahs script, but self creates its inputs
  18. I added a delete feature to your latest version that will delete the controls for each case if they are not wired inside the case structure of the FGV. Its not perfect and I had to rename the initialization constant in the example FGV so it doesn't delete the input terminal (the constant had the same name). Anyway thought I'd throw it out there. Generate VIG Wrappers with Delete 2014.zip
  19. Yes No Use a DAQ Assistant (1 for each device) in a loop. Its a beginners friend (and sometimes advanced users). It automatically sets up things for you so you don't have to worry about starting and stopping every loop. If possible write to the whole port at the same time. Hint:
  20. hoovahh I implemented the same operation as your subvi and it did not appear to work when I looked at the generated code. So I went back and created some debugging code to get the block diagram image before and after cleanup to compare to the final code: The result of probing these images is that it appears block diagram cleanup occurs but then gets lost: Before BD.Cleanup: After BD.Cleanup (just what I want): Final "Generated Code" (somewhat crapified) The only other thing that happens after the Generate Code Ability VI is that I do an "Update Image" (calls the Imag
  21. Rookie question here. I'm getting lazy and don't want to click the cleanup diagram button when I'm debugging generated code in the Xnode. Is there a way to clean-up the Xnode diagram with scripting? I tried putting some cleanup commands on the diagram reference in generate code ability, but I'm guessing the code is not actually generated until after this VI is completed. Or maybe I'm doing something wrong. Is there another ability that can run after the code is actually generated where I can cleanup the diagram for debugging purposes?
  22. You can still have a producer/consumer loop if you want. The nice thing about Hoovah's circular buffer is that its DVR based so you could spit the wire and read the data in parallel if you want. I haven't seen your code and do not know how you want to trigger the save data. Do you need to analyze the whole buffer every iteration to determine whether to save or are you doing something like just triggering on a rising edge level and only need to look at each daq read chunk? You can probably do all the DAQ reading/triggering/saving in a single loop if you use pipe lining. But I can o
  23. Use no delay and this Circular Buffer: https://lavag.org/files/file/250-circular-buffer/
  24. Very impressed with the simplicity and elegance of that timer solution. <possible thread hijack> Along the same lines....do you guys ever use the DAQ Events functionality within the JKI state machine in the same manner? eg using the DAQmx events along with a daqmx read in the event structure similar to LabVIEW example: \examples\DAQmx\Analog Input\Voltage (with Events) - Continuous Input.vi Or are the downsides to reading daq at high speed in an event loop outweigh the potential benefits?
  • Create New...

Important Information

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