Understanding the Internal Structure and Data Flow

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):

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.
Figure 1. Data Flow

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.