Jump to content

Phil Duncan

Members
  • Posts

    62
  • Joined

  • Last visited

  • Days Won

    1

Everything posted by Phil Duncan

  1. Thanks for your replies. I have since re-structured the XControl and now it performs as I would like although there are still a few bugs. I will review your submissions in detail as I am sure they will shed some light. Cheers & Beers (particularly cold ones given the current heatwave in Adelaide )
  2. Greetings All, I have been working on a relatively simple XControl for a project we have atm. Right now it is a simple single ended Bar graph with some alert features. The user can specify the upper and lower limits of the range, a warning threshold, an alarm threshold and a warning time. This is version 0.1 of the final XControl which will have a lot more functionality including double ended (bi-directional fill) display options. Operation: If the data value is in the warning range, the BG colour of the bar chart turns orange If the data value is in the alarm range, the BG colour of the bar chart turns red along with the BG colour of the numeric indicator under the graph. If the data value is in the warning range for more than the warning time limit (default = 2sec), the BG colour of the numeric indicator turns red. After setting up all the panel resize and scaling issues I have finally implemented some of the operating logic. Because the XControl involves some timing functionality (essentially a stopwatch), I decided to use VI Server to call a dynamic (stopwatch) VI. I tested the XControl and it works exactly as expected, until..... I added a second bar graph XControl to my tester app "PLAYTEST Bar Chart.vi" only to find that each XControl is messing with the same stopwatch VI. I have tried all combinations of re-entrancy settings and read plenty of posts about re-entrant VI and data spaces etc, frankly I am more confused now than I was before. What I need is to have each instance of the XControl talk to it's own stopwatch VI. Is this possible? Cheers & Beers, PS Attached code is in LV 2009. Dynamic Bar Chart.zip
  3. Name: Multistate Boolean LED Indicator Submitter: Phil Duncan Submitted: 04 Jul 2009 Category: X-Controls LabVIEW Version: 8.5 Version: 1.0.0 License Type: BSD (Most common) Make this available on the VI Package Network?: Undecided Multistate Boolean LED Indicator V1.0.0 Copyright © 2008, Phillip Duncan All rights reserved. Author: Phillip Duncan --see readme file for contact information Background: I have had many people ask for an LED type indicator for their project. During development, I often get asked to have this Boolean (ie 2 state) indicator display one of (more than 2) colours. Whilst that in itself is not difficult, more often than not I am then asked to make the Boolean LED flash as well to highlight certain states. For example a single LED will often need to indicate the following states: OFF (green, red or grey) ON (Green, red or grey) Flashing (green, red, any other colour) I have had so much demand for this functionality, that I decided to develop this XControl and share it with the LabVIEW Community. Many thanks must go to Aristos Queue and his inspiring "Scrolling LED XControl" example. Description: This XControl is a typical Boolean LED indicator that can also be configured to flash between two user defined colours. The flashing interval can also be modified. When not flashing, the XControl behaves as a normal Boolean LED. This XControl is an indicator only is is not intended to be used as a control. Dependancies: There are no OpenG dependencies for this XCtonrol Known Issues: If you save this code for version 8.0/8.2, you may encounter issues trying to assign multiple properties in one property node. This is a bug in LabVIEW 8.0/8.2 Change Log: 1.0.0 Initial release Click here to download this file
  4. 1,791 downloads

    Multistate Boolean LED Indicator V1.0.0 Copyright © 2008, Phillip Duncan All rights reserved. Author: Phillip Duncan --see readme file for contact information Background: I have had many people ask for an LED type indicator for their project. During development, I often get asked to have this Boolean (ie 2 state) indicator display one of (more than 2) colours. Whilst that in itself is not difficult, more often than not I am then asked to make the Boolean LED flash as well to highlight certain states. For example a single LED will often need to indicate the following states: OFF (green, red or grey) ON (Green, red or grey) Flashing (green, red, any other colour) I have had so much demand for this functionality, that I decided to develop this XControl and share it with the LabVIEW Community. Many thanks must go to Aristos Queue and his inspiring "Scrolling LED XControl" example. Description: This XControl is a typical Boolean LED indicator that can also be configured to flash between two user defined colours. The flashing interval can also be modified. When not flashing, the XControl behaves as a normal Boolean LED. This XControl is an indicator only is is not intended to be used as a control. Dependancies: There are no OpenG dependencies for this XCtonrol Known Issues: If you save this code for version 8.0/8.2, you may encounter issues trying to assign multiple properties in one property node. This is a bug in LabVIEW 8.0/8.2 Change Log: 1.0.0 Initial release
  5. Hi all, I have recently installed Perforce on our server (P42008.2) and Perforce Client (P4V/NTX86/2008.2/188141) on our developers PCs. I then configured LV SCC, telling it to use Perforce Command Line and told LV where to find the server etc. I then moved an existing LV Project to my workspace folder and opend it in LV, right clicked on the top level VI and selected "Add to Source Control...". A window popped up showing me all the dependencies of the top level VI and clicking OK displayed a window telling me that each file had been added to the depot as " - opened for add". I click OK and LV does not indicate the files are in SCC. I then switch to the P4V client window and submit the changelist (adding the VI and it's dependants to Perforce). I repeat this process for the .lvproj file and voila!, the project is in Perforce. Back in LV however there is no indication the project has been added to SCC (no check in/check out glyphs on project icons) and when I right click on the project, I only have the option to "Add to Source Control..." again????. Of course trying to add the project to SCC again thows up erros about existing files etc. What am I doing wrong?? PS I am using LV 8.5.1, all PCs are win XP Cheers & Beers :thumbup: :beer:
  6. There is an alternative (quick and dirty) way to achieve this without delving into OOP. You could customise a control (boolean, dial etc), set the disabled property to 1 to prevent anything happening when the user clicks on it then simply change the control's position on the screen according to your needs. I have included a simple VI to demonstrate what I mean. I used a ring control so that you can even rotate the car to head in the direction it is traveling !! This may be too simple for what you need, but it certainly is quick to implement. Cheers & Beers :thumbup: :beer:
  7. QUOTE Thanks folks for your advice, very useful as always. I have not locked into a hardware solution yet but I think that I will try the DAQmx read properties to continuously acquire and maintain 16 circular buffers and trigger in software. It won't be pretty but I think it is the best approach. Thanks once again for the great advice. Cheers & Beers :thumbup: :beer:
  8. Hi all, I have a tricky DAQmx problem, at least I think it's tricky (it is getting rather late). I need to acquire analog (voltage) data from 16 channels. The start trigger for the acquisition needs to be either an analog rising edge or falling edge on ANY of the 16 channels. I am currently using a simulated M series PCI 6250 to try this out but I can't seem to set up the triggering. It seems that a DAQmx task can only have one single trigger. I could try to set up 16 tasks, each with their own trigger then try to acquire data on all tasks if any task triggers but this seems ludicrous. Has anyone dealt with this issue before? Oh and to really complicate things, the acquisition duration is around 30ms, so around 20kS/s/channel minimum and the input voltage range is 0V-14V (I know the 6250 is only +/- 10V I am just using it for prototyping a concept). So if anyone can recommend suitable DAQ hardware I am willing to listen, the only option I have found that allows >10V is an SCXI 1104. Cheers & Beers :thumbup: :beer:
  9. I must say that Pink Floyd and Dire Straits (Brothers in Arms = Best Album EVER produced) are fine choices but for long sessions on the computer(s) I always cue up several 2 hour mixes of A State Of Trance, hosted by Armin Van Buuren (voted 2007 worlds number 1 DJ). There's something to be said about my mind state when coding and preferred music genre...trance!
  10. QUOTE (crelf @ Aug 29 2008, 03:01 AM) GRRRRRRRRRR I can't believe I missed that in my checks. Thanks guys, sorry for wasting your time. All is good again. Looks like I'll meet that timeline after all Cheers & Beers :thumbup: :beer:
  11. QUOTE (crelf @ Aug 29 2008, 12:25 AM) Why yes! I get a very helpful explanation. The full text reads like this: "An error occurred loading VI "Real Inverse Matrix (LU).vi". LabVIEW load error code 21: An external subroutine required for execution could not be found. :headbang: I get the same message for 4 other missing vi's that are all from the linear algebra palette. After clicking "OK" for each error message, I get a nice summary of all the missing VI's. There is no mention of unregistered or missing DLL's. This is not the same as DAQ files that must be loaded on the target machine separately, all the troublesome VI's are included in the VI settings tab of the App Builder, so LV knows they are required for the exe. As far as I know these files call the lvanlys.dll, but it is not included in the build and I cannot force it into the build. The lvanlys.dll was put in c:\NI\Shared\LabVIEW Run-Time\7.1 directory on the target PC after installation of the executable (via installer files). QUOTE (crelf @ Aug 29 2008, 12:25 AM) You're, of course, not right at the end of the project, right? You've subscribed to the "build early, build often" mantra, right? So this isn't a major timeline issue yet, right? Yes, sort of, and no. Cheers
  12. Hi all, I have been happily developing an application in LV 7.1 (not my preferred version) that needs to be compiled into an executable. I am familiar with the app builder and the executable runs fine on the development machine. It fails to run on another PC that does not have LV installed. I built an installer to ensure the LV71 run-time engine was included. When I run the app I get "An error occured loading VI 'Real Inverse Matrix (LU).vi'. LabVIEW load error code 21.... I get the same message for a bunch of other linear algebra functions that are in the program. I am aware of many other "code 21" posts but they all seem to be related to missing items like DAQ, IMAQ etc. I have checked here and verified that there are no (listed) special requirements for linear algebra functions like the ones I am using. I have tried copying lvanlys.dll, adding the missing VI's as dynamic VI's and support files. No good. I have noted that all the "missing" VI's are in fact included in the VI Settings tab of the app builder as shown below. Is there a magic post that explains a very obvious solution, is there a trick that I have missed or is there some obscure reference to a work around for including linear algebra functions? Your help is, as always, very much appreciated. Cheers & Beers :thumbup: :beer:
  13. QUOTE (Justin Goeres @ Jul 12 2008, 07:43 AM) That result is to be expected. You have not taken into account the quantum nature of chocolate chips in dough. There is a real, though very small, probability that ALL the chips could end up in one loaf, even if they were all mixed into the dough for the other loaf. You should be lucky you didn't find an elephant in there as well!!
  14. Thanks for the responses. I agree the 4472 is a better solution for the client unfortunately they are using an SCXI system that has been there for years and they are hesitant to pay for a replacement system, particularly when the 1531 module is the second SCXI module they have tried to use (initially they were trying to use a 1520 which does not incorporate IEPE excitation). My only concern is that the local distributor for PCB informed that these sensors only measure a change in applied force as Dan mentioned. He stated they would not measure a static load. So even if we went with the 4472 option and applied DC coupling we may not be any better off. Which leads me back to another aspect of the original problem. The acquired signal levels are very low and applying the calibration factors from the OEM does not help. I am waiting to hear from a senior technical guru from PCB about the sensor, just to confirm we are using it correctly. Thanks again for your help Cheers & Beers :thumbup: :beer:
  15. Hi all, I am having difficulty getting meaningful data from a PCB 208C model dynamic force sensor. I am trying to acquire the maximum force applied during a dynamic event. This device is an ICP device, so we are using an SCXI 1531 module to excite the sensor. I have some issues with the data values we are seeing and I am not sure of the source of the problem. We have calibration data from the OEM which states the sensor returns about 10.33mV per pound-force (lbf). My first problem is that this sensor is a DYNAMIC force sensor that only measures CHANGES in applied force. If you apply a static load, you get a zero reading. This leads me to believe the output from the sensor is actually in V/lbf/sec. I have integrated the input signal then applied the calibration value to determine the maximum force applied during the dynamic event in lbf. The results are REALLY low. The range of the sensor (from the calibration data) is 0-5V (0-500lbf approx). I have applied a known force on the sensor using a force gauge and examined the signal in MAX test panels and simple DAQ assisstant Vi's. Applying a force of around 150lbf we see values of 0.3V max which equates to around 30lbf according to the cal data. Not coming from an electronics background, I am unsure whether there are issues with AC coupling for this particular sensor or if there is anything particularly unusual about this combination of sensor and SCXI 1531 module. If anyone has used this type of sensor successfully, I would appreciate any advice. Cheers & Beers :thumbup: :beer:
  16. I have had a look at this. Normally the quickest way to "name" the data in a wire is to connect it to/from a control/indicator. Then the data inherits the name from the control/indicator label. I could not see an easy way to achieve this in your example. That is not to say that suach a method exists. However upon digging quite deep within the Write LVM express vi, I managed to find a few useful vis that allow you to tap into the details of dymanic signals. I have attached a modified vi for you. Cheers & Beers :thumbup: :beer: Download File:post-4848-1213771823.vi
  17. QUOTE (sasinew @ Jun 18 2008, 04:37 AM) Hi Sasi, I am not sure what exactly you are trying to achieve. Do you want LabVIEW to control a windows application or do you want to include a customised file menu in your own LabVIEW compiled executable application? Cheers & Beers :thumbup: :beer:
  18. Thank you folks for your input. I have since looked at different approaches but a distributed system is still the best way to tackle this problem. I think I will try rolfk's ideas. Fortunately (and surprisingly) the algorithms have been configured in such a way that the distribution of processing segments and mashing of results is straight forward. Thanks again. Cheers & Beers :thumbup: :beer:
  19. Hi All, I am working on a pet project that involves a MASSIVE number of calculations (in the order of 1175445251780800!). I have streamlined the application to prevent running out of memory but the calculation time is still far too excessive. So I am considering some sort of technique to share the computation load across multiple PC's on a network, akin to the SETI or human genome projects. Has anybody achieved something along those lines with LV and could provide some usefule links? Much appreciated. Cheers & Beers :thumbup: :beer:
  20. QUOTE(neB @ Feb 5 2008, 11:47 PM) I will investigate Keyence thank you. I don't think tapping into an encoder is an option here unfortunately.
  21. Hi All, First off, if there is a more appropriate forum for this topic, please let me know and I will bother them instead . However, since I will be acquiring and analysing the data from the sensors using LV, I am hoping someone here has already done this. I need to measure the angular travel (max travel angle) and angular travel rate of a UUT using distance sensors (ultrasonic/IR etc). The UUT is a 76mm diameter plate that may be flat mirror glass, (chrome or glass first surface), curved mirror glass, stainless steel or black moulded plastic (with or without textured finish) oh and the UUT can be all of the above coated in a layer of frost, dust, salt or mud. I also need to measure current draw but that is easy. The expected angle of travel is +/- 20 degrees from central position at 0-6 deg/sec. Sample rate of 1kHz and linear accuracy of +/- 0.012mm, angular accuracy of +/- 0.01 degrees is also required. It is anticipated I will use 3 or 4 sensors to calculate angles and angular rates. Does anyone know an appropriate sensor that will achieve this? I have found a few sensor sites but I cannot find the tech data (accuracy, sample rate etc). Any and all help is very greatly appreciated. Cheers & Beers :thumbup: :beer:
  22. Hi all, I have been working on a project that warranted saving data as XML. I am using LV 8.5 and have implemented LVOOP classes in the project and developed the code to flatten the class data (actually an array of classes) to xml. No broken wires and things are going fine. When I started testing, I found that LV could write the flattened (array of classes) to an xml file that I could open in a browser and confirm was a complete record of the class array. Unfortunately, when I tried to unflatten the xml file I got nothing. After a little investigation I discovered the following: In LV 8.5 you CAN'T wire a class to the flatten to XML primitive. In LV 8.5 you CAN wire an array of classes to the flatten to XML primitive. Here is the resulting XML string output. And when you try to unflatten the XML data you get the following msg. Overall I have found the inconsistant behaivour quite annoying, and the de-bugging time was frustrating also. Incidently, in LV 8.2 you cannot wire either a class or an array of classes (as above) to the flatten to XML primitive. Which agrees with the error message that is displayed in LV 8.5. Just something for you all to be aware of. Cheers & Beers :thumbup: :beer:
  23. QUOTE(Jim Kring @ Jan 24 2008, 09:44 AM) Great Post Jim, I agree completely. I have just about completed a project that uses the native LabVIEW XML schema and found that whilst development time is reduced, the resulting xml data is not very readable by people not familar with LabVIEW terminology. And yes the structure can get quite cumbersome eg. <Cluster><Array><Cluster>.. blah blah</Cluster></Array><Cluster> etc. I am certainly going to investigate the LabXML and/or MSXML options for future projects. Of course I am eagerly awaiting the release of the cat you mentioned !! Incidently, I did run into an annoying inconsistancy (bug) converting class data to XML which I will post shortly. Cheers & Beers :thumbup: :beer:
  24. Hi all, Just wondering if anyone out there has looked into incorporating google earth into a LV app? I would like to have an app that can re-play a google earth "trip" based on a GPS track, perhaps with some zooming etc. Anyone investigated such a concept? I assume it would involve some .NET or ActiveX work, maybe even some DLL calls. Any advice would be welcome. Cheers & Beers :thumbup: :beer:
  25. QUOTE(Adnan @ Dec 5 2007, 07:12 PM) Thanks for that I will take a look at those utilities and let you know how things go. Cheer & beers :thumbup: :beer:
×
×
  • Create New...

Important Information

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