Сторожевой таймер
Для каждой задачи можно определить контроль времени выполнения (таймер-сторож). Если целевая платформа поддерживает расширенную конфигурацию таймера-сторожа то, могут быть определены максимальное, минимальное и значение по умолчанию. Также может присутствовать определение времени в процентах.
Начальные значения параметров сторожевого таймера зависят от используемого устройства.
Enable: если сторожевой таймер включен (
), то задача будет прервана с установленным статусом ошибки, если её выполнение заняло больше времени, чем задано в поле 'Время' (см. ниже) с учетом заданной восприимчивости (см. ниже). Если в диалоге
Установки ПЛК активирована опция "Обновлять входы/выходы в остановленном состоянии", то выходы получают заданные начальные значения.
Время (например, t#200ms): время сторожевого таймера; описание см. выше: Enable. В зависимости от целевой системы время вводится в процентах от интервала задачи. В этом случае селектор единиц измерения показан серым цветом и отображает "%".
Восприимчивость: допустимое число превышений времени сторожа без формирования признака ошибки.
Обратите внимание, что сторожевой таймер можно отключить для конктретных SPS-циклов, используя функции библиотеки CmpIecTask.library. Это может быть полезно при работе с SPS-циклами, требующими больше времени, чем обычно, в связи с процессами инициализации.
После объявления соответствующей переменной для управления задачей (типа RTS_IEC_HANDLE),
hIecTask : RTS_IEC_HANDLE;
отключение (и последующее повторное включние) возможно за счет следующего использования функций:
hIecTask := IecTaskGetCurrent(0);
IecTaskDisableWatchdog(hIecTask);
... // Code that is protected against watchdog
IecTaskEnableWatchdog(hIecTask);