Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 52

Тема: Как это реализовать??

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    По умолчанию

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

    В приложении к посту алгоритм работы блока и проект, в котором он реализован.
    Проект состоит из 2х блоков:

    Функциональный блок Pump, предназначен для управления насосом и подсчета времени наработки насоса. Нужен для работы программы управления насосами.
    Программа PumpControl_PRG предназначена для управления насосами в соответствии с Вашим алгоритмом.

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

    Общее время наработки насосов хранится в энергонезависимой памяти.

    Все, что Вам нужно:
    1) Перенести в Ваш проект ФБ, программу и перечисление.
    Сделать это можно как при помощи импорта\экспорта, так и при помощи простого копирования;
    2) В Вашей основной программе вызывать программу PumpControl_PRG, предварительно передавая ей на входы состояния насосов и настройк, а так же подключить выходы программы к выходам ПЛК;
    3) Тщательно протестировать программу на соответствие требуемому алгоритму работы.

    Если возникнут вопросы\пожелания - пишите, помогу.

    UPD: 12.10.2017 12:20
    Устранил ошибку, при которой система не восстанавливалась после срабатывания ошибки PUMP_TOO_FEW_PUMPS.

    UPD: 12.10.2017 16:40
    Добавил описание внутренним переменным.
    Устранил ошибку при которой насос мог отключиться т.к. проработал дольше времени, заданного оператором,
    а в следующем цикле снова включиться т.к. у него минимальное время наработки. Что привело бы к ненужным "дерганиям" выхода ПЛК.
    Описание в архиве.
    Вложения Вложения
    Последний раз редактировалось Осинский Алексей; 12.10.2017 в 16:42.

  2. #2

    По умолчанию

    Цитата Сообщение от Осинский Алексей Посмотреть сообщение
    Функциональный блок Pump, предназначен для управления насосом и подсчета времени наработки насоса. Нужен для работы программы управления насосами.
    Программа PumpControl_PRG предназначена для управления насосами в соответствии с Вашим алгоритмом....
    Если возникнут вопросы\пожелания - пишите, помогу.
    Не троллинга ради, а серьёзный вопрос: можете пояснить зачем наработку вы считаете "поминутно"?
    Почему не сделать просто переменную со "временем старта" и, соответственно, считать наработку как "текущее время"-"время старта"?

  3. #3

    По умолчанию

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

    Цитата Сообщение от Владимир Ситников Посмотреть сообщение
    Не троллинга ради
    Аргументированная критика и вопросы всегда приветствуются.

  4. #4

    По умолчанию

    Цитата Сообщение от Осинский Алексей Посмотреть сообщение
    Добрый день!
    Выпала свободная минутка и реализовал алгоритм управления, соответствующий Вашему запросу.

    В приложении к посту алгоритм работы блока и проект, в котором он реализован.
    Проект состоит из 2х блоков:

    Функциональный блок Pump, предназначен для управления насосом и подсчета времени наработки насоса. Нужен для работы программы управления насосами.
    Программа PumpControl_PRG предназначена для управления насосами в соответствии с Вашим алгоритмом.

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

    Общее время наработки насосов хранится в энергонезависимой памяти.

    Все, что Вам нужно:
    1) Перенести в Ваш проект ФБ, программу и перечисление.
    Сделать это можно как при помощи импорта\экспорта, так и при помощи простого копирования;
    2) В Вашей основной программе вызывать программу PumpControl_PRG, предварительно передавая ей на входы состояния насосов и настройк, а так же подключить выходы программы к выходам ПЛК;
    3) Тщательно протестировать программу на соответствие требуемому алгоритму работы.

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

  5. #5

    По умолчанию

    Цитата Сообщение от Осинский Алексей Посмотреть сообщение
    Программа PumpControl_PRG предназначена для управления насосами в соответствии с Вашим алгоритмом.
    У вас ошибка в алгоритме: если наступит авария, то перестанут запускаться-останавливаться насосы. Даже рабочие.

    Вот пример такого состояния (я его сделал через force write для переменных "pump ok", "pump disabled"):
    pump_control_fail.png
    Видно, что "isRunning=FALSE" для всех насосов, есть 2 нормальных (3ий и 4ый), но система думает, что "TOO_FEW_PUMPS".

    Перерисовал алгоритм (с сохранением этой же ошибки).
    На перерисованной картинке эта проблема более заметна: заход в "запуск-останов" происходит только в безошибочном состоянии.
    PumpControl.png
    Вложения Вложения

  6. #6

    По умолчанию

    Цитата Сообщение от Владимир Ситников Посмотреть сообщение
    У вас ошибка в алгоритме: если наступит авария, то перестанут запускаться-останавливаться насосы. Даже рабочие.

    Вот пример такого состояния (я его сделал через force write для переменных "pump ok", "pump disabled"):
    pump_control_fail.png
    Видно, что "isRunning=FALSE" для всех насосов, есть 2 нормальных (3ий и 4ый), но система думает, что "TOO_FEW_PUMPS".

    Перерисовал алгоритм (с сохранением этой же ошибки).
    На перерисованной картинке эта проблема более заметна: заход в "запуск-останов" происходит только в безошибочном состоянии.
    PumpControl.png
    Спасибо. Проверю и устраню.

    Подскажите пожалуйста, в чем алгоритм рисовали?

  7. #7

    По умолчанию

    Цитата Сообщение от Осинский Алексей Посмотреть сообщение
    Спасибо. Проверю и устраню.
    Подскажите пожалуйста, в чем алгоритм рисовали?
    Программа тут: http://drakon.su/programma_is_drakon (на странице http://drakon.su/ ссылка на учебник и т.п.)

  8. #8

    По умолчанию

    Цитата Сообщение от Владимир Ситников Посмотреть сообщение
    Программа тут: http://drakon.su/programma_is_drakon (на странице http://drakon.su/ ссылка на учебник и т.п.)
    Спасибо за помощь в локализации ошибки.
    Я обновил программу и алгоритм в предыдущем посте.

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

  9. #9

    По умолчанию

    Цитата Сообщение от Осинский Алексей Посмотреть сообщение
    Спасибо за помощь в локализации ошибки.
    Я обновил программу и алгоритм в предыдущем посте.
    Всё равно не работает. Схема не реагирует на pump ok / pump disabled.

  10. #10

    По умолчанию

    Цитата Сообщение от Владимир Ситников Посмотреть сообщение
    Всё равно не работает. Схема не реагирует на pump ok / pump disabled.
    Перепроверил. и PumpOK и Disabled.
    1) загрузил проект;
    2) запустил на исполнение;
    3) запустились насосы 1, 2;
    4) Сымитировал аварию насоса 1 отключив Pump1OK;
    5) Сработал выход Pump1Error, отключился Pump1Running, включился Pump3Running;
    6) Отключил насос 3 выставив Pump3Disabled в TRUE;
    7) Отключился Pump3Running, включился Pump4Running;
    8) Отключил аварию насоса 1 выставив Pump1OK в TRUE;
    9) Отключил насос 4 выставив Pump4Disabled в TRUE;
    10) Отключился насос 4 и включился насос 1.

    Судя по всему все отработало как и планировалось.
    Опишите, пожалуйста, как повторить ошибку.

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

Похожие темы

  1. На чем лучше реализовать теплопункт?
    от КСИ в разделе Эксплуатация
    Ответов: 4
    Последнее сообщение: 31.03.2016, 09:20
  2. Как реализовать?
    от spinogryz57 в разделе Трёп (Курилка)
    Ответов: 42
    Последнее сообщение: 04.03.2015, 13:07
  3. Как программно реализовать это?
    от lava_02 в разделе ПЛК1хх
    Ответов: 7
    Последнее сообщение: 04.02.2012, 22:54
  4. Как реализовать ?!!
    от Vukkub в разделе ПЛК1хх
    Ответов: 10
    Последнее сообщение: 23.08.2011, 09:46
  5. как реализовать сигнализацию
    от fuzzy_l в разделе Подбор Оборудования
    Ответов: 1
    Последнее сообщение: 25.03.2010, 12:29

Ваши права

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