According to the basic idea of the Irinos-System, all realtime functionality is implemented inside the Irinos-System. The PC or the communication channels do not need to fill any realtime requirements. Therefore the Irinos-System can be used with standard windows installations. Special extensions, like for example realtime kernel extensions, are not required.
In order to achieve this, all realtime data is buffered inside the Irinos-Boxes. In reality, there are no long interruptions between the Irinos-System and the PC. However, depending on the parametrization, the PC can even pause for a few hundred milliseconds without having any data loss.
The data exchange between the PC and the Irinos-System is controlled by the MscDll automatically. The only thing the application needs to do, is a one-time parametrization before connecting to the Irinos-System.
Data exchange is always started by the PC. A request message frame is send to the Irinos-System by the MscDll. Afterwards it waits until a response message frame has been received. The Irinos-System never sends data without a request. This cycle is started in cyclic intervals, defined by the "send-period".
Timeouts are used to supervise any packet loss. If a packet gets lost, the data transfer is restarted after that timeout. Only if multiple retransmissions fail, the communication is regarded as broken.
A message frame can contain different types of data, e.g. measurement values, Bit I/Os and hardware status (see figure below). Packing and unpacking that data is done by the MscDll. The application is neither able nor required to influence this.
Parallel data exchange via the MscDll
In traditional systems, data must be read from one or multiple measurement cards by using their APIs. Since the measurement cards are often produced by different manufacturers, different APIs with different strategies must be implemented into the measurement software. Using the Irinos-System, all data is available via a single interface: the MscDll. The only thing which varies is the number of measurement channels and of the in- and output bits.
The most important difference to traditional systems is reading the measurement values:
The MscDll transfers all measurement values in background. They are not directly read from the hardware. Instead the MscDll updates them in a predefined interval. The application software is informed each time new data is available.