Generating digital pulses from the pci 6722
I am trying to generate signals that will drive a piezoelectric motor. I need an analog signal that I will send to an amplifier and 6 digital pulses with varying offsets. I am using a pci 6722 and was hoping to get an offsets between the digital pulses to be around 2 microseconds. I am struggling to find the best way to get such exact time delays between multiple tasks. Any help would be greatly appreciated.
The actual offset times is not as important as the digital pulses firing sequentially and all within the envelope of the analog signal for multiple steps. I guess my question is less about hardware limitations, and more about how execute my desired process in Labview. My experience in Labview is pretty rudimentary and I am struggling to see how to synchronize events in labview. We are using a BNC 2110 to output our signals, and it is my understanding that the BNC 2110 has a 1 Mhz clock. We are trying to import that clock from our device use that to clock timed loops and we are having some difficulties with the details. I am honestly not sure if I am on the right track. In hopes that it might add some clarity I attached a picture of the signals we are hoping to produce. The orange signal is our analog output. Between times t3 and t4 we need the 6 digital triggers to switch to "on" and we need them to all switch off simultaneously at t6. Again we are definitely willing to compromise on speed if we can use the card we already have.
Attachments:
waveform.PNG 28 KB
Similar Messages
-
Reading Digital Pulses from a Flowmeter
I have a flowmeter that puts out 0 to 5 VDC pulses and has a calibration factor of 50.99 pulses per CC. I do not have a counter card, but have a digital input card and an Analog Input card.
What will be accurate method to read these pulses from the flowmeter?The Detect All Triggers.vi is not included, so I cannot tell what it is doing.
Several things may affect your results.
1. It appears that you have the DAQ assistant set to sample at 250,000 samples per second and to acquire 100,000 samples. It creates the task, configures the timing, acquires data, stops and clears the task on every iteration of the loop. The only part which needs to be inside the loop is the acquire data part. All the rest should be outside the loop. You can open up the DAQ Assistant and pull the parts out to do this.
2. The samples you acquire take about 0.4 seconds but you have a 1 second elapsed time test in the loop. It appears that you are only looking at about 40% of the data available because you do not accumulate the data while waiting for the elapsed time.
3. The Detect All Triggers boolean output which connects to the case structure where Counter is updated only allows Counter to increment once pper iteration of the while loop, maximum, regardless of the number of pulses detected in the dataset. Unless you never get more than one pulse in 400 ms Counter cannot accurately represent the number of pulses produced by the flowmeter.
4. Get rid of the local variables. The are not needed and often contribute to race conditions.
5. Learn about dataflow. The "initialization" of the chart history and local variables at the left of the diagram could occur after the while loop has started or even completed. The sequence structure in the True case is probably not needed either. Shift registers are your friend
Lynn -
Generate a report from the grid to get all the 10g instance name and size
Hi Guru
Greetings foe the day
can you help me to Generate a report from the grid to get all the 10g instance name and size.
If its passible you would help me a ton
Thank youIf you can see in you query, you asking to view dba_segments for one instance and the other query is over the MGMT$DB_TABLESPACES view but NOT "WHERE" clouse is using, and if ypu have more once instance then than view sum all the tablespaces sizes.
How many instanced are registed in your grid control?
http://www.jpuga.cl
Regards
user625256 wrote:
Hi
can any one help on this
The o/p
SQL> select sum(bytes)/1024/1024/1024 from dba_Segments;
SUM(BYTES)/1024/1024/1024
3549.80879
when i query from the above mgmt its returns 1,507,473.149 GB
select target_name DB_NAME,host_name Host,sum(trunc(tablespace_used_size/1024/1024/1024,2)) size_GB
from MGMT$DB_TABLESPACES group by host_name,target_name order by target_name
it gives the size as 1,507,473.149 GB
Thank you in advance -
How to remove the automatically generated text fields from the InfoSet
I followed the procedure by SAP help.
Automatically generated text fields are marked with a 'T' on the icon in the InfoSet. You can remove the automatically generated text fields from the InfoSet in the initial screen of the InfoSet maintenance under Further Functions -> Delete Text Fields. Cancel the DataSource creation on the next screen and delete the text fields in the InfoSet maintenance transaction.
I know that there is an option "No automatic text recognition" when I create a new InfoSet, however, I couldn't find out how to change an existed InfoSet. I checked menu Goto->Global Properties, but that option is disabled. Is there a way to remove text fields from an existed InfoSet?Hi,
In the initial screen (when you enter transaction code SQ02) type your infoset name and goto menu: Infoset -> More functions -> Delete text fields. this will delete all text fields.
I hope this helps to resolve the issue.
Ram -
How can i send and receive a 2us digital pulse from Labview
i want to communicate with a system using 2us pulse
like if i want to send 11010100 then i will send
|----2US----|----2US----|.............
I I___I I_____________I I______________I I_______________________
|----1-----|-------1-------|------0-------|--------1--------|------0-------|---------1---------|------0-------|------0-------|
when i will send 11010100 to system the system will repond me by sending 10111001 usinf same 2us pulse as i have shown above.
I have pci-6025E+CB 50LP connector block+Cable and LABVIEW 10 installed in my PC.
Can this be done using NI's labview and PCI card ?
if yes then how ?
i m new to NI and this is my first Project using NI's hardware.The fastest I would trust software timing is in the tens of milliseconds. And even then, don't count on exactness. The software timed DIO are best used for static applications (only change every once in awhile, usually controlling a relay or the like). From my quick search, you will want something like the PCI-6220.
There are only two ways to tell somebody thanks: Kudos and Marked Solutions
Unofficial Forum Rules and Guidelines -
I want to monitor 2 analog DC signals (single point measurements, not a waveform) and I want to use the digital triggers to start the acquisition, 1 trigger for 1 AI. the measurements need to be made at 1Hz, maybe slower. Is this possible with the PCI-6023E?
If not what hardware should I be looking at? I have a total of 6 triggers and 6 AI.Dimentia,
I would need confirmation on what you want to do:
1) I want to monitor 2 analog DC signals
This means that you will have one Analog Input operation monitoring two channels. Please confirm.
2) single point measurements, not a waveform
Ok, no buffers.
3) I want to use the digital triggers to start the acquisition, 1 trigger for 1 AI
This would mean that a single digital pulse or edge on a single line would start your 2-channel analog input operation. Please confirm.
4) the measurements need to be made at 1Hz, maybe slower.
Hardware-timed or software-timed? 1 Hz could be easily implemented with software timing. But the triggering could force you to use hardware timing. It will not be a problem but it would be good to know.
5) Is
this possible with the PCI-6023E?
Everything I mention above is possible with the PCI-6023E.
6) I have a total of 6 triggers and 6 AI.
This last phrase is what really confuses me and seems to contradict the previous sentences. Does this mean that you will want to perform 6 independent Analog Input operations, with its own triggers (one each)? Will every Analog Input operation have 2 channels?
I'll clarify why this is important:
- Each Analog Input operation can only have one hardware digital start trigger assigned to it.
- Only one Analog Input operation (multiple channels allowed) can be performed per board at any time.
Since the rates are so slow I would recommend that you perform sample all channels within a continuous acquisition and then discard the data that does not meet a certain condition. You could sample the triggers as well and discard those channels for which the trigger has not been received.
These are just some ideas based on my assumptions on the
problem. Assumptions are never a good thing so please confirm on the point s above and we'll try to help.
Thanks
Alejandro Asenjo
Applications Engineering
National Instruments -
Generating next number from the SQL database using java
Hi friends, I have a problem and need your help. I am working on a project about submitting claims form through the adobe PDF file and SQL database. I have problem working on a web service (written in java) that will generate the next Invoice Number from the SQL Database table. The field type for the column is text(var char). *Example: I first need to get into the table and search for the last Invoice number in the table and if the last invoice number in the table from the database is 3, i would want to generate the next number which is 4 and filled it up in the PDF file through web service that i am implementing. Can you all provide me some guidelines on how to implement this method in my web service?
Thanks a lot. I need it by today. Hope someone can reply this as soon as possible.
Lim89
Edited by: LIM89 on Apr 2, 2008 7:10 PMfar simpler to use a sequence generator, which most databases support.
Suggested method to get the max value in the column is NOT secure, unless you lock the entire table for update before you do so, which is a severe performance penalty. -
Count 4th consecutive pulses from the analog output of the encoder
Hi
Iam getting analog output from the encoder and i want to count the 4th peak of the analog signal. Kindly suggest the best method Once 4th pulse is detected counter will increments.
Pl refer the encoder output .
Thanks
Attachments:
encoder sig.JPG 26 KBWhatever you've counted using your logic, divide it by 4 and convert it to an integer (towards negative infinity)..!!
This should work.
I am not allergic to Kudos, in fact I love Kudos.
Make your LabVIEW experience more CONVENIENT. -
Generate XML report from the database and send EMail - BPEL 10g
Hello,
I was looking for the solution to generate XML report with the values from databaseadapter (select result from any table ) this result can be hundred's of records.
so I have to generate the xml report from the result I received from DBADapter and send an email with that XML. I am stuck with how to generate XML ? Can any one please help me.
Thank you very muchHello,
I was looking for the solution to generate XML report with the values from databaseadapter (select result from any table ) this result can be hundred's of records.
so I have to generate the xml report from the result I received from DBADapter and send an email with that XML. I am stuck with how to generate XML ? Can any one please help me.
Thank you very much -
How do you control a 20-30A current cource with digital ouput from a PCI-6034E using LabVIEW?
I know I have to use a relay of some sort, but I dont know how to modify an existing program to turn on a relay using a digital output, take some measurements and then turn the relay off again. Any suggestions would be grateful.
You're right you need some reley to switch 30A on and off, and maybe an intermediate relay to drive the main one, since PC cards don't have the power to drive great loads (look at your card AND relay specifications...). Depending on the current ouput (you don't say us if AC or DC) and from your application you could use a SSR...
For an application we are now developing with a 6035E, we have used an intermediate driver (ULN2003) to drive a small pcb relay and use his contact to drive a large relay for 150A DC current. (We tend to use intermediate drivers in order to achieve isolation from the field too, not only for power reasons).
In the card's manual there is the connecting circuit for using digital pins as output (once you have configured them in MAX).
In order to use it in LabVIEW you need to use the digital output vi (found in Data Acquisition/Digital I/O palette).
Be careful while writing your software: some relays are very slow in actuation (I saw contactors for hevy DC current loads to take more than 50 msecs in opening and some time less in closing), and you must consider it in order to start using the output current after the contactor is effectively closed.
Hope this helps a little...
Roberto
Proud to use LW/CVI from 3.1 on.
My contributions to the Developer Zone Community
If I have helped you, why not giving me a kudos? -
Any way to generate trace report from the TKPROF formatted trace file?
As titled.
Is there any automatically way to make a report on SQL tuning report from the TKPROF formatted trace file(or from the dynamic performance views)
PaulDave,
That's what report queries are for, take a look at shared components. Walk through the create report query wizard, and on the final page, you'll get a URL that you can use to integrate this with your page. You'll find the same URL when editing your report query afterwards.
Alternatively, suppose you already have you report page, but don't want to always go there, you can just copy that report region print link (reference my answer to your previous question), and make that the target of a branch or from another page.
Regards,
Marc -
Solved!
Go to Solution.WARNING: The Reader device should never be ejected under the following conditions or permanent damage to the Reader device may occur:
NOTES:
A data transfer is in progress
Your computer is accessing the Reader device or compatible memory card inserted in the Reader device.
A file in the Reader device or a compatible memory card in the Reader device is open.
If you are not transferring any data and would like to disconnect your Reader device, click the eject button in the Reader (eBook) Library software. The message on your Reader device will now be USB connected and you can safely remove the connection or continue to charge.
NOTE: If you have already closed the Reader Library software, you can use the Safely Remove Hardware feature of the Windows® operating system to disconnect your Reader device from the computer. -
Problems generating multiple services from the same EAR using servicegen
I have a single EJB JAR that contains multiple stateless session beans. I
want to expose each of these individually as a service. So I have defined
the following in my build file:
<servicegen destEar="${ear.file}" warName="${war.file.name}"
contextURI="web_services">
<service ejbJar="${ejbc.jar.file}"
targetNamespace="http://www.acme.com/xauto" serviceName="AService"
serviceURI="/AService" includeEJBs="AService" generateTypes="True"
expandMethods="True"/>
<service ejbJar="${ejbc.jar.file}"
targetNamespace="http://www.acme.com/xauto" serviceName="BService"
serviceURI="/BService" includeEJBs="BService" generateTypes="True"
expandMethods="True"/>
<service ejbJar="${ejbc.jar.file}"
targetNamespace="http://www.acme.com/xauto" serviceName="CService"
serviceURI="/CService" includeEJBs="CService" generateTypes="True"
expandMethods="True"/>
<service ejbJar="${ejbc.jar.file}"
targetNamespace="http://www.acme.com/xauto" serviceName="DService"
serviceURI="/DService" includeEJBs="DService" generateTypes="True"
expandMethods="True"/>
<service ejbJar="${ejbc.jar.file}"
targetNamespace="http://www.acme.com/xauto" serviceName="EService"
serviceURI="/EService" includeEJBs="EService" generateTypes="True"
expandMethods="True"/>
</servicegen>
I execute the task and it runs without issue. However, when I attempt to
deploy the EAR I get some odd results (there are multiple jars listed all
with my original name and then a number appended, for example MyApp.ear2).
The deployment fails because each of these JARs contains the same session
beans.
So, I'm wondering if my only option is to package each session bean in a
separate EJB JAR or if there is another way I could get this to work.
Thanks,
RobThanks, Neal. I'll do as you suggest.
Just a little feature enhancement request, as well. It would be nice if the
option existed to break out the webservices for all the session beans in a
ejb rather than creating one all-encompassing interface of all the methods.
I think this would be a useful feature.
Thanks, again,
Rob
"Neal Yin" <[email protected]> wrote in message
news:[email protected]...
I am not sure what can cause this. But I will make servicegen check for
duplicate.
For now, in order to make sure your automatic build process, you can use
ant's build in task "jar" to update your application.xml with a correctone
after servicegen.
-Neal
"Rob Moore" <[email protected]> wrote in message
news:[email protected]...
Neal,
After discussing this issue with a coworker, I found that when he buildsthe
ear on his machine using the servicegen entries I specified previously,the
application.xml is generated correctly. Mine, as you guessed, puts in
multiple module entries all containing references to the same jar. I'm
puzzled because we are apparently running in the same environment. Anyidea
what might be causing it?
Thanks,
Rob
"Neal Yin" <[email protected]> wrote in message
news:[email protected]...
Hi Rob,
There is something wrong during generating application.xml for the
ear.
After servicegen, if you open generated application.xml, you probablycan
see duplicate entries for one module. Please go ahead delete thoseredundant
entries. Let me know if this works.
-Neal
"Rob Moore" <[email protected]> wrote in message
news:[email protected]...
I have a single EJB JAR that contains multiple stateless session
beans.
I
want to expose each of these individually as a service. So I havedefined
the following in my build file:
<servicegen destEar="${ear.file}" warName="${war.file.name}"
contextURI="web_services">
<service ejbJar="${ejbc.jar.file}"
targetNamespace="http://www.acme.com/xauto" serviceName="AService"
serviceURI="/AService" includeEJBs="AService" generateTypes="True"
expandMethods="True"/>
<service ejbJar="${ejbc.jar.file}"
targetNamespace="http://www.acme.com/xauto" serviceName="BService"
serviceURI="/BService" includeEJBs="BService" generateTypes="True"
expandMethods="True"/>
<service ejbJar="${ejbc.jar.file}"
targetNamespace="http://www.acme.com/xauto" serviceName="CService"
serviceURI="/CService" includeEJBs="CService" generateTypes="True"
expandMethods="True"/>
<service ejbJar="${ejbc.jar.file}"
targetNamespace="http://www.acme.com/xauto" serviceName="DService"
serviceURI="/DService" includeEJBs="DService" generateTypes="True"
expandMethods="True"/>
<service ejbJar="${ejbc.jar.file}"
targetNamespace="http://www.acme.com/xauto" serviceName="EService"
serviceURI="/EService" includeEJBs="EService" generateTypes="True"
expandMethods="True"/>
</servicegen>
I execute the task and it runs without issue. However, when I
attempt
to
deploy the EAR I get some odd results (there are multiple jars
listed
all
with my original name and then a number appended, for exampleMyApp.ear2).
The deployment fails because each of these JARs contains the samesession
beans.
So, I'm wondering if my only option is to package each session bean
in
a
separate EJB JAR or if there is another way I could get this to
work.
>>>>
Thanks,
Rob -
Hi,
I need to make a stepper motor undergo rotary oscillation with a sinusoidal motion profile. As it nears the extreme points it should decelerate and finally slow down to zero velocity and then it should reverse direction and accelerate until it reaches the other extremity where it should slow down and stop and reverse direction and repeat this motion.
The hardware is NI DAQ 6229 and the stepper motor can be controlled using digital Hi-Low (1,0) pulses. For each high pulse(1's) the motor turns 1 step. I am able to generate a analog sine wave and convert it to digital data using Analog-to-Digital.vi But i am not able to convert the digital data to a stream of 1's and 0's in the correct sequence to get the sinusoidal profile with the amplitude and frequency i require.
The direction of rotation can be changed by giving a pulse to another input of the stepper motor. So only half cycle of sine wave needs to be generated and it can be replayed after changing the direction to get the full sinusoidal profile.
Any ways of making this approach work or any new approaches to this problem would be helpful. Thank You.
Regards,
Prabu.
Solved!
Go to Solution.Hi,
I finally figured out a way to do it. The analog sine wave is converted to digital and sampled. Consecutive values are compared and if the least significant bit(LSB) changes then a pulse is sent to the stepper motor to turn one step.
I have included the sub-VI's that accomplish it for the particular stepper motor and connector block i have. The front panel of both sub-VI's are quite messy but the block diagrams should be much clearer. The sub-VI's get their inputs from a third VI which i have not included. So take a look at the VI connector panel to figure it out. Hope this helps. Kinda messy but worked out fine in the end for my application.
Thanks again for all the help. I appreciate it very much.
Regards,
Prabu Sellappan
Graduate Student
Aerospace and Mechanical Enggineering
University of Southern California
Attachments:
start motor test waveform dtest.vi 73 KB
sine profile generation subVI.vi 41 KB -
Generate Digital Pulses BNC 2120
Hello,
I am new to LabView and I am trying to use a DAQ Assistant to generate a discrete number of digital square pulses to be fed to a stepper motor driver via BNC 2120. But I don't know how to go about doing this.
I had an idea that I would use a Timed Sequence with 2 frames, the first frame would have a DAQ in it, and there would be a 1-D array of Boolean (TRUE) input in to the "'data" field of the DAQ.
Then the second frame would have a DAQ in it, and there would be a 1-D array of Boolean (FALSE) input in to the "'data" field of the DAQ.
But like I said I am very new to LabView and so I don't know if this approach makes sense. Please offer some suggestions!Hi all.
I am currently doing a final year project to run six stepper motors using labview.
I was using an arduino mega to control the motors. When I had wrote the program to control the motors realized I only had enough outputs to control one motor.
Now I intend on using the BNC 2120 to generate the pulses to run the motors but I have no idea where to start.
Any help would go along way.
I am using 6 Digital inputs for each motor. i have attached the VI i am using
thanks in advance
Attachments:
StepperMotor1 project.vi 28 KB
Maybe you are looking for
-
Having issues with starting Reports Server on RHEL5 after installation
Hi, I installed Oracle Application Server 10.1.2 on RHEL, ran the patches to move it up to 10.1.2.3. I've also put a couple patches in addition. When I go to my application server console, I noticed everything is started up but my Reports Server. I'v
-
Touch screen unresponsive while charging
The touch screen on my iPod touch 5 can be sluggish or unresponsive. I've isolated the problem to when I've got it plugged in to charge and the charge is complete but I've not unplugged it. I'm using apple charge cord. Has anyone else had this proble
-
TSQL working in 2008 but not in SQL Server 2014
Hello, We recently have been asked to move from SQL Server 2008 to SQL Server 2014. We are trying to run parallel tests and one of our queries that was working perfectly in 2008 is not working in 2014. One of the filter on the our query(from 2008) is
-
i have a creative nomad jukebox 0gig and I'd like to retrieve the music files I've got on there and put them on a newer mp3 player. I don't have the Creative Center CD the player originally came with and I would greatly appreciate anyone who could he
-
SRM: How to be find for Confirmed base on Delivery Date
Hi In SRM 5.0, would anybody here know what's the function module that retrieves the list of to be confirmed documents based on delivery date? Thanks! Cindy