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

Тема: Реализация "виртуального энкодера" на ПЛК Овен

  1. #1

    По умолчанию Реализация "виртуального энкодера" на ПЛК Овен

    Приветствую, коллеги!

    Имеется станок с убитой системой управления, но исправной силовой частью, который необходимо модернизировать. Новую СУ хочу построить на контроллере Овен, но в схеме станка есть особенность, в реализации которой я сомневаюсь. Несколько сервоусилителей синхронных движков в процессе работы синхронизируют свои обороты с виртуальном валом станка, на котором был "смонтирован" такой же виртуальный энкодер, роль которого раньше выполнял вышедший из строя ПЛК от Siemens. Отсюда вопрос: можно ли на выходах ПЛК Овен реализовать режим виртуального инкрементального sin/cos энкодера? Быстрые выходы как будто подходят для этой цели, но хотелось бы однозначной ясности в вопросе (прежде чем я начну озадачивать начальство закупкой железа).

  2. #2

    По умолчанию

    Спасибо за Ваш ответ! Вы правы, но в данный момент, я, так сказать, нахожусь на самом первом этапе модернизации и хочу в принципе понять, может ли сабж работать в режиме, который меня интересует. Упрощу ситуацию: у меня есть каскад исправных и настроенных приводов, которым для работы нужно только одно: подключенный и вращающийся энкодер. Заметьте, энкодер вращается не от этих же приводов, он висит на некотором "эталонном" вале. Для проверки я собрал простейший костыль: частотник + маленький моторчик + железный энкодер на его валу, подключенный к каскаду. Моторчик крутит энкодер, а он в свою очередь вертит весь каскад. Вертит хорошо и правильно. В принципе, костыль можно оставить, задать управление частотником от ПЛК и пусть он себе вертит энкодер. Это пока мой запасной вариант. Но хочется сделать красиво (читай -- как и было сделано раньше) сконфигурировать выходы контроллера так, чтобы каскад думал, что это энкодер. Пока я даже не спрашиваю, как это реализовать, меня интересует сама возможность такой эмуляции. Делал ли кто-то нечто подобное и как оно работало?

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

    По умолчанию

    Цитата Сообщение от krollcbas Посмотреть сообщение
    Энкодер (если инкрементный) - это, грубо говоря, два быстрых дискретных выхода. В зависимости от частоты и направления вращения должен меняться меандр. У ПЛК110-30 есть два быстрых выхода. Уверен что можно сделать импульсы длиной 50мс TRUE и 50мс FALSE, но не чаще. Если это устроит (минимальная скорость), то заставить их так пульсировать и медленнее, в зависимости от уставки - можно.
    50 миллисекунд?? Это при мин.цикле ПЛК 1мс?

    Круто!
    Для такой длительности и быстрые выходы не нужны, однако.
    На обычных выходах (не быстрых) сделаю в десять раз быстрее.
    На один оборот энкодера нужно 4 цикла ПЛК.
    Захват-1.png
    И того, если цикл ПЛК равен 1 мс, получится один оборот за 4 мс, а это 250 Гц. Или максимальная скорость вращения виртуального энкодера получится (250х60)=15 000 об/мин.
    ЗЫ.
    Код:
    PROGRAM PLC_PRG
    VAR
        State: INT;
        Start: BOOL;    (*кнопка СТАРТ/СТОП*)
        Run: BOOL;
        A: BOOL;        (*Выход А*)
        B: BOOL;        (*Выход B*)
    END_VAR
    
    CASE State OF
    0:
        A:=0;
        B:=0;
        IF Start THEN Run:=1; State:=10; END_IF
    10:    (*фаза 1*)
        A:=1; B:=0; State:=11;
    11:    (*фаза 2*)
        A:=1; B:=1; State:=12;
    12:    (*фаза 3*)
        A:=0; B:=1; State:=13;
    13:    (*фаза 4*)
        A:=0; B:=0; State:=10;
    END_CASE
    IF NOT Start AND Run THEN State:=0; Run:=0; END_IF
    "Импульсы TRUE и FALSE" будут по 2 мс.

    Захват-1.png Захват-2.png

    UPD. Если делать правильный энкодер, то наверно нужен так же и референтный выход (нулевая отметка)
    Код:
    PROGRAM PLC_PRG
    VAR
        State: INT;
        Start: BOOL;    (*кнопка СТАРТ/СТОП*)
        Run: BOOL;
        A: BOOL;        (*Выход А*)
        B: BOOL;        (*Выход B*)
        Rz: BOOL;       (*Референтный выход*)
    END_VAR
    CASE State OF
    0:
        A:=0;
        B:=0;
        IF Start THEN Run:=1; State:=10; END_IF
    10:    (*фаза 1*)
        A:=1; B:=0; State:=11;
    11:    (*фаза 2*)
        A:=1; B:=1; Rz:=1; State:=12;
    12:    (*фаза 3*)
        A:=0; B:=1; Rz:=0; State:=13;
    13:    (*фаза 4*)
        A:=0; B:=0; State:=10;
    END_CASE
    IF NOT Start AND Run THEN State:=0; Run:=0; END_IF
    Захват-3.png

    Конечно 15 000 об/мин справедливо для виртуального энкодера с 1 имп./оборот. Какой и показан в примере. Если нужно больше импульсов на один оборот, то максимальная скорость вращения будет уменьшаться пропорционально количеств импульсов на один оборот.
    Последний раз редактировалось petera; 22.11.2015 в 19:46.
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

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

    По умолчанию

    Цитата Сообщение от krollcbas Посмотреть сообщение
    Petera, что Вы скажете на это....
    ПЛК110-30_М - установка плазмотрона.
    Самолично делал быструю задачу нулевого приоритета с быстрой программой (подсчет каунтов с расходомера) , устанавливал для данной задачи различные циклы ниже 50мс. Хотел понять "а где реальный предел". Выяснил что если выставлять ниже 50мс, то цикл оказывается плавающий (то есть засекал инкрементным счетчиком 600 импульсов и сравнивал с таймером). Для задачи измерения моментального расхода с учетом времени - неприемлемо.
    Полагаю, что и в данной задаче контроллер планируют использовать не только в качестве виртуального энкодера (то есть будет не пустой).
    Пользуясь моментом спрошу, какой минимальны интервал меандра может дать реле, идущее в составе ПЛК?
    Спасибо.
    1. Пустой будет контроллер или не пустой, по условиям задачи не задано.
    2. Кто заставляет использовать для данной задачи ПЛК с релейными выходами? Я даже не предполагал, что вместо транзисторных выходов с ОК, возникнет мысль использовать релейные.
    Такую программу, для которой нужен цикл ПЛК 50 мс, еще надо постараться сделать.
    ЗЫ.
    Для моего примера не нужно использовать диспетчер задач, задать мин.цикл 1 мс, и будет 15 000 об/мин.
    Последний раз редактировалось petera; 21.11.2015 в 07:00.
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  5. #5

    По умолчанию

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

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

    По умолчанию

    Цитата Сообщение от Дмитрий Артюховский Посмотреть сообщение
    не забывайте разделять понятия "цикл ПЛК" и "реакция на выводах". У ПЛК110 - есть "быстрые выводы" (работающие только в версиях с транзисторами) и остальные. Кстати - "быстроту" на них получают тоже специальными методами. А в общем случае, выводы со старшими номерами, даже на транзисторах, дают быстродействие близкое к 50 мс, независящее от времени цикла. Внимательно читайте мануалы.
    Прочитал и не нашел.
    Захват-1.png
    Не понятно, чего Вы все ПЛК110 упоминаете?
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  7. #7

    По умолчанию

    А я прочитал и нашел.
    Изображения Изображения

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

    По умолчанию

    Цитата Сообщение от Вольд Посмотреть сообщение
    А я прочитал и нашел.
    Опять ПЛК110. Ладно пусть будет 110.
    Понятно, откуда Дмитрий Артюховский взял понятие "реакция на выводах". Из РЭ ПЛК110, хотя там это понятие звучит по другому "Время реакции входов/выходов".
    Захват-2.png
    Если все таки прочитать внимательно, то речь идет о времени отклика
    Тоткл = Твх + 2Тцикла + Твых
    т.е если в программе "соединить" выход" ПЛК с "входом", то Тоткл -это время задержки прохождения сигнала через ПЛК.
    А для моего случая мне это время не нужно, нет такого(Вход--->Выход) в этой программе.
    Из всей, выше приведенной, формулы вызывает интерес только Твых -задержка на срабатывание выхода, а она для быстрых выходов равна "0,02 мс (в таблице 2.1 данный параметр называется «Время переключения из состояния «0» всостояние «1» и обратно»)". Причем без всяких специальных методов, под которыми Вы наверно понимаете использование этих выходов в режиме прямого управления через библиотеку SysLibPort.

    ЗЫ. Даже если значение Твых -задержка на срабатывание выхода брать не из текста этого раздела, а из таблицы 2.2 равным 1 мс, то на частоту (длительность) сигналов на выходе и их сдвиг относительно друг друга это повлиять не должно
    Захват-4.png
    Просто сигналы не выходах ПЛК будут с задержкой в 1 мс относительно сформированных в программе
    Последний раз редактировалось petera; 21.11.2015 в 12:33.
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  9. #9

    По умолчанию

    Цитата Сообщение от petera Посмотреть сообщение
    Опять ПЛК110. Ладно пусть будет 110.
    А чем вам не нравится ПЛК110 ? По моему боле-менее приличный ПЛК от фирмы "ОВЕН".
    Последний раз редактировалось Вольд; 21.11.2015 в 12:51.

  10. #10

    По умолчанию

    Коллеги, всем большое спасибо за ответы! Извиняюсь за молчание: работаю по сменам, и время для форума есть не всегда.
    Уточнения по сабжу:
    1. В моём конкретном случае реализация нулевой точки в виртуальном энкодере не требуется.
    2. Разумеется, я рассматриваю эмуляию энкодера только как часть управляющей программы. Но в остальной её части феноменальное быстродействие не требуется, ПЛК должен обрабатывать сигналы с дюжины датчиков и дёргать такой же дюжиной контакторов и клапанов с периодичностью от одной до нескольких секунд. Ну, разумеется, в планах стоит общение ПЛК с панелью оператора.
    3. Я сверился со своими записями по упомянутому выше "костылю". Нужной мне работы каскада я достигал настроив энкодер (программируемый) на 500 имп./об. и раскручивая его до 400 об.мин. Отсюда мы имеем примерно 3300 имп. в сек. Два стабильных меандра с частотой в 3 килогерца это, как я понимаю, слишком много даже для быстрых выходов Овеновских ПЛК

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

Похожие темы

  1. Теплица на основе "ОВЕН"
    от positron в разделе Подбор Оборудования
    Ответов: 13
    Последнее сообщение: 30.06.2015, 13:51
  2. "ПЛК-73+модули" vs "другой контроллер+модули+ОП"
    от Lam-Ka в разделе Подбор Оборудования
    Ответов: 24
    Последнее сообщение: 28.08.2013, 14:01
  3. Совместим ли модуль "modem" в Овен ПЛК-100 с MC52/55it?
    от Загнетов в разделе ПЛК1хх
    Ответов: 6
    Последнее сообщение: 20.09.2012, 07:12
  4. Ответов: 8
    Последнее сообщение: 29.03.2011, 14:07

Ваши права

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