U.S. patent application number 13/538868 was filed with the patent office on 2012-10-25 for synchronization and data review system.
This patent application is currently assigned to The MathWorks, Inc.. Invention is credited to Donald P. OROFINO, II.
Application Number | 20120271605 13/538868 |
Document ID | / |
Family ID | 34116552 |
Filed Date | 2012-10-25 |
United States Patent
Application |
20120271605 |
Kind Code |
A1 |
OROFINO, II; Donald P. |
October 25, 2012 |
SYNCHRONIZATION AND DATA REVIEW SYSTEM
Abstract
A method and system control data collection and display
parameters in two or more data modules in a dynamic system. The
method and system provide the ability to collect and display data
in a dynamic system having two or more data modules communicatively
coupled thereto. As the dynamic system operates, data is generated.
At least one controller manages data collection and display
behavior of the two or more data modules. Ultimately, the
controller controls data collection and display parameters for each
of the two or more data modules in a manner that enables
synchronization. The controller can be imbedded within the control
module system. The method and system provides the user with the
ability to better control, manipulate, review, and synchronize the
collection of data in a dynamic system, whether physical or
virtual, real time, or a simulation.
Inventors: |
OROFINO, II; Donald P.;
(Sudbury, MA) |
Assignee: |
The MathWorks, Inc.
Natick
MA
|
Family ID: |
34116552 |
Appl. No.: |
13/538868 |
Filed: |
June 29, 2012 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
12547861 |
Aug 26, 2009 |
|
|
|
13538868 |
|
|
|
|
10637206 |
Aug 7, 2003 |
7584082 |
|
|
12547861 |
|
|
|
|
Current U.S.
Class: |
703/6 |
Current CPC
Class: |
G06F 30/20 20200101 |
Class at
Publication: |
703/6 |
International
Class: |
G06G 7/48 20060101
G06G007/48 |
Claims
1. (canceled)
2. A method performed by a computer device, the method comprising:
receiving first information from a plurality of data modules, the
receiving the first information being performed by the computer
device; providing, for presentation, the received first
information, the providing, for presentation, the received first
information being performed by the computer device; receiving a
first prompt to provide a snapshot of the received first
information being provided for presentation, the receiving the
first prompt being performed by the computer device; transmitting,
based on receiving the first prompt and at a point in time,
instructions to pause the received first information being provided
for presentation, the transmitting being performed by the computer
device; receiving, after transmitting the instructions, second
information from the plurality of data modules, the receiving the
second information being performed by the computer device;
receiving a second prompt to stop pausing the received first
information being provided for presentation, the receiving the
second prompt being performed by the computer device; and
providing, for presentation, the second information that was
received after the received first information and beginning at the
point in time, the providing, for presentation, the received second
information being performed by the computer device.
3. The method of claim 2, where the plurality of data modules
include a first data module of a dynamic system and a second data
module of the dynamic system, the first data module receives a
first type of information related to simulation of at least one
component of the dynamic system, and the second data module
receives a second type of information related to simulation of at
least one component of the dynamic system, the second type of
information being different than the first type of information.
4. The method of claim 3, where the plurality of data modules
includes a third data module of the dynamic system, the method
further comprising: receiving third information from the third data
module; providing, for presentation, the received third
information; and pausing, based on the received first prompt, the
received third information being provided for presentation.
5. The method of claim 3, where the plurality of data modules
includes a third data module of the dynamic system, the method
further comprising: receiving third information from the third data
module; and providing, for presentation, the received third
information after receiving the first prompt.
6. The method of claim 2, where the first prompt is based on an
expiration of a predetermined amount of time.
7. The method of claim 2, further comprising: storing the received
second information in a buffer.
8. The method of claim 2, further comprising: storing a first part
of the received second information in a first part of a memory;
determining that the first part of the memory is full; providing
additional memory; and storing a second part of the received second
information in the additional memory.
9. A non-transitory computer-readable medium comprising: one or
more instructions which, when executed by at least one processor,
cause the at least one processor to receive first information from
a plurality of data modules; one or more instructions which, when
executed by the at least one processor, cause the at least one
processor to provide, for presentation, the received first
information; one or more instructions which, when executed by the
at least one processor, cause the at least one processor to receive
a first prompt to provide a snapshot of the received first
information being provided for presentation; one or more
instructions which, when executed by the at least one processor,
cause the at least one processor to transmit, based on receiving
the first prompt and at a point in time, instructions to pause the
received first information being provided for presentation; one or
more instructions which, when executed by the at least one
processor, cause the at least one processor to receive, after
transmitting the instructions, second information from the
plurality of data modules; one or more instructions which, when
executed by the at least one processor, cause the at least one
processor to receive a second prompt to stop pausing the received
first information being provided for presentation; and one or more
instructions which, when executed by the at least one processor,
cause the at least one processor to provide, for presentation, the
second information that was received immediately after the received
first information and beginning at the point in time.
10. The non-transitory computer-readable medium of claim 9, where
the plurality of data modules include a first data module of a
dynamic system and a second data module of the dynamic system, the
first data module receives a first type of information related to
simulation of at least one component of the dynamic system, and the
second data module receives a second type of information related to
simulation of at least one component of the dynamic system, the
second type of information being different than the first type of
information.
11. The non-transitory computer-readable medium of claim 10, where
the plurality of data modules include a third data module of the
dynamic system, the medium further comprising: one or more
instructions to receive third information from the third data
module; one or more instructions to provide, for presentation, the
received third information; and one or more instructions to pause,
based on the received first prompt, the received third information
being provided for presentation.
12. The non-transitory computer-readable medium of claim 10, where
the plurality of data modules include a third data module of the
dynamic system, the medium further comprising: one or more
instructions to receive third information from the third data
module; and one or more instructions to provide, for presentation,
the received third information after receiving the first
prompt.
13. The non-transitory computer-readable medium of claim 9, where
the first prompt is based on an expiration of a predetermined
amount of time.
14. The non-transitory computer-readable medium of claim 9, further
comprising one or more instructions to store the received second
information in a buffer.
15. The non-transitory computer-readable medium of claim 9, further
comprising: one or more instructions to store a first part of the
received second information in a first part of a memory; one or
more instructions to determine that the first part of the memory is
full; one or more instructions to provide additional memory; and
one or more instructions to store a second part of the received
second information in the additional memory.
16. A device comprising: a processor; and a memory coupled to the
processor, the memory storing instructions that, when executed by
the processor, cause the processor to: insert a first data module
into dynamic system; receive, from the first data module, a first
type of information related to simulation of at least one component
of the dynamic system; insert a second data module into dynamic
system, the second data module being different than the first data
module; receive, from the second data module, a second type of
information related to simulation of at least one component of the
dynamic system, the second type of information being different than
the first type of information; provide, for presentation, the
received first type of information and the received second type of
information; receive a first prompt to provide a snapshot of the
received first type of information being provided for presentation
and the received second type of information being provided for
presentation; and provide, for presentation, the snapshot of the
received first type of information being provided for presentation
and the received second type of information being provided for
presentation.
17. The device of claim 16, where the processor is further to:
stop, based on receiving the first prompt, receiving at least one
of the first type of information or the second type of
information.
18. The device of claim 16, where the first prompt is based on an
expiration of a predetermined amount of time.
19. The device of claim 16, where the processor is further to:
provide a scroll function, where the scroll function is provided
when the processor provides, for presentation, the received first
type of information and the received second type of information and
when the processor provides, for presentation, the snapshot.
20. The device of claim 16, where the processor is further to:
store the received first type of information and the received
second type of information in a buffer.
21. The device of claim 16, where the processor is further to:
store a first part of at least one of the received first type of
information or the received second type of information in a first
part of a memory; determine that the first part of the memory is
full; provide additional memory; and store a second part of at
least one of the received first type of information or the received
second type of information in the additional memory.
Description
RELATED APPLICATION
[0001] The present application is a continuation of U.S. patent
application Ser. No. 10/637,206, entitled "Synchronization and Data
Review System", filed Aug. 7, 2003, the contents of which are
incorporated herein by reference.
FIELD OF THE INVENTION
[0002] The present invention relates to a data collection system
suitable for controlling the collection of data from a plurality of
instruments, and more particularly to a data collection system
providing synchronization capability for the collection of data
from multiple sources and subsequent data review.
BACKGROUND OF THE INVENTION
[0003] A dynamic system (either natural or man-made) is a system
whose response at any given time is a function of its input
stimuli, its current state, and the current time. Such systems
range from simple to highly complex systems. Physical dynamic
systems include a falling body, the rotation of the earth,
bio-mechanical systems (muscles, joints, etc.), bio-chemical
systems (gene expression, protein pathways), weather and climate
pattern systems, etc. Examples of man-made or engineered dynamic
systems include: a bouncing ball, a spring with a mass tied on an
end, automobiles, airplanes, control systems in major appliances,
communication networks, audio signal processing, nuclear reactors,
a stock market, and the like. It should further be noted that there
can be different types of dynamic systems, including but not
limited to textual, graphical, block diagram, data flow, time
driven, event driven, and the like.
[0004] Dynamic systems often include a plurality of different forms
of instrumentation, some of which provide the ability to monitor
and/or measure different aspects of the dynamic system. The
instrumentation that monitors and/or measures different aspects of
the dynamic system receives a stream of data that corresponds to
the aspect being monitored or measured.
[0005] In addition, professionals from diverse areas such as
engineering, science, education, and economics build mathematical
models of dynamic systems in order to better understand system
behavior as it changes with the progression of time. The
mathematical models aid in building "better" systems, where
"better" may be defined in terms of a variety of performance
measures such as quality, time-to-market, cost, speed, size, power
consumption, robustness, etc. The mathematical models also aid in
analyzing, debugging and repairing existing systems (be it the
human body or the anti-lock braking system in a car). The models
may also serve an educational purpose of educating others on the
basic principles governing physical systems. The models and results
are often used as a scientific communication medium between
humans.
[0006] Powerful numeric computing methods and graphics let a user
test ideas and explore alternatives through simulation. One such
software application for technical computing is MATLAB.RTM., which
is provided by The Mathworks, Inc. of Natick, Mass.
[0007] Furthermore, engineers and scientists have utilized
time-based block diagram models in numerous scientific areas such
as Feedback Control Theory and Signal Processing to study, design,
debug, and refine dynamic systems. Dynamic systems, which are
characterized by the fact that their behaviors change over time,
are representative of many real-world systems. Time-based block
diagram modeling has become particularly attractive over the last
few years with the advent of software packages such as
Simulink.RTM. from The MathWorks, Inc. of Natick, Mass.
[0008] Block diagrams are a set of graphical connections between
blocks to model the above-described dynamic systems. The individual
blocks in a block diagram represent mathematical operations and
output a result.
[0009] Both the numerical or text simulation packages and the block
diagram simulation packages provide sophisticated software
platforms with a rich suite of support tools that makes the
analysis and design of dynamic systems efficient, methodical, and
cost-effective.
[0010] A block diagram simulation environment, such as
Simulink.RTM., often consists of multiple display devices connected
simultaneously to multiple signals, to monitor the progress of a
simulation at various points of interest. Conventional block
diagram environments often offer scope-type instrumentation blocks
to be used in these situations, with each scope connected to a
point of interest in the simulation. One of ordinary skill in the
art will appreciate that the physical dynamic systems can likewise
include instruments such as scopes to retrieve and display data
from the dynamic system operation.
[0011] To coordinate an effective analysis of a complicated
simulation, it is sometimes desirable to "pause" scopes to explore
captured data, while the simulation continues to execute in the
background. It is also sometimes desirable to completely "suspend"
data collection by the scopes. It is further desirable to be able
to synchronize the analysis of simultaneous signals by pausing or
suspending data collection across multiple scopes at the same
instant in time, to assess relationships between the data and
signals at various points within the model.
[0012] In addition, there is often a need to set the parameters for
data collection, manipulation, and review. There is also a need to
provide a data collection, review, display, and/or manipulation
system separate from the dynamic system that obtains data from the
dynamic system
SUMMARY OF THE INVENTION
[0013] In accordance with one embodiment of the present invention,
in a simulation environment, a method for controlling collection of
data generated by a dynamic system model includes providing the
dynamic system model. A control system is provided having two or
more data modules, the two or more data modules being
communicatively coupled to receive data from the dynamic system
model. The dynamic system model is activated, thereby generating
data. Data collection by the two or more data collection modules is
synchronized using the control system.
[0014] In accordance with aspects of the present invention, a
snapshot function can be executed to direct at least one of the two
or more data modules to freeze a display of data collected while
the dynamic system model continues to execute and the data
continues to be collected. A user can review the display of data
collected while data continues to be collected without updating the
display. A user can manipulate the display of data collected while
data continues to be collected.
[0015] In accordance with further aspects of the present invention,
a suspend function can be executed to pause collection of data
while the dynamic system continues to operate. An interface can be
provided having a communication port for communicating with each of
the two or more data modules. A review of data collected can be
implemented by the two or more data collection instruments by
utilizing a review function. A user can define data history
parameters utilizing a data history function. The data history
parameters can include at least one of amount of data history,
amount of memory allocation for storing data history, types of data
collected, signal attributes, and data formats.
[0016] In accordance with further aspects of the present invention,
a buffering mode can be directed to be utilized during data
collection from one of a circular buffering mode, a finite
buffering mode, and a buffer extension mode by executing a data
buffering mode function. A user can utilize a scroll function to
scroll through previously collected data while the dynamic system
model is operating. A time tracking function can be provided that
directs a graphical display indication of a time history of data
collected.
[0017] In accordance with further aspects of the present invention,
synchronizing the two or more data modules can include conveying to
selected of the two or more data modules a direction to synchronize
execution of one or more functions at the selected of the two or
more data modules by utilizing a broadcasting function.
[0018] In accordance with further aspects of the present invention,
an event based trigger can be utilzied to initiate a data module
action. The simulation environment can include at least one of a
graphical, textual, data flow, time based, and event based
environments. The two or more data modules can be virtually formed
using at least one of MATLAB, JAVA, C++, object-oriented code, and
computer code. The two or more data modules can provide displays in
the form of at least one of textual, graphical, multi-dimensional,
oscilloscope, and spectrum analyzer. The control system can be a
separate system from the dynamic system.
[0019] In accordance with another embodiment of the present
invention, in a simulation environment, a method for controlling
collection of data generated by a model of a dynamic system can
include providing the model of the dynamic system. A control system
can be provided having two or more data modules, the two or more
data modules being communicatively coupled to receive data from the
model of the dynamic system. The model of the dynamic system is
activated, thereby generating data. Data collection by the two or
more data collection modules is synchronized using the control
system. A snapshot function is executed to direct at least one of
the two or more data modules to freeze a display of data collected
while the model dynamic system continues to execute and the data
continues to be collected.
[0020] In accordance with another embodiment of the present
invention, in a simulation environment, a method for controlling
collection of data generated by a model of a dynamic system
includes providing the model of the dynamic system. A control
system is provided having two or more data modules, the two or more
data modules being communicatively coupled to receive data from the
model of the dynamic system. The model of the dynamic system is
activated, thereby generating data. Data collection by the two or
more data collection modules is synchronized using the control
system. A suspend function is executed to pause collection of data
while the dynamic system continues to operate.
[0021] In accordance with another embodiment of the present
invention, A method for controlling collection of data generated by
a dynamic system includes providing the dynamic system. A control
system is provided having two or more data modules, the two or more
data modules being communicatively coupled to receive data from the
dynamic system. The dynamic system is activated, thereby generating
data. Data collection by the two or more data collection modules is
synchronized using the control system.
[0022] In accordance with further aspects of the present invention,
the dynamic system is at least one of a virtual system and a
physical system. The control system is a separate system from the
dynamic system.
[0023] In accordance with another embodiment of the present
invention, in a simulation environment, a system for controlling
collection of data generated by a dynamic system model includes the
dynamic system model being provided in a simulation application and
configured to generate the data. A control system has two or more
data modules, the two or more data modules being communicatively
coupled to receive data from the dynamic system model. The data
collection by the two or more data collection modules is
synchronized using the control system.
[0024] In accordance with another embodiment of the present
invention, in a simulation environment, a system for controlling
collection of data generated by a model of a dynamic system
includes the dynamic system model being provided in a simulation
application and configured to generate the data. A control system
has two or more data modules, the two or more data modules being
communicatively coupled to receive data from the dynamic system
model. The data collection by the two or more data collection
modules is synchronized using the control system. A snapshot
function is provided that directs at least one of the two or more
data modules to freeze a display of data collected while the model
dynamic system continues to execute and the data continues to be
collected.
[0025] In accordance with another embodiment of the present
invention, in a simulation environment, a system for controlling
collection of data generated by a model of a dynamic system
includes the dynamic system model being provided in a simulation
application and configured to generate the data. A control system
has two or more data modules, the two or more data modules being
communicatively coupled to receive data from the dynamic system
model. The data collection by the two or more data collection
modules is synchronized using the control system. A suspend
function is provided to pause collection of data while the dynamic
system continues to operate.
[0026] In accordance with another embodiment of the present
invention, a system for controlling collection of data generated by
a dynamic system includes the dynamic system being provided in a
simulation application and configured to generate the data. A
control system has two or more data modules, the two or more data
modules being communicatively coupled to receive data from the
dynamic system. The data collection by the two or more data
collection modules is synchronized using the control system.
[0027] In accordance with one embodiment of the present invention,
a method for controlling at least one parameter relating to data
outputted by a dynamic system includes providing the dynamic system
having two or more data modules communicatively coupled thereto and
suitable for use in collection and analysis of data output,
operating the dynamic system thereby resulting in a generation of
data output, and managing at least one of data collection and data
display behavior by the two or more data modules of the data
output.
[0028] In accordance with aspects of the present invention, the
dynamic system can include a physical system of data modules and/or
a virtual system of data modules. The dynamic system operates in a
simulation environment. The method can further include providing an
interface having a communication port for communicating with each
of the two or more data modules.
[0029] In accordance with further aspects of the present invention,
at least one of data collection and display behavior are managed by
instructing at least one of the two or more data modules to begin
data collection and to halt data collection; instructing at least
one of the two or more data modules to pause data collection while
the dynamic system continues to operate, by utilizing a pause
function; and/or executing a snapshot function, directing at least
one of the two or more data modules to freeze a display of data
collected while the dynamic system continues to operate and the
data continues to be collected. A user can review the display of
data collected while data continues to be collected without
updating the display of data, and/or manipulate the display of data
collected while data continues to be collected.
[0030] In accordance with further aspects of the present invention,
managing at least one of data collection and display behavior is
carried out by directing at least one of the two or more data
modules to freeze a collection and display of data by utilizing a
suspend function; directing a review of data collected by the two
or more data modules by utilizing a review function; and/or a user
defining data history parameters utilizing a data history function.
The data history parameters can include at least one of amount of
data history, amount of memory allocation for storing data history,
types of data collected, signal attributes, and data formats.
Managing at least one of data collection and display behavior can
also be carried out by directing a buffering mode to be utilized
during data collection from one of a circular buffering mode, a
finite buffering mode, and a buffer extension mode by executing a
data buffering mode function.
[0031] In accordance with further aspects of the present invention,
a user can utilize a scroll function to scroll through previously
collected data while the dynamic system is operating. A time
tracking function can be provided that directs a graphical display
indication of a time history of data collected. Managing at least
one of data collection and display behavior can occur by conveying
to selected of the two or more data modules a direction to
synchronize execution of one or more functions at the selected of
the two or more data modules by utilizing a synchronizing function,
and/or by utilizing an event based trigger to initiate a controller
action.
[0032] In accordance with one embodiment a system for controlling
at least one parameter relating to data outputted by a dynamic
system includes two or more data modules each provided with an
interface. Two or more controllers, each provided with one of the
two or more data modules, are further provided. The two or more
controllers being for managing data collection and display behavior
of each of the two or more data modules and being communicatively
coupled with the interface. The two or more controllers control
data collection and display parameters by each of the two or more
data modules.
[0033] In accordance with aspects of the present invention, the
system includes a physical system of data modules, and/or a virtual
system of data modules. The system can operate in a simulation
environment. The interface can include a single interface having a
communication port for communicating with each of the two or more
data modules. The two or more controllers can instruct at least one
of the two or more data modules to begin data collection and to
halt data collection.
[0034] In accordance with further aspects of the present invention,
a pause function cause the two or more controllers to instruct at
least one of the two or more data modules to pause data collection
while the dynamic system continues to operate. The two or more
controllers can include a snapshot function that directs at least
one of the two or more data modules to freeze a display of data
collected while the dynamic system continues to operate and the
data continues to be collected. A user can review the display of
data collected while data continues to be collected without
updating the display of data. A user can manipulate the display of
data collected while data continues to be collected.
[0035] In accordance with further aspects of the present invention,
the two or more controllers can further include a suspend function
that directs at least one of the two or more data modules to freeze
a collection and display of data; a review function that directs a
review of data collected by the two or more data modules; and/or a
data history function that enables the user to define data history
parameters. The data history parameters can include at least one of
amount of data history, amount of memory allocation for storing
data history, types of data collected, signal attributes, and data
formats.
[0036] In accordance with further aspects of the present invention,
the two or more controllers can further include a data buffering
mode function that directs a buffering mode to be utilized during
data collection from one of a circular buffering mode, a finite
buffering mode, and a buffer extension mode; a scroll function that
enables the user to scroll through previously collected data while
the dynamic system is operating; a time tracking function that
directs a graphical display indication of a time history of data
collected; and/or a synchronizing function that conveys to selected
of the two or more data modules a direction to synchronize
execution of one or more functions at the selected of the two or
more data modules. Actions of the two or more controllers can be
triggered by occurrence of selected events.
[0037] In accordance with one embodiment of the present invention,
a medium holding computer executable steps for executing a method
for controlling at least one parameter relating to data outputted
by a dynamic system is provided. The method includes providing the
dynamic system having two or more data modules communicatively
coupled thereto and suitable for use in collection and analysis of
data output, operating the dynamic system thereby resulting in a
generation of data output, and managing at least one of data
collection and data display behavior by the two or more data
modules of the data output.
[0038] In accordance with one embodiment of the present invention,
a system for controlling at least one parameter relating to data
outputted by a dynamic system includes an interface for
communicating with two or more data modules. A controller for
managing data collection and display behavior of each of the two or
more data modules, is also provided. The controller is
communicatively coupled with the interface. The controller controls
data collection and display parameters for each of the two or more
data modules.
[0039] In accordance with one embodiment of the present invention,
a method for controlling at least one parameter relating to data
outputted by a dynamic system includes providing the dynamic system
having two or more data modules communicatively coupled thereto and
suitable for use in collection and analysis of data output. The
dynamic system is operated, thereby resulting in a generation of
data output. At least one of data collection and data display
behavior are managed by the two or more data modules of the data
output. Data collection and display parameters are controlled for
each of the two or more data modules, and a synchronizing function
provides at least two of the two or more data modules with a
direction to synchronize execution of one or more functions.
[0040] In accordance with one embodiment of the present invention,
a system for controlling collection and display of data generated
by a dynamic system includes an interface for communicating with
two or more data modules. A controller for managing data collection
and display behavior of each of the two or more data modules is
provided. The controller is communicatively coupled with the
interface. The controller controls data collection and display
parameters for each of the two or more data modules, and the
controller further utilizes a synchronizing function to provide at
least two of the two or more data modules with a direction to
synchronize execution of one or more functions.
[0041] In accordance with one embodiment of the present invention,
a medium holding computer executable steps for executing a method
for controlling collection and display of data generated by a
dynamic system is provide the method includes providing the dynamic
system having two or more data modules communicatively coupled
thereto. The dynamic system is operated, thereby resulting in a
generation of data. A controller is utilized to manage data
collection and display behavior of the two or more data modules.
The controller controls data collection and display parameters for
each of the two or more data modules, and the controller further
utilizes a synchronizing function to provide at least two of the
two or more data modules with a direction to synchronize execution
of one or more functions.
BRIEF DESCRIPTION OF THE DRAWINGS
[0042] The present invention will become better understood with
reference to the following description and accompanying drawings,
wherein:
[0043] FIG. 1 is a diagrammatic illustration of an electronic
device, according to one aspect of the present invention;
[0044] FIG. 2 is a diagrammatic illustration of a dynamic system,
according to one aspect of the present invention;
[0045] FIG. 3 is a diagrammatic illustration of the dynamic system
coupled with a controller, according to one aspect of the present
invention;
[0046] FIG. 4A is a screen depiction of a tool bar having several
function buttons, according to one aspect of the present
invention;
[0047] FIGS. 4B and 4C are flowcharts showing operation of snapshot
and suspend functions, according to one aspect of the present
invention;
[0048] FIGS. 5A, 5B, and 5C are diagrammatic illustrations of
buffering methods, according to aspects of the present
invention;
[0049] FIG. 6A is a screen depiction of a scroll bar, according to
one aspect of the present invention;
[0050] FIG. 6B is a screen depiction of a scroll button, according
to one aspect of the present invention;
[0051] FIG. 7 is a screen depiction of a data history graphic,
according to one aspect of the present invention;
[0052] FIG. 8 is a diagrammatic illustration of a controller
network, according to one aspect of the present invention;
[0053] FIG. 9A is a screen depiction of a dynamic system model
simulation with a plurality of data modules, according to one
aspect of the present invention; and
[0054] FIGS. 9B, 9C, 9D, and 9E are screen depictions of graphic
displays of data generated by the data modules of FIG. 9A.
DETAILED DESCRIPTION
[0055] An illustrative embodiment of the present invention relates
to at least one controller provided to control data collection and
display parameters for two or more data modules that can collect
and/or display in a dynamic system. The method and system provide
the ability to collect and display data in a dynamic system having
two or more data modules that are communicatively coupled thereto,
while the system is operating and generating data. At least one
controller manages data collection and display behavior of the two
or more data modules. Ultimately, the controller controls data
collection and display parameters for each of the two or more data
modules in a manner that enables synchronization.
[0056] More specifically, the present invention provides the user
with the ability to better control, manipulate, view, review, and
synchronize the collection of data in a dynamic system. Two or more
data modules receive data outputs from the dynamic system and then
forward, manipulate, review, and/or display the data. A central
controller or a distributed plurality of controllers are provided
to configure the data collection and display parameters as well as
synchronize data collection as desired. It should be noted that the
central or distributed controllers, and the data modules, are
separate systems from the dynamic system being monitored or
measured. The result is a coordinated data collection process that
more effectively collects and controls data outputs generated by
the dynamic system. The synchronized data modules can execute a
plurality of different functions and operations, including
suspending data collection and taking a momentary snapshot of
collected data while data collection continues. Examples of data
modules may include virtual components or functions, physical
instruments or devices, and parts of a model that collect and/or
display data (such as a display of an input or output value). The
virtual data modules can be formed using a variety or resources
known to those of ordinary skill in the art, such as C++, JAVA,
MATLAB, object-oriented code, or other code. With regard to
physical displays, such displays can likewise vary from textual to
graphical, 2-dimensional, 3-dimensional, oscilloscope, and the
like.
[0057] For purposes of the discussion below, an example
configuration having two or more data modules is provided. However,
the present invention is not limited to the illustrative
configurations described, but instead can be utilized in a number
of different data collection and display arrangements.
[0058] FIGS. 1 through 9E, wherein like parts are designated by
like reference numerals throughout, illustrate example embodiments
of a synchronization and data collection, manipulation, and review
system according to the present invention. Although the present
invention will be described with reference to the example
embodiments illustrated in the figures, it should be understood
that many alternative forms can embody the present invention. One
of ordinary skill in the art will additionally appreciate different
ways to alter the parameters of the embodiments disclosed, such as
the size, shape, or type of elements or materials, in a manner
still in keeping with the spirit and data module of the present
invention.
[0059] There are many particular varieties of graphical data module
displays, each suited to a range of analysis needs, but a general
categorization yields two basic modes of data module operation:
triggered and free-running. The present description focuses on the
free-running mode of data module operation, such as strip-chart
recorders and waveform viewers, or virtual representations of
similar instruments, in which all data output is to be recorded
within specified intervals of time. Synchronization of a pausing of
multiple strip-chart type instruments is an exemplary use of the
contributions of the present invention, in addition to subsequent
coordinated data review. In contrast, triggered data modules
generally capture only one display full of data, pausing the data
capture after the specific triggering event, and then enabling data
capture once another trigger event occurs. It is natural to pause a
triggered data module after the acquisition of a display full of
data; multiple triggered data modules simply follow the triggering
mechanism and do not generally require additional synchronization
mechanisms. However, one of ordinary skill in the art will
appreciate that the present invention can be utilized to control
and synchronize collection of data outputs by such triggered data
modules; thus, the present invention does not discount such usage.
Moreover, the data modules can be scopes, data collection and/or
display components, display inputs or outputs, or even intermediate
data values, for example.
[0060] FIG. 1 illustrates one example embodiment of an electronic
device 11 suitable for practicing illustrative embodiments of the
present invention. The electronic device 11 is representative of a
number of different technologies, such as personal computers (PCs),
laptop computers, workstations, personal digital assistants (PDAs),
Internet appliances, cellular telephones, pagers, and the like. In
the illustrated embodiment, the electronic device 11 includes a
central processing unit (CPU) 13 and a display device 15. The
display device 15 enables the electronic device 11 to communicate
directly with a user through a visual display. The electronic
device 11 further includes a keyboard 17 and a mouse 19. Other
potential input devices not depicted include a stylus, trackball,
joystick, touch pad, touch screen, and the like. The electronic
device 11 includes primary storage 21 and secondary storage 23 for
storing data and instructions. The storage devices 21 and 23 can
include such technologies as a floppy drive, hard drive, tape
drive, optical drive, read only memory (ROM), random access memory
(RAM), and the like. Applications such as browsers, JAVA virtual
machines, and other utilities and applications can be resident on
one or both of the storage devices 21 and 23. The electronic device
11 also includes a network interface 25 or communication port for
communicating with one or more electronic devices external to the
electronic device 11 depicted. A modem (not shown) is one form of
establishing a connection with an external electronic device or
network. The CPU 13 has either internally, or externally, attached
thereto one or more of the aforementioned components. The present
invention can make use of many different types of electronic
devices. Furthermore, the present invention can make use of
software applications installed on such electronic devices, such as
Matlab.RTM. and/or Simulink.RTM. modeling applications, or other
simulation or modeling applications.
[0061] FIG. 2 is a diagrammatic illustration of a dynamic system
20. The dynamic system 20 can generally be described as a system
whose response at any given time is a function of its input
stimuli, its current state, and the current time. The system
illustrated represents both a physical or real time system and a
virtual or simulation system. In fact, as referred to herein, the
term "dynamic system" is intended to encompass both the physical or
real time embodiments and the virtual or simulation embodiments of
a system being measured. To further clarify, the present invention
is applicable to both the physical and virtual environments, as
previously mentioned, and is not limited to one or the other.
[0062] The dynamic system 20 can be described most simply and
generally as having an input 22 coupled with some form of system
operation 24 which results in an output 26. The input 22 can take
many different forms and can represent more than one variable or
value inputted to the system operation 24. The system operation 24
represents either a simple system, such as for example a spring
that compresses in a linear direction when a force is applied; or a
more complex system, such as for example an autopilot device that
receives multiple inputs relating to speed, position, flight path,
environmental conditions, forces being applied to the airplane, and
the like. The output 26 represents those actions or occurrences
that result from the system operation 24 receiving the input 22 and
executing a course of action or implementation.
[0063] In many instances, the dynamic system 20 will have a
plurality of data modules connected therewith. The term "data
module" as utilized herein refers a component or function that
offers viewing, observing, displaying, gathering, and/or recording
capabilities for different forms of data. The data module 20
generally serves as a collection and/or display vehicle for
monitoring or measuring the operation of the dynamic system 20, or
of a selected portion of the dynamic system 20. As illustrated, the
dynamic system has a first data module 28 coupled with the input
22, a second data module 30 coupled with the system operation 24,
and a third data module 32 coupled with the output 26. It should be
noted that there can be any number of different data modules in
communication with the dynamic system 20, including multiple data
modules coupled with each component or portion of the dynamic
system 20, as understood by one of ordinary skill in the art.
Furthermore, the data modules are located in separate systems from
the dynamic system 20.
[0064] FIG. 3 shows a diagrammatic illustration of the dynamic
system 20. As illustrated, the dynamic system 20 includes a first
data module 40, a second data module 42, a third data module 44,
and a fourth data module 46 collecting data from the operation of
the dynamic system 20. Each of the data modules 40, 42, 44, and 46
can be coupled with a same component or a different component
within the dynamic system 20, as desired. The data modules 40, 42,
44, and 46 are configured to collect data as the dynamic system 20
operates. As previously stated, the dynamic system 20 represents
both the physical instance and the virtual instance of a dynamic
system. However, the following discussion makes use of the virtual
or simulation instance to clarify aspects of the present invention.
It should be noted that the virtual instance is being used for
illustrative purposes, and is not intended to be limiting to the
breadth and scope of the present invention.
[0065] To implement the various aspects of the present invention, a
controller 50 exists communicatively coupled with the dynamic
system 20 and/or individual data modules of the dynamic system 20,
such as the data modules 40, 42, 44, and 46 shown in FIG. 3. The
controller 50 can take many different forms, including an
electronic device, a hardware device, or a software device, or an
executable function supplied by a software application, as
understood by one of ordinary skill in the art. The controller 50
is separate from the dynamic system, such as a separate device or
underlying application. The controller 50 provides added
functionality for the control of data collection from multiple data
modules, as further described herein.
[0066] Referring to FIGS. 4A, 4B, and 4C, the controller 50 can
provide a snapshot function, in which the data modules cease
updating a data module display in response to user input, such as
clicking a button in a graphical interface (GUI) 51, such as in
FIG. 4A. The data modules cease updating a data module display
while the simulation continues to perform computations advancing in
time. Providing that the dynamic system 20 is operating (step 61),
the user clicks (step 63) on a snapshot button 53 and the snapshot
function executes for selected data modules (step 65). When the
snapshot function executes, the data displayed at the data modules
freezes, although data continues to be collected by the data
modules, and once the display is unfrozen (by clicking on the
snapshot button 53 again), the display of data updates again.
[0067] The activation of the snapshot function can also be event
based, if desired, wherein the occurrence of an event such as
elapsed time or other action triggers the activation. The event can
be defined using the GUI 51 and the snapshot button 53, which can
lead the user to an input screen for defining events to trigger use
of the snapshot function, as understood by one of ordinary skill in
the art. While paused, the data history captured by the data
modules can be reviewed, measured, or exported, to other
applications for additional verification. In other words, the
snapshot function freezes the display of data being collected,
while the data module continues to operate to collect data. Thus,
once a user has completed the review, measurement, export, or the
like, the data module can return to displaying ongoing data
collection without a gap in data collection for the time that the
snapshot function was operating.
[0068] The controller 50 can include a suspend function used to
momentarily cease data capture by the data modules. Similar to the
snapshot function, the data modules cease updating a data module
display in response to user input, such as clicking a button in a
graphical interface. Provided that the dynamic system 20 is
operating (step 71), to activate the suspend function, the user can
click (step 73) on a suspend button 55 in the GUI 51. The suspend
function then executes (step 75) at selected data modules. Upon
activation of the suspend function, the data module ceases to
collected data until otherwise instructed. Thus, a gap in data
collection can form between two instances of the data module
collecting data with a period of suspension therebetween.
[0069] The activation of the suspend function can also be event
based, if desired, wherein the occurrence of an event such as
elapsed time or other action triggers the activation. Again, the
definition of the event trigger can be provided by the user by
clicking on the suspend button 55 and providing additional
parameters. While paused, the data history captured by the data
modules can be reviewed, measured, or exported, to other
applications for additional verification. However, while paused,
the data module does not continue to collect data. In other words,
the suspend function freezes the display of data being collected,
as well as freezing the collection of data itself. Thus, once a
user has completed the review, measurement, export, or the suspend
function is otherwise halted, the data module can return to
displaying ongoing data collection and collecting data. A gap in
data collection for the time that the suspend function was
operating will, however, exist.
[0070] Other additional functions can be implemented by the
controller 50 in a similar manner to the suspend and snapshot
functions. For example, another function that can be implemented by
the controller 50 is a data history function that various aspects
of storing data. A first aspect is the control of a length of data
history or, data capture, maintained by either the data modules or
the controller 50. The amount of data history recorded by each data
module can be user defined and is often variable, as is the amount
of data history presented at any one time in the data module
display. For example, a parameter can be set with the controller 50
indicating that only a selected number of data entries should be
maintained at any one time. Alternatively, the amount of data saved
in the data history can be linked to defining an age of the data,
such that after a selected elapsed time since the data was first
recorded, the data is deleted. Further, the amount of data saved in
the data history can be linked to a selected size of memory to be
allocated to the task of storing the data. Once the limit is
reached, old data is deleted as new data is introduced, on a
first-in-first-out basis. Other methods for tracking and
controlling the amount of data stored in the data history will be
apparent to those of ordinary skill in the art, and can be
implemented utilizing the controller 50 of the present
invention.
[0071] Another aspect of the data history function includes
accommodating data modules with different data types. Different
data representations (e.g., floating point, fixed point), signal
attributes (e.g., real vs. complex signals), formats (e.g.,
scalars, vectors, matrices), and other characteristics may be
individually preserved and displayed on each data module, and their
formats controlled by the controller 50.
[0072] In accordance with further aspects of the present invention,
the controller provides a data buffering function. The data module
may or may not stop accumulating data when a function such as the
snapshot function is operating, depending on the data-buffering
mode selected. There are a number of different buffer modes that
can be implemented, some of which are illustrated in FIGS. 5A, 5B,
and 5C. FIG. 5A shows a first buffer mode, circular buffering,
which requires data collection to be halted during the snapshot. If
the data collection is not halted, data corruption in the circular
buffer will occur given an arbitrarily long length of pause. This
is because with a circular buffer, once the memory allocated to the
buffer is full of data, the buffer begins to write over the old
data. In looking at the figure, arrow A indicates the location of
the data writing to memory. As the arrow A moves along,
representing the data being written to the buffer, the memory
becomes filled. Once the arrow A returns around to the point from
which it began, if the arrow A continues to write, it will write
over existing data. Thus, if the length of the pause is too long,
data that has not been viewed or manipulated could be written over
and permanently lost.
[0073] Another buffer mode, finite buffering, is shown in FIG. 5B.
Finite buffering supports data collection during the pause interval
up to the length of the data buffer that is available. Once the
buffer is full, data collection is instructed to cease. As shown in
the figure, arrow B represents data being written to the buffer
memory. There is a finite amount of memory, as indicated by an end
57 of the memory allocation. Thus, one must be careful if a finite
buffering mode is chosen that there will not be too much data
collected prior to the desired review or manipulation taking
place.
[0074] Still another buffer mode, buffer extension, is shown in
FIG. 5C. The buffer extension buffer mode permits unconstrained
data collection during the pause interval, no matter how long the
pause lasts. Arrow C indicates the location of the data being
written to memory. As arrow C progresses, additional memory is
allocated to store the data. Such a buffer mode requires an
effectively unlimited amount of memory be made available to the
buffer. As the data collected grows, the memory attributed to the
buffer can grow. Eventually, a limit is reached when the memory is
exhausted. However, a buffer extension mode is useful for
accommodating arbitrarily large data sets.
[0075] In accordance with another aspect of the present invention,
a scroll function provides a user with the ability to scroll
through previously recorded or collected data in the data history.
The scroll functionality is configured to operate regardless of the
status of system operation, such as while the system is running,
paused, or halted. To scroll through the data, a user makes use of
a user interface, such as the user interface illustrated in FIG.
6A. A scroll bar 52 is provided in a graphical display that enables
a user to scroll up and down a display of recorded data. FIG. 6B
shows an alternative user interface for scrolling in the form of
two arrows 54 that can each be clicked to move a selected direction
through the data. Other configurations for a user interface scroll
function are also possible as understood by one of ordinary skill
in the art.
[0076] Additional aspects of the present invention include an
ability to graphically denote a gap in the recorded data history of
a signal, using a time tracking function. For example, as shown in
FIG. 7, executing a time tracking function a graphical band 56 of
color corresponding spatially to the time history of the displayed
data results. Changing the color of the band 56 at the same spatial
position as the gap in recorded data indicates this gap visually to
the user. The gap is determined by noting when data is being
collected, and when data is not being collected, and indicating
such instances relative to the time as measured by a time stamp
clock. Hovering over the band 56, clicking on the band 56, or other
interaction with the band 56 causes a data history time stamp 58 to
be displayed in some manner, such as in the lower tool bar location
shown. The time stamp 58 correlates to the location on the band 56
and the time associated with the time the data was collected. In
addition, the data corresponding to the time stamp 58 is also
highlighted in an appropriate display-specific manner.
[0077] The controller 50 can further include a synchronizing
function that acts to synchronize the control of each of the data
modules and their corresponding data collection and display
parameters. For example, when activated, the synchronizing function
can implement any of the above-mentioned functions at all of the
data modules coupled with the dynamic system 20, or with certain
selected data modules, as desired.
[0078] More specifically, and referring back to FIG. 3 and FIG. 4A,
a user selects the snapshot function by clicking on a snapshot
button 57. The user can select the snapshot function to execute on
the first data module 40 and the second data module 42, and then
select the suspend function to execute on the third data module 44
and the fourth data module 46. One of ordinary skill in the art
will appreciate that this particular configuration of snapshot and
suspend functions is merely an example. Any of the functions can be
executed at any or all of the data modules in the dynamic system
20, unless there is a conflict between the operation of the
particular functions selected. The selection of functions, and
their corresponding assignment to a particular data module, can be
done either before the dynamic system 20 begins to operate (whether
in real time or as a simulation) or dynamically while the dynamic
system 20 is running.
[0079] Continuing with the example, the user can then activate the
snapshot function on the first data module 40 and the second data
module 42. When synchronized in this manner, the snapshot function
will simultaneously cause a pause in acquisition and display in the
first data module 40 and the second data module 42, achieving
synchronization of data analysis at that point in time. Similarly,
the user can activate the suspend function, and the third data
module 44 and fourth data module 46 will simultaneously cease data
collection and display until further notice.
[0080] The synchronizing function has been illustrated above to
enable the configuration of selected functions for selected data
modules. In addition, the synchronizing function can be implemented
for all data modules coupled with the dynamic system 20 at one
time. For example, taking the snapshot function, a user can specify
that the snapshot function be executed on all data modules in the
dynamic system 20. Then, when activated, the display of data
collection halts simultaneously at all data modules (in FIG. 3,
data modules 40, 42, 44, and 46). The synchronizing function thus
provides the user with the ability to control each of the data
modules 40, 42, 44, and 46 in the dynamic system 20 from a central
location, and execute synchronized function calls relating to data
collection and review.
[0081] The synchronizing function can further create relationships
between each of the data modules 40, 42, 44, and 46. For example, a
review of previously captured data can be performed on all data
modules 40, 42, 44, and 46 individually. In addition, executing a
function on one of the data modules can command a corresponding
action on other of the data modules. For example, the controller 20
can be configured to execute the snapshot function in the first
data module 40 to momentarily pause the display of data while data
continues to be collected. This action is broadcast to the other
data modules (the second data module 42, the third data module 44,
and the fourth data module 46), and they too momentarily pause
their displays of the data while data continues to be
collected.
[0082] Additionally, the review the user can initiate the scroll
function in the first data module 40 to review the data history
made available by the snapshot function. Using the scroll function
(scrolling back using a scroll bar, for example) on the first data
module 40, results in not only a review of the data on the first
data module 40, but also a simultaneous review is broadcast to
other selected data modules, allowing the coordinated review of
data recorded simultaneously at various points within the dynamic
system. More specifically, the scroll function operating on the
first data module 40 scrolls through data on the first data module
40. Simultaneously, the data on the second data module 42, the
third data module 44, and the fourth data module 46 is also
scrolled through. The display of data on each data module 40, 42,
44, and 46 corresponds to the same period in time, thus comparisons
can be made between each of the data modules 40, 42, 44, and 46 at
comparable time periods.
[0083] Some data modules can be configured to have their snapshot
functions, suspend functions, and/or other functions be
synchronized with all other such data modules, such that actions
carried out on one data module (e.g., pausing and resuming) will
affect all other such data modules simultaneously. Alternatively,
some data modules can be configured to have their snapshot
function, suspend function, and/or other functions, be
unsynchronized, such that usage of a function on one data module
will only pertain to that data module, or may only broadcast to
selected other data modules but not all data modules coupled with
the dynamic system 20.
[0084] In accordance with further aspects of the present invention,
individual data modules can be configured to essentially ignore
synchronization directives from the controller 20. This achieves
necessary flexibility for controlling which data modules act in
which manner to collect data.
[0085] It should also be noted that with regard to the data history
function, previously described, multi-rate systems are also
naturally accommodated by use of the synchronizing function to
synchronize the execution system. The synchronization required
across multiple data modules associated with signals possessing
differing sample rates is particularly well suited to the use of
this invention.
[0086] To further clarify certain aspects of the synchronization
function, the synchronization function can operate in two primary
configurations. There can be an event-based synchronization
function that is triggered upon the occurrence of one or more
events. For example, a user clicking a synchronization button, as
described above, is one form of an event that triggers
synchronization. Other events, such as time elapsed, receipt of
certain data outputs, or other events can trigger the
synchronization function. Alternatively, the synchronization can
operate based on an active search mode. Such a configuration was
also described above, wherein the occurrence of activation of a
function, such as snapshot or suspend, at one data module
broadcasts an instruction for other data modules to carry out the
same function. In other words, the synchronization occurs on a
subscription basis, were those data modules that subscribe to a
selected controller will act in accordance with instructions
broadcast to the subscribers.
[0087] FIG. 8 illustrates another embodiment of the present
invention. To this point, the description has made use of the
dynamic system 20 having the controller 50 that serves to configure
and control the synchronization of any data module that is coupled
to the dynamic system 20. In FIG. 8, the dynamic system 20 is shown
with the first data module 40, the second data module 42, the third
data module 44, and the fourth data module 46. However, the
controller is not a separate component, but rather is a portion of
each of the data modules 40, 42, 44, and 46. Thus, there is a first
controller 60, a second controller 62, a third controller 64, and a
fourth controller 66. Each controller 60, 62, 64, and 66 is
communicatively coupled with one of the data modules 40, 42, 44,
and 46. In addition, each of the controllers 60, 62, 64, and 66 is
communicatively coupled with at least one other controller 60, 62,
64, and 66, such that the controllers 60, 62, 64, and 66 form a
controller network 68. The controller network 68 links each of the
controllers 60, 62, 64, and 66 in a manner that enables
communication between data modules 40, 42, 44, and 46 to perform
the synchronization operations as described above.
[0088] More specifically, each of the above functions, the snapshot
function, the suspend function, the data history function, the data
buffering function, the scroll function, the time tracking
function, and the synchronizing function, can be included in the
configuration of each of the data modules 40, 42, 44, and 46. In
addition, other similar functions can be included in the
configuration of each of the data modules 40, 42, 44, and 46,
and/or some of the functions may or may not be included in the data
module configurations.
[0089] If there is to be synchronization of the data modules 40,
42, 44, and 46 in accordance with the present invention, the
synchronizing function is included in the configuration of each
data module that is to be synchronized. The synchronizing function
operates similarly to the previously described embodiment. When
activated, the synchronizing function can implement any of the
above-mentioned functions at all of the data modules coupled with
the dynamic system 20, or with certain selected data modules, as
desired.
[0090] More specifically, and referring to FIG. 8, as with the
previous example, a user can select the snapshot function to
execute on the first data module 40 and the second data module 42,
and then select the suspend function to execute on the third data
module 44 and the fourth data module 46. One of ordinary skill in
the art will appreciate that this particular configuration of
snapshot and suspend functions is merely an example. Any of the
functions can be executed at any or all of the data modules in the
dynamic system 20, unless there is a conflict between the operation
of the particular functions selected. The selection of functions,
and their corresponding assignment to a particular data module, can
be done either before the dynamic system 20 begins to operate
(whether in real time or as a simulation) or dynamically while the
dynamic system 20 is running.
[0091] The user can then activate the snapshot function on the
first data module 40 and the second data module 42. When
synchronized in this manner, the snapshot function will
simultaneously cause a pause in acquisition and display in the
first data module 40 and the second data module 42, achieving
synchronization of data analysis at that point in time. Similarly,
the user can activate the suspend function, and the third data
module 44 and fourth data module 46 will simultaneously cease data
collection and display until further notice.
[0092] As with the previous embodiment, the synchronizing function
can be implemented for all data modules coupled with the dynamic
system 20 at one time that include a controller 60, 62, 64, 66.
Again looking at the snapshot function, the snapshot function can
be configured to operate on all data modules 40, 42, 44, and 46 in
the dynamic system 20. Then, when activated, the display of data
collection halts simultaneously at all data modules 40, 42, 44, and
46. In operation, when one of the data modules, for example the
first data module 40, activates the snapshot function, if any of
the other data modules 42, 44, and 46 that are connected with the
controller network 68 are configured to activate a snapshot
function and are likewise configured to receive and act upon
synchronizing function directives to synchronize, then such other
data modules 42, 44, and 46 will likewise activate their snapshot
functions. Thus, the synchronizing function again provides the user
with the ability to control each of the data modules 40, 42, 44,
and 46 in the dynamic system 20, however in this embodiment the
controller is in the form of a distributed configuration made up of
the first controller 60, the second controller 62, the third
controller 64, and the fourth controller 66. However, the result is
the same, in that synchronized function calls relating to data
collection and review can be executed.
[0093] In the distributed configuration, the controllers 60, 62,
64, and 66 that support the synchronizing function create
relationships between each of the data modules 40, 42, 44, and 46.
As in the previous embodiment, a review of previously captured data
can be performed on all data modules 40, 42, 44, and 46
individually. In addition, executing a function on one of the data
modules can command a corresponding action on other of the data
modules. When the snapshot function in the first data module 40
momentarily pauses the display of data while data continues to be
collected, the action can be simultaneously broadcast to the other
data modules (the second data module 42, the third data module 44,
and the fourth data module 46). Upon receipt of the synchronize
instructions, each of the remaining data modules (the second data
module 42, the third data module 44, and the fourth data module 46)
also momentarily pauses their displays of the data while data
continues to be collected.
[0094] Also operational in the distributed controller embodiment,
is the ability for the user to initiate a review of the data
utilizing a synchronized scroll function. Activating the scroll
function in the first data module 40 enables the user to review the
data history made available by the snapshot function. Using the
scroll function (scrolling back using a scroll bar, for example) on
the first data module 40, results in not only a review of the data
on the first data module 40, but also a simultaneous review is
broadcast to other selected data modules, allowing the coordinated
review of data recorded simultaneously at various points within the
dynamic system 20. More specifically, the scroll function operating
on the first data module 40 scrolls through data on the first data
module 40. Simultaneously, the data on the second data module 42,
the third data module 44, and the fourth data module 46 is also
scrolled through. The display of data on each data module 40, 42,
44, and 46 corresponds to the same period in time, thus comparisons
can be made between each of the data modules 40, 42, 44, and 46 at
comparable time periods.
[0095] FIG. 9A illustrates the configuration of FIG. 8 as
implemented in Simulink.RTM.. A dynamic system 80 is shown with a
first data module 82, a second data module 84, a third data module
86, and a fourth data module 88. The controller is not a separate
component, but rather is a portion of each of the data modules 82,
84, 86, and 88. Thus, the controllers are coupled one with each of
the data modules 82, 84, 86, and 88 in a manner such that they are
not depicted in the Simulink.RTM. simulation. As before, each of
the controllers is communicatively coupled with at least one other
controller, such that the controllers form a controller network,
which is again not visible in the Simulink.RTM. simulation. The
controller network links each of the controllers in a manner that
enables communication between data modules 82, 84, 86, and 88 to
perform the synchronization operations as described above.
[0096] More specifically, each of the above functions, the snapshot
function, the suspend function, the data history function, the data
buffering function, the scroll function, the time tracking
function, and the synchronizing function, can be included in the
configuration of each of the data modules 82, 84, 86, and 88. In
addition, other similar functions can be included in the
configuration of each of the data modules 82, 84, 86, and 88 and/or
some of the functions may or may not be included in the data module
configurations.
[0097] FIGS. 9B, 9C, 9D, and 9E illustrate example graphical
outputs of each of the data modules 82, 84, 86, and 88. More
specifically, each of the graphical outputs depict different
recorded values of different measurement variables as collected by
the data modules 82, 84, 86, and 88. FIG. 9B depicts the output of
data module 82. FIG. 9C depicts the output of data module 84. FIG.
9D depicts the output of data module 86. FIG. 9E depicts the output
of data module 88. One of ordinary skill in the art will appreciate
that the graphical outputs illustrated are merely examples, and
that the data modules 82, 84, 86, and 88 can implement a number of
different collection and analysis methods for manipulating the data
produced by the dynamic system. The present invention is thus not
limited to the illustrative examples depicted in the figures.
[0098] Some data modules can be configured to have their snapshot
functions, suspend functions, and/or other functions be
synchronized with all other such data modules, such that actions
carried out on one data module (e.g., pausing and resuming) will
affect all other such data modules simultaneously. Alternatively,
some data modules can be configured to have their snapshot
function, suspend function, and/or other functions, be
unsynchronized, such that usage of a function on one data module
will only pertain to that data module, or may only broadcast to
selected other data modules but not all data modules coupled with
the dynamic system 20. In addition, some data modules 40, 42, 44,
or 46 may also be configured to not partake in the controller
network 68, and thus not receive synchronization instructions. The
location of the instruction of whether or not to synchronize
depends upon the particular configuration of the controller, as
understood by one of ordinary skill in the art. For example, if
there is a more centralized controller structure, such as that
which is depicted in FIG. 3, then the controller 50 can have access
to a memory means to store such instructions. If there is a more
distributed controller structure, such as that which is depicted in
FIG. 8, then the controllers 60, 62, 64, and 66 can each have
access to the same memory means or to individual means of memory
for storage of instruction. The memory means can include a data
storage device, RAM, ROM, disk drive, and the like.
[0099] The present invention provides the user with the ability to
better control, manipulate, review, and synchronize the collection
of data in a dynamic system. The dynamic system includes two or
more data modules that collect and either forward or display the
data. A central controller or a distributed plurality of
controllers are provided to configure the data collection and
display parameters as well as synchronize data collection as
desired. The result is a coordinated data collection process that
more effectively collects and controls data generated by the
dynamic system.
[0100] The present invention proposes several specific mechanisms
which, when used together, achieve effective synchronization and
data review for free-running instrumentation. In addition,
interactive data capture and review is crucial to the effectiveness
of numerical simulation and real time system measurement tools. The
present invention further provides tools for using a graphical,
block-diagram based simulation environment to design, simulate,
and/or analyze dynamic systems employing mathematical models of
system components.
[0101] Numerous modifications and alternative embodiments of the
present invention will be apparent to those skilled in the art in
view of the foregoing description. Accordingly, this description is
to be construed as illustrative only and is for the purpose of
teaching those skilled in the art the best mode for carrying out
the present invention. Details of the structure may vary
substantially without departing from the spirit of the present
invention, and exclusive use of all modifications that come within
the data module of the appended claims is reserved. It is intended
that the present invention be limited only to the extent required
by the appended claims and the applicable rules of law.
* * * * *