skye2388 Posted October 23, 2008 Report Share Posted October 23, 2008 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 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). 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. Is there anyone that could kindly assist me in creating a program for this task? Quote Link to comment
ned Posted October 23, 2008 Report Share Posted October 23, 2008 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. Quote Link to comment
skye2388 Posted October 23, 2008 Author Report Share Posted October 23, 2008 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. Quote Link to comment
Norm Kirchner Posted October 23, 2008 Report Share Posted October 23, 2008 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 Quote Link to comment
skye2388 Posted October 23, 2008 Author Report Share Posted October 23, 2008 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. Quote Link to comment
Norm Kirchner Posted October 23, 2008 Report Share Posted October 23, 2008 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 Quote Link to comment
skye2388 Posted October 23, 2008 Author Report Share Posted October 23, 2008 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. Quote Link to comment
Mark Balla Posted October 24, 2008 Report Share Posted October 24, 2008 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. Quote Link to comment
skye2388 Posted October 24, 2008 Author Report Share Posted October 24, 2008 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. Quote Link to comment
Giseli Ramos Posted October 24, 2008 Report Share Posted October 24, 2008 When you draw the basic flow of the program, you can take a look on the Data Communication -> Protocols -> Serial (it will appear if you installed NI-VISA, standard for serial comm. in LV). The Smart motors can be controlled by this way. You need to learn how to use the write/read serial port in LabVIEW. It is quite easy. Quote Link to comment
Mark Balla Posted October 24, 2008 Report Share Posted October 24, 2008 QUOTE (skye2388 @ Oct 23 2008, 08:08 AM) 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.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 Try Opening an example to start out. From the menu go to Help >> Find Examples. to open the NI Example Finder From the example finder go to Hardware Input and Output >> Serial These are examples of different ways to use the serial port in LabVIEW. Start with the Advance Serial Write and Read.vi and see if you can talk to the smart motor. It may not make much sense to you until you under stand the basics of LabVIEW. Here are some resources to help you get started in LV. Here is a link to NI Learn LabVIEW page. Some of these are free. If your company is willing to pay for training then I would recommend LV Mastery online courses For a reference book my favorite is LabVIEW for Everyone Good luck Quote Link to comment
skye2388 Posted October 24, 2008 Author Report Share Posted October 24, 2008 Hey guys, So after further investigation, I realized that the motor communicates via RS 232 Serial port (see: http://www.animatics.com/web/sm_1720.html). And it seems that there are drivers built into the motor. I don't know if that helps or not. Kevin Mballa and Gisele, Thanks for the tips, I'll give them a try. Kevin Quote Link to comment
ayrodrig Posted December 4, 2014 Report Share Posted December 4, 2014 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? Quote Link to comment
drjdpowell Posted December 4, 2014 Report Share Posted December 4, 2014 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. Quote Link to comment
ayrodrig Posted December 4, 2014 Report Share Posted December 4, 2014 I’ve used New Era NE-500’s before quite successfully and could possibly dig up some code for it. Wow that seems like something that could work really well for me. I would appreciate some old code if you have it for reference. I have very little programming experience and am looking for as much help I can get. Thanks! Quote Link to comment
drjdpowell Posted December 5, 2014 Report Share Posted December 5, 2014 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 Quote Link to comment
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.