05-25-2011 02:27 PM
I've been reading the boards here for a bit and I really appreciate all the time experienced users spending contributing. I feel like I've learned a lot. I am hoping some experienced LabVIEW devs can give me some advice.
MY PROBLEM
The company I work for pours hundreds of thousands of bottles of fragrance oil every year. We carry over 150 different oils with widely ranging viscosities and sell them by weight. We bottle small batches at a time (25 to 100 lbs) into a range of small bottles 1, 4, 8, and 16 ounces.
Due to the small batch size, need for net weight filling, and wide viscosity range we've had a VERY difficult time finding a commercial filling system that will work and is affordable (< 50k).
I am a programmer for this company who works on the web and operations. I work mostly in ruby and javascript. I had heard of LabVIEW before, but really became interested in the idea of using it to solve this filling problem when I started using the super simplified version included in Lego Mindstorms NXT a few years ago.
MY IDEA
I've been thinking about trying to build a filling machine using LabVIEW, a USB load cell (to remove the complexity of programming a load cell), and a simple valve to control flow from a reservoir to the bottle. Ideally a user would put a bottle on the load cell under a valve stem, enter a number of ounces (1-16) and press fill. The system would tear the weight of the bottle, then open the valve and keep it open until the correct weight it reached. Once this is perfected I would expand to 4 heads (I would outsource tanks and rigging to a local fabricator).
MY QUESTION
Compared to the projects I have been reading about on this board my plan seems very simple. But I've learned the wise developer doesn't underestimate. I'm wondering if anyone has tried anything like this and whether or not someone like me with general engineering skills, OOP programming skills, and a lot of patience and ability to learn could reasonably handle a project like this. I have also considered working with a local Alliance Partner.
If yes, NI hardware advice would also be greatly appreciated.
Thanks!
Mike
05-25-2011 02:37 PM
I can't speak to the hardware question since I use very little hardware myself. As for the scope of this project I suspect that you have the necessary skills. The one thing you really need to get a solid understanding of is the difference between sequential (traditional) programming and dataflow. You structure your code differently when using dataflow than you might if you were writing traditional code. You could work with an alliance member but your budget sounds pretty small. What you might consider doing is working on your code and during the process post examples of the way you plan to implement your logic and architecture here. Get feedback from the community and use that to help you develop your code. As long as you don't expect folks here to write your code for free I am sure people would be willing to give you feedback on your approaches and your code.
05-25-2011 02:42 PM
Doing this project for the first time is interesting as well as challenging, I have a question
1.Are you planning to build a complete controller system which includes conveyor for bottle movement, or the person will take different bottle size manually to fill the fragrance oil ?
2.Are you planning to have one filling station or many filling station for different bottle sizes ? If only one filling station then task of filling becomes bit complicated and challenging.
As of now I can think of two but there would be many things which will come up eventually.
Depending on how you want to do one can really come up with the hardware required?
05-25-2011 03:20 PM
I agree with Mark that you can probably do it. The question comes down to a management decision: How much time and how many wrong decisions about hardware and software are they willing to let you spend compared to what having a consultant (NI Alliance member or otherwise) would cost?
Lynn
05-25-2011 03:42 PM
05-25-2011 04:07 PM
The only real show-stopper I see is that wide range of viscosities and filling by weight.
Challenge: to predict the weight poured from the instantaeous bottle weight. The weight of the stream not in bottle and some surface factors related to fluid density and viscosity are going to be signifcant sources of error at the small sample weights if there is truely a wide range of viscosities. You may need to predict the stream weight on a fluid by fluid basis. At 150 oils the cost of running the experimental data will eat up a largeish chunk of the <$50K budget.
05-25-2011 06:33 PM - edited 05-25-2011 06:42 PM
Regarding hardware advice, I would suggest talking to the sales rep in your area. What I have found in the past is that even though they are "sales reps", they do not push things you do not need onto you. The sales reps I have worked with have been really good at suggesting hardware that is just slightly, but not too much more, capable than what you need. I cannot keep up with the NI catalog and it isn't always intuitive to browse through the hundreds of products that NI has on their website.
Regarding software development, you can definitely get something up and running. If you desire to use LabVIEW in the long term, just jump in. It is a lot easier to get a functioning application built in LabVIEW than in many other programming languages. As with any other software project though, every feature you add in will require some learning time and then some development time. Like somebody else mentioned, it comes down to a management decision: What capabilities do you expect from the system? What compromises can you make (development time, operating speed, flexibility, scalability, ease of use, etc.)?
05-25-2011 06:45 PM
someone like me with general engineering skills, OOP programming skills,
By the way, you won't even need OOP programming skills. General engineering skills are more than enough for this sort of project.
05-26-2011 02:18 AM
Hello,
I absolutely agree with Jeff Bohrer,
Programming part should be no problem (for a good programmer) at all. The main problem may be in the filling machine.
One very important question is what is the maximum amount of time you can afford to spend for filling a small (1 ounce) bottle. And what is the maximum error in weight that is acceptable. I am a bit surprised that you define your products by mass instead of volume.
The continuous weighting is applicable only when your oil flowrate (liter/second or gram/second) is low enough not to cause errors in weight due to (slow) response times of your software & hardware & filling process. As far as I could imagine once you close the valve you get some transient flux that also contribute some mass into the bottle and this transient contributed mass is highly viscosity dependent and quite probably also not well determined at all.
In my opinion (although I have no experiences with fluids only with gases) it might be wiser to use some form of piston filling machine where the the initial piston motion would suck in the required volume of oil from the tank. By closing the valve to the tank and opening the valve to the filling tube the opposite motion of the piston would then fill the bottle with the required amount of oil. This way you eliminate time dependency. (Hopefully you know the densities for your oils to translate between volume and mass). In such case the distance of the piston motion would need to correspond to the mass (or volume) of your bottle.
best regards,
Bojan
05-26-2011 10:53 AM
@S G wrote:
By the way, you won't even need OOP programming skills. General engineering skills are more than enough for this sort of project.
You could benefit greatly from good OOP skills. Using native LVOOP can help to make a very robust design for a LabVIEW application. OOP translate across languages and is really more of a design technique rather than a language issue. A solid OO design is a great place to start even in LabVIEW.