Страница 3 из 6 ПерваяПервая 12345 ... ПоследняяПоследняя
Показано с 21 по 30 из 52

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

  1. #21

    По умолчанию

    Цитата Сообщение от Вова13 Посмотреть сообщение
    Добрый день,прошу "подкинуть идею" .Есть четыре насоса,ротация по времени (один в работе остальные "ждут") ,а так же возможность выводить из каскада насосы ,которые в ремонте или аварии.
    С переключением по времени проблем как бы не возникло а вот с выводом ремонтных насосов из каскада ,вот ту споткнулся.
    Вопрос:как организовать алгоритм когда аварийном насосу присваивается число "3",второму аварийному число "2" те которые остались в каскаде "0" и "1"
    Вот для примера картинки.
    Вложение 33532 на первом рисунке аварийных и ремонтных насосов нет,выходы = 0,1,2,3
    Вложение 33533 на втором рисунке аварийный насос №1 ему присваивается число 3
    Вложение 33534 на третьем рисунке аварийных насосов два(№1 и №2)им присваивается число 2 и 3 соответственно
    Вложение 33535 на это рисунке аварийный насос №2 и ему присваивается "3"


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

    Если я не прав, поправьте пожалуйста. Я вижу задачу так:
    Есть блок управления N насосами.

    Входные параметры блока:
    1. Разрешить работу;
    2. Время ротации;
    3. Запретить запуск насоса 1;
    4. Запретить запуск насоса 2;
    5. ...
    6. Запретить запуск насоса N;


    Выходные параметры:
    1. Ошибка - нет исправных насосов;
    2. Состояние насоса 1;
    3. Состояние насоса 2;
    4. ...
    5. Состояние насоса N;


    В начальный момент времени все насосы остановлены и работа блока запрещена.

    1) Разрешили работу блока;
    1.1) Включился первый из списка насос, у которого не запрещена работа;
    1.2) Если истекло время ротации или работу текущего насоса запретили
    1.2.1) отключить текущий насос;
    1.2.2) включить следующий насос из списка у которого разрешена работа;
    1.3) Если в списке нет исправных насосов - включить выход "Ошибка".

    2) Запретили работу блока
    2.1) Отключить текущий насос.

    3) Опять разрешили работу блока
    аналогично 1.1 - 1.3

    Если я правильно понял, то Валенок предлагает Вам п.1. переделать таким образом:
    1.1) Включить насос с минимальной наработкой и незапрещенной работой;
    1.2) Если истекло время ротации или работу текущего насоса запретили:
    1.2.1) отключить текущий насос;
    1.2.2) включить насос с минимальной наработкой и незапрещенной работой;
    1.3) Если в списке нет исправных насосов - включить выход "Ошибка".
    Такой алгоритм используется чаще и позволяет избежать ситуации когда у "первого" насоса ресурс уже выработан, а 2-N насосы еще новые.

    Уточните, пожалуйста, какой из вариантов Вам подходит (или опишите свой).
    Постараемся помочь.

  2. #22

    По умолчанию

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

    Входы

    1.Разрешение на включение(Режим Автомат)
    2.Сигнал с датчика перепада давления насоса №1
    3.Сигнал с датчика перепада давления насоса №2
    4.Сигнал с датчика перепада давления насоса №3
    5.Сигнал с датчика перепада давления насоса №4
    6.Четыре сигнала(BOOL или байт или ВОРД) насосы1..4 в ремонте.
    7.Задание времени переключения (в часах)-DWORD
    8.Количество насосов в работе (1 или 2)

    Выходы

    1.Четыре дискретных выхода включения насосов
    2.Четыре дискретных выхода аварии насосов
    3.выход(информация о прошедшем времени ведущего насоса)

    Алгоритм ...при включении входа "Автоматический рeжим" (тумблер на щите) и выбора (со СКАДА) количества насосов (например один )включается в работу насос(ведущий) и работает до достижения уставки по времени.Если во время работы произошла авария (пропал сигнал с датчика перепада давления) происходит переключение на насос,следующий за ним(например №2),если он не в ремонте .И так далее по счету..Если во время работы нет насосов в ремонте и не происходит аварий,ротация происходит по заданному времени.(Аналог работы САУ МП).
    При выборе режима "в работе два насоса алгоритм повторяется,только в работе одновременно два насоса(1 и 2 ,2 и 3,1 и 3 и т.д.)
    С двумя насосами (один рабочий второй резервный) я это сделал.
    Четыре насоса (в режиме "в работе один насос")тоже осилил,правда "ГРОМОЗДКО",а вот теперь застрял на режиме "в работе два насоса".
    При возникновении аварии насоса это отображается у диспетчера,он снимает аварию путем выключения режима "Автомат" и снова его включения.Если аварию устранить не удается насос переводится в режим "Ремонт" и насос выводится из алгоритма.

    Для подсчета времени наработки я использую блок TRAB он меня устраивает тем, при отключении питания он сохраняет время наработки и программа продолжается с того же места ,где отключилась.
    9.jpg
    Последний раз редактировалось Вова13; 09.10.2017 в 21:35.

  3. #23

    По умолчанию

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

  4. #24
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    10,583

    По умолчанию

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

    з.ы. на ПР бы отличный макрос от AI! но реализовать его на ПЛК я не смог, из-за "явных обратных связей" ПР, кривовато оно работает.. на CDS такой "фичи" нет...

  5. #25

    По умолчанию

    Цитата Сообщение от melky Посмотреть сообщение
    У меня один вопрос, вам не все равно кто из них 1, кто 2 а кто 3 ? ну нафига себе (и насосам) забивать голову ненужной нумерацией по порядку ?
    Есть.
    1 - количество насосов - банальная битовая маска
    2. - аварийный или остановленный (опустили автомат питания с допконтактом, выбило по кз и т.д.) исключаем из битовой маски
    3. остальные, кто в работе, в битовой маске включены и меняются по времени из включенных
    4. при необходимости добавляем второй, третий опять же из включенных в битовой маске.
    А можно хоть скрин с кусочком программы как это сделать в CFC. или в чем другом ,хоть для ПР.

  6. #26
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    10,583

    По умолчанию

    для вашего случая программы нет. Делал на ПЛК63 для ротации кондиционеров методом отключения их от сети. как раз использовал принцип битовой маски.
    Для ПР ищите в Макросах соответствующей темы Ротация8, если сможете его перепилить для CDS будет замечательно.

  7. #27

    По умолчанию

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

    з.ы. на ПР бы отличный макрос от AI! но реализовать его на ПЛК я не смог, из-за "явных обратных связей" ПР, кривовато оно работает.. на CDS такой "фичи" нет...

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

    Если в работе два насоса (1и2)а фактическое их время наработки 500 и 800 часов соответственно,а задание по времени 240 часов,то оба насоса должны отработать 240 часов и переключится на (например 2 и 3)
    Последний раз редактировалось Вова13; 09.10.2017 в 21:50.

  8. #28

    По умолчанию

    Цитата Сообщение от melky Посмотреть сообщение
    для вашего случая программы нет. Делал на ПЛК63 для ротации кондиционеров методом отключения их от сети. как раз использовал принцип битовой маски.
    Для ПР ищите в Макросах соответствующей темы Ротация8, если сможете его перепилить для CDS будет замечательно.
    Мне и не нужно для насосов,можно для чего угодно,что бы понять на чем вы это делаете,на каких элементах(на простой логике и и триггерах или что еще там есть).Как Вы использовали принцип битовой маски

  9. #29

    По умолчанию

    Цитата Сообщение от Вова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.

  10. #30
    Пользователь Аватар для Василий Кашуба
    Регистрация
    20.11.2011
    Адрес
    Ставрополь
    Сообщений
    2,490

    По умолчанию

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

    з.ы. на ПР бы отличный макрос от AI! но реализовать его на ПЛК я не смог, из-за "явных обратных связей" ПР, кривовато оно работает.. на CDS такой "фичи" нет...
    Замените "обратные связи" на внутренние промежуточные переменные и получится задержка на один цикл.Ротация 3 насоса.JPG

Страница 3 из 6 ПерваяПервая 12345 ... ПоследняяПоследняя

Похожие темы

  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

Ваши права

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