Segnetics

Вернуться   Segnetics > Форум Segnetics > Вопросы о программировании

Вопросы о программировании Вопросы, касающиеся программирования на FBD

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 14.04.2020, 13:49   #1
alekseydav
Новичок
 
Регистрация: Apr 2020
Сообщения: 2
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ротация насосов

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

Задача такая: Реализовать ротацию 3 насосов, причем может работать как один насос, так и все три сразу в зависимости от количества потребителей. При возникновении аварии одного насоса автоматически переключаемся на другой насос. Если получается такая ситуация, что необходимо включить 2 насоса из 3-х, но работоспособен только один, то выдаем дискретный сигнал об аварии или в любой другой ситуации, когда необходимое количество насосов включить невозможно. В этом случае насосы, которые возможно включить работают. Для ротации на вход макроса подается сигнал смещения, благодаря которому обеспечивается ротация. Фактически это порядковый номер базового насоса, с которого происходит включение.

Входы и выходы макроса вижу так:

Входы:
Пуск(Int) - необходимое кол-во насосов, которое необходимо включить
Смещение(Int) - адрес базового насоса для ротации. На вход будет подаваться сигнал с блока GetDays(abs) -> MOD%3. Каждый день базовый адрес насоса будет циклически меняться 0 -> 1 -> 2 -> 0 -> 1 и т.д.
Авария 1(Bool) - авария 1 насоса
Авария 2(Bool) - авария 2 насоса
Авария 3(Bool) - авария 3 насоса

Выходы:
Пуск 1(bool) - пуск 1 насоса
Пуск 2(bool) - пуск 2 насоса
Пуск 3(bool) - пуск 3 насоса
Авария(bool) - авария насосной группы

Заранее благодарен за помощь)
alekseydav вне форума   Ответить с цитированием
Старый 14.04.2020, 14:37   #2
Ilya J.
Сотрудник Сегнетикс
 
Аватара для Ilya J.
 
Регистрация: Mar 2016
Адрес: SPb
Сообщения: 4 302
Благодарил(а): 0 раз(а)
Поблагодарили: 254 раз(а) в 250 сообщениях
По умолчанию Ответ: Ротация насосов

Можно пройтись по поиску со словом "Ротация".

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

Только не увидел условий по наработке насосов, оно вам не надо?


__________________
Если ничто другое не помогает, прочтите, наконец, инструкцию
Ilya J. сейчас на форуме   Ответить с цитированием
Старый 14.04.2020, 22:22   #3
alekseydav
Новичок
 
Регистрация: Apr 2020
Сообщения: 2
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Ротация насосов

Спасибо за обратную связь, получилось реализовать самому. Извилины чуть в голове не сломал пока делал. Жаль, что нельзя программировать контроллеры на каком-нибудь ООП языке. Намного эффективнее бы получилось писать программы
alekseydav вне форума   Ответить с цитированием
Старый 14.04.2020, 23:15   #4
LordN
Senior Member
 
Регистрация: Dec 2007
Адрес: Томск
Сообщения: 4 123
Благодарил(а): 239 раз(а)
Поблагодарили: 161 раз(а) в 153 сообщениях
По умолчанию Ответ: Ротация насосов

Цитата
Сообщение от alekseydav Посмотреть сообщение
Спасибо за обратную связь, получилось реализовать самому. Извилины чуть в голове не сломал пока делал. Жаль, что нельзя программировать контроллеры на каком-нибудь ООП языке. Намного эффективнее бы получилось писать программы
а как связаны программа и язык?


__________________
C уважением, LordN
LordN вне форума   Ответить с цитированием
Старый 15.04.2020, 13:11   #5
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 019
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: Ротация насосов

Цитата
Сообщение от alekseydav Посмотреть сообщение
Жаль, что нельзя программировать контроллеры на каком-нибудь ООП языке.
Самое смешное в вашей ситуации, что ФБД с поддержкой макросов - это ООП в самом чистом его виде.


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie сейчас на форуме   Ответить с цитированием
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать свои сообщения

BB code is Вкл.
[IMG] код Вкл.
HTML код Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Макрос Ротация насосов Konstantin.m Вопросы о программировании 17 15.06.2023 13:01
Алгоритм работы группы насосов Dmitri Вопросы о программировании 49 10.06.2021 16:42
Придумываем алгоритм ротации насосов (решено) Shogun Вопросы о программировании 35 04.02.2020 01:16
Где PDS насосов? AlexSku SMConstructor (теплопункты) 18 30.08.2019 17:44
поделитесь маросом ротации 2х насосов (решено) dima-prorab Вопросы о программировании 36 30.07.2019 03:13


Часовой пояс GMT +4, время: 15:44.


Версия vBulletin: 3.8.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Segnetics 2005 - 2023