Does PID loop transfer values to new instance
Greetings Everyone,
I'm a new forum user, but I've been using Labview for about three years now.
I have an application that uses PID VIs in multiple cases of a case structure. Each case structure passes a different set of setpoints, gain schedules, limits, ect to the new instance of the PIDvi. What I'm wondering is this: When I switch cases to the new case structure, does all the integral and derivative information get lost in the shift registers of the old PID instance, or does labview keep them in memory and pass them to the new instance? If it kept it in memory it would be a great help, becasue there would be less upset in my PID loop. If not, then I'm going to have to pass a cluster of that information into the new instance...which I'd rather not do to save on system requirements (real time system).
Thanks for the input
Grub
Hell, there are no rules here...we're trying to accomplish something!!! - Thomas Edison
Using the shift register will only work if you make the VIs not reentrant. In any other case, you will need some means of global data storage. I think the most memory efficient is LV2 Globals (also known as Functional Globals), but I haven't tested it, and I know of some benchmarks that showed that the fastest is single element queues globals.
A single element queue global is a queue with the size of 1 where you always remove the element from the queue when doing an operation. This locks any other calls to the queue, because it's empty, and they will have to wait until you place the element back in the queue.
You can search for the other terms to find some documentation about them.
Try to take over the world!
Similar Messages
-
My output loop tunnel value is "#1". What does this number signify.
I am a new Labview person. I have a While Loop containing a Fract/Exp String to Number fuction. The output goes directly to a loop tunnel whose value is 8 using a probe but when running in highlight mode the value displayed on the tunnel is "#1". What is the significance of this value.
It means you are not dealing with a scalar value, but with an array. The #1 means that the array size is one element. For arrays, it does not show the values, but the number of elements. A wise choice, because arrays can be huge. ;-)
LabVIEW Champion . Do more with less code and in less time . -
Checking for a value in a field within a subform before allowing a user to add a new Instance
Form setup:
Page name = Page1
1st Subform within Page1 = Info (set to flowed)
Objects within Info subform: Name (textfield) and Email (textfield)
I also have a 2nd subform within Page 1 which contains an add instance button
What I'm trying to do:
1. The user needs to enter their Name and Email address then click "Add Instance button" to create a new instance of the Info subform : _Info.addInstance(1);
2. If the user fails to enter an email address, I want there to be a mesage box that infos the user that an email address is required before he/she can create a new instance. Note: It would also be nice if the cursor is Set to foucs on the email field within that particular subform instance.
3. As long as the user tries to continue adding an instance, he/she will be denied if they do not enter an email in that instance
4. If the user includes an email address in that instance, then the script will create add a new isntance
5. The process should continue in this manner for each each click of the add instance button
I presume there nees to be a loop and perhaps a somExpression scipt, but I'm not sure.
Here's what i have so far (see below)....The script works for the first instance on the page, but it doesn't prevent new instances from being created when the email field in that "current instance" is empty. I want it to prevent the user from adding new instances if the email field is balnk in that "current instance". So, I guess I'm not sure how ot test a field in the current instance in a repeating subform.
var vName = Info.somExpression + ".email";
var vEmail = xfa.resolveNode(vName).rawValue;
if(vEmail == null)
xfa.host.messageBox("PLease enter an email address.");
else{
Form._Info.addInstance(1);
var i = Form._Info.count - 1;
xfa.host.setFocus(xfa.resolveNode("Info[" + i + "].Name")); //This set's the focus of the cursor in the Name field of the newly created subform
Please advise, and thank you in advance!!!!!!Hi,
I think you can acheive what you want just by adding "lastRow.presence = "hidden";" when you do the addInstance, so it now looks like;
var lastRow = Form.resolveNode("Info["+(_Info.count - 1)+"]"); // Get last row
if (lastRow.Email.isNull) // If email field empty
xfa.host.messageBox("Please enter an email address.");
else
lastRow.presence = "hidden";
var newRow = _Info.addInstance();
xfa.host.setFocus(newRow.Name.somExpression); // set focus to Name field on the row just added
So whenever you add a row the previous one is hidden?
For your second issue, if you could have another button on your form, you could ask the user for a password and if they enter it correctly then show for the Info subforms, so;
var response = app.response({ cQuestion: "Do you want to see all respones?",
cTitle: "Unlock Form",
bPassword: true,
cLabel: "Please enter the password:" });
if (response === "Password")
var infoSubforms = Form.resolveNodes("Info[*]");
for (var i = 0; i < infoSubforms.length; i++)
var infoSubform = infoSubforms.item(i);
infoSubform.presence = "visible";
You would want to password protect your template as well (in Form ... Form Properties ... PDF Security) so people couldn't just open the form and look at the password.
Probably the simplest approach.
Hope this helps
Bruce -
i have a brand new macbook pro that i was doing a data transfer via firewire from an old macbook, it got stopped/cable pulled out, now have spinning wheel of death that wont stop, how do i reboot/stop the wheel of death and start again? (this time il use time machine transfer)
Just power off the machine(s). Shut them down. Migration Assistant gets 'stuck' sometimes - best way to migrate really isn't over Firewire, though it will certainly work, but with both machines hardwired via Ethernet to the same router. You can use a TM backup, too, of course, provided that it's recent. Which is the best? Your choice. I've done it both ways and have a preference for MA, but TM restore can be a bit faster and less quarrelsome.
Clinton -
Does Oracle 10g Grid Control Create a New Instance?
i just installed it for the first time and noticed that it created what was apparently a new instance of oracle with its own bin, etc. directories. is this what is supposed to happen?
thanks!i just installed it for the first time and noticed
that it created what was apparently a new instance of
oracle with its own bin, etc. directories. is this
what is supposed to happen?
thanks!It is clearly stated in the Installation Guide that came with the CD or your download. It is important to read it before you start installation. -
Trying to transfer ipod to new computer. It is telling me to autharize computer. Had another ipod on same account, it gone now. Don't have password or any info about it. What do I do?
The password is for your iTunes account. Not for your old iPod. Enter your Email and password will give you access to all the music you bought from iTunes. If you forget it then I dont know how to help you there guess your SOL.
-
I'm trying to use a PXI-8106 RT and LabviewRT 8.5 as a PID controller to control 3 motors. I'm measuring the speed of the motors by measuring the frequency of the encoder with a 6608.
This article http://zone.ni.com/devzone/cda/tut/p/id/5423 claims a speed up to 107.5 khz. I've set ethernet to polling and usb off, I didn't turn off the CPU display, but I'll try that as soon as I can. However, I'm not anywhere close to 107khz, best I can get is about 10khz with one channel and about 2 khz with 3 channels. I realize the tests were done with analog inputs, but I was hoping that I'd get at least somewhere close using counters. With the 2Khz rate I really can't do what I need to do.
Does anyone know what a realistic rate would be with this setup?
I'm new at Labview so I may be doing something wrong, although I can't see what it could be. I've done quite a bit of research on the forums before I started to learn from other's examples.
Here's a couple of things I've learned trying to optimize my loops.
Seems like Daqmx has some issues with applying a scale. I have 2 scales, one is just a scale factor, 0.166, the other is .0002. When applying the .0002 factor in Daqmx my performance takes a huge hit, something like 10%! If I just leave it at hz, and do the scaling myself I see no performance penalty.
There is something strange about the timed loop % display in RT8.5, I wrote my own routine using expected end, actual end time, and the period to give me a % loop useage and it matches very well to the RT8.5 display for most of the time, however, when the loop starts missing iterations because I've gone over 100% the RT display drops down to about 50% which pretty much makes it useless.
I've attached a couple of shots of my test loop. I can get this one to almost hit 10 khz. the other screen shots are of how I set up the counter, and how I read the counter. the read counter has the error trap to restart itself. Also I set it to use DMA explicitly somewhere else in the program.
Thanks for any help.
Henri
Attachments:
Main Loop.JPG 55 KB
Setup Counter.JPG 72 KB
Read Counter.JPG 67 KBDevin,
Thanks for the suggestions.
A couple of related questions for you.
The 200 uSec is leftover from my attempts at getting the 3 PID loops to work within the loop availability. I can run about 70 uSec i.e about 14khz with only a single counter.
I've tried changing the buffers value and it has barely any effect on the speed of the loop. Right now I have 3 counters running with 200uSec timing and I get about 69% loop utilization. With a few missed iterations every once in a while. This is using 10000 samples, if I drop down to 100 samples utilization actually goes up to 70%!? Doesn't make sense to me either, but this is using both my VI and the on screen Timed Structures % of LV8.5RT so I'm trusting it as real,
In theory if I can get my loop rate up to 10 khz I'll only need 10 for the buffers since my top frequency to be measured is 100 kHz.
Funny thing on the RT fifo variable... I turned on FIFO and it actually decreased performance by about 1%, both Total load and Time structures went up... so I turned it off for stop-RT, and got a 3% improvement! Down to 66% time structures.
You mentioned the hardware timing to get a hardware timed single point. Unless I misunderstood the counters, this isn't possible since the sample rate is implicit in the frequency measured? i.e. it latches the count every rising edge.. so I'm my case I'd get a 100 khz sample rate (although obviouslyl that would be the max) Can you let me know if I've missed something there.
I bought this system explicitly based on its dual core and its high speed so I could close my PID loops quickly enough with one CPU and still have processing time left over to log data, etc. And the 6608 card is there so I can get high accuracy for my frequency measurements. However, I'm really struggling to get this thing going.
Any help would be greatly appreciated.
Thanks
Henri -
Why do I have a rate-independent delay in my PID Loop?
I am preparing to use an ETS Realtime target to do some fast PID loops. I have a 3 GHz P4 machine with a PCI-6259 DAQ card, ruuning LabVIEW 7.1RT with NI-DAQ 7.3 for the PCI-6259 board. For starters I decided to just do some speed tests, with the AO putting out exactly the value measured by the AI, with no PID calculations. I would expect the output to be an exact duplicate of the input, but jagged and with a small delay of approximately 1 loop time. What I see on the scope is that there is a fixed 0.1 msec delay between the input and output that is independent of the loop rate. I can run the loop up to 100 kHz rate. With this fast loop rate the output is a faithful replication of the input, but shifted by 0.1 msec. This delay will cause big problems in a real PID loop, since this is several sample periods. At first I thought that there was a buffer that was delaying the samples, but if that were the case the delay would be proportional to the sampling time and not independent of it. The delay is not in the loop itself, which can operate up to 10 times faster than the observed delay. I have attached the vi and configuration sub-vis. Please tell me what I am overlooking here.
Thanks,
Rich
Attachments:
Speed_test.zip 51 KBI am looking to run a very similar application with the same card, a similar computer, and do PID control. I'm amazed you were able to get a loop rate of 100 kHz even if it wasn't doing anything real! NI quotes 1 kHz max loop rates in most of its documentation, though I suspect most of it is quite old. I'm interested in what rate you were finally able to achieve with the PID control. I would also be interested in seeing the PID/DAQ communication part of your could if you are able/willing to share it. I was hoping to get 4-5 kHz with at least one channel and hopefully more.
Thanks,
Aaron -
Creating new instances of MDBs at runtime
I am creating an application with a single input point (messages on a JMS Queue). The application needs to be multi-threaded, but would like to process the messages sequentially based on the message type.
For example, a message of type A and a message type B can be processed simultaneously, but only 1 message of type A can be processed at a time. So if the application is processing a message of type A, and it receives another type A message, it must complete the first message before processing the second message.
What I would like to do is have a single MDB (called the dispatcher MDB) that listens on the input point (JMS Queue). The dispatcher MDB calls onMessage() which will look at the message type and the forward to another JMS Queue based on the type. For example, if message type is A, send to Queue A, else if message type B, send to Queue B and so on. Each queue would have a MDB instance servicing the messages. In order to process the messages sequentially on each queue, the pool size for each MDB would be 1.
My problem is that I don't know how many message types there are, this is decided at runtime.
How can I create the Queues and register MDB at runtime?
After some research, I have found the ability to create the Queues using JMX. But, I cannot seem to find details on how to create a register an MDB and tell it to listen on a particular Queue. Has anyone had any experience doing such a thing?OK, i have some code similar to below, where I want to
create a new instance of the class BookRecord which
takes parameters from Book b, which is an instance if
the class Book.
//This is code from the Libraray class
public void addBookRecord(Book b, String author,
String title)
bookHolder = new BookRecord(b, author, title);
}Now this creates a new BookRecord object that has an
author and title which refer to the Book b. Now when i
invoke the method again, choosing the same object for
b as i did last time it creates a second BookRecord
object, when I just want it to overwrite the values of
the previous BookRecord object. how can i do this
simply?
Thanks in advanceWell I am not quite sure if I understood.
But refering to what you wrote I would say:
//This is code from the Libraray class
public void addBookRecord(Book b, String author, String title)
if(bookHolder.getBook() != b)
// Not the same book object
bookHolder = new BookRecord(b, author, title);
else
// same book object
bookHolder.setAuthor(author);
book.setTitle(tile);
As I said may be totally not what you are looking for.
Regards
Tarik -
Running into strange errors when creating a new instance
Hello:
I am running 9.2.0.8 on a Windows 2003 Server.
When I try to create a new instance, I chose a New Database/UTF-8/16KB Block Size. Everything else was default value. However, I get a "ORA-29807: specified operator does not exist" error. When I looked into the Create log file, the file, CreateDBCatalog.log has the following errors:
No errors.
No errors.
drop table AUDIT_ACTIONS
ERROR at line 1:
ORA-00942: table or view does not exist
No errors.
CREATE ROLE exp_full_database
ERROR at line 1:
ORA-01921: role name 'EXP_FULL_DATABASE' conflicts with another user or role name
CREATE ROLE imp_full_database
ERROR at line 1:
ORA-01921: role name 'IMP_FULL_DATABASE' conflicts with another user or role name
drop table system.logstdby$skip_support
ERROR at line 1:
ORA-00942: table or view does not exist
Warning: View created with compilation errors.
Warning: View created with compilation errors.
CREATE ROLE exp_full_database
ERROR at line 1:
ORA-01921: role name 'EXP_FULL_DATABASE' conflicts with another user or role name
CREATE ROLE imp_full_database
ERROR at line 1:
ORA-01921: role name 'IMP_FULL_DATABASE' conflicts with another user or role name
drop synonym DBA_LOCKS
ERROR at line 1:
ORA-01434: private synonym to be dropped does not exist
drop view DBA_LOCKS
ERROR at line 1:
ORA-00942: table or view does not exist
No errors.
drop package body sys.diana
ERROR at line 1:
ORA-04043: object DIANA does not exist
drop package sys.diana
ERROR at line 1:
ORA-04043: object DIANA does not exist
drop table sys.pstubtbl
ERROR at line 1:
ORA-00942: table or view does not exist
drop package body sys.diutil
ERROR at line 1:
ORA-04043: object DIUTIL does not exist
drop package sys.diutil
ERROR at line 1:
ORA-04043: object DIUTIL does not exist
drop procedure sys.pstubt
ERROR at line 1:
ORA-04043: object PSTUBT does not exist
drop procedure sys.pstub
ERROR at line 1:
ORA-04043: object PSTUB does not exist
drop procedure sys.subptxt2
ERROR at line 1:
ORA-04043: object SUBPTXT2 does not exist
drop procedure sys.subptxt
ERROR at line 1:
ORA-04043: object SUBPTXT does not exist
No errors.
No errors.
No errors.
No errors.
drop type dbms_xplan_type_table
ERROR at line 1:
ORA-04043: object DBMS_XPLAN_TYPE_TABLE does not exist
drop type dbms_xplan_type
ERROR at line 1:
ORA-04043: object DBMS_XPLAN_TYPE does not exist
No errors.
DROP TABLE ODCI_SECOBJ$
ERROR at line 1:
ORA-00942: table or view does not exist
DROP TABLE ODCI_WARNINGS$
ERROR at line 1:
ORA-00942: table or view does not exist
No errors.
No errors.
No errors.
No errors.
drop sequence dbms_lock_id
ERROR at line 1:
ORA-02289: sequence does not exist
drop table dbms_alert_info
ERROR at line 1:
ORA-00942: table or view does not exist
No errors.
No errors.
No errors.
No errors.
No errors.
No errors.
No errors.
No errors.
No errors.
No errors.
No errors.
No errors.
No errors.
No errors.
No errors.
No errors.
No errors.
No errors.
No errors.
No errors.
No errors.
No errors.
No errors.
drop table SYSTEM.AQ$_Internet_Agent_Privs
ERROR at line 1:
ORA-00942: table or view does not exist
drop table SYSTEM.AQ$_Internet_Agents
ERROR at line 1:
ORA-00942: table or view does not exist
No errors.
No errors.
No errors.
No errors.
No errors.
No errors.
No errors.
No errors.
No errors.
DROP SYNONYM def$_tran
ERROR at line 1:
ORA-01434: private synonym to be dropped does not exist
DROP SYNONYM def$_call
ERROR at line 1:
ORA-01434: private synonym to be dropped does not exist
DROP SYNONYM def$_defaultdest
ERROR at line 1:
ORA-01434: private synonym to be dropped does not exist
DBMS_DEBUG successfully loaded.
PBUTL successfully loaded.
PBRPH successfully loaded.
PBSDE successfully loaded.
PBREAK successfully loaded.
DROP TYPE SYS.RewriteMessage FORCE
ERROR at line 1:
ORA-04043: object REWRITEMESSAGE does not exist
DROP TYPE SYS.RewriteArrayType FORCE
ERROR at line 1:
ORA-04043: object REWRITEARRAYTYPE does not exist
DROP TYPE SYS.ExplainMVMessage FORCE
ERROR at line 1:
ORA-04043: object EXPLAINMVMESSAGE does not exist
DROP TYPE SYS.ExplainMVArrayType FORCE
ERROR at line 1:
ORA-04043: object EXPLAINMVARRAYTYPE does not exist
No errors.
drop view sys.transport_set_violations
ERROR at line 1:
ORA-00942: table or view does not exist
drop table sys.transts_error$
ERROR at line 1:
ORA-00942: table or view does not exist
No errors.
No errors.
No errors.
No errors.
No errors.
No errors.
No errors.
No errors.
No errors.
No errors.
No errors.
No errors.
No errors.
No errors.
No errors.
No errors.
No errors.
No errors.
No errors.
No errors.
No errors.
No errors.
No errors.
No errors.
No errors.
No errors.
No errors.
No errors.
drop operator XMLSequence
ERROR at line 1:
ORA-29807: specified operator does not exist
What does this mean?
venki
Edited by: thevenkat on Mar 11, 2009 10:17 PMVenki,
The ORA-00942 is okay because there is no existing object. But what stuck me is the ORA-01921 error which may indicate that this might not be a new database.
CREATE ROLE exp_full_database
ERROR at line 1:
ORA-01921: role name 'EXP_FULL_DATABASE' conflicts with another user or role name
CREATE ROLE imp_full_database
ERROR at line 1:
ORA-01921: role name 'IMP_FULL_DATABASE' conflicts with another user or role name
Are there any existing databases on this server? Have you tried to create it on other machine?I searched on Metalink too and found Doc ID: 237486.1 ORA-29807 Signalled While Creating Database using DBCA which say that eroror could be ignored. You may want to review that as well.
Ittichai -
Create new instance through global interactive activity
Hi All,
I have a requirement where when instance is completed, I need to provide a link at instance end through global interactive activity. Once user clicks on that activity a screen appears where user clicks on button and new instance should be created.
Now the problem is I tried notifying the main process and then use process creation activity to create instance but this cannot be used as instance is already completed.
Second approach i used is processinstance.create method. But new insatnce is not getting created. Also i m not getting any exception.
Please reply as this is very important requirement.
Regards,
YasminCreate a new instance before the END activity is executed..
After the screenflow for the global activity pass a variable to collect the button value on ON CLICK..
If button value = true, then call a sub-process else END.. The sub-process does not need any Global activity to start the process . The values would be passed from the BEGIN activity of the sub-process itself. -
I have two classes. In one class I have created a new instance of the other class as follows:
class1{
class2 c2 = new class2(this);
However in class2 I now want to create a new instance of class1 but I cant do this as I go into an infinite loop right. What can I do???In class1 I have a JTable, with a number of colums and
each row containing data pertaining to a record. In
class2 I have a text area, comboboxes, and other such
gui items. class1 extends JFrame. class2 extends
JPanel. When the user selects a row the gui created in
class2 is added to the frame in class1 (south of
JTable)
Each time the user selects a different row, the
appropriate data (data from the row selected)is
displayed in the gui items in class2 - hence the need
for a new instance of class2 in class1.
However when the user presses the save button in the
class 2 gui I wish the data to be updated in the
class1 JTable - hence the need for a new instance of
class1 in class2. I can see the need for class2 to have a reference to the instance of class1. But it does not sound like you need or want to create a new instance of class1. class1 is a JFrame. If you pass a reference to class1 in the constructor of class2, then class2 can use the reference to the class1 instance to add, remove or otherwise update class1. -
Digital PID Loop Output from MV?
I'm setting up a PID loop with a digital output. It's a heating pad (which heats up pretty quickly). I've been looking for a good example of PID loops with digital outputs and haven't really found much. It seems like I just need to find a way to turn a 0-100% value into a binary value which turns on and off rapidly.
I made a simple little VI which I would attach to the output (MV) of the PID loops (standard). I just wondered if anyone could let me know if this is good enough? Is there a level of complexity I haven't thought of yet?
Attachments:
Digital PID Output.png 21 KBAre you looking for a PWM digital output? If so, this thread might be useful. It uses a USB-6008 for the digital ouput so it should work with any NI-DAQ device with a digtial output. There are better ways of doing PWM with more capable devices but it's a start.
~Simon -
Hi,
I want some confirmation on the optimum pid loop rate and the fastest servo motor operation that we can acheive with Pxi-7352 running on Window.
The manual of 7352 says "62 μs PID loop update rate for up to 2 axes". The requirment is to acheive periodic equi sized straight line and rotary motion ( using yaskawa servo motors in torque mode and 7352 to close position loop ) Both motion are independant and not operating simultaneous i.e rotary completes one full rotation in small steps and then linear moves by one small step then rotary completes next rotation in small steps and again linear motor moves this continues till end of test.
you can observe here that both rotary and liner motion are periodic and move equi spaced distance for each step with small stoppage/dwell time of 500 u sec , The catch is in addition to positional accuracy in terms of 50 -100 microns the time for complete each step is also very crucial and very small (many peridoc steps together consitute complete linear and rotary motion). Find expected velocity profile attached for more details on desired timing.
As the motors have simple and periodic straight line and rotary motion i suppose buffered contour moves are not needed which have limitation of 10 msec between two points, then can the time to acheive each step be as low as 2.5 to 5 msec considering best loop rate of 62.5 u sec and highest/worst pid loop rate of 500 usec.
1. Is the expected timing of 2.5 - 5 m sec feasible assuming that the motor is capable of reaching 5000 rpm which is well above desired speed.
2. 735x series being high performance motion controller what is the order of closed loop timing that we can expect for simple and periodic moves (say in order of 1000 usec or 10 msec)
3. Can i interface one stepper motor and another servo motor where both the motors and drives are in position mode on single 7352 and UMI 7772.
4. Are there any limitation if NI motion is not used for code development and NI motion Assistant along with LabVIEW is used instead.
This is precision application and the component is very small ,the weight of the component would be less than 400 grams so i hope we do not have to consider inertial affect on motion significantly.
Appriciate if some one with similar experience can provide more details.
Regards,
Bipin
Solved!
Go to Solution.
Attachments:
Velocity Profile.png 21 KBHi Bipin,
thank you for your comprehensive post. I had a close look at your timing specs and I strongly doubt, that these specs can be met with a 7352 board. Even though the PID loop rate of 62.5µs might be enough, both trajectory generator and the supervisory control (host communication, move command sequencing,...) are too slow to meet your requirements. Please note, that the trajectory generator always works with a timing interval of 10 ms, regardless of the operation mode (linear move, contouring, blending,...), so there is no way to reach your timing specs with this product. In general contouring is the fastest way to run a quick succession of moves, as it doesn't require host communication (by the way: onboard programs don't execute much faster, than programs that are running on the host).
I don't want to make negative mareketing for our 735x boards, but your timing requirements are just way beyond the requirements of typical motion control applications and it's probably quite hard to find any COTS product in the market, that can meet these specs.
With this said, I would like to offer you an alternative solution, that is based on NI's FPGA technology. Additionally to a faster trajectory generator a faster control loop is probably also very desireable for your application. Even with the lowest price Virtex-II based R-Series multifunction board (PCI-7830R) you can run PID loops with 5µs cycle time and the trajectory generator at the same rate. You even can use a different type of control algorithm if required. This technology is leveraged very successfull in a lot of applications with very high performance and accuracy requirements (here are some examples).
So these are the pros, but where are the cons? Well, the R-Series boards are general purpose FPGA boards and not ready to run motion control boards, so you need to develop the low-level control application by yourself. The good news here is, that it can all be done graphically in LabVIEW and that there are many ready to run examples for motion control, that can be used as a base for your development. Additionally you may want to have a look at the NI SoftMotion Development Module for LabVIEW, that simplifies the development of motion control applications, but it is not a mandatory tool and the benefits of this module might not be as high for your application, as ithey are for more standard motion control applications.
I hope that helps.
Kind regards,
Jochen Klier
National Instruments -
I need to transition my 1st Generation Apple TV from an older instance of iTunes on my iBook to a new instance of iTunes on my new Mac... How do I get the 5 digit Network code to come back? Is there anyway for 1st Generation Apple TV to be synched to two instances of iTunes or do I have to choose one or the other? I appreciate any advice or suggestions. Thanks!
The 5 digit code is every time different. That does not matter. Just integrate every device into your network.
You can connect many computers to Apple TV but syncronisation works exactly with one computer. That's why I use "streaming". But you can sync one computer, then another, and so on. The content on your Apple TV is the content from your computer that has synced last. But you can not mix it.
The new Apple TV has no syncronisation. Everything is streamed,
Regards,
Torsten,
Germany
Maybe you are looking for
-
Late 2012 Mac Mini - Random spinning beachball then crash.
Hi, I have a late 2012 Mac Mini bought last summer. Since the early days I would randomly get the spinning beach ball and there was no bringing it back. A re-boot would be required. I upgraded to Yosemite and the issue still occurs. I could literally
-
Detailed Aging Report from SAP B1 v2007A
Hello all, I have SAP Business One v 2007 A in my company. The auditors are coming in next week and I was trying to get the Aging report for both vendor and customer. The default summary looks good. To get the details, I have to go into each customer
-
Reading Config Files in WPF without "My.Settings"
Please I need help on this.. I am working on a WPF project and I need to read an entry from the applicationSettings section of my configuration file in the Visual Studio 2008 WPF project. My.Settings.ValueToRead works very well and it returns what I
-
Tables for PO changes and message output
Hi Experts I wish to capture the changes in PO in the respective change out put. For this purpose, i need to fetch the relevant infmrmation applicable for the change output. Please let me know the appropriate tables for: -PO changes -item and header
-
I have a new iPhone - 5c, if I back my info onto iCloud is that enough so I don't loose my info when switching phones?