Страница 1 из 3 123 ПоследняяПоследняя
Показано с 1 по 10 из 24

Тема: Управление лампой "Авария" сериями импульсов в зависимости от статусов

  1. #1

    По умолчанию Управление лампой "Авария" сериями импульсов в зависимости от статусов

    Доброго дня! Не могу сообразить, как реализовать управление лампой "Авария" импульсами в зависимости от статусов на ПР200. В зависимости от того какая аварийная ситуация, индикатор выдает серию миганий. Мигание индикатора при определении аварии происходит интервально, при этом количество включенных состояний индикатора в серии импульсов показывает номер определенной аварии. Серия из одного импульса, далее пауза 1,5-2 секунды и переход к индикации следующей аварии своим количеством импульсов (два, три и т.д.). Индикация аварий осуществляется циклично.

  2. #2
    Пользователь Аватар для Сергей0308
    Регистрация
    25.06.2011
    Адрес
    Галактика Андромеды (M31)
    Сообщений
    9,434

    По умолчанию

    Цитата Сообщение от Smitka Посмотреть сообщение
    Доброго дня! Не могу сообразить, как реализовать управление лампой "Авария" импульсами в зависимости от статусов на ПР200. В зависимости от того какая аварийная ситуация, индикатор выдает серию миганий. Мигание индикатора при определении аварии происходит интервально, при этом количество включенных состояний индикатора в серии импульсов показывает номер определенной аварии. Серия из одного импульса, далее пауза 1,5-2 секунды и переход к индикации следующей аварии своим количеством импульсов (два, три и т.д.). Индикация аварий осуществляется циклично.
    С Вами всё понятно, в смысле, "ни украсть, ни покараулить"!

    https://owen.ru/forum/showthread.php...l=1#post429835

    Сигнализация включённых входов_12.PNG

    И, если выводить номер(код) аварии на экран ПР200, ИПП120 или СМИ2-М, то будет намного удобней, мне так кажется:

    https://owen.ru/forum/showthread.php...l=1#post374952

    Сигнализация включённых входов_3.PNG


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

    Вот здесь тоже нечто подобное делали, но более ясное и понятное:
    https://owen.ru/forum/showthread.php...l=1#post412743

    Контроль танков_6.PNG
    Последний раз редактировалось Сергей0308; 24.11.2025 в 02:26.
    Если проблему можно решить за деньги, это не проблема, это расходы. Бог каждому посылает проблемы по его силам. Так что одно из двух. Либо ты можешь-таки
    справиться с проблемами, либо это не твои проблемы.

  3. #3

    По умолчанию

    Благодарю Вас! Просто количеством ламп ограничен, а в логике пока только осваиваюсь

  4. #4

    По умолчанию

    Цитата Сообщение от Сергей0308 Посмотреть сообщение
    Ваш вариант, самый неудачный из всех возможных, проще выражаясь, худший из худших, мне так кажется!
    В таких случаях обычно говорят, что более неудачный вариант трудно придумать!


    Вот этот идеально подходит, спасибо еще раз! На самом деле на форуме порой трудно что-то найти из-за того, что поисковый вопрос не всегда содержит "правильные" для поиска слова ))) прошу прощения за тафтологию
    Вложения Вложения

  5. #5

    По умолчанию

    Добавил вход Enable и оставил только контроль 6 входов
    Вложения Вложения

  6. #6

    По умолчанию

    я вот так делаю
    Изображения Изображения
    • Тип файла: jpg led.JPG (24.6 Кб, Просмотров: 26)

  7. #7

    По умолчанию

    function_block fb_led_1_1 //имя функционального блока.

    var_input //объявление входных переменных

    init:bool;
    init_flash:bool;


    in0:bool;
    flash0:bool;

    in1 : bool; //входная переменная с типом данных bool
    flash1:bool;

    in2 : bool; //входная переменная с типом данных bool
    flash2:bool;

    in3 : bool; //входная переменная для значения счетчика после сброса
    flash3:bool;

    in4:bool;
    flash4:bool;

    flash_def:bool;

    end_var

    var_output //объявление выходных переменных
    out : bool; //выходная переменная с типом данных udint
    end_var

    var //объявление локальных переменных

    end_var

    if init=true then
    out:=init_flash;
    else

    if in0 = true then
    out:=flash0;
    else

    if in1=true then
    out := flash1;
    else
    if in2=true then
    out := flash2;
    else
    if in3=true then
    out:=flash3;
    else
    if in4=true then
    out:=flash4;
    else
    out:=flash_def;
    end_if

    end_if

    end_if
    end_if
    end_if

    end_if

    end_function_block

  8. #8
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,574

    По умолчанию

    Цитата Сообщение от Васильев Посмотреть сообщение
    я вот так делаю
    смотрите как ИИ понял задачу у ТС
    Анализ требований
    1) Источник данных: ПР200 — промышленный контроллер или устройство, выдающее статусы (например, по Modbus, дискретным входам или другим интерфейсам).
    2) Тип индикации: мигающая лампа (лампа «Авария»).
    3) Логика мигания:
    Каждая аварийная ситуация кодируется количеством вспышек (импульсов).
    Авария №1 → 1 вспышка
    Авария №2 → 2 вспышки
    и т.д.
    После каждой серии импульсов — пауза 1.5–2 сек.
    Индикация циклическая: после последней аварии — возврат к первой.

    4) Одновременные аварии: если активно несколько аварий, каждая из них должна быть отображена поочерёдно своей серией миганий.
    5) Мигание:
    Длительность включения/выключения в рамках серии — стандартная, например: вкл — 0.5 с, выкл — 0.5 с (уточняется по ТЗ).
    Пауза между сериями — 1.5–2 с.


    Дополнительные рекомендации

    Приоритетность: если важно, чтобы критические аварии отображались чаще — можно реализовать приоритетную очередь.
    Сброс: при исчезновении аварии — обновлять список и перезапускать индикацию.
    Диагностика: при отсутствии связи с ПР200 — можно мигать, например, 10 раз (как ошибка связи).
    Тестирование: реализовать кнопку «тест индикации» для проверки работоспособности лампы.
    Ваш код так может?
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

  9. #9
    Пользователь
    Регистрация
    23.09.2008
    Адрес
    Центророссийск
    Сообщений
    3,048

    По умолчанию

    Цитата Сообщение от Васильев Посмотреть сообщение
    ...
    end_if

    end_if

    end_if
    end_if
    end_if

    end_if
    Извините, но это простейший признак как делать не надо. Это помимо "in0 = true"

    elsif есть для однорангового приоритетного сравнения
    Последний раз редактировалось Валенок; 25.11.2025 в 11:53.

  10. #10
    Пользователь
    Регистрация
    23.09.2008
    Адрес
    Центророссийск
    Сообщений
    3,048

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    смотрите как ИИ понял задачу у ТС
    Авария №1 → 1 вспышка
    Авария №2 → 2 вспышки
    и т.д.....
    ...
    Авария №71 → 71 вспышка
    норм, чо

Страница 1 из 3 123 ПоследняяПоследняя

Похожие темы

  1. Ответов: 1
    Последнее сообщение: 18.08.2021, 09:18
  2. Ответов: 1
    Последнее сообщение: 08.09.2017, 05:55
  3. как выбрать управление "прямое" или "обратное"
    от maxmore в разделе Эксплуатация
    Ответов: 1
    Последнее сообщение: 18.01.2010, 10:13
  4. Ответов: 10
    Последнее сообщение: 11.07.2008, 13:37
  5. МДВВ постоянно уходит в режим "Авария"
    от clockwise в разделе Эксплуатация
    Ответов: 10
    Последнее сообщение: 11.07.2008, 13:37

Ваши права

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