Показано с 1 по 9 из 9

Тема: ПЛК110 М02 и Fast Encoder

  1. #1

    По умолчанию ПЛК110 М02 и Fast Encoder

    Добрый день уважаемые форумчане!

    Честное слово, перечитал все темы, какие нашел, о работе энкодера в ПЛК110 М02, но не смог ответить себе на свой же вопрос (может для кого то и не очень сложный), так что прошу у Вас помощи!
    ПЛК110-220-30-Р-М. Подключаю энкодер 100 имп/об, меняю модуль в конфигурации ПЛК на Fast Encoder. Счет идет, 400 единиц на оборот (что мне очень важно), все хорошо.

    После читаю в руководстве:
    2.1.5.3. Параметр «Тип энкодера» (Encoder Type) – определяет тип энкодера: либо круговой, либо линейный.
    Внимание! Необходимо учитывать особенность подсчета для типов энкодера:
    •при круговом типе – если при вращении осуществляется переход через условный нуль, показания счетчика сбрасываются, и начинается новый отсчет с 0;
    •при линейном типе – осуществляется фиксация при достижении максимума или минимума диапазона, далее приращение не идет.


    Задача - считать длину листов металла, когда датчик будет совершать несколько оборотов (скажем, даже очень много оборотов). В настройке в конфигураторе ПЛК описанной опции не нашел, да и, почитав форум, сложилось впечатление, что ее и нет((
    Если энкодер перешел максимум (65535), я могу каким то образом получать данные с него и при дальнейшем его вращении в ту же сторону? Лиш бы шел счет, а там я уже применю у себя как то.
    Понимаю, что вопрос "заезженый" и заранее прошу прощения! Программирую в CFC!

    Благодарен любым идеям и подсказкам! Спасибо!

  2. #2

    По умолчанию

    Внутри программы брать разницу между двумя отсчетами и прибавлять к внутреннему программному счетчику (32 или 64 разрядному)
    Тролль-наседка, добрый, нежный и ласковый

  3. #3

    По умолчанию

    Цитата Сообщение от Филоненко Владислав Посмотреть сообщение
    Внутри программы брать разницу между двумя отсчетами и прибавлять к внутреннему программному счетчику (32 или 64 разрядному)
    Простите за вопрос из разряда "от новичков", а откуда мне брать эти два отсчета, если счетчик IW0.0: WORD; уже 65535 и не считает больше?

    Внутренний программный счетчик это CTU, CTD или CTUD с 32-х или 64-х разрядной переменной на выходе?

  4. #4
    Пользователь
    Регистрация
    31.07.2013
    Адрес
    Аркаим
    Сообщений
    1,058

    По умолчанию

    denkrauss
    С энкодерами в данных ПЛК печалька.
    Судя по вашей проблеме наблюдается остутсвие вот этого:
    2.1.5.3. Параметр «Тип энкодера» (Encoder Type) – определяет тип энкодера: либо круговой, либо линейный.
    Внимание! Необходимо учитывать особенность подсчета для типов энкодера:
    •при круговом типе – если при вращении осуществляется переход через условный нуль, показания счетчика сбрасываются, и начинается новый отсчет с 0;
    А вообще для воплощения своих хотелок с быстрыми входами\выходами ПЛК М02 существует проект HardellaIDE. Здесь на форуме найдете. Иногда даже сам автор проекта заглядывает.
    ---
    Есть еще одно решение, но оно мне не очень нравится. Использовать конфигурацию входов Fast discrete inputs - direct control, библиотеку SysLibPorts и свою программу, которая вызывается по 20мкс-таймеру в Конфигурации задач ПЛК. Там можете сделать хоть DWORD\DINT счет со знаком, сбросами и прочими хороводами.
    --
    Но Харделла лучше однозначно.
    ----
    Программирую в CFC!
    Нет проблем. Пишете свой ФБ на любом языке, и тащите его на поляну основной программы.
    Последний раз редактировалось Sulfur; 22.09.2020 в 13:08.

  5. #5
    Пользователь Аватар для A.Simonov
    Регистрация
    11.07.2017
    Адрес
    Москва
    Сообщений
    214

    По умолчанию

    Цитата Сообщение от denkrauss Посмотреть сообщение
    уже 65535 и не считает больше?
    После 65535 счетчик сбросится в ноль и продолжит счет.
    Александр Андреевич Симонов
    Инженер по продуктам «ПЛК, модули и OwenCloud»
    e-mail: support@owen.ru
    e-mail: a.simonov@owen.ru

  6. #6

    По умолчанию

    Цитата Сообщение от A.Simonov Посмотреть сообщение
    После 65535 счетчик сбросится в ноль и продолжит счет.
    Если в конфигураторе ПЛК вместо FDI1 и FDI2 создан модуль Fast Encoder, а не "Быстрый счетчик", то не сбрасывается.. Может я не все понимаю, но по адресу модуля Fast Encoder IW0.0: WORD значение доходит с нуля до 65535 и при вращении энкодера в ту же сторону больше не изменяется.

  7. #7

    По умолчанию

    Цитата Сообщение от Sulfur Посмотреть сообщение
    denkrauss
    С энкодерами в данных ПЛК печалька.
    Судя по вашей проблеме наблюдается остутсвие вот этого:
    А вообще для воплощения своих хотелок с быстрыми входами\выходами ПЛК М02 существует проект HardellaIDE. Здесь на форуме найдете. Иногда даже сам автор проекта заглядывает.
    ---
    Есть еще одно решение, но оно мне не очень нравится. Использовать конфигурацию входов Fast discrete inputs - direct control, библиотеку SysLibPorts и свою программу, которая вызывается по 20мкс-таймеру в Конфигурации задач ПЛК. Там можете сделать хоть DWORD\DINT счет со знаком, сбросами и прочими хороводами.
    --
    Но Харделла лучше однозначно.
    ----

    Нет проблем. Пишете свой ФБ на любом языке, и тащите его на поляну основной программы.
    Спасибо, буду учить матчасть по Харделле!

  8. #8
    Пользователь Аватар для A.Simonov
    Регистрация
    11.07.2017
    Адрес
    Москва
    Сообщений
    214

    По умолчанию

    Цитата Сообщение от denkrauss Посмотреть сообщение
    Может я не все понимаю, но по адресу модуля Fast Encoder IW0.0: WORD значение доходит с нуля до 65535 и при вращении энкодера в ту же сторону больше не изменяется.
    Проверил на своем ПЛК. Прошивка 1.0.11 (на 1.1.0 тоже будет работать)
    Прикладываю .gif файл где это хорошо видно.
    2020-09-22_15-31-18.gif
    Александр Андреевич Симонов
    Инженер по продуктам «ПЛК, модули и OwenCloud»
    e-mail: support@owen.ru
    e-mail: a.simonov@owen.ru

  9. #9

    По умолчанию

    Цитата Сообщение от A.Simonov Посмотреть сообщение
    Проверил на своем ПЛК. Прошивка 1.0.11 (на 1.1.0 тоже будет работать)
    Прикладываю .gif файл где это хорошо видно.
    2020-09-22_15-31-18.gif
    A.Simonov, прошу прощения у Вас и у форумчан. Что-то я напутал (видимо несколько дней над проектом (и не только над одним и не только по ПЛК) сказались).
    В модуле Fast Encoder счетчик действительно обнуляется после 65535 и считает заново, как указал A.Simonov. Прошивка 1.1.0, ПЛК 110-220-30-Р-М М02.
    Дело в том, что я в проекте использую еще ИП320, который у меня также работает с пременной энкодера, может я там что напутал.

    По итогу, промежуточной переменной с помощью MOVE по импульсу начала отсчета металлического листа присваиваю значение энкодера в момент начала отсчета, далее вычитаю с помощью SUB из текущего значения энкодера (которое начинает увеличиваться с его вращением) значение промежуточной переменной, и получаю длину метал. листа каждый раз актуальную.
    Только SUB использую с разрешением присвоения EN, куда подаю "1" пока идет отсчет длины метел. листа.
    И счет энкодера в таком случае должен идти только в сторону возрастания (иначе при переходе через "0" некорректное вычисление происходит).

    Спасибо всем за отзыв на просьбу!

Похожие темы

  1. ПЛК110-60 и Fast Counters
    от odekolon в разделе ПЛК1хх
    Ответов: 2
    Последнее сообщение: 13.10.2018, 21:49
  2. Fast Encoder
    от Newcomer в разделе ПЛК1хх [М02]
    Ответов: 33
    Последнее сообщение: 20.01.2017, 16:45
  3. Ответов: 5
    Последнее сообщение: 16.09.2016, 22:21
  4. ПЛК 110 - Сохранение значения "fast encoder".
    от pfuser в разделе ПЛК1хх
    Ответов: 14
    Последнее сообщение: 22.12.2014, 15:03
  5. Fast counter
    от zendo057 в разделе Эксплуатация
    Ответов: 1
    Последнее сообщение: 23.11.2013, 00:12

Ваши права

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