### Описание тревог

Прежде чем приступить к описанию тревог, сформулируем задачу. Итак, создаваемая в этом примере система должна выполнять следующие действия:

- При переключении типа отображаемого сигнала в окно тревог выдавать сообщение о текущем типе сигнала.
- При изменении периода сигнала в окно тревог выдавать сообщение о текущем значении периода.
- Весь интервал значений амплитуды сигналов разделен на несколько зон. Значению от 15001 до 25000 соответствует зеленая зона и состояние 'амплитуда в норме', значению от 25001 до 32000 - фиолетовая и состояние 'амплитуда выше нормы', значению от 12001 до 15000 - оранжевая и состояние 'предаварийное значение амплитуды', значению от 10000 до 12000 - красная и состояние 'критическое значение амплитуды'. При переходе значения амплитуды из одной зоны в другую выдавать в окно тревог сообщение о текущем состоянии амплитуды. Кроме того, в пределах оранжевой зоны выдавать сообщение каждый раз, когда при изменении амплитуды, ее значение не выходит за границы оранжевой зоны. При попадании амплитуды в красную зону в окно тревог выдавать сообщение, требующее подтверждения со стороны оператора. Если в течении 15 секунд после появления этого сообщения в окне тревог оно не будет подтверждено, то система автоматически установит значение амплитуды 20000. В случае получения подтверждения от оператора автоматического вмешательства системы не будет.

Теперь, когда задача ясна, рассмотрим, что и как необходимо сделать, чтобы решить ее.

Запустите редактор тревог, выполнив пункт Alarm Editor меню Edit редактора схем. В окне редактора Вы увидите записи о трех точках тревог.

#### Создание групп тревог

При описании обработчиков тревог будет использоваться понятие группа тревоги (поле Group в окне Handler Editor). Окно тревог позволяет устанавливать какие группы будут отображаться. Т.о. деление тревог на группы предназначено для повышения избирательности при работе с окном тревог. В рассматриваемом примере деление тревог на группы является условным и призвано для того, чтобы продемонстрировать такую возможность

1. Запустите редактор групп тревог, выбрав пункт Group Editor меню Edit.
2. Нажмите кнопку New, задайте имя группы тревог CONFIRM_GROUP, а в поле Description - описание (если требуется). По аналогии создайте группу тревог с именем ALARM_GROUP1.

3. Нажмите кнопку Done, чтобы закрыть редактор групп тревог.

#### Создание обработчиков тревог

1. Запустите редактор обработчиков тревог, выбрав пункт Handler Editor меню Edit.
2. Нажмите кнопку New и введите имя нового обработчика SAW_HANDLER. Этот обработчик будет выполняться в случае включения сигнала пила. В соответствии с заданием в этом случае необходимо выдать сообщение о выборе отображаемого типа сигнала в окно тревог. Для этого сначала выберите группу тревог и установите все флаги обработчика в соответствии со следующим фрагментом.

После чего нажмите кнопку справа от флага Actions под заголовком Condition TRUE. В окне Alarm Actions выберите действие 'Выдать сообщение в окно тревог' (кнопка Message To Window), и задайте остальные параметры как это показано на следующем фрагменте.

Сообщение задано с использованием макроподстановок. Вместо макроса $(T) будет подставлено время в формате ЧЧ:ММ:СС, вместо $(1) и $(3) строки комментариев. Комментарий 1 соответствует параметру String1 и задается для точки тревоги в целом. Комментарий 3 - параметру String3 и задается для каждого условия таблицы тревог.

3. По аналогии с предыдущим обработчиком, создаются обработчики для остальных сигналов - SINE_HANDLER, RANDOM_HANDLER, IMPULSE_HANDLER, а также обработчик периода PERIOD_HANDLER и обработчики амплитуды в зонах нормального и превышающего значений - NORMAL_HANDLER и ABOVE_HANDLER. Сообщения, выдаваемые этими обработчиками, отличаются только атрибутами: цветом фона и текста, а также шрифтом.

Несколько отличий имеют обработчики предаварийного и критического значений амплитуды. Поэтому их следует рассмотреть подробно.

4. Итак, в окне Handler Editor нажмите кнопку New и введите имя нового обработчика UNDER_HANDLER. Этот обработчик будет выполняться в случае, когда значение амплитуды будет соответствовать предаварийному. Для того, чтобы соблюсти все требования задания, сначала выберите группу тревог и установите все флаги обработчика в соответствии со следующим фрагментом:

5. Нажмите кнопку справа от флага Actions под заголовком Condition TRUE и в окне Alarm Actions выберите действие 'Выдать сообщение в окно тревог' (кнопка Message To Window), а остальные параметры задайте как это показано на следующем фрагменте. Обратите внимание на установленный флаг Repeat, который отвечает за то, чтобы сообщение выдавалось повторно.

6. Следующим шагом создайте обработчик критического значения амплитуды. Для этого нажмите кнопку New и введите имя нового обработчика AUTO_HANDLER. Сначала выберите группу тревог и установите все флаги обработчика в соответствии со следующим фрагментом:

Обратите внимание на группу флагов под заголовком Confirm. Флаг Window указывает, что подтверждение тревоги ожидается из окна тревог и в случае получения подтверждения тревога будет "сброшена" (на это указывает флаг Alarm OFF). В случае отсутствия подтверждения в течении 15 секунд (поле No Confirm) необходимо выполнить некоторые действия (тревога при этом тоже переводится в состояние "сброшена").

7. Задайте действие в случае возникновения тревоги. Для этого нажмите кнопку справа от флага Actions под заголовком Condition TRUE. Установите флаг необходимости подтверждения тревоги - Confirm.

8. Задайте действия в случае отсутствия подтверждения тревоги. Первое действие - выдать сообщение об автоматическом вмешательстве.

> Второе действие - непосредственно вмешательство в виде посылки данных в канал Amplitude модуля Simulator.

> Чтобы задать значение нажмите кнопку Set Data. В окне Set Parameters выберите строку с именем поля WORD_item. При повторном нажатии на эту строку через специальное окно ввода задайте значение 20000.

#### Создание таблиц тревог

1. Запустите редактор таблиц тревог, выбрав пункт Alarm Tables меню Edit.
2. Создайте таблицу в соответствии со следующим фрагментом.

Для этого нажмите кнопку New и задайте имя таблицы PERIOD_TABLE. Нажмите кнопку Field для того, чтобы указать, что условия будут заданы для одной переменной величины. Укажите тип данных WORD в поле Type. Используя кнопку Add, добавьте в таблицу 10 строк (период сигналов может принимать только целочисленные значения от 1 до 10). При задании условия используйте макроопределение VAR везде, где подразумевается значение переменной.

3. По аналогии создайте таблицы тревог с именами SIGNAL_TABLE и AMPLITUDE_TABLE. Обратите внимание на то, как заданы условия в таблице AMPLITUDE_TABLE, фрагмент которой приводится ниже.

#### Привязка таблицы тревог

1. Для того, чтобы привязать таблицу тревог к каналу Choice модуля Simulator, на который установлена точка тревоги, нажмите левую кнопку "мыши" в столбце Tables/Alarms в строке, которая содержит запись Simulator IN : Choice.
2. В окне Add Table Link задайте привязку таблицы SIGNAL_TABLE к полю WORD_item. Для этого сначала нажмите кнопку Field под заголовком Link Table to, затем укажите имя поля и, наконец, задайте имя таблицы.

3. Нажмите кнопку Done в окне Add Table Link. При этом в окне редактора тревог появится новая запись, которая свидетельствует о том, что к полю WORD_item входного канала Choice модуля Simulator привязана таблица SIGNAL_TABLE, включающая обработку 4-х тревог.

Существует еще один способ привязки таблиц тревог. Для того, чтобы воспользоваться им, необходимо сначала закончить работу с редактором тревог. Обратите внимание, что перед выходом из редактора тревог необходимо сохранить последние изменения, выполнив пункт Save меню File.

#### Второй способ привязки таблицы тревог

1. Выберите кнопку в левой части редактора схем и нажмите левую кнопку "мыши" на изображении точки тревоги на входе Period модуля Simulator. Затем в окне Alarm Point Configuration нажмите кнопку New. После этого появится окно Alarm Table Connect. В этом окне по аналогии с окном Add Alarm Table задайте привязку таблицы PERIOD_TABLE к полю WORD_item канала Period. Нажмите кнопку Done.

2. Теперь в окне Alarm Point Configuration задайте строку комментариев в поле String1. Фрагмент того, как будет выглядеть при этом окно Alarm Point Configuration, приводится ниже.

3. Подобным образом привяжите таблицу AMPLITUDE_TABLE к полю WORD_item канала Amplitude модуля Simulator.

4. Для таблицы SIGNAL_TABLE, привязка для которой была задана в редакторе тревог, введите строку комментариев в поле String1.

Если теперь снова запустить редактор тревог, то окно будет иметь следующий вид.