P
US7565609B2ExpiredUtilityPatentIndex 63

Synchronizing execution of graphical programs executing on different computer systems

Assignee: NAT INSTR CORPPriority: Jul 16, 2004Filed: Aug 16, 2005Granted: Jul 21, 2009
Est. expiryJul 16, 2024(expired)· nominal 20-yr term from priority
Inventors:VRANCIC ALJOSAKORNERUP JACOB
G06F 2209/544H04L 43/00G06F 11/323G06F 9/451G06F 8/34G06F 2209/545G06F 9/542
63
PatentIndex Score
5
Cited by
41
References
29
Claims

Abstract

A first graphical program executing on a first device may execute a first graphical code portion for a plurality of iteration. Various systems and methods for synchronizing the execution of the iterations of the first graphical code portion with graphical code portions executing iteratively in graphical programs on other devices are described. Various systems and methods for synchronizing the execution of the iterations of the first graphical code portion with operation of measurement devices or other devices are also described.

Claims

exact text as granted — not AI-modified
1. A system comprising:
 a first device coupled to a network, wherein the first device executes a first graphical program, wherein the first graphical program comprises a plurality of interconnected nodes that visually indicate functionality of the first graphical program, wherein the plurality of interconnected nodes comprises a first node and one or more function nodes associated with the first node; 
 a second device coupled to the network; 
 wherein the first graphical program is operable to execute a first graphical code portion, wherein the execution of the first graphical code portion is timed based on a specified timing source and a specified timing period; 
 wherein the specified timing source specifies a tick based on at least one of:
 a clock of the second device; or 
 events originating from the second device; and 
 
 wherein the specified timing period specifies a number of ticks required to trigger execution of the first graphical code portion; 
 wherein the network is operable to support communication according to a network cycle, and wherein the events originating from the second device comprise network events based on the network cycle of the network, wherein the first node is configured to receive a first network event; and 
 wherein to execute the first graphical code portion, the first node is executable to cause the one or more function nodes to execute in response to receiving the first network event. 
 
     
     
       2. The system of  claim 1 ,
 wherein the first graphical code portion comprises one or more nodes of the first graphical program. 
 
     
     
       3. The system of  claim 1 , wherein the first graphical program is operable to execute the first graphical code portion for a plurality of iterations, wherein each iteration of the first graphical code portion is triggered by the specified timing source per the specified timing period. 
     
     
       4. The system of  claim 3 , wherein the first graphical program includes a timed loop, wherein the timed loop is operable to perform said executing the first graphical code portion for the plurality of iterations. 
     
     
       5. The system of  claim 3 , further comprising:
 a third device coupled to the network, wherein the third device executes a second graphical program; 
 wherein the second graphical program is operable to execute a second graphical code portion for a plurality of iterations, wherein the iterations of the second graphical code portion are timed based on the clock of the second device; 
 wherein the iterations of the first graphical code portion are timed based on the clock of the second device; and 
 wherein the clock of the second device provides a common timing source for synchronizing the iterations of the first graphical code portion in the first graphical program executing on the first device with the iterations of the second graphical code portion in the second graphical program executing on the third device. 
 
     
     
       6. The system of  claim 5 , further comprising:
 a third device coupled to the network, wherein the third device comprises a measurement device; 
 wherein a clock of the measurement device is synchronized with the clock of the second device; 
 wherein the iterations of the first graphical code portion are timed based on the clock of the second device; and 
 wherein the clock of the second device provides a common timing source for synchronizing the iterations of the first graphical code portion in the first graphical program with operation of the measurement device. 
 
     
     
       7. The system of  claim 3 , further comprising:
 a third device coupled to the first device, wherein the third device comprises a measurement device; 
 wherein a clock of the measurement device is synchronized with the clock of the second device; 
 wherein the iterations of the first graphical code portion are timed based on the clock of the second device; and 
 wherein the clock of the second device provides a common timing source for synchronizing the iterations of the first graphical code portion in the first graphical program with operation of the measurement device. 
 
     
     
       8. The system of  claim 3 ,
 wherein the second device executes a second graphical program; 
 wherein the second graphical program is operable to execute a second graphical code portion for a plurality of iterations, wherein the iterations of the second graphical code portion are timed based on the clock of the second device; 
 wherein the iterations of the first graphical code portion are timed based on the clock of the second device; and 
 wherein the clock of the second device provides a common timing source for synchronizing the iterations of the first graphical code portion in the first graphical program executing on the first device with the iterations of the second graphical code portion in the second graphical program executing on the second device. 
 
     
     
       9. The system of  claim 3 ,
 wherein the iterations of the first graphical code portion are timed based on events originating from the second device; 
 wherein the second device executes a second graphical program, wherein the second graphical program is operable to execute a second graphical code portion for a plurality of iterations; and 
 wherein each iteration of the second graphical code portion in the second graphical program results in an event that causes an iteration of the first graphical code portion in the first graphical program to occur. 
 
     
     
       10. The system of  claim 9 ,
 wherein each iteration of the second graphical code portion in the second graphical program is operable to send data to the first graphical program, wherein said sending data to the first graphical program results in the event that causes the iteration of the first graphical code portion in the first graphical program to occur. 
 
     
     
       11. The system of  claim 3 ,
 wherein the iterations of the first graphical code portion are timed based on events originating from a second graphical program executing on the second device; and 
 wherein each event is generated in response to the first graphical program executing on the first device receiving a data value from the second graphical program executing on the second device. 
 
     
     
       12. The system of  claim 3 ,
 wherein the second device executes a second graphical program; 
 wherein the iterations of the first graphical code portion are timed based on events originating from the second graphical program executing on the second device; and 
 wherein each event originating from the second graphical program executing on the second device indicates that the first graphical program has received a data value from the second graphical program executing on the second device. 
 
     
     
       13. The system of  claim 1 ,
 wherein the first graphical program is operable to execute the first graphical code portion for a plurality of iterations, wherein the iterations of the first graphical code portion are timed based on the network cycle of the network. 
 
     
     
       14. The system of  claim 13 ,
 wherein the iterations of the first graphical code portion are timed based on the network cycle of the network to cause each iteration of the first graphical code portion to begin executing at a first time relative to a start time of the network cycle. 
 
     
     
       15. The system of  claim 13 ,
 wherein the network cycle comprises a plurality of time slots; 
 wherein timing the iterations of the first graphical code portion based on the network cycle of the network comprises causing each iteration of the first graphical code portion to begin executing at a first time slot in the network cycle. 
 
     
     
       16. The system of  claim 1 ,
 wherein the first graphical code portion comprises a sequence of sub-portions to be executed sequentially, wherein each sub-portion comprises one or more nodes; 
 wherein said executing the first graphical code portion comprises sequentially executing the sequence of sub-portions, wherein the execution of one or more of the sub-portions is timed based on the at least one of:
 the clock of the second device; or 
 the events originating from the second device. 
 
 
     
     
       17. The system of  claim 1 ,
 wherein the second device comprises a measurement device. 
 
     
     
       18. A computer accessible memory medium that stores program instructions for creating a first graphical program, wherein the program instructions are executable by a processor to implement:
 a first graphical program operable to execute on a first device coupled to a network, wherein the first graphical program comprises a plurality of interconnected nodes that visually indicate functionality of the first graphical program, wherein the plurality of interconnected nodes comprises a first node and one or more function nodes associated with the first node, wherein the first graphical program is operable to execute a first graphical code portion, wherein the execution of the first graphical code portion is timed based on a specified timing source and a specified timing period; 
 wherein the specified timing source specifies a tick based on at least one of:
 a clock of a second device coupled to the network; or 
 events originating from the second device; and 
 
 wherein the specified timing period specifies a number of ticks required to trigger execution of the first graphical code portion; 
 wherein the network is operable to support communication according to a network cycle, and wherein the events originating from the second device comprise network events based on the network cycle of the network, wherein the first node is configured to receive a first network event; and 
 wherein to execute the first graphical code portion, the first node is executable to cause the one or more function nodes to execute in response to receiving the first network event. 
 
     
     
       19. The memory medium of  claim 18 ,
 wherein the first node is operable to execute a timed loop for a plurality of iterations, wherein the one or more function nodes are executed in each iteration, wherein the iterations are timed based on the first network event. 
 
     
     
       20. The memory medium of  claim 19 ,
 wherein the first node visually indicates that the one or more function nodes are executed for the plurality of iterations. 
 
     
     
       21. The memory medium of  claim 19 ,
 wherein the first node comprises an interior portion; and 
 wherein the one or more function nodes are displayed within the interior portion of the first node. 
 
     
     
       22. The memory medium of  claim 18 ,
 wherein the first graphical program executes on a first computer system; 
 wherein the first network event is generated in response to the first computer system receiving one or more messages over a network. 
 
     
     
       23. The memory medium of  claim 18 , wherein the first graphical program executes on a first computer system;
 wherein the first network event is generated in response to the first computer system sending one or more messages over a network. 
 
     
     
       24. The memory medium of  claim 18 ,
 wherein the first network event indicates that a first type of network communication has occurred. 
 
     
     
       25. The memory medium of  claim 18 ,
 wherein the first graphical program includes a first variable; 
 wherein the first network event indicates that a value for the first variable has been received over a network. 
 
     
     
       26. The memory medium of  claim 18 ,
 wherein the first graphical program includes a first variable; 
 wherein the first network event indicates that a value for the first variable has been sent over a network. 
 
     
     
       27. The memory medium of  claim 18 ,
 wherein the one or more function nodes comprise a plurality of graphical code portions to be executed in a sequential order; 
 wherein the first node is operable to execute the plurality of graphical code portions in the sequential order in response to receiving the first network event. 
 
     
     
       28. The memory medium of  claim 18 , wherein the program instructions are further executable to:
 display a graphical user interface (GUI) associated with the first node, wherein the first node is configured to receive the first network event in response to user input to the GUI. 
 
     
     
       29. A computer-implemented method for creating and executing a graphical program, the method comprising:
 displaying a first node in the graphical program, wherein the graphical program comprises a plurality of interconnected nodes that visually indicate functionality of the graphical program, wherein the plurality of interconnected nodes comprises a first node and one or more function nodes associated with the first node, wherein the first node has an appearance that visually indicates control of timing of execution of nodes associated with the first node, and wherein the graphical program is comprised on a first device coupled to a network; 
 displaying one or more function nodes associated with the first node; 
 configuring timing information for the first node based on a specified timing source and a specified timing period in response to user input; 
 wherein the specified timing source specifies a tick based on at least one of:
 a clock of a second device coupled to the network; or 
 events originating from the second device; and 
 
 wherein the specified timing period specifies a number of ticks required to trigger execution of the first graphical code portion; 
 wherein the events originating from the second device comprise network messages; 
 wherein said configuring timing information for the first node comprises configuring timing information for the first node based on a specified one or more network messages; 
 executing the graphical program, wherein said executing comprises:
 the first node causing the one or more function nodes to execute based on the specified timing source and the specified timing period, including the first node causing the one or more function nodes to execute when the specified one or more network messages are received.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.