Jump to content

jdebuhr

Members
  • Posts

    52
  • Joined

  • Last visited

  • Days Won

    1

Posts posted by jdebuhr

  1. I am Finally getting around to installing LV8.2 I was waiting for my new(er) computer. I moved up from a 2.4 Celeron to a 2.8 P4. Anyway

    Since all my relased code is in 8.0.1 I reinstalled that, but I am also installing 8.2. Now I remember on my old machine that with 7.1.1 I had to uninstall Report Gen Toolkit then reinstall for 8.0 Do I have to do that with 8.0 and 8.2 or is there a way to have the toolkit avail for both?

    Thanks

  2. I checked with PushOk and they charge $24 per license for their SVN plug in (similar charge for CVS).

    That is not too bad.. Although like James N said, I might start using it for Other documents.

    James N,

    I though of doing the SAME thing you are.. I have a Windows 2K machine that has Apache loaded and is my repository. I will be installing a free back-up utility when i get back from my vacation ( I leave tomorrow) I have the link for the free-ware program at Home. My Bro-in-law uses it on his home pc and it looks very user friendly. I plan on installing that on my Win 2K machine and doing a back up to a network drive as well.

    There will be 2 users for now so I could go to Perforce, BUT if I ever added more then it gets costly really quick. The nice thing about Subversion is I can install it and use it at home for other projects and such and it is free.

    I have been doing some practice stuff with Tortoise and Subversion this week and don't mind having it separate from LV. We will see once I start..

  3. Do you know how much a Pushok license costs? I don't want to have to fill out all that info on the website just to find out.

    Brian

    Yeah there is no info on there website for it.. I have to go through too much red tape here for that.. if ther was a free plug in that would be better, but I will slowly learn and adapt to using TortoiseSVN outside of LabVEIW

  4. I'm new to the Subversion world too. About a month ago I setup a server in our lab for our department's SCC needs.

    I was advised to do the one-big-repository method with all my LabVIEW code (or in general, any mass of files that are related). That way it would be easier to reorganize the directory structure in the repository if necessary. A lot of advice I'm taking of faith.. figuring I'll understand the benefit down the road. I going to create another repo for each dept. member just for misc. files not related to any LabVIEW projects.

    Yeah, migrating existing code into the repository is another challenge. I'm almost wanting to dictate that anything which goes into the repository must be cleaned up and rewritten to be more "reuseable". I really want to use this as a catalyst for new and better coding. I'm reluctant to populate the repository with the mess we've been working with before.

    Another tip, in LabVIEW edit the Options and check the "Tread read-only VIs as locked" and "Do not save automatic changes".

    Then before each commit and after each update, make all of your files READ-ONLY. As you know, often LabVIEW will indicate a file has changed when you really didn't change anything. Say some path to a DAQ VI has changed. You may not want to increment the revision number just because of this.

    Then change the write status of only those VIs you are working on. Or you can do it when you save and the "Cannot save VI..." message appears.

    Ctrl-M will "unlock" any read-only VIs allowing you to modify it. But the file on the disk is still read-only and thus protected.

    Good luck,

    James

    Considering I am new to Subversion (and UNIX Commands) it will take a bit to understand everything. As for the code reuse.. I am in the midst of rewriting most of my Code anyway, cleaning everything up, making things better for the end user and even the ability of reusing some vis for other things. I think I am goign to start out with everythign in one repository, currently I have 3 different test apps (with 2 more on the list to be redone) so a total of 5.. 4 of them share many components and the last one just shares a smaller amount. If I were the only one doing all of it it would not be too much of an issue, but I have a second guy who is learning LabVIEW and will be doing some of the coding as well.

    Thanks for the info so far..

  5. Hey All,

    I am working on setting up Version Control Software. I am going to use Subversion along with TortoiseSVN. I have a second PC to use to serve the files (using Apache) I also installed SVN and TortoiseSVN.

    anyway I need to move my projects over to the server.

    I was thinking of one repository for each project, but in some instances some of the Sub VIs are shared for better code reuse instead of having duplicates for each one.

    Another thought would be to keep everything bundled as one repository and then create branches.. since some of the core stuff will be shared..

    I am new to all the SVN Stuff so bear with me.. I also did a search on here but did not see anything that is similar to what I am asking.

  6. I totally forgot about Portmon.. THANKS!!!

    Okay, I captured the data with Portmon. problem is the length is shown in portmon at ASCII.. the data on the serial port is HEX I know what one command is for sure but is shows on portmon as .V.. if I take that and display it as hex in LV it is 0x2E 0x56 0x2E 0x2E. I know thw 3 '.' are different data. I thought that the log file would have the actual data..

    Any way to use labview to convert that data to the correct hex?

    Okay, I captured the data with Portmon. problem is the length is shown in portmon at ASCII.. the data on the serial port is HEX I know what one command is for sure but is shows on portmon as .V.. if I take that and display it as hex in LV it is 0x2E 0x56 0x2E 0x2E. I know thw 3 '.' are different data. I thought that the log file would have the actual data..

    Any way to use labview to convert that data to the correct hex?

    Nevermind, if I would open my eyes Iwould see the ASCII/ HEX Option.. LOL

    :oops:

  7. Hey all,

    I have created programs that will write and read data to and from the Com port on the PC. Now what I would Like to do if at all possible is create a LabVIEW Program that can 'SNIFF' or Monitor what is being transferring on the port. I have a program ( non-LabVIEW) that will be running and I just need to get the data off the port.

    I thought I could use ActiveX or similar but I am not sure. Any ideas?

  8. What can you do with this data if it is out of chronological order?

    Once you get it out of Excel the filesize will no longer bog down the production and viewing of graphs...

    I don't get it.

    Let me try to explain what I am doing and where I stand now

    In 2000, I started messing around with the fuel curves in my car (89 GM OBD1) I have a program to datalog, I learned what the target is for the fuel curve, and how to calculate changes, but I did not want to spend hours going through the data manually., so I wrote a basic program in LabVIEW to do it for me. Originally I would manually sort the data in Excel, save it as a CSV Text file, then push the Sorted Text file through my program. At the time the program was made there were 3 Variables RPM, BLM, and MAP. The BLM was the Actual fueling # and the RPM and MAP were sort of pointers to the BLM. These 3 are in a table MAP was in ascending Columns and RPM ascending rows. I sorted based on RPM, Then MAP. I used 2 For Loops, one inside the other, the Outer did the rows, the inner did the MAP. Then the BLM was calculated against the original value and replaced. The For loops would read form the 2D array with the current fueling BLM then look in my scanned Data (like the attached above) and change the variables.

    I noticed the program was not correct, I forgot to Average the BLM if I have multiple RPM and MAP Values (eg. if I had 6 RPM values of 2200 and 6 with a MAP of 50 but 6 different BLM #s) This is where the sorting was needed. I wanted something that would run well, to sort and Average my data into something useful. First attempts made the program REALLY Slow, but after sorting the data, it has improved (along with 6 years of technology with the PC) So I left the program the way it was with the sorting.

    Now a couple weeks ago I got a bug to redo it, improve and make it more efficient (first version of my program was written in LV5) I was still learning (as I still am) but I over used Locals and a few other things. At the time is worked, looking back at it now, I know it will be done better.

    Other things that were manually removed from the scanned file were OPEN LOOP, LEARN CONTROL OFF, those I can use the simple 2d Sort of One column and delete the unwanted after I sort. I need to double check my code to see how I am looking for duplicates, maybe I don

  9. What you want is a database function that has been shoe-horned into Excel. It might be easier to use a database. I definitely don't have the LV method in my head.

    To all: Does Open G do that? Rearrange the rows based on a sort of a single coulmn?

    To JD: I coiuld help you with what I thought was a newbie question about how to work with a 2D array. I am interested to do the record sort, but I know I don't have time right now. Sorry about that.

    See what I mean about code samples and a good description to start off a discussion? I am glad I didn't make a totally unsuitable example to show you something you don't want to know about.

    Yep, I understand about examples, if I had something I would have attached it. I did get OpenG to work, but due to the firewall I manually download the toolkits. I downloaded the array OpenG toolkit kit and yes there is a Vi to sort a 2D array based off of one Column or Row. Seeing that has given me some Ideas now.

    You could convert the 2D array into a 1D array of clusters.

    The cluster would consist of as many scalars as you have columns in your 2D array. Build the clusters such that the primary sort column is the first element of the cluster, the secondary sort column is second, etc.

    Sort the 1D array of clusters using Labview's 1D Array Sort.

    Convert the Cluster back into a 2D array, putting the columns back in the correct order.

    This may or may not be practical to implement, depending on the number of columns you have.

    You know, that might work out well, I would not really need to convert back to the 2D array but once I get something going I will decide. I used Excel intially since it was simple to add and control. but the more I thought of it is If I built a stand alone app without excel, I am stuck. I will try it and see what happens.

    As for size, the current data is 56 columns and 12031 rows. The rows can be less or more depending on the data. The Data is streamed to a file from a car (OBDI) I am in process of making my own OBDI scan tool (for my GM) I have somethign that currently manipulates data from a 'Off the shelf' scanner but my goal is to make an all-in-one program.

    My movtivation started after taking the NI Intermediate courses. using the Producer-consumer Template. It is also a great way to practice as well.

  10. So you want to duplicate an 'auto filter data sort' where all the columns are sorted according to the sort of a particular column...you don't just want to pull out one column and sort it alone and reasssemble?

    Correct, All the rows are corellated. My other thought is to expand on somethign I already have done and instead of sorting, creat a progrma to search for the data needed..

    As for OpenG commander, I found info on that website to posibly get it working, if not I will install it at home which is where i want/ need it anyway

  11. Start here - it already exists in the OpenG toolkit.

    I assume I need OpenG Commander to get that toolkit? If so, I am not able to access it from work. I have OpenG Cpmmander installed, but it times out. I assume it is a firewall issue but I cannot find any setting to chnge it.

    Samples of the data and vi's are aways good for getting a quality answer and making sure the answering person doesn't spin their wheels trying to fill in the blanks. The LAVA forums make that easy.

    Since I don't want to spin, I will make a general answer: index out the column and sort it, put it back together.

    Mike

    See attach sample of data.. it is in a CSV text file. I will remove 2 header lines leaving one.

    this is for my project at home. this is Automotive scan data.. Lets say I will want to sort by Engine Speed, then by MAP then by BLM, Then maybe 2 or 3 others. I have no code started for what I want to do with it other then the sorting features of excel.

    Download File:post-5194-1153410247.txt

  12. Hey all,

    I am stuck, I am trying to ficure out how to sort data in a 2D array. I would like to have is sorted in decending or ascending order. but I would like to be able to choose multiple columns to do this. Currently I use Excel to do what I need as I have made some Vis based off of the Report Generation Tool kit.

    if there is any way that I could do this without having to have Excel that is what I am looking for.

    Any suggestions on where to start?

    Thanks

  13. Thanks, that helps. It is how I was starting to understand it, but that explanation clears it up. That is the tough part of being the only LabVIEW guy here, no one to bounce ideas off of or ask opinions. Which is Why we are here right?

    Anyway, I think I will be able to use one consumer loop, I don't need the speed of parallel loops, Although the parallel loops would be great for wirting my data to excel, while starting the next task...

    So if I were to use 2 consumer loops, I would also need 2 obtain queues correct?? One for each consumer loop?

  14. Okay,

    I have another couple questions.. I have done Event Structures and prefer them tot he State machine design I used in 6.0 when I first wrote these apps.

    The question is with the queue design, are you able to have multiple Consumer loops and one Producer loop, if I understand it right the Event structur would be in the producer loop, that would handle my UI.

    then if you can have multiple consumer loops what is the best practice to determine which consumer loop would run.

    Meaning could I have a separate consumer loop for Dialogs, another for the actual tests etc?

    EDIT: Also would i be able to set up a notifier within the Consumer loop? so if the Actual test get executed could I use a nofifer to do a task before continuing?

  15. If you haven't had much experience with Queues and the event structure you might want to start with practice on those since that is probably the two most useful tools to have when tackeling a large project (or even a small one). I don't know if you are using a state machine in your current program, but study up on those as well. Some decent examples can be found in the LV examples. Look for Producer / Consumer or Master / Slave architectures. There might also be a state machine example in the NI examples now which would help. I would start by making up a "scratch" VI or a practice vi where you can test out your ideas without all the code that you need to do the actual test(s). Then you can move from there to impliment the idea that you've refined with the code that actually executes the work.

    :thumbup:

    Yep, I have messed with the queues and notifiers a little bit, but will exploer them in more detail. I almost always use a 'scratch' vi for trying new things, then either drop it into where I need it or build around it in a sense.

  16. Backing up from the Test Executive stuff for a moment, you ask about menu and event handling, interVI communications (queues & notifiers) etc.

    Might I suggest that you go on over to www.openg.org and get the OpenG Commander. Then, stop before you download the OpenG Toolkit and all the other available goodies.

    Take some time to study the source code, architecture and style of the Commander itself. You will find great style and LabVIEW architecture principles all through it. Events, dual event/processor loop architecture, dynamic load/run, queues/comms.

    Spend a couple days studying it, then see if it doesn't answer a lot of your issues above as well as provide you with a lot of code/snippets/VIs to use in your test systems.

    Enjoy

    Thanks I will do that..

  17. So even though my profile states I have used LabVIEW for 10 years. The majority of that time was writing code to work within the large application that we were required to use. I had a few other projects that went outside of that realm, but it was in LV4.0 and LV5.0

    When I started at my current job I had LV 6.0 and was required to write some test programs. the very first ones I did have come full circle and have changed as I have one basic shell type program that launches the individual VIs used for each circuit board we test. I am quite happy with that one at the moment, btu need to address 3 other Programs.

    these 3 are unique with exception of sharing some configuration files and GPIB commands. I have the GPIB commands worked out to something that allows me to use my 20year old equipment as well as 1 year old equipment. They are in Traditional GPIB due to some PCs having IOtech non-VISA compliant cards.

    These 3 programs have some user Display's on the main panel:

    XY Graph

    String Table

    Instead of rewriting all at once, I am going to do one, then use as much of the code on the other 2.

    Here is my current menu type set-up using Menu rings

    -Test Setup

    --DUT info

    --Coupler Offsets

    -Equipment Set-up

    -- Analyzer

    -- Sweeper

    -XY Graph tests (plots 1 graph, then drops power, plots graph #2)

    -Power output (reads power at several frequencies and returns power, Drops power takes on reading)

    -Power output Port 2 (reads the same several frequencies at the current dropped power, Adds to the Table with Power output from Above)

    -Print Data, takes all above data exports to Excel, saves and Prints

    -Reset system defaults (Clears all values)

    -Change equipment (allows user to change equipment info this is also launched when first executed)

    -Load system defaults, (loads 2 text files)

    It works fine, but I know I can make it better.. it was written in 6.0.1 and upgraded to 7.1 then 8.0.1 but I did not change much.

    It is at the point now where it is runnign good and there is no current features to be added so I thought now is the best time to re-write it.

    Some of the tests I have are currently sub-vis but I was thinking of dynamically loading/calling them as needed (Xy graph tests and Power output) I think an event structure would be the best for the menus, but how do I handle the Sub menus? they are a menu ring that I disable if you are not in that portion of the test.

    Have have not had too much experience with Notifiers and Queues, would either of those work in some way?

    There are so many features I have not really touched yet but alny suggestions would be helpful.

  18. Hi jdebuhr,

    Welcome to LAVA. I must say that it surprises me that someone who has been using LabVIEW as long as you have would just now learn about LAVA. I hope you get a lot out of it and that we can all benefit from your dozen or so years of experience. The SNR around here is usually pretty good, although we also have our share of fun and off topic follies.

    Cheers

    Thanks,

    I guess even with all the years I have used LabVIEW I still feel limited in knowledge. Partly due to not being able to experiment and explore other functions (especially int he last 5 years)

    I did not really get to use 7.1 until May of 2005. I look forward to learning and helping as I can on this Forum.

    Thanks for all the 'welcomes'

  19. Hello,

    I heard about this Website through a LabVIEW Developer's Day I attended in Milwaukee, WI last week.

    After signing up and receiveing the 'Welcome" PM fromt he Admin, I thought I would take his advice and post a short bit about myself.

    I have been working With LabVIEW since 1995-1996, it was version 3.1 at the time. I remember taking the LabVIE Basics and Advanced Course in February of 1996, I still have the books!!!

    I was Workign for Motorola at the time, and had just moving into a Test Engineering Group. I was a Tech in that group with the main responsibilties of Test System support (mostly hardware). While in that Group I was able to take over some of the assemblies and create tests using LabVIEW, Other int he group had built a decent User interface and we had several guidelines as to what we were able to do and not do. So my LabVIEW Exploring was somewhat limited. I never learning any other Programming Language in College so Most of my LabVIEW experience has been Trial and error and when at Motorola, asking a few other with a bit more knowledge.

    I stayed at Motorola until I was laid off in 2003. The last 3 years while there I was in a group where I was not able to use LabVIEW much. When I left I think the group I was in still was using 6.0 or 6.1.

    After 16 months of searching a landed a job at a smaller company. Here they had one Version of 6.0 FDS LabVIEW. the tests were very basic, the operator still read a procedure and operated Toggle switches ont he screen to run the DAQ cards.

    I was tasked with making it better. Then they had 4 different assemblies that was tested that way (2 pair share a fixture) Now We are up to 11 Assemblies across 4 fixtures. The most the operator has to do is enter the Serial # and revision and the test runs itself. I am the Only Test Engineer here and the only one with LabVIEW knowledge. I guess that makes for good job security.

    I have also taken a couple of RF based test written in WaveTesta nd Redid them in LabVIEW. I finally got them to Upgrade to 7.1.1 PDS with the SSP and we are now on 8.0.1. This is a where I like to be.

    These forums will become very helpfult o tme when I get stumped and need to bounce an idea off someone. I also have posted ont he NI forums, but these are more geared at LabvIEw only, which is nice.

    I have also used LabVIEW to creat other programs at home (gotta love that Home Clause) to help with some other tasks. funny thing is one of my Programs was for a hobby of mine but it keeps gettign feature creep or if I need to try out something, I use that as a base..

    I am enrolled in the Intermediate LabVIEW classes to be taken later this month. then maybe if I feel confident i will take the CLAD. I am just not too sure yet.

    Lastly, I live in a suburb of Chicago, with my Wife and 2 kids (3yr old Son, and 1 yr Daughter) which does not give me much free time. but that is okay..

  20. Since when? If you want to run a VI that isn't wired on the diagram of your VI you have to use one of the two VI Server methods to do it, either a "Call By Reference" node (strict typedef) or use the "RunVI" method (not strict). Actually, there is yet another method for some VIs, call LabVIEW using a system exec call and give it the path of the VI in the command line, but that is a hack and you can't get output data.

    Sorry You are right.. I must have been thinking about something else when I typed that.. It has been a rough Friday..

    I will correct and edit my prior post..

    Aitor,

    What I don't understand is what is making the VI Server your restriction?

    I just realized what I was wanting to say before. While you need the VI Server to Dynamically Load the other VIs, they still are allowed to reside on the same machine. Sometimes when I see Server I forget that 'Server' has different meaning.

    What i had to do when I built my App was be sure I included all of my Dynamically called VIs. this way when you choose them ( in your case with a button) they would then open up.

  21. But how can I call it dynamically from the Frontpanel?

    - Open VI reference. Still working on this one. Seems that it needs the VI server. That would be a restriction. I need to call the VIs one by one without the VI server. All VIs are located on one computer. My "Menu VI" handles all other VIs, I want to select any VI in the frontpanel and call it (action Button?).

    I have a similar scenario. I have a 'Generic' test Shell that I use, the operator chooses which Assembly needs to be tested and I then call that specific assembly's VI using Open VI Reference. I went a step further where many of the options available are the same with each assembly so the Tester/User controls them though the test shell. It works fairly well, I am in process of improving it since it was first written in 6.0.1 2 years ago.

    The Open Reference is a nice feature, but to use the same reference for all of your VIs they need to have the same Connector pane and same Control/ Indicator types on the pane from what I have found

×
×
  • Create New...

Important Information

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