IWS
runtime environment runs on an operator interface workstation
(running Windows 2K/XP/Vista/CE) and consists of the following
modules or
threads (program elements that can
execute independently of other program elements):
- Background Task (a
supervisory task): Executes other internal tasks (IWS worksheets). For example,
the Background task executes scripts
configured in the
Math and
Scheduler worksheets and
manages parameters configured in the
Alarm,
Recipe,
Report, and
Trend worksheets.
- Database Spy
(debugging tool):
- Executes functions and/or expressions for testing
purposes
- Reads data (such as tag values) from the Tags database
- Writes data (such as tag values) to the Tagsdatabase
- DDE Client: Manages
DDE communication with a DDE Server (local or remote), according to
parameters configured in the
DDE Client
worksheets.
- DDE Server: Manages
DDE communication with a DDE Client (local or remote).
- LogWin (debugging
tool): Traces messages generated from other modules/tasks.
- Driver Runtime:
Manages the read/write commands configured in the
Driver worksheets.
- OPC Client: Manages
OPC communication with an OPC Server (local or remote), according
to parameters configured in the
OPC Client
worksheets.
- OPC Server: Manages
OPC communication with an OPC Client (local or remote).
- ODBC Runtime: Manages
ODBC data communication with any SQL relational database, according
to parameters configured in the
ODBC worksheets.
- TCP/IP Client: Manages
TCP/IP communication with a remote TCP/IP Server module (from
IWS), according to
parameters configured in the
TCP/IP Client
worksheets.
- TCP/IP Server: Manages
TCP/IP communication messages with a remote TCP/IP Client module
(from IWS).
- Viewer: Executes all
scripts (On Open, On While, On Close, Command, Hyperlink, and so
forth) configured for project screens and updates the screen
objects.
None of the preceding runtime modules exchange data
directly with another module or task. Instead, runtime modules send
data to and receive data from the Tags
database, which is the "heart" of IWS.
The Tags database manages the
flow of data between modules. In addition, the Tags database stores all tag values and the status of
all properties associated with each tag (such as alarm
conditioning, timestamp, quality, and so forth).
Note: Tags
are variables (such as communication points in field equipment,
calculation results, alarm points, and so forth) that are used in
screens and worksheets. For detailed information about tags, tag
values, and tag properties see Working with
Tags.
Each IWS module contains a virtual table of the tags
that are relevant for that module at the current time. The
Tags database uses this table to determine
which information must be updated in each module. For example, the
Viewer contains a virtual table that lists
all tags configured for all of the open project screens. If a tag
value changes, the Tags database sends a
message to the Viewer, and then the
Viewer updates the value in all objects where
the tag is configured.
For example, if a driver reads a new value from the
PLC, the driver updates the tag associated with this value in the
Tags database. Then, if this new information
must display on the project screen, the
Tags
database sends the new tag value to the
Viewer task, and the
Viewer
updates the screen.
Figure 2. Data Flow
Example
Note that the driver does not send new tag values
directly to the Viewer. In addition, there is
no pooling between tasks — the Tags database
receives the updated information and immediately forwards it to all
runtime tasks requiring that information.
Important: The
Viewer
module will update an object only when (at least) one of the
object's tag values change.
If you configure an object animation (such as
Text
Data Link) with a function that does not require a tag (for
example, NoInputTime()), the
Viewer will not update the object because
there is are no tags associated with that object.
The architecture of IWS significantly improves the internal data
flow performance and makes it easy for you to add new internal
tasks. Even though each task works independently, it can access
information from any other task through the Tags database.