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

Тема: Управление движением механизма.

  1. #1
    Пользователь
    Регистрация
    23.01.2008
    Адрес
    Белгородская область, Валуйки
    Сообщений
    274

    По умолчанию Управление движением механизма.

    Возникла необходимость автоматизировать механизм тележки. Был написан функциональный блок на ST вроде бы всё работает но так как наша отечественная механика 72 года и никто её ни менять ни приводить в нормальный вид не хочет приходится крутится самому. В общем когда механизм отправляется на выбранный адрес (датчик) и достигая его останавливается иногда этот датчик проскакивает хоть тормоза и стоят. В результате датчик выключается и положение механизма становится = 0. Механизм не знает куда ему ехать при следующем запуске. Возникла идея записывать все сработавшие датчики в массив и последний сработавший считать текущим положением и точкой отправления.
    Может кто подскажет как это правильно сделать а то больно жуткие схемы приходят в голову.

    текущий проект прилагается.

    (* О визуализации.
    Квадратики от 1 до 6 датчики положения тележки нажимая их имитируем срабатывание.
    Квадратики А и В аварийные датчики конечных положений нажимая их имитируем аварию.
    Пуск стоп сброс аварии кнопки управления.
    Также есть цифровой индикатор положения показывает битовый номер.
    Для примера битовый номер датчиков выглядит так:
    датчик №1=1, датчик №2=2, датчик №3=4, датчик №4=8, датчик №5=16, датчик №6=32.
    цифровой панели задачи адреса указываем адрес в виде битового значения 1,2,4,8,16,32 и тп.
    нажмем кнопку старт механизм начинает движение в сторону выбранного датчика.
    Для имитации после запуска выключаем датчик на котором тележка стоит в текущий момент
    и нажимаем тот датчик на который отправляли тележку.
    *)
    Вложения Вложения

  2. #2
    Пользователь
    Регистрация
    28.08.2008
    Адрес
    23..93..123
    Сообщений
    1,671

    По умолчанию

    Может поставить "дублирующие" датчики или сделать механически так , чтобы датчик был в сработавшем положении (фиг его знает какие там датчики) в некотором безопасном диапазоне .

  3. #3
    Пользователь
    Регистрация
    23.01.2008
    Адрес
    Белгородская область, Валуйки
    Сообщений
    274

    По умолчанию

    Датчики индуктивные лишние ставить накладно будет их и так по 25 штук стоит на каждую ленту на датчик наезжает лыжа из метала сделать её длиннее нельзя будет не доезжать до нужного места

  4. #4

    По умолчанию

    А зачем массив? Последнее направление и последний сработавший концевик, кажется, проще записывать?
    Отдел КИПиА

  5. #5
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    3,841

    По умолчанию

    Цитата Сообщение от alexval2006 Посмотреть сообщение
    Возникла необходимость автоматизировать механизм тележки. Был написан функциональный блок на ST вроде бы всё работает но так как наша отечественная механика 72 года и никто её ни менять ни приводить в нормальный вид не хочет приходится крутится самому. В общем когда механизм отправляется на выбранный адрес (датчик) и достигая его останавливается иногда этот датчик проскакивает хоть тормоза и стоят. В результате датчик выключается и положение механизма становится = 0. Механизм не знает куда ему ехать при следующем запуске. Возникла идея записывать все сработавшие датчики в массив и последний сработавший считать текущим положением и точкой отправления.
    Может кто подскажет как это правильно сделать а то больно жуткие схемы приходят в голову.
    Что-то у меня совсем просто получилось. Ни каких массивов и больно жутких схем.
    Тележка.png
    Даже с учетом того, что для выключения движения здесь использовал "параноидальные" условия достижения заданного положения тележки, пологая возможность неисправности датчика, когда тележка может доехать до следующего.
    И визуализация.
    Визуализация.png
    Пример конечно упрощенный, показал только идею. То, что использую только 8 датчиков не проблема, можно аналогично сделать и для большего количества.

    ЗЫ. ФБ PACK для адреса не является принципиально необходимым. По задумке он служит только для того, чтобы после начала движения тележки (после нажатия кнопки ПУСК) нельзя было изменить адрес до момента остановки тележки.

    UPD
    Вложение можно скачать здесь
    [B] https://drive.google.com/open?id=0B1...DcxX2dIekNibDg
    Вложения Вложения
    Последний раз редактировалось petera; 24.09.2018 в 14:11.
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  6. #6
    Пользователь
    Регистрация
    23.01.2008
    Адрес
    Белгородская область, Валуйки
    Сообщений
    274

    По умолчанию

    Большое спасибо за помощь как раз то что нужно. Свежий взгляд на проблему творит чудеса я слишком усложнял простое решение
    Ещё вопросик как в элементе PACK увеличить количество входов.
    Последний раз редактировалось alexval2006; 27.09.2013 в 10:09.

  7. #7
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    3,841

    По умолчанию

    Цитата Сообщение от alexval2006 Посмотреть сообщение
    Большое спасибо за помощь как раз то что нужно. Свежий взгляд на проблему творит чудеса я слишком усложнял простое решение
    Ещё вопросик как в элементе PACK увеличить количество входов.
    На счет этого утверждения
    Свежий взгляд на проблему творит чудеса я слишком усложнял простое решение
    +100%
    А по существу вопроса
    1. Решение "в лоб"
    Код:
    FUNCTION PACK_W : WORD
    VAR_INPUT
        B0: BOOL;
        B1: BOOL;
        B2: BOOL;
        B3: BOOL;
        B4: BOOL;
        B5: BOOL;
        B6: BOOL;
        B7: BOOL;
        B8: BOOL;
        B9: BOOL;
        B10: BOOL;
        B11: BOOL;
        B12: BOOL;
        B13: BOOL;
        B14: BOOL;
        B15: BOOL;
    END_VAR
    VAR
    END_VAR
    (*Тело функции*)
    PACK_W.0:=B0;
    PACK_W.1:=B1;
    PACK_W.2:=B2;
    PACK_W.3:=B3;
    PACK_W.4:=B4;
    PACK_W.5:=B5;
    PACK_W.6:=B6;
    PACK_W.7:=B7;
    PACK_W.8:=B8;
    PACK_W.9:=B9;
    PACK_W.10:=B10;
    PACK_W.11:=B11;
    PACK_W.12:=B12;
    PACK_W.13:=B13;
    PACK_W.14:=B14;
    PACK_W.15:=B15;
    2. По мотивам библиотеки OSCAT
    Код:
    FUNCTION PACK_W2 : WORD
    VAR_INPUT
        B0: BOOL;
        B1: BOOL;
        B2: BOOL;
        B3: BOOL;
        B4: BOOL;
        B5: BOOL;
        B6: BOOL;
        B7: BOOL;
        B8: BOOL;
        B9: BOOL;
        B10: BOOL;
        B11: BOOL;
        B12: BOOL;
        B13: BOOL;
        B14: BOOL;
        B15: BOOL;
    END_VAR
    VAR
        BYTE_0: BYTE;
        BYTE_1: BYTE;
    END_VAR
    (*Тело функции*)
    BYTE_0:=SHL(SHL(SHL(SHL(SHL(SHL(SHL(BOOL_TO_BYTE(B7),1) OR BOOL_TO_BYTE(B6),1) OR BOOL_TO_BYTE(B5),1) OR BOOL_TO_BYTE(B4),1)
        OR BOOL_TO_BYTE(B3),1) OR BOOL_TO_BYTE(B2),1) OR BOOL_TO_BYTE(B1),1) OR BOOL_TO_BYTE(B0);
    BYTE_1:=SHL(SHL(SHL(SHL(SHL(SHL(SHL(BOOL_TO_BYTE(B15),1) OR BOOL_TO_BYTE(B14),1) OR BOOL_TO_BYTE(B13),1) OR BOOL_TO_BYTE(B12),1)
        OR BOOL_TO_BYTE(B11),1) OR BOOL_TO_BYTE(B10),1) OR BOOL_TO_BYTE(B9),1) OR BOOL_TO_BYTE(B8);
    PACK_W2:=SHL(BYTE_TO_WORD(BYTE_1),8) OR BYTE_TO_WORD(BYTE_0);
    Захват-1.png
    Вложения Вложения
    • Тип файла: pro PACK_W.pro (15.4 Кб, Просмотров: 15)
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  8. #8
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    3,841

    По умолчанию

    Увеличиваем количество датчиков до 32
    Код:
    FUNCTION PACK_DW : DWORD
    VAR_INPUT
        B0: BOOL;
        B1: BOOL;
        B2: BOOL;
        B3: BOOL;
        B4: BOOL;
        B5: BOOL;
        B6: BOOL;
        B7: BOOL;
        B8: BOOL;
        B9: BOOL;
        B10: BOOL;
        B11: BOOL;
        B12: BOOL;
        B13: BOOL;
        B14: BOOL;
        B15: BOOL;
        B16: BOOL;
        B17: BOOL;
        B18: BOOL;
        B19: BOOL;
        B20: BOOL;
        B21: BOOL;
        B22: BOOL;
        B23: BOOL;
        B24: BOOL;
        B25: BOOL;
        B26: BOOL;
        B27: BOOL;
        B28: BOOL;
        B29: BOOL;
        B30: BOOL;
        B31: BOOL;
    END_VAR
    VAR
        W1: WORD;
        W0: WORD;
        BYTE_0: BYTE;
        BYTE_1: BYTE;
        BYTE_2: BYTE;
        BYTE_3: BYTE;
    END_VAR
    (*Тело функции*)
    BYTE_0:=SHL(SHL(SHL(SHL(SHL(SHL(SHL(BOOL_TO_BYTE(B7),1) OR BOOL_TO_BYTE(B6),1) OR BOOL_TO_BYTE(B5),1) OR BOOL_TO_BYTE(B4),1)
        OR BOOL_TO_BYTE(B3),1) OR BOOL_TO_BYTE(B2),1) OR BOOL_TO_BYTE(B1),1) OR BOOL_TO_BYTE(B0);
    BYTE_1:=SHL(SHL(SHL(SHL(SHL(SHL(SHL(BOOL_TO_BYTE(B15),1) OR BOOL_TO_BYTE(B14),1) OR BOOL_TO_BYTE(B13),1) OR BOOL_TO_BYTE(B12),1)
        OR BOOL_TO_BYTE(B11),1) OR BOOL_TO_BYTE(B10),1) OR BOOL_TO_BYTE(B9),1) OR BOOL_TO_BYTE(B8);
    W0:=SHL(BYTE_TO_WORD(BYTE_1),8) OR BYTE_TO_WORD(BYTE_0);
    
    BYTE_2:=SHL(SHL(SHL(SHL(SHL(SHL(SHL(BOOL_TO_BYTE(B23),1) OR BOOL_TO_BYTE(B22),1) OR BOOL_TO_BYTE(B21),1) OR BOOL_TO_BYTE(B20),1)
        OR BOOL_TO_BYTE(B19),1) OR BOOL_TO_BYTE(B18),1) OR BOOL_TO_BYTE(B17),1) OR BOOL_TO_BYTE(B16);
    BYTE_3:=SHL(SHL(SHL(SHL(SHL(SHL(SHL(BOOL_TO_BYTE(B31),1) OR BOOL_TO_BYTE(B30),1) OR BOOL_TO_BYTE(B29),1) OR BOOL_TO_BYTE(B28),1)
        OR BOOL_TO_BYTE(B27),1) OR BOOL_TO_BYTE(B26),1) OR BOOL_TO_BYTE(B25),1) OR BOOL_TO_BYTE(B24);
    W1:=SHL(BYTE_TO_WORD(BYTE_3),8) OR BYTE_TO_WORD(BYTE_2);
    
    PACK_DW:=SHL(WORD_TO_DWORD(W1),16) OR WORD_TO_DWORD(W0);
    Захват-1.png
    Вложения Вложения
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  9. #9
    Пользователь
    Регистрация
    23.01.2008
    Адрес
    Белгородская область, Валуйки
    Сообщений
    274

    По умолчанию

    Спасибо хорошая функция получилась пригодится не только в этом проекте. Вот теперь напильником под шлифую немного под себя и будет самое то

  10. #10
    Пользователь
    Регистрация
    22.02.2013
    Адрес
    г.Тихорецк, Краснодарский край
    Сообщений
    384

    По умолчанию

    Это что за тележка ни с элеватора случайно?

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

Похожие темы

  1. Управление ТЭНами
    от Admiral в разделе Подбор Оборудования
    Ответов: 8
    Последнее сообщение: 06.02.2013, 14:04
  2. Тахометр ТХ01 для контроля скорости механизма
    от alexval2006 в разделе Эксплуатация
    Ответов: 12
    Последнее сообщение: 08.06.2012, 13:41
  3. управление печью
    от pgomberg в разделе Подбор Оборудования
    Ответов: 33
    Последнее сообщение: 04.08.2010, 13:55
  4. Ответов: 21
    Последнее сообщение: 11.03.2010, 11:19
  5. управление 3-х клапанами
    от Дмитрий в разделе Разработки
    Ответов: 4
    Последнее сообщение: 26.08.2009, 04:46

Ваши права

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