Jump to content

Jeff Plotzke

Members
  • Posts

    144
  • Joined

  • Last visited

Posts posted by Jeff Plotzke

  1. QUOTE(Doon @ Mar 14 2007, 07:10 PM)

    This may be an unpopular alternative :unsure: , but

    XML is marked-up plain text. One can read/write XML files without much hassle at all.

    I have developed an XML database that records serial numbers and tracks changes to modules.

    It took me about a day to write the core vi's needed to interface with the XML database (add, remove, modify, and resolve).

    I decided to go this route because of cost and speed. A purpose-built text-parser will (usually :D ) always perform better than a general purpose XML parser.

    Yes, but writing a generic text-based parser will probably not be very generic.

    You may want to look into using MSXML -- It's an ActiveX object that you can use in LabVIEW. I've built a set of VIs that use this object to read/write XML files. It takes a while to get up to speed on all the methods/properties of MSXML, but after that, it's super easy to use!

  2. I haven't tried it, but inside the 'Sound Output Set Volume' VI on the Sound Output palette, there's a subVI inside that gets the 'channels' of a sound device and sets the volume of all of them. Does each 'channel' refer to a speaker (ie, left/right). What if you use this VI and modify it to allow for two inputs, one for left speaker volume and one for right speaker volume?

  3. QUOTE(spacetoon34 @ Mar 13 2007, 12:20 AM)

    I want to design a main panel with button which every one open a different file.vi and i want to ask how can i size my panel such that the user saw the tools when execution without apperence of empty region.???

    Are you trying to embed the subVI's panel into the main VI or are just looking for a pop-up window?

    If it's the pop-up, size your VI's window to the size you want.

    If it's embedded, you'll use the entire size of your subpanel, you could change the height and width of your subpanel based on the height and width of the subVI you're opening, and then re-size your main VI's window from that... but it would be much easier to use a pop-up subVI instead of this.

  4. QUOTE(Guia @ Mar 8 2007, 07:38 AM)

    Does someone know, how do i use the "Variant to Data" function in a SubVi, or simply a variant, so that the subVi output wire automaticaly adapts to my indicator?

    You could use a polymorphic VI that has different output types, and create one for every type you want to use. You'd also have to manually switch between them, or create a 'type' input terminal that would pick with instance you're using.

    Not the elegant solution you're looking for, but it's less confusing than XNodes :P

  5. QUOTE(crelf @ Mar 6 2007, 10:15 AM)

    No - it's none of our business where someone logs on from, nor should the mob mentality dictate who should and shouldn't be allowed to contribute (that's what the super-uber-mega-hyper-global-sys-admin is for ;) ) If you're unhappy with a user's performance, and suspect that they're using two logons, report it to the sys-admin.

    I agree -- and especially for those of us with static IPs, I'm not a fan of those boards that broadcast my IP to every member...

  6. QUOTE(lraynal @ Mar 6 2007, 09:57 AM)

    I tried the Internet Toolkit, but the transfer speed is pretty slow... (4.54 seconds to transfer the NI-RT.INI file !!!)

    I tried a quicker way (0.054 seconds !) using the FTP command (via the SystemExec.vi), but can't copy directly my RT file to my D: drive !

    I agree with TiT, one thing to try is to disable active transfers -- It will probably be less headache in the long run too in case you move to a network which has a firewall and doesn't support active FTP.

    Other than that, I've also seen huge speed improvements from the 7.1 internet toolkit to the 8.20 version. I'm doing a project now that I'm transfering hundreds of MBs of data from a RT system to a Windows Host, and I'm getting great speeds using 8.20. I was quite scared it having seen the extremely slow transfer rates in 7.1 before. I'm not sure what changed between the versions, but I'm convinced that something happened! :)

  7. QUOTE(tcplomp @ Mar 2 2007, 04:30 AM)

    I use the 'Portal' page all the time too -- Luckily I have it bookmarked and it still works... :) But I was surprised when I went to click it today and it was gone... Can it come back? Thanks Michael!

    QUOTE(Jeff Plotzke @ Mar 2 2007, 10:18 PM)

    I use the 'Portal' page all the time too -- Luckily I have it bookmarked and it still works...
    :)
    But I was surprised when I went to click it today and it was gone... Can it come back? Thanks Michael!

    Oops... Now I notice that you moved it over to the right and didn't take it away... that works for me!

  8. QUOTE(alnaimi @ Mar 1 2007, 01:48 PM)

    Ok , OK !! You told me the sychronization not in DAQ level ?? But your example show that?? is not??

    OoOoh , sorry I know I am so noisy but I ahve no source 2 learn LAVA is my only one

    There's (at least) two ways to synchronize DAQ inputs to outputs:

    -Using a start trigger between both your input and your output and using buffered reads. This way, you can set the exact waveform to output, trigger both the output and the input, and read all your data after you've outputted the entire waveform. However, since you're not using NI equipment, I'm not sure if this will work. This way is shown in the one example we sent you.

    -A slower way is to do point-by-output output and input, which would work with any DAQ card. Each iteration of your loop you'll output a single value to your analog output. Then, you read your input with an analog input. You can use dataflow to accomplish this by making sure you have at least one wire (most likely your error wire) between your analog output and analog input. It's very important that you ensure that you output before you read your input...

    If you've never done data acquisition before, you'd really learn from getting a LabVIEW DAQ manual. There's also numerous example on ni.com. I'd recommend playing around with those to learn how they work. That said, feel free to come to LAVA with questions and we'll help you -- the site is here for collaboration, but LAVA members won't write your VIs.

  9. QUOTE(alnaimi @ Mar 1 2007, 08:18 AM)

    I mean My DAQ is from Keithley and its different than u use

    I've never used Keithley DAQ, so I can't help you there. However, the topic can be applied over any type of data acquisition. Without doing synchronization on the DAQ Card level, you need to make sure that you generate one sample from your output and then read one sample from your input after you set your analog output value.

  10. QUOTE(alnaimi @ Feb 28 2007, 08:39 AM)

    u know , my curent is small coz the resistor is 47 ohm , but i have test the curent , there was ... but why not logical cuve?? do u think i need buffer??? sychronization?

    You'll absolutely need synchronization between your output and your input. Otherwise, you'll have no way to accurately build your XY graph. In the VI you posted yesterday, there wasn't any synchronization -- You output 100 samples of a 10Hz sinewave and read the input each iteration. There's also no guarantee that you'll read your input after you set your output. For this reason, you need to think about these issues in this VI.

  11. QUOTE(alnaimi @ Feb 28 2007, 01:28 AM)

    IT draws but not real current versus volatge ,,, any help plzzzzzzzzzz??

    need it plzzz and thnx for ur time

    Are you getting real values in for your current? Have you probed your analog input to verify? The graph won't show what you're expecting if you don't actually acquire that data.

  12. QUOTE(Joost van Hamond @ Feb 27 2007, 03:55 PM)

    Answerering your questions Crelf: All kind of webpages are examples, it's not for a specific webpage. The pixel I would like to check can be all over the page, so it is posible that it will be an image, but it could be text as well. I would like to check different 'pixel places', but I don't think that will be a problem. And finally: I didn't try anything so far, because I really have no idea how to deal with this....!

    Joost,

    Just a thought I had that you'll probably need to watch out for... Depending on how (which browser) you render the webpage in, you'll probably get different results. There's many differences between the way Internet Explorer, Firefox, Opera, etc. renders pages (especially once you get into style sheets and such) that could throw off your application and give you different results. Also, if you're planning to distribute this application, most browsers allow the user to override color settings (like background and text colors) for handicapped users.

    Just something to think about...

  13. QUOTE(French LVer @ Feb 27 2007, 09:22 AM)

    Yes Jeff. One PID for each valve in parallel :

    - Coarse valve PID with a "loose" P (in order to avoid resonance).

    - Fine-tune valve PID with neat set of PID (in my case, I-parameter is doing all job).

    Great -- Thanks again for all the suggestions! I think this is how I'm going to implement it. I'll let you know how it turns out! :)

  14. QUOTE

    So i use a loose proportional regulation loop (no I and D) for coarse valve.

    And fine-tune valve do all regulation job (with mainly integral).

    QUOTE

    It depends if you need a fast response on a 0 - 100% command. P regulation is loose and I regulation is only on fine-tune valve.

    Thank you both for your help! I do know that the system has a slow response rate; as for stability, I'm not sure. A "fast" response isn't necessary in most cases.

    So, to make sure I understand completely, I should be able to run control on both valves in parallel, using a P-controller on the coarse valve, and a I-controller (perhaps with a very slight P) on the fine valve. Correct?

  15. QUOTE(crelf @ Feb 26 2007, 09:02 PM)

    Actually, if your fine setpoint is good at 10% and you know how much 10% of your fine is in relation coarse, then once you've reached your setpoint, you can slowly (relatively speaking :) ) start bringing your fine back to 50% while adjusting your coarse to compensate - then, if your input changes a little, you're in the best place to be able to adjust for it.

    The "slowly adjusting back the fine valve to 50%" part logic frightens me a bit... especially while doing PID control of the system. I agree that in theory your plan should work fine... but theory never likes to play nice with me... :)

  16. QUOTE(GregSands @ Feb 26 2007, 05:39 PM)

    I've kept looking at this - the Global variable that is created by the Shared Variable manager can be used directly without problems either. And the coercion dot is perhaps because the data type has lost its "typedef" in the diagram, although it still exists in the manager.

    That's right, Greg. Shared Variables don't keep their typedef properties. Once you create a Shared Variable from a custom control, the variable takes on that control as 'custom control' without any link to the typedef you created from. This can be a little annoying at times, especially when you drop down a shared variable and create a constant from it -- Watch out -- The constant you create is not connected to your typedef!

  17. QUOTE(crelf @ Feb 26 2007, 07:57 PM)

    Your best bet is to know how coarse and fine are relative with respect to each other - ie: fine full scale will be representative to a percentage of the full scale of the coarse: then, when you do swing the fine back to 50% you should simultaneously adjust the coarse to compensate for the instability. For example, if your fine full scale represents 10% of your coarse full scale - if your fine is at 20% and then you want to swing it to 50% without making a change to the output, you'll need to swing your coarse down 30% of 10% (around 3.3%). I'm not 100% that I've been 100% clear - give me a yell if you need me to clear it up. Once you've got the concept down it shouldn't be too difficult to set it up - it's just the relativity that you need to work out.

    I understand what you're saying -- That's a good idea. I set the fine valve back to 50% so the next time I switch back to fine I have my "full-range" again. My worry was that if I got to a setpoint with a fine valve setting of 10% open or so, then had to jump to my coarse, the next time I jumped back to my fine control, I only had 10% to play with without fully closing the valve and having no where to go.

    So, while writing this, perhaps it makes since to have it switch when it's a certain delta away from the setpoint. Using an example of the coarse valve supplying a max flow of 100 liters/min and the fine valve supplying 10 liters/min, I want to make sure that I never switch to the fine valve if I'm more than 10 liters/min away from my desired flow. Using a percentage of setpoint may start introducing some problems...

    Does this make sense?

  18. This isn't exactly LabVIEW, but hopefully someone has done this...

    I'm trying to do PID control of a system. The input of the system is two proportional valves -- One valve is a large coarse valve, the other is a smaller fine-tune valve. My system must use these two valves in order to achieve a desired flow of the overall system.

    My thought is this: I monitor the feedback to see if I'm within x% (x to be determined) of my desired setpoint. If I am not, I set my fine valve to 50% open and adjust my coarse valve using PID until I'm within the x%. Once I get within the x% of the setpoint, I switch over to another PID loop, maintaining the current value of the coarse valve, and use the fine-tune valve to home in on my setpoint. However, if I detect that the setpoint drifts out of the x%, I set my fine valve back to 50% and then re-adjust with my coarse.

    Both PID loops would be running constantly, however my logic would determine if I use the current values or maintain previous values to the system. My worry is the switch points of this logic -- How will the PID react? My hope is that since I'm constantly inputting and running both PID controls, my output won't jump when switching. I understand that I'll definitely need hysteresis so that my system doesn't switch back and forth at the x% point.

    Has anyone done anything similar that could give me a few tips? Thanks all!

  19. QUOTE(alnaimi @ Feb 26 2007, 05:17 AM)

    its still the same !!!!!!!!!!!!!! :headbang: I still really need ur help

    thnxxxxx

    What exactly isn't working? Are you not getting data into your VI? Is your data not what you're expecting? Is your graph not showing your data?

×
×
  • Create New...

Important Information

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