Component Control Core Performance Measurement

This is a description of available execution/performance statistics available for Component Control Core operating system.

Periodic trigger execution time

The following variables are available for each of the periodic triggers under "System | Performance" folder found in your calibration tool.:

As default, periodic trigger statistics is not enabled. A model extension file needs to be used to turn this feature on, as in example below:

<ApplicationConfigurations>
    <Configuration name="MotoHawk model with Periodic Trigger Statistics enabled">
        <Add xpath="Application/IO">
            <TriggerMetrics>
                <ModuleResource>ComponentControlCore</ModuleResource>
                <Name>TrigMetricsExample</Name>
            </TriggerMetrics>
        </Add>
    </Configuration>
</ApplicationConfigurations>

Periodic Trigger Slip Detection

The following variable is available for each of the periodic triggers under "System | Performance" folder found in your calibration tool.:

This variable shows the trigger status and can take two values: 'Not Late' or 'Late'. As default, slip detection is not enabled. A model extension file needs to be used to turn this feature on, as in example below:

<ApplicationConfigurations>
    <Configuration name="MotoHawk model with periodic trigger statistics and task slip detection">

        <!-- add slip detection tolerance for periodic tasks -->
        <Add xpath="Application/Tasks/Task[Name eq 'BGNDTask']">
            <SlipTolerance>80</SlipTolerance> <!-- tolerance in percentage -->
        </Add>
        <Add xpath="Application/Tasks/Task[Name eq 'FGNDTask']">
            <SlipTolerance>20</SlipTolerance> <!-- tolerance in percentage -->
        </Add>
        
        <!-- enable periodic trigger statistics -->
        <Add xpath="Application/IO">
            <TriggerMetrics>
                <ModuleResource>ComponentControlCore</ModuleResource>
                <Name>TrigMetricsExample</Name>
                <SupportSlipDetection>true</SupportSlipDetection>
                <EnableSlipDetection>true</EnableSlipDetection>
                <SlipFailCnt>64</SlipFailCnt>
                <SlipOkCnt>1</SlipOkCnt>
                <SlipThreshold>128</SlipThreshold>
                <EnableSlipReset>false</EnableSlipReset>
            </TriggerMetrics>
        </Add>

    </Configuration>
</ApplicationConfigurations>

Slip Detection applies to all periodic triggers and is based on timing analysis. Each task defines a tolerance which applies to periodic triggers running under the task. A default of 100% is assumed if the <SlipTolerance> is not defined.

The Execution period of each periodic trigger is analyzed and if the configured tolerance is exceeded a counter is incremented by <SlipFailCnt>, otherwise it is decremented by <SlipOkCnt>. If the counter exceeds <SlipThreshold> the 'Late' status is reported, otherwise 'Not Late' is reported. If <EnableSlipReset> is set to 'true' a watchdog reset will occur when the 'Late' status is reported. 

The following parameters are calibratable: <EnableSlipDetection>, <SlipFailCnt>, <SlipOkCnt>, <SlipThreshold>, <EnableSlipReset>