Internal structure and data flow

The InduSoft Web Studio project runtime runs on a Windows computer or embedded system and consists of the following modules or threads (program elements that can execute independently of other program elements):
Background Task
A supervisory task that 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
A debugging tool that…
  • 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
A debugging tool that 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
A “thick client” that manages TCP/IP communication with the TCP/IP Server module in another IWS project, according to parameters configured in the TCP/IP Client worksheets.
TCP/IP Server
Manages TCP/IP communication messages with both thick clients (i.e., the TCP/IP Client module in other IWS projects) and thin clients (i.e., the Viewer module).
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 InduSoft Web Studio.

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 on) that are used in screens and worksheets. For more information, see About Tags and the Project Database.
Figure 1. Architecture of the project runtime on Windows
Web Studio Help illus introduction architecture studio Internal structure and data flow

Figure 2. Architecture of the project runtime on Windows Embedded
Web Studio Help illus introduction architecture ceview Internal structure and data flow

Each runtime 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 3. An example of data flow
Web Studio Help illus studio data flow 2 Internal structure and data flow

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.

Note: 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 (e.g., Text Data Link) with a function that does not require a tag (e.g., NoInputTime), then the Viewer will not update the object because there is are no tags associated with that object.

The architecture of InduSoft Web Studio 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.

Internal structure and data flow