07-16-2006 11:20 PM
07-17-2006 03:34 AM
hi there
first of all: what resolution do you need? if you need < ms you should use some sort of hardware trigger. if > ms is ok, then try this:
create a DataSocket item on App1 and write the timed loop index on this item. on App2 read the items value with parameter "wait for updated value" set to TRUE. the read function won't time out when App1 writes the next loop index to this item. you'll need a network connection between system 1 and system 2.
to answer your remark "PS:I noticed that some sort of synchronization already exists...":
the timed loops of one instance of the LV runtime engine use the same ms timing source, so it's obvious that they run in sync. if you create two vis with a timed loop and built seperate executables you'll see that they aren't in sync anymore, because each loop now has its own instance of the runtime engine and so its own timing source.
07-17-2006 11:30 PM
Dear Chris,
Thank you for the suggestion!
Unfortunately I haven't fully understood how to code your explanation [I'm a newcomer of Labview (<3 months)] but I succeeded in synchronizing the two Timed Loops using some of your ideas J
At the beginning of every loop of the Timed Loop in Application1 I write with DataSocket the sum of the timestring obtained with "Get Date/Time in seconds" and the period (in seconds) of the Timed Loop structure (=the timestring of the start of the next loop).
When the second application is started, I read the timestring from DataSocket, simultaneously I obtain a timestring with "Get Date/Time in seconds" (=the start time of Application2), I calculate the difference in seconds and I feed this difference to the Express Vi "Time Delay". I then wire the ErrorOut of the "Time Dealy" to the ErrorIn of the Timed Structure in Application2.
07-18-2006 05:54 AM
hi there
please take a look at the attachment.