Первопричина останова
Определение первопричины останова оборудования (FIRST_OUT)
Цель статьи: поделиться опытом решения задачи информирования оператора о факте события. Причем так, что бы у оператора системы, следящим за экраном SCADA не осталась и доли сомнения в дифференцировании причины останова оборудования.
Возьмем относительно крупную установку, в которой процессы протекают достаточно быстро и параметры работы по технологии плотно связаны друг с другом.
Например, при нажатии рукой на физическую кнопку отключения (грибок) гаснет горелка котла, следом за ней начинает падать температура, давление или любые другие параметры, связанные с остановом и также способные остановить котел. Процессы происходят динамически, то есть приход сигналов может быть разделен всего на 50мс. Какой-либо HMI работает с каким-то более медленным циклом опроса (например 500мс и обновляет информацию массивами). Ошибиться в выборе какое из нарушений оказалось именно первым по АРМ оператора не всегда возможно, да и даты нарушений (что раньше, что позже) могут наоборот вводить в заблуждение.
Было несколько подобных показательных примеров когда это требовалось: осушка и обжиг кирпича, системы безопасности щелоковых котлов, переработка твердых радиоактивных отходов.
Возникает вопрос: как возможно определить, какая из причин была первой из всех тех, что остановили установку и вывести это на экран?
SCADA должна продемонстрировать оператору, что именно послужило причиной остановки оборудования. Для этого потребуется организовать программный блок, который будет отлавливать момент срабатывания отключения установки (триповое событие) и одновременно ловить то событие, которое было первопричиной отключения. Данный функциональный блок предназначен для индикации первопричины останова оборудования в течение первой минуты после фактического останова, далее первопричины сбрасываются вне зависимости от наличия причин (блок уже выполнил свою функцию).
Выглядит вызов такого блока приблизительно так:
Для примера у функционального блока присутствует 16 дискретных входов (причин), каждый вход данного FB подключается к переменной, которая может инициировать отключение агрегата или остается свободным. Обязательно заводится переменная «OUT», которая является фактом срабатывания (триповым событием) отключения установки.
Функциональный блок TON, размещенный ниже, предназначен для сброса причины через минуту после ее появления.
Данная связка как раз предназначена для сброса любой из первопричин R* и переменной факта события Trip.
Данная конструкция предназначена для обработки первопричины и передачи значения в целочисленную переменную REASON. Значения от 1 до 16 указывают на номер причины. Если значение 0, то, следовательно, причины отсутствуют.
Выше был приведен пример на языке LAD, который используется в программе Unity Pro XL от Schneider Electric. Ниже рассмотрим, как реализовать аналогичную конструкцию на языке Structured Text, например, для Codesys.
Прикладываю образец данного функционального блока
05.04.2023
16.11.2022
15.11.2022
15.11.2022
15.11.2022
15.11.2022
Vyacheslav Lapshin
15.11.2022
15.11.2022