ADS device concept
The TwinCAT system architecture allows the individual modules of the software (e.g. TwinCAT PLC, User HMI, ...) to be treated as independent devices: For every task there is a software module ("Server" or "Client"). The servers in the system are the executing working "devices" in the form of software, whose operating behaviour is exactly like that of a hardware device. For this reason we can speak of "virtual" devices implemented in the software. The "clients" are programs which request the services of the "servers", e.g. a visualisation, or even a "programming device" in the form of a program. It is thus possible for TwinCAT to grow, since there can always be new servers and clients for tasks such as camshaft controllers, oscilloscopes, PID controllers etc..
The messages between these objects are exchanged through a consistent ADS (Automation Device Specification) interface by the "message router". This manages and distributes all the messages in the system and over the TCP/IP connections.
TwinCAT message routers exist on every TwinCAT device.
This allows all TwinCAT server and client programs to exchange commands and data, to send messages, transfer status information, etc..
The following picture shows the TwinCAT device concept, based on ADS: