Jump to content

Assistance with Syringe Testing Design


skye2388

Recommended Posts

About me:

Hello everyone, I am a 20 yr old Mechanical Engineering student going into my 3rd year of school. I am currently working at a co-op/internship position that is part of my college curriculum at Northeastern University. I am working in the R & D Endoscopy department as a mechanical engineer for my company which is involved in the medical equipment industry.

I have 2 years of prior programming experience in C++ and Java (junior and senior year of highschool) as well as a C++ class that I took freshman year of college. I am new to LabView and have never even heard of it until about 2 days ago when my boss presented a new task to me. My understanding of the program as of now is that it is a visual based simplified programming application that is equipped for use with real-life instrumentation applications used for measuring data. I understand that instead of using lines of code to create a program (such as in traditional programming: C++, Java, etc) that LabView uses a graphical interface in such a form as a flowchart to create a program.

Having little to no experience with the software, I am having difficulties with figuring out the program nonetheless figuring out how to use the program for a real-life application. There is a time constraint on this project and unfortunately I feel as if I do not have enough time to figure out everything on my own which is why I am wondering if anyone is kind enough to help me?

Equipment:

1) Computer

2) Animatics Smart Motor (see figure 1) (for reference: http://www.animatics.com/web/sm_1720.html)

3) Del-Tron, DL26B-170, Linear Actuator with syringe fitting modifications (see figure 2) (for reference: http://www.deltron.com/catalog/product_des...mp;prod_id=2947)

4) LabView 8.0

post-13707-1224689000.jpg?width=400

post-13707-1224689057.jpg?width=400

Task:

To create a program in LabView that will drive our automated syringe test setup.

More specifically we need a program that will drive the motor we have in a positive X distance and then drive the motor backwards in a negative X distance (which will pump the syringe) and then output diameter, pressure, and volume data.

For now, I am just focusing on creating a program that will communicate with the motor and have it drive the slide on the linear actuator back and forth (see figures 1 + 2).

Eventually with everything set up, there will be an additional laser micrometer and a pressure transducer added to the setup for diameter and pressure measurements and we would like to have the program output that data as well.

Setup:

The Smart Motor plugs into the end of the linear actuator and the torque generated from the motor drives a axial screw which drives the slide on the actuator back and forth (depending on the direction of the torque; clockwise/counter clockwise). I have created syringe fittings (which hold the syringe), via solidworks, that have already been attached to the actuator. The slide on the actuator will drive the plunger of the syringe (back and forth hence the need for the motor to move in a positive/negative X direction). See figures 1 + 2 for reference.

The SmartMotor is connected to the computer via COM2 port and is connected to a power supply (see figures 3, 4, 5).

post-13707-1224689061.jpg?width=400

post-13707-1224689223.jpg?width=400

post-13707-1224689261.jpg?width=400

Background Information:

Thus far, with my 2 days of LabView experience, I have figured out that LabView does indeed communicate with the SmartMotor which is good. Now my problem is I have absolutely no experience with the program so I don't understand any of the functions in the functions palette thus I don't know how to approach creating a program for my needs as stated above.

I was able to get LabView to communicate with the motor via the Instrument I/O Assitant (see figures 6 & 7). I used the step "Query and Parse" and was able to get the motor to move. Nothing parsed. *NOTE* I had to use the commands that were programmed into the motor (I mean I had to use commands that were recognized by the motor when used in the "Smart Motor Interface" software for the motor). But now I know that the motor and LabView communicate.

post-13707-1224689303.jpg?width=400

post-13707-1224689465.jpg?width=400

Is there anyone that could kindly assist me in creating a program for this task?

Link to comment

It sounds like a good start for you would be to break down the parts of your program into small tasks that are reasonably easily achievable and will allow you to learn LabVIEW in steps. Look at some of the many examples provided with LabVIEW and try to find a book on LabVIEW at your university library. You might start with a simple program that only runs the motor back and forth; or, put off the hardware until later and write a simple LabVIEW program that handles your interface and accepts simulated inputs. Once you have some LabVIEW code written, if you post it here and explain the specific errors that you're seeing, there will probably be someone happy to try to help you out.

Link to comment

Thanks for the response Ned.

Yes you are right, I should compose some code for it first, I wasn't expecting someone to write the code for me lol. I'm going to try my best to write some code. I guess my biggest problem is that I don't quite understand the functions in the function palette, and I don't quite understand how to create an actual program. I guess the best way to describe it is that I am programming blindly and the manuals with the LabView package don't quite explain any of the functions.

I will take your advice though and try some of the tutorials and also check my library for some books on LabView and I will try to compile some code.

Please stay tuned to this topic as I am sure I will need the help.

Thank you.

Link to comment

Skye,

Be sure to back up the bus just a second and not start charging ahead to 'write' code.

Rather you need to come up w/ a basic architecture to your software and some of the core building blocks. This step is Language Independent.

There are many resources to learn how to create a basic program in LV, but if you are looking at a project that needs to be developed, then some planning needs to precede the programming

Link to comment

QUOTE (Norm Kirchner @ Oct 22 2008, 01:40 PM)

Skye,

Be sure to back up the bus just a second and not start charging ahead to 'write' code.

Rather you need to come up w/ a basic architecture to your software and some of the core building blocks. This step is Language Independent.

There are many resources to learn how to create a basic program in LV, but if you are looking at a project that needs to be developed, then some planning needs to precede the programming

Norm,

Thank you for your response. Now when you say that I need to come up w/ a basic architecture and core building blocks what exactly do you mean? Can you elaborate or give me some examples?

And yes, you are correct this actually is a project. We are setting this up for directional testing only. As far as the planning goes, my boss is relying solely on me to figure this out. I've had 2 years of experience with programming but I have never created a program for real life applications, so I will need some help something along the lines of hints/tips/help with errors/etc.

Link to comment

QUOTE (Norm Kirchner @ Oct 22 2008, 02:53 PM)

No real time at the moment to get into more detail,

but start out w/ a detailed flow chart of the program and user interaction.

Post it here and let's get down to type of architecture

Well this is how I would approach this type of program in C++ or Java.

1) We would initialize acceleration and velocity variables. These variables would control the speed of the motor.

Let's say acceleration would be "a" and velocity would be "v"

2) There would be a output statement asking the user for a distance for the motor to drive the slide.

3) The user inputs the distance to drive the slide. This distance would have to be measured with regards to the motor (the motor operates in RPMs and we are not yet sure what units the distance displayed in the SMI software are) and size of syringe (units TBD).

Distance would be set to a variable, let's say "D"

4) Output a statement asking the user for the number of inflations with the syringe.

5) The user inputs the number of desired inflations with the syringe (1 inflation is considered to be when the plunger of the syringe fully bottoms out and then is pulled all the way back again).

Number of desired inflations with the syringe would be set to a variable, let's say "I"

6) Then I would probably create a while loop, while I >0

have some kind of code to make the motor drive the actuator in the positive X position (bottoming the plunger out), and then have some kind of code to make the motor drive the actuator in the negative X position back to X=0 (to pull the plunger all the way back).

have code to output desired data (in this case we would need diameter and pressure)

then have code to subtract 1 from I (like I=I-1 or something), so when I reaches 0 the program will end.

***Also*** I just remembered that there are actually two marks on the syringe, for 2 volume inflations (syringe is in CC's or mL). We will actually need to inflate to the first mark, hold for a couple of seconds, then bottom out to the second mark (the second mark is where it bottoms out). But above is the flowchart for the basic program which im sure once I get down it should be easy to modify.

I really appreciate your help on this Norm.

Link to comment

One problem at a time.

My recommendation is the learn about the smart motor first.

Most of the functions that you want to do already exist in the smart motor command set.

Using the terminal program that comes with the smart motor you should be able to figure out how to get the motor to do what you want.

When you have the system working then figure out how to get LabVIEW to talk to it and automate things.

If you run out of time you can at least go back and do it manually until the program is up a running.

Link to comment

QUOTE (mballa @ Oct 22 2008, 10:09 PM)

One problem at a time.

My recommendation is the learn about the smart motor first.

Most of the functions that you want to do already exist in the smart motor command set.

Using the terminal program that comes with the smart motor you should be able to figure out how to get the motor to do what you want.

When you have the system working then figure out how to get LabVIEW to talk to it and automate things.

If you run out of time you can at least go back and do it manually until the program is up a running.

Mballa,

I pretty much have learned everything I need to know about the smart motor already, in terms of what I wanna do with it. I have already been messing around with the program that comes with the smart motor and have come up with a program that will carry out the functions that I need for it to do.

The problem with the smart motor program is that it won't be able to communicate all the essential data that we are looking for (ie: diameter, pressure, volume), instead it only communicates things such as rpm's, distance, and other motor related data. That is where labview comes into play. LabView would be able to communicate the data that we need.

I have already figured out a way to communicate to the motor with LabView, but you need to use the same command sets that come with the motor (if you look at my first post, I was able to communicate to the motor via the "Instrument I/O Assistant")

Now the challenge for me is that I have no experience with the software and I need to come up with a program to carry out all the functions I outlined above. I suppose my biggest problem is that I do not fully understand how to create a program within LabView not to mention a program that would communicate with the motor, the transition from text based programming to a visual based programming software is giving me a hard time, and I don't understand how to use any of the functions within the functions palette. I have tried to look within the company for assistance but not many people have any or enough experience with LabView to help me with this project.

So, it is pretty clear to me that I have to figure out how to create a program/flowchart first with some guidance from the experts on this board.

Link to comment
  • 6 years later...

Hi this thread is quite old but I find myself in the same dilemma as the original poster. It's not with LabView in particular but I was just simply looking for a way to create a completely automated syringe driver array to carry out a lab protocol. I was looking around online and stumbled upon this thread and was wondering if the original poster had any success?

Link to comment

Hi this thread is quite old but I find myself in the same dilemma as the original poster. It's not with LabView in particular but I was just simply looking for a way to create a completely automated syringe driver array to carry out a lab protocol. I was looking around online and stumbled upon this thread and was wondering if the original poster had any success?

 

I’ve used New Era NE-500’s before quite successfully and could possibly dig up some code for it.

Link to comment

Here it is, for what it’s worth.  From 2008, I think, LabVIEW 8.6.   It’s rather too complicated for a first time programmer.  You should either see if the Example program works on a NE-500 or NE-1000 and just hack that, or use the low-level communication subVI “New Era Pump CommandResponse.vi†along with the New Era manual (which contains the text commands for it).

 

New Era Syring Pump.zip

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

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