Jump to content

ejensen

Members
  • Posts

    38
  • Joined

  • Last visited

Everything posted by ejensen

  1. LabVIEW Developer Xtreme Power Solutions www.xtremepowersolutions.com delivers integrated smart power management solutions from 500kW to 100MW.​ Proprietary solid-state power management and integrated storage enables efficient and available power for an environmentally sound 21st century electricity industry.​ We are looking for a talented, resourceful, and highly-motivated LabVIEW software developer. He/she will be required to serve on a team of LabVIEW developers that is responsible for developing and maintaining the company's energy storage SCADA systems. He/she will also be required to play a role in defining and realizing customer specific software requirements. Qualifications 5+ years of experience developing automated test, measurement, data acquisition, and control systems. 5+ years of designing, developing, implementing, and debugging LabVIEW and LabVIEW RT software. Technical requirements - HardwareBroad knowledge of instrumentation and data acquisition technologies including PXI, NI Data Acquisition, LabVIEW Real Time, NI FPGA, and signal conditioning. Strong hands-on hardware troubleshooting and debugging skills. [*]Technical requirements - Software Experience using Source Code Control Systems like Subversion (SVN) and TortoiseSVN. Familiar with software communication protocols such at TCP/IP, UDP, and modbus. Familiar with all current LabVIEW application architectures. Experience connecting LabVIEW to third-party database systems such as MySQL. Strong background in architecture design and development. Outgoing personality with good communication skills, both written and verbal. Experience creating documentation for large scale LabVIEW projects spanning VI descriptions to system diagrams. Experience writing software requirement specifications. Bachelor of Science (BS) in Mechanical or Electrical Engineering. Masters of Science (MS) a plus. National Instruments Certified LabVIEW Developer (CLD). Must be a US Citizen or Permanent Resident. Preference is given to local candidates. Email resumes to jobs@xtremepowersolutions.com
  2. Check out 'Excel Macro Example.vi'.
  3. QUOTE (Michael Malak @ May 11 2009, 01:28 PM) If the number of plots doesn't need to be configurable, you don't need an array for the indicators. I would just build the FP as you describe with 8 individual graphs. You can use an array of waveforms or a cluster of waveforms to hold the data. If you go with an array, you'll have to index out each of the sets of waveform data to its own graph, or it will put them all on the same graph. For a cluster, you'll just unbundle the data to individual graphs.
  4. QUOTE (normandinf @ Apr 30 2009, 04:30 PM) Thanks for confirming this. Your suggestion above would work except I'm not sure if/how that would handle resizing the column headers. If I were more familiar with using the custom controls editor, I would be more willing to give that a shot. I decided to just make the rest of my FP match the cursors legend and use the built-in cursors functionality. I don't like the way it looks, but it is functional, and that's what matters. I'm still not sure why my other method was shifting the cursors, but that's a problem for another day. Thanks again.
  5. QUOTE (ShaunR @ Apr 30 2009, 12:07 PM) There are some other things I don't like about the looks of the cursor legend, but I can make the rest of my FP match the style and be done with it. Thanks for pointing this out. EDIT: I'm not seeing the property for this. The only font properties I see that are associated with the graph are the label and scale fonts. Am I missing something?
  6. I am writing an app to output a .csv file to an XY graph indicator. It contains a list box that allows 1 or more plots to be selected and displayed. I finished the app, and everything worked as it should, but I couldn't get over how bad the cursor legend looked on my front panel. For example, the column headings are bolded in the cursor legend. There is no other bolded text on my FP. I made an attempt to edit the appearance of the cursor legend, but was unable to figure it out. It seems the cursor legend is all one image in the control editor. I decided to make my own cursor box. I made a multicolumn listbox that matched my FP nicely, and added the functionality to add and delete cursors from the list. Eventually I got everything working, but in my testing, I've noticed that every time I add a new cursor, the old cursors shift one X value to the left on the graph. I have been unable to find any reasonable explanation for this behavior, and I'm wondering if anyone else has seen and fixed a similar issue. When the Add Cursor event is called, the cursor is created. Next, I redraw the graph by resending the same values already being displayed. This may not be necessary, and seems to be the source of the issue, but it was the only way I could find to make the new cursor appear. Without redrawing, the cursor would be created (I confirmed by aborting and checking cursors tab on graph properties), but it would not show on the graph. Using highlight execution, the shift happens during the Update Graph state when the graph is redrawn, not when the new cursor is actually created. I've attached an image of my Update Graph subvi. It seems pretty straightforward, which is why I'm a bit confused by the issue. The true case just passes an empty cluster to the graph as a placeholder for non-selected plots. Any suggestions are greatly appreciated. I would be willing to ditch my cursor box completely if I could find a way to modify the existing cursor legend.
  7. QUOTE (Tim_S @ Apr 9 2009, 07:41 AM) I was curious how this worked, so I played with it for a few minutes. I thought I'd share a bit more advice that should be useful. When sorting an array of clusters, sort 1d array sorts by the first item in the cluster. I assume you want the name first and the time second in the cluster (this just seems like the 'right way' to me). If you just sort the array with a string and a numeric, you get an alphabetical sort on the strings. If you don't care about the order of items in your cluster, just put the number first and sort. Assuming you want the name first, you'll have to index the array, break the cluster apart, reverse the order of elements, reindex the array, sort the array, then index the array, swap the values back, reindex and display. It's not as hard as it sounds. Just play with bundle/unbundle and autoindexing on for loops. Also, there may be a much easier way to do this that I'm unaware of.
  8. QUOTE (neBulus @ Apr 9 2009, 08:35 AM) 8.6 Thanks again for the suggestions. It's not a major concern since I got it working with your earlier advice. I was just hoping someone might be able to clear up why my fix didn't work.
  9. QUOTE (Ton @ Apr 8 2009, 03:57 PM) I suppose I could use this, but shouldn't have to. The graph is set to autoscale and I shouldn't have to change that. One of the graphs was functioning properly as I had it, but the other was not. I tried moving the indicators inside my case structure thinking the data would be written to the indicator before data flow left the case structure. I got the same result as when they were outside the case structure, which is still a bit confusing unless I'm misunderstanding something with data flow. Shouldn't everything in the active case finish before leaving the case? I was able to use a sequence structure as Ben suggested, and it works as it should. Any ideas what I'm missing here?
  10. I went to the one in Austin a month or more ago. The presentations are available here: LINK. As the sole LabVIEW developer at my company, it was nice to meet some others in the area. I didn't see that advanced was any more advanced than intermediate, they just covered different topics. I attended one intermediate and one advanced topic. The opportunity to get my CLAD for free was quite welcome, and it was also a good opportunity to ask R&D some specific questions without having to wait for forum replies. I would imagine the keynote will vary depending on location, but John Pasquarette (http://pasquarette.wordpress.com/) gave an informative talk, and asked for a lot of feedback from the users. In all, it was well worth my time. Oh, and did I mention free lunch?
  11. I'm not able to test it immediately, but I see your point. I initially had the indicators inside the case structure. I don't recall my reasoning for moving them outside, but I think putting them back inside will also fix the potential dataflow problems. Many thanks.
  12. I have a UI with 2 graph indicators. Both graphs worked fine, and autoscaling functioned normally, but they were updating out of sync. I added defer panel updates property nodes before and after the values are written to the graphs. Now when I run the VI, the top graph functions as it always has and autoscales properly. The bottom graph doesn't autoscale at all, despite autoscaling being selected. They both update simultaneously now, but the 2nd graph indicator refuses to autoscale. Have I missed something? Is this a bug?
  13. QUOTE The easiest way to do this part is with nested auto-indexing for loops. I don't fully understand what the rest of your code does, but this will simplify it some.
  14. I have other hardware including NI PXI-6229. I have made some progress by modifying this and using PXI1SlotX/PXI_Trig7 as the destination terminal. I initially failed to understand that TTL7 was PXI_Trig7. I am now able to trigger a single measurement from the backplane. Adding a second should be easy enough. Thanks to everyone for the suggestions.
  15. The DMMs have their own VIs for triggering as far as I can tell. The best example I've found is '\examples\instr\niDMM\Triggers\Cont Acq Multiple Samples - Ext Trig - Ext SampleTrig.vi', although w/o DMMs, I assume the examples won't be available. 'niDMM Configure Trigger.vi' has an input for trigger source. It contains, among other things, TTL0 through TTL7. I can run the example with a TTL source selected and the VI sits and waits for a trigger that never comes. Any idea how I can generate a pulse train for these TTL sources? Would this be where DAQ-mx comes in?
  16. I have 2 NI PXI-4071 DMMs installed in a NI PXI-1045 chassis. I need to trigger them to both read at the same time. My current implementation uses the software trigger, but it is not as precise as I would like. I have looked at all the NI provided DMM examples and spent several hours reading about synchronization with the PXI backplane, but I am having trouble making sense of it. I feel like I should be able to generate a digital pulse train and have the DMMs trigger based on the pulse train. There may be other methods which I haven't considered. What would be the best method for accomplishing this? Is there an example somewhere I may have missed? Thanks.
  17. 'Read from Spreadsheet File.vi' would be a good place to start. This will allow you to load the text file in to LabVIEW as an array.
  18. You should be able to add the files to your installer under 'Source Files' in the build properties. I'm not familiar with .MSM files specifically, but if you need to register them or run them in some way during the install, you can use the 'Run executable after installation' option under 'Advanced' on build properties. I often include a .bat file here to register any necessary files after installation.
  19. QUOTE (nicolasB @ Feb 23 2009, 10:23 AM) You were faster than me, but mine keeps the filename constant and has comments which may be useful. I'll post it anyway since I've already done the work.
  20. If I had to guess, I'd say it has something to do with the fact that the 'Current VI Path' has different output for development vs. an executable. See here: LINK. I can't say for sure without seeing your subVIs. If that's not it, you might try using debugging on the executable. In the build properties, check 'Enable debugging' and 'Wait for debugger on launch'. Build the exe and run it. The program won't be running when it loads. In your project window, click 'Operate' and click 'Debug application or shared library'. You will then be able to probe wires or debug as you normally would, but for the executable. I hope that helps.
  21. Probably so, but in doing so, I learned something and he missed out.
  22. I think this is pretty self explanatory. This will display all numbers in the sequence including one number past the upper limit. Removing the extra value would be easy enough with a case statement around the build array, but I didn't bother.
  23. To avoid causing problems when running your VI in development mode, you might want to alter these settings for the build, but not for the VI itself. You can do this by going to properties on the build specification, then clicking source file settings. Click the VI whose appearance you want to change and click 'customize VI properties'. From here, you can specify appearance settings for the specific build specification without affecting your VI during development mode. Just uncheck 'use vi property' to override the VIs default for the given build specification.
  24. QUOTE (pallen @ Feb 4 2009, 02:25 PM) I considered that. I don't think that's what is happening because when it fails to overwrite the DLLs, it deletes them (and all other files in the build). If it is 'protecting' them from being overwritten, I wouldn't think it would then allow them to be deleted.
×
×
  • Create New...

Important Information

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