Frequently Asked Question
CIO stands for "computing interval overrun". It indicates that the Signal Processing computation time exceeded the reserved time slot. This flag is reset when the simulation is stopped, but it can also be reset in runtime by right clicking on the flag. Some of the CIO problems and solutions are listed below:
User CPU reached 100% usage – there are three approaches to solve this issue:
1. Change of execution rate
You should increase the execution rate of Signal processing components that are executed on User CPU. Compile the model, run the simulation and observe the User CPU usage. This procedure should be applied iteratively until the CIO flag is eliminated. You should be mindful that raising the Signal processing execution rate above a certain limit can affect the simulation’s fidelity.
2. Distribute the load to all available CPUs
It is possible to distribute the Signal processing domain on all available CPUs within HIL device using the CPU Marker component. This component allows user to map certain part of Signal processing domain on specified User CPU or System CPU. Nevertheless, it is important to distinguish available CPUs in different HIL devices. System architecture for HIL devices shows following:
- For HIL 402/602+/604 device, there is just one User CPU and one System CPU. You can divide Signal processing domain solely on these two CPUs. Bear in mind that System CPU has significantly less processing power than User CPU and therefore, you should be careful with mapping Signal processing component group on the System CPU.
- For HIL 404/606 device, there are three equivalent CPUs: User 0, User 1 and System CPU. You can evenly divide Signal processing domain on these three processors.
3. Simplify the model
If the issue persists even though you have tried steps described above, the solution is to remove the unused Signal processing components, executed on User CPU, from the model or simplify the model implementation.
System CPU reached 100% usage – there are three approaches to solve this issue:
1. Distribute the code to all available CPUs
Please, follow the instructions suggested for the same issue for User CPU above. Besides this, you can map some components from electrical domain, which utilize System CPU by default, to User CPU. This is done by unchecking Pin to System CPU property in their properties box. Components which utilize System CPU by default are Voltage/Current RMS and Single/Three Phase Constant Power Load. You can find more information about reassignment possibility here.
2. Simplify the model
Another solution is to remove the unused components which utilize System CPU from the model or simplify the model implementation.
3. Change of execution rate
You should increase the execution rate of the System CPU in: Schematic Editor ⇒ Model settings ⇒ Signal processing settings ⇒ System SP settings. To learn more about System CPU and its execution rates, please follow the link. After the increase, compile the model, run the simulation and observe the System CPU usage. This procedure should be applied iteratively until the CIO is eliminated. You should be mindful that raising the System CPU execution rate above a certain limit can affect the simulation’s fidelity.
CPU Stalled – there are several possible origins for this issue and here are described some most common.
1. High compiler optimization level can lead to CPU stalled. You should lower the compiler optimization level in:
- If the User CPU is stalled: Schematic Editor ⇒ Model settings ⇒ Signal processing settings ⇒ User SP settings ⇒ Compiler optimization level.
- If the System CPU is stalled: Schematic Editor ⇒ Model settings ⇒ Signal processing settings ⇒ System SP settings ⇒ Compiler optimization level.
Change from high to medium. A pop-up will appear advising you to manually restart your HIL unit before loading the model. Obey this advice and then compile and load the model. If the CPU stalled is still raised, repeat the procedure by further lowering the optimization level to no optimization.
2. Using exit() function in C code inside the model. This function can terminate the whole simulation process and stall the CPU within the HIL device. It should be avoided or replaced with some other function, for example return().
3. Uploaded development firmware version (20-20-2020) on HIL device. There could appear problems with a mismatch of software release and development firmware file. To overcome this, you should update the firmware to match the software version that you are using.
4. Execution rate is too low. Please, follow the steps Change of execution rate suggested above for User/System CPU usage of 100 %.
5. The Rate transition component has a lot of inputs. This component uses substantial amount of CPU resources to do the transition from one execution rate to another. You should rearrange the model and delete some of the inputs.
6. Delay component is defined with too large Delay length property. You should reduce this parameter to have the CPUs working properly.
If the CPU is stalled and you did some model modifications in order to fix it, before running the simulation, it is highly recommended to reboot the HIL device. This can be done in HIL SCADA: Model ⇒ Reboot used HIL devices. If the simulation results are still incorrect, you should manually restart your HIL device.
If you didn’t find here any suitable solution for the issue you are facing, please contact Typhoon HIL support team.