The display for the driver status (ibaPDA driver) must show the "Loaded" status on green background for proper operation. In case of a failure, the field turns red and an error message appears below the start button. If, for example, another process is already running with ibaPDA-drivers, the message would indicate that an instance of the program is already running.
In addition, you will find a number of displays that reflect the interrupt behavior. The interrupts are good indicators of the proper function of the system.
Interrupts
The total number of interrupts acquired is displayed here, which is composed of iba's own and external interrupts. When using the internal timer this value equals the "internal time counter”.
iba PCI interrupts
This is an interrupt counter for interrupts that are generated by an iba card (PCI, PCIe or ExpressCard). In proper operation, it counts upwards at a rate of 1000/s (corresponding to an interrupt cycle of 1 ms), if the acquisition time base is 1 ms.
Non-iba PCI interrupts
This counter reading will only change if also other installed PC cards generate interrupts. This could occur in case of “shared interrupts.” If the iba card generating the interrupt is assigned an exclusive interrupt, the counter must not change.
Internal timer counter
The internal timer counter is active when no interrupt source (PC card) is available. In this case the Windows timer is used.
The counter usually also count upwards with 1000 / sec.
Time correction
The value for time correction will only be displayed during acquisition and the internal timer counter serves as interrupt source. Generally, the internal timer counter has not exactly the same resolution like the basic sample time. Hence, each counter step has a deviation of a few microseconds. These microseconds are added in the time correction counter. As soon as the sum matches the timer resolution, a double counter pulse will be triggered. This method enables the internal timer to match the basic sample time in average.
Acquisition thread CPU usage
This is the CPU time the server needs to read data from the driver and process them, e.g. evaluation of virtual signals, writing to the data file, buffering for transmission to clients etc.
Interrupt buffer (fill level)
This display shows how much data is in the interrupt buffer of the driver.The ibaPDA server periodically reads from this buffer. If the interrupt service routine (ISR) of the driver takes too long, the ibaPDA server has not enough time to read all data out of the buffer and the buffer overflows. This would cause a stop of the acquisition. In that case, either a reduction of the number of signals or an increase of the basic sample time is required in order to ensure proper operation. This would reduce the read-out time for the ISR.
In the I/O-Manager – General tab – Interrupt Info node you may increase the size of the interrupt buffer up to 1024 MB, in order to prevent fast buffer overflow. Default size of the buffer is 50 MB.
Timer resolution
This time value given in ms should approximately correspond to the measurement time base. The timer is used for the internal generation of interrupts.
Interrupt buffer size
Enter here the maximum size for memory-buffered items.
Information for an extended diagnosis is available in 3 sub-tabs.
Interrupt tab
Interrupt times
These values are only displayed when the acquisition is running.
The system measures the actual processing time of the ISR (=interrupt time) and stores the shortest (Min) and longest (Max) time. The ISR reads the requested data from the different PC cards. The ratio of interrupt time to interrupt cycle time shows the percentage of CPU time required to read the data from the cards.
The actual interrupt time should never exceed double the interrupt cycle time. If so, interrupts will get lost and the measurement is not accurate.
Interrupt cycle times
These values are only displayed when the acquisition is running. The system measures the actual cycle time of the interrupt and stores the shortest (Min) and longest (Max) time.
Asynchronous mode tab
In this tab you will find information about the timing of the DPC routine in asynchronous mode. In fact, information is only available if cards using the asynchronous mode are installed in the system.
Basically, the system works in "synchronous" mode. Synchronous means that the data collected is copied from the card to the PC’s working memory by means of the interrupt service routine (ISR). In asynchronous mode, this process takes place outside the ISR with a DPC (deferred procedure call) routine. The DPC routine has a lower priority and thus does not block the system if the processing of routine is not fast enough, e.g. due to a high volume of data. With each interrupt, it is checked whether the DPC routine has stopped. If the DPC routine is still active for an interrupt, the "DPC busy counter" value is incremented.
The switchover to asynchronous mode can be enabled for older cards, such as ibaFOB-S or ibaFOB-X (I/O Manager, General tab, Boards node). Other cards, e.g., for reflective memory, can also be used asynchronously. Newer cards, such as ibaFOB-D, do not require asynchronous mode as they write the data directly into the processor memory using DMA technology.
The DPC routine always copies data blocks that are grouped according to acquisition times (time base). Thus, all blocks of data, e.g., that are recorded with 10 ms, are grouped together in one entry. Each of these entries is displayed in the table in the lower part of the tab.
The “Time in DPC routine (ms)” information shows the sums of the copy times of all the entries that were copied at the same time.
The other columns in the table display the times needed to copy the data of the respective entry. The entries to be copied are listed in a waiting list. The maximum number of entries in the queue is normally the max. copy time divided by the cycle time. If the maximum number of entries in the queue is significantly higher then this means that the system could not copy the data fast enough, measured at the set cycle time / acquisition time base.
If the queue contains more than 25 entries, the measurement is stopped with an error message.
Multiprocessor tab
In this tab you will find information about the distribution of the operations or interrupts in multi-core processors. This information is used for the extended diagnostics by iba support.