Страница 3 из 3 ПерваяПервая 123
Показано с 21 по 28 из 28

Тема: И снова - управление ротацией на ПЛК

  1. #21

    По умолчанию

    Цитата Сообщение от In_Da_Cher_A Посмотреть сообщение
    самое смешное - в пунтке 1 они ссылаются на нормативку, а потом начинают писать хотелки, которые могут противоречить нормативке
    и когда тычешь их в это, начинаются истерики
    Ну вот, вы тоже заметили, что наш мир далек от идеала. Но мы выкручиваемся. Договариваемся с заказчиками, чтим уголовный кодекс.... Пока всё идёт хорошо
    Работа не волк, а work.

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

    По умолчанию

    Цитата Сообщение от SlavikP Посмотреть сообщение
    Ну вот, вы тоже заметили, что наш мир далек от идеала. Но мы выкручиваемся. Договариваемся с заказчиками, чтим уголовный кодекс.... Пока всё идёт хорошо
    В смысле чтим, голову им не размаживаете, если какие шероховатости?
    Если проблему можно решить за деньги, это не проблема, это расходы. Бог каждому посылает проблемы по его силам. Так что одно из двух. Либо ты можешь-таки
    справиться с проблемами, либо это не твои проблемы.

  3. #23

    По умолчанию

    Цитата Сообщение от SlavikP Посмотреть сообщение
    Вот, сделал для себя. Вроде даже работает.
    Функциональный блок управления 16 насосами (или не насосами).
    Можно управлять и меньшим количеством, установив соответствующую маску входов.
    Может управлять группой из нескольких одновременно работающих насосов, с обработкой отказов, ротацией, и подсчетом времени наработки.
    Позволяет менять кол-во одновременно работающих на ходу, корректно выбирая те, у кого меньше время наработки.
    Технически модуль можно легко переделать на любое количество.
    Делал для себя. Собрано в Codesys 3.5.17, но несложно переносится на любую версию, даже на 2.3. Проверил работу - вроде работает.
    В те давние времена, когда я только разбирался в программировании ПЛК мне подобных модулей сильно недоставало. Если кому надо такое - берите и пользуйтесь свободно. Freeware.
    Панамку для конструктивной критики подставил.
    Посмотрел проект, нашёл несколько ошибок:
    1) в условие поднятия флага сортировки (NeedResort) нужно добавить отслеживание изменения состояния переключателей АВТО и изменения количества насосов.
    2) в цикле "// Сохранение текущего состояния с заменой отказавших насосов" InternalStart[i] нужно заменить на InternalStart[PumpData[i].Index], так как массив уже отсортирован.

  4. #24

    По умолчанию

    Цитата Сообщение от In_Da_Cher_A Посмотреть сообщение
    ага, типа "какая такая стоимость ПНР? мы должны подвести 3 фазы на клемник и нажать кнопку ВКЛ и всё должно заработать"
    Да, немецкие станки так и вводят в эксплуатацию. Задача наладчика ознакомить с панелью управления, предоставить график техобслуживания с указанием быстроизнашивающихся элементов. На это обычно час уходит и оператор продукцию через 2-3 часа производит. В русском оборудовании: болты и шпильки из хозтоваров, пока три дня наладчик всё не протянет, не поедет.

  5. #25

    По умолчанию

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

    а за "русское оборудование" отдельные лучи поноса вам в карму

  6. #26

    По умолчанию

    Цитата Сообщение от In_Da_Cher_A Посмотреть сообщение
    ой не надо эту туфту здесь втирать, сейчас не 90ые.
    с кем и с чем только не работали за эти годы, такие же люди, так же и работают и косячат и часами совещания проводят по всякой ерунде, и также халтурят
    и чуть что - элементарно кидают, оставив эксплуатацию без схем, без софта и запчастей
    или наоборот выставляют за каждый болт как за чугунный мост

    а за "русское оборудование" отдельные лучи поноса вам в карму
    Да-да, пришло нам как то австрийское чудо техники, шкаф в сборе, подключай и вперёд. Только забыли сборщики перемычки на ПЧ поставить. И ПО в контроллерах не было. Пришлось самим всё программировать.

  7. #27

    По умолчанию

    Цитата Сообщение от Saenich01 Посмотреть сообщение
    Посмотрел проект, нашёл несколько ошибок:
    1) в условие поднятия флага сортировки (NeedResort) нужно добавить отслеживание изменения состояния переключателей АВТО и изменения количества насосов.
    2) в цикле "// Сохранение текущего состояния с заменой отказавших насосов" InternalStart[i] нужно заменить на InternalStart[PumpData[i].Index], так как массив уже отсортирован.
    Спасибо, попробую при возможности.
    Работа не волк, а work.

  8. #28

    По умолчанию

    Цитата Сообщение от Saenich01 Посмотреть сообщение
    Посмотрел проект, нашёл несколько ошибок:
    2) в цикле "// Сохранение текущего состояния с заменой отказавших насосов" InternalStart[i] нужно заменить на InternalStart[PumpData[i].Index], так как массив уже отсортирован.
    Не имеет смысла, т.к. все равно циклу for надо будет сделать полный проход по массиву InternalStart[] и в целом без разницы в каком это будет порядке. Но вычисление индекса i в каждой итерации существенно проще, чем предложенное вами PumpData[i].Index
    // Сохранение текущего состояния с заменой отказавших насосов
    FOR i := 0 TO 15 DO
    IF InternalStart[i] AND NOT PumpData[i].Available THEN
    (* Находим замену для отказавшего насоса *)
    FOR j := 0 TO AvailableCount - 1 DO
    IF PumpData[j].Available AND NOT InternalStart[PumpData[j].Index] THEN
    InternalStart[PumpData[j].Index] := TRUE;
    EXIT;
    END_IF;
    END_FOR;
    InternalStart[i] := FALSE;
    END_IF;
    END_FOR;
    Последний раз редактировалось SlavikP; 22.04.2026 в 09:46.
    Работа не волк, а work.

Страница 3 из 3 ПерваяПервая 123

Похожие темы

  1. И снова ПИД...
    от werg в разделе ПЛК1хх
    Ответов: 8
    Последнее сообщение: 31.05.2016, 16:55
  2. и снова ПКП...
    от panfilov в разделе Эксплуатация
    Ответов: 1
    Последнее сообщение: 07.05.2015, 14:10
  3. и снова 212
    от мастер в разделе Эксплуатация
    Ответов: 3
    Последнее сообщение: 18.11.2009, 07:22
  4. И снова АС-4...
    от uagd в разделе Эксплуатация
    Ответов: 25
    Последнее сообщение: 09.02.2009, 14:17
  5. и снова о си-8
    от Владимир А. в разделе Эксплуатация
    Ответов: 16
    Последнее сообщение: 06.02.2009, 14:30

Ваши права

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