Internal structure and data flow
- 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).
- 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).
- 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).
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.
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.
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.