Создание программы управления двумя повышающими насосами на основе программируемого реле ОВЕН ПР100
Запись от ФедосеевПавел размещена 12.10.2019 в 23:18
Показов 82964
Комментарии 0
|
Создание программы управления двумя повышающими насосами на основе программируемого реле ОВЕН ПР100 ВВЕДЕНИЕ Рассмотрим пример создания управляющей программы для работы системы подпитки с двумя повышающими насосами. Т.к. это учебный пример, то выбор оборудования в некоторой мере — условен. Выберем новое на сегодняшний день программируемое реле ОВЕН ПР100-230.0804.0. Количество и тип его входов и выходов, а также возможности самого реле в плане вычислений, позволяют решить поставленную задачу. Также способ достижения равномерности износа насосов выберем упрощённым — ротация будет производиться по каждому запросу подпитки, а не по реальной наработке. Решение будет создаваться в среде OWEN Logic версия 1.14.194.18756. Файлы для OWEN Logic прикладывать нет смысла, т.к. эта среда бурно развивается и не всегда осуществляется поддержка ранних форматов собственных файлов (так я потерял наработки для версии 1.7). 1. ТЕХНИЧЕСКОЕ ЗАДАНИЕ Для подпитки системы отопления установлен накопительный бак с химподготовленной водой. Вода из бака через повысительные насосы подпитывает систему отопления. Для определения необходимости подпитки в обратном трубопроводе системы отопления установлен датчик-реле давления - при снижении давления ниже уставки, датчик замыкает сухой контакт. Программа управления двумя повысительными насосами должна выполнять: 1. Включение насоса после замыкания контакта датчика-реле понижения давления в системе. 2. Чередование (ротацию) насосов для равномерного износа — чередование насосов при каждом запросе подпитки. 3. Контроль работоспособности включённого насоса по датчику-реле протока (датчику перепада давления на насосах или другому типу датчика протока). При отсутствии протока в течение заданного времени, насос признаётся неисправным, отключается, включается аварийная (световая и звуковая) сигнализации. 4. Аварийный ввод резерва (АВР). В случае неисправности одного из насосов, он исключается из дальнейшей работы, по запросу подпитки включается насос, оставшийся в рабочем состоянии. 5. Сброс аварийного состояния насосов осуществляется кнопкой «СБРОС» со щита управления. 6. Для каждого насоса предусмотрена электрическая схема с возможностью автоматического и ручного управления (переключатель «Р-О-А», кнопки «ПУСК» и «СТОП»). 7. По состоянию переключателей «Р-О-А» программа должна определять исключение одного или обоих насосов из автоматического управления. Если один из насосов переведён в положение отличное от «А», то программа продолжает автоматическую работу с оставшимся насосом, при этом выведенный из работы насос рассматривается как аварийный, но без выдачи сигнала «АВАРИЯ» — т.е. вступает в действие АВР. Схематично подключение к ПР будет таким 2. АНАЛИЗ Начинаем с декомпозиции задачи. На главном холсте создадим единственный макрос «повысительные насосы» (UpperPumps), входы и выходы которого и подключим к физическим контактам программируемого реле. Других элементов на главном холсте не будет. Это сделано для удобства редактирования программы без привязки к аппаратной части и для возможности повторного использования на других программируемых реле производства ОВЕН. Главный холст будет выглядеть Рассмотрим возможное содержимое макроса UpperPumps. Очевидно, что он состоит из трёх крупных блоков — два однотипных блока «состояние насоса» и координирующая их «схема управления». Таким образом, задача распалась на две соответствующие подзадачи. Повторяющийся код, описывающий состояние отдельного насоса, удобно заключить в макрос «состояние насоса» (Pump) и дважды разместить его на холсте. Получается, что в состав макроса «повысительные насосы» (UpperPumps) будут входить два однотипных макроса «состояние насоса» (Pump) и схема управления. Нельзя не упомянуть существующий в онлайн-библиотеке ОВЕН такого макроса как ActMech — «состояние насоса». Это сложный макрос, предназначенный для построения систем управления насосными группами. http://ftp-ow.owen.ru/softupda... dditional/ http://ftp-ow.owen.ru/softupda... _v1.05.pdf Т.к. я с ним ещё не разобрался, то использую собственные более простые наработки. 3. МАКРОС «СОСТОЯНИЕ НАСОСА» — Pump Этот макрос формирует выход «Пуск/Останов» и состояние насоса «Исправен/Аварийный»: - по запросу включает или отключает насос; - по наличию протока следит за исправностью насоса; - при неисправности насоса — отключает его, устанавливает в лог.1. сигнал «Авария насоса»; - по сигналу «Сброс аварии» — сбрасывается состояние «Авария насоса». Кроме дискретных входных сигналов, на вход в данный блок (макрос) поступают также и три параметра (по аналогии с параметрами ОВЕН САУ-У): - время задержки включения насоса после поступления сигнала «Запрос»; - задержка включения контроля протока после формирования сигнала «Пуск насоса»; - длительность допустимых «провалов» от датчика протока. Названия входов и выходов макроса сделаем следующими:
Начнём с формирования состояний Пуск/Останов. Пуск и останов насоса управляются от входа «Запрос», но очевидно, что аварийный насос не должен включаться. На основе входов «Запрос», «Авария насоса» и выхода «Пуск» сформируем таблицу истинности
В этом случае функция очевидна и использовать карты Карно нет необходимости. Т.к. OWEN Logic разумно не позволяет соединять выход макроса со входом элемента, а сигнал «Авария насоса» является выходным для всего блока (макроса), то для формирования «Авария насоса» поставим на холст RS-триггер (с приоритетом сброса). Также сразу учтём задержку включения насоса — для этого масштабируем входную переменную и запишем её в таймер задержки включения. Получим схему Соберём схему формирования сигнала «Авария насоса» на RS-триггере. Сигнал «Зафиксировать аварию» формируется при наступлении всех событий одновременно: 1) насос включён, 2) после включения прошло время задержки контроля при пуске, 3) протока нет более времени длительности допустимых провалов. Очевидно, что событие 2 включает в себя и событие 1. Событие 2 формируется из события 1 через триггер задержки включения. Событие 3 формируется из сигнала «Проток», проходящего через таймер задержки отключения. Таким образом, в составлении таблицы истинности участвует два входных параметра — «разрешён анализ протока» и «проток отсутствует более допустимого времени».
Итак, при помощи двух задержек формируем сигналы «Разрешён анализ» и «Проток отсутствует долго». Далее из этих сигналов формируем сигнал «Зафиксировать аварию», которую подадим на вход «S» RS-триггера «Авария насоса». Сброс этого триггера осуществим от сигнала «Сброс аварии». При доработке программы немного перемещаем компоненты. Получаем схему При проверке в симуляторе видно, что даже в состоянии «Авария насоса» отсчёт времени в таймерах происходит при подаче сигнала «Запрос». Сделаем вход на таймер задержки включения насоса равным нулю при состоянии «Авария насоса» независимо от состояния входа «Запрос». Также запомним и в вышестоящем макросе «ПОВЫСИТЕЛЬНЫЕ НАСОСЫ» UpperPumps примем меры для предотвращения невозможности установить состояние «Авария насоса» при случайном или преднамеренном «залипании» входного сигнала «Сброс аварии» — ко входу Reset подключим триггер переднего фронта. В итоге получаем схему, которую и сохраним в виде макроса с названием «Pump». 4. МАКРОС «ПОВЫСИТЕЛЬНЫЕ НАСОСЫ» — UpperPumps Макрос немного сложнее макроса «состояние насоса» поэтому при его создании вместо множества перекрёстных линий связи будут использоваться переменные. Итак, на входе в макрос имеются следующие входные сигналы: - Насос 1 в режиме «АВТОМАТИЧЕСКИЙ»; - Насос 2 в режиме «АВТОМАТИЧЕСКИЙ»; - Сброс аварии; - запрос включения насоса; - датчик протока. Кроме дискретных входных сигналов, на вход в данный блок (макрос) поступают также и три параметра (по аналогии с параметрами ОВЕН САУ-У): - время задержки включения насоса после поступления сигнала «Запрос»; - задержка включения контроля протока после формирования сигнала «Пуск насоса»; - длительность допустимых «провалов» от датчика протока. Названия входов и выходов макроса сделаем следующими:
Очевидно, что некоторая часть сигналов со входов коммутируется на соответствующие входы макросов «состояние насоса» без какой либо обработки. Для сигнала «Сброс аварии» можно выделить одиночный импульс по фронту, чтобы не получить эффект «залипания» кнопки. Получаем схему, где Pump1 и Pump2 — это макросы «состояние насоса» В макросе решаются задачи чередования и АВР. На основании значения входов и состояний насосов: - Насос 1 в «АВТ», - Насос 2 в «АВТ», - Авария насоса 1, - Авария насоса 2, - Запрос включения насоса принимается решение о формировании всего двух сигналов: - Запрос включения насоса 1; - Запрос включения насоса 2. Очевидно, что из сигналов «Насос N в «АВТ» и «Авария насоса N» получается сигнал «Насос N доступен для работы». Сигнал «Запрос включения насоса» в схеме управления нужен не сам по себе, а как переключатель состояния очерёдности работы насосов. Т.е. при помощи счётного триггера (T-trig) сигнал «Запрос включения насоса» формирует сигналы «Очередь работы насоса 1» и «Очередь работы насоса 2». Для исключения ложного срабатывания счётного триггера от дребезга контактов перед триггером ставится схема подавления дребезга (Debounce). Способы построения T-trigger и Debounce рассмотри позже. Получаем схему Таким образом для формирования сигналов запроса включения насосов имеем сигналы: - Насос 1 доступен, - Насос 2 доступен, - Очередь насоса 1, - Очередь насоса 2. На основании этих сигналов строим таблицу истинности для функций «Запрос включения насоса 1» и «Запрос включения насоса 2». Чтобы сократить объём статьи, объединю две таблицы в одну. Неопределённые состояния, которые недостижимы в работе — помечены символом «*»
Из карт Карно получаем две функции Запрос насоса 1 = (Насос 1 доступен) *(Очередь насоса 1)+ /(Насос 2 доступен)*(Насос 1 доступен)*(Очередь насоса 2) Запрос насоса 2 = (Насос 2 доступен) *(Очередь насоса 2)+ /(Насос 1 доступен)*(Насос 2 доступен)*(Очередь насоса 1) Эти функции и реализуем в схеме 5. ВСПОМОГАТЕЛЬНЫЕ МАКРОСЫ Счётный триггер реализуется схемой Макрос подавления дребезга реализуется схемой ВЫВОДЫ И РЕКОМЕНДАЦИИ Рассмотрен способ построения программы на языке FBD в среде OWEN Logic для программируемых реле семейств ПР100/ПР110/ПР114/ПР200. Решена практическая задача написания программы для повысительных насосов подпитки системы отопления. Подобный способ (макросы «состояние насоса» и комбинационная схема управления) подходит для создания программ управления двумя насосами. Но для управления большим количеством насосов требуется иной подход — добавление в состав логики «состояние насоса» некоего подобия счётчика и схемы трансляции (распространения) счётного импульса при неисправности. К функционалу макроса «Повысительные насосы» (UpperPumps) можно добавить ещё следующие возможности: - формирование сигнала «Внимание» при полном отсутствии насосов в «АВТОМАТИЧЕСКОМ» режиме, - формирование сигнала «Утечка в теплосети» (Leak) при чересчур длительной работе повысительного насоса, - сделать счётный триггер (T-trigger) энергонезависимым. ПРИЛОЖЕНИЕ Исходники для OWEN Logic версия 1.14.194.18756 Soft20191012.owl.7z |
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.


