Управление Аппаратными Ресурсами По Расписанию

В данной статье рассматривается возможный вариант реализации автоматизированной системы управления аппаратными ресурсами (на примере электромагнитных реле), привязанной к абсолютному времени.

Такая система может оказаться весьма полезной при решении задачи автоматизации испытаний различного оборудования.

Например, в некоторой испытательной лаборатории возникает необходимость автоматизировать перезагрузку по питанию исследуемых/испытываемых устройств в строго заданные моменты времени, привязанные к абсолютной шкале (например, в понедельник в 10:00).

Однако задача усложняется тем, что на решение о возможности выполнения операции управления питанием влияет текущее состояние других аппаратных ресурсов исследуемого устройства (например, того или иного уровня на выходной линии GPIO).

.

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

В результате мы настроили систему с использованием внешнего аппаратного модуля «Лоран-5» с возможностью контроля процесса управления через Ethernet.

Управление аппаратными ресурсами по расписанию

Если говорить конкретнее, нам нужно было ненадолго сбрасывать питание тестируемого устройства каждый день ровно в 07:00 утра.

Однако никогда не следует выполнять сброс, если устройство продолжает выполнять критические операции.

В этом случае на выходной дискретной линии GPIO устройства устанавливается высокий логический уровень (+3,3 В).

Модуль Лорана-5 подключался к тестируемому устройству следующим образом.

Сигнал готовности устройства подавался на линию дискретного входа IO_1. А питание устройства проходило через нормально замкнутые контакты реле RELE_1. Если реле включено, питание тестируемого устройства будет прекращено.



Управление аппаратными ресурсами по расписанию

Для настройки системы в первую очередь необходимо изменить направление GPIO IO_1 модуля Лорана-5 «на вход».

Самый простой способ настройки — через веб-интерфейс (адрес по умолчанию 192.168.0.101).

Заходим в раздел «Линии общего назначения IO1 – IO8» на главной панели управления.



Управление аппаратными ресурсами по расписанию

Нажмите на «стрелку» рядом с линией IO_1 и измените направление этой линии GPIO на состояние «вход», чтобы проанализировать состояние линии «готовность» тестируемого устройства.



Управление аппаратными ресурсами по расписанию

Далее мы создадим логические CAT-правила, которые будут обслуживать автоматический анализ «готовой» линии и управлять реле.

Перейдите в раздел CAT и нажмите кнопку «Создать новое событие».

Появится вот такое окно, в котором новому логическому правилу будет присвоен ID=1.

Управление аппаратными ресурсами по расписанию

Выберем тип события RTC – выполнение задачи в указанное время.



Управление аппаратными ресурсами по расписанию

В настройках события укажем время срабатывания – каждый день в 07:00.

Управление аппаратными ресурсами по расписанию

В качестве реакции при возникновении этого события с помощью Ke-команд мы включим работу CAT-событий 2,3 и 4, которые создадим дальше.

Дополнительные логические правила нужны для того, чтобы проанализировать сигнал «готовность» устройства и избежать сброса питания, если оно к этому не готово.



Управление аппаратными ресурсами по расписанию

Для ясности дадим символическое имя этому логическому правилу.



Управление аппаратными ресурсами по расписанию

В результате в списке логических правил появится новое событие с ID = 1:

Управление аппаратными ресурсами по расписанию

Добавим следующее логическое правило с ID=2, которое будет выполняться по таймеру с частотой 1 раз в секунду.



Управление аппаратными ресурсами по расписанию



Управление аппаратными ресурсами по расписанию

Укажем дополнительное условие, которое должно быть выполнено для того, чтобы логическое правило сработало, а именно, мы указываем необходимость низкого логического уровня на IO_1, тем самым сигнализируя о готовности устройства к сбросу питания.



Управление аппаратными ресурсами по расписанию

Если все условия выполнены, то отключим события 2,3 и 4. Сбросим счетчик срабатываний по событию 3 (см.

ниже) и включим реле RELE_1 на 4 секунды, после чего оно автоматически вернется в исходное состояние.

исходное (выключенное) состояние.



Управление аппаратными ресурсами по расписанию

Однако что делать, если устройство зависло, а будильник постоянно включен? Для этого мы будем использовать события с ID=3 и 4, в которых реализуем что-то вроде сторожевого таймера с отправкой тревожного сообщения, если в течение заданного времени устройство не сигнализировало о готовности к аппаратному сбросу.

Создадим событие с ID=3 с помощью обычного таймера с частотой срабатывания раз в 1 секунду.

Это событие на самом деле ничего не сделает, просто отправит пустую команду $KE. Однако каждый раз, когда оно срабатывает, счетчик триггера для этого события будет увеличиваться.

С помощью логического правила с ID=4 мы будем следить за этим значением и если оно превысит определенный порог (например, 300 операций, что соответствует 5 минутам), остановим работу и увеличим значение программной переменной VAR_1 на последующий анализ количества неудачных операций.

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

Для запуска всей системы достаточно включить обработку событий с ID=1.

Управление аппаратными ресурсами по расписанию

И тогда произойдет следующее: каждый день в 07:00 утра будет срабатывать логическое правило с ID=1. В этом случае в качестве реакции будет включена обработка событий с ID 2, 3 и 4. Если тестируемое устройство готово к сбросу питания (логический уровень 0 на сигнальной линии) - в рамках работы правила ID=2 обработка событий 2-4 будет отключена, счетчик срабатываний для 3-го правила будет сброшен в случае возникновения чрезвычайной ситуации, а питание устройства будет сброшено кратковременным включением реле.

Параллельно запускаем сторожевой таймер, который отсчитывает время раз в секунду.

Проверив значение сторожевого таймера в правиле ID=4, мы можем прервать ожидание и сигнализировать о сбое всей операции за этот день, увеличив программную переменную VAR_1, значение которой затем можно запросить через TCP/HTTP. для последующего анализа.

Теги: #тестирование ИТ-систем #автоматизация тестирования #реле управление по расписанию

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.