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

Тема: странное поведение энкодера

  1. #1

    По умолчанию странное поведение энкодера

    плк110-32. на входе подключен линейный энкодер, один "оборот" 16000 импульсов. для того чтобы по включении станка не надо было выводить линейку в ноль, решил записывать данные при выключении в энергонезависимую память, а потом при включении пересчитывать разницу и оперировать уже этими данными. В общем после выключения/включения всё работает нормально, но только при счете в плюс, а при счете в минус через ноль вылетает какоето абстрактное значение, потом опытным путем выяснил что при переходе через точку где было поданно питание на энкодер в отрицательном направлении его значение принимает не 15999...15998...15997 итд как следовалобы, а не богвесть откуда взявшиеся 5355...5354...5353 итд, потом при чтении в плюс данные нормально доходят до 15999..0..1..2 итд затем при отричательном счете при переходе через ноль снова 5355...5354...5353 итд... Не подскажете в чем дело? я просто ума не приложу в чем может быть дело

  2. #2
    Пользователь
    Регистрация
    11.01.2009
    Адрес
    Кострома
    Сообщений
    3,144

    По умолчанию

    Плк работает с энкодером с частотой до 3000кГц Возможно у вас слишком большие угловые скорости.

  3. #3

    По умолчанию

    скорее всего нет.. в + же считает нормально, и в - тоже, до момента перехода через ноль, затем появляется пресловутое 5355. при длине линейки 620мм, 16000 импульсов на длину, и максимальной скорости 4см/сек частота импульсов составляет 1032Гц так что тут всё нормально

  4. #4

    По умолчанию

    Выложите лог гипертерминала контроллера и полные данные о нем. К каому входу подключаете энкодер?

  5. #5

    По умолчанию

    полные данные и лог получится выложить завтра только (одно могу сказать заказан ПЛК был в июне в августе получен, этого года), энкодер подключаю к входу 1-А к входу 2-В,

  6. #6

    По умолчанию

    А предварительно ни каких соображений нет? просто работаю в ночь, делать будет не чего "поковырял"бы сегодня

  7. #7

    По умолчанию

    Выложите проект. Возможно у Вас просто арифметическая ошибка.

  8. #8

    По умолчанию

    не.. арифментическая ошибка исключенна, абсолютно. о тех цифрах что я говорю, это данные переменной которая присвоена непосредственно к энкодеру в конфигурации ПЛК.

  9. #9

    По умолчанию

    Доброе утро. Вобщем вопрос решился. Экспеременитруя с данными прищел к такому выводу - линейка корректно работает только если в поле числа импульсов, в конфигурации энкодера, вводить число 2^n, тогда при счете в минус при переходе через 0 появляется не пресловутые 5355, а (в моем случае раз уж 16000 импульсов на длину, то выбрал 2^14=16384) 16383...16382...итд... и ещё, если записать в число импульсов как 2^n, то энкодер будет считываться как линейный, те при значении энкодера 0 счет в минус производиться не будет (ну и при достижении максимума счет в+ тоже остановится), а если как (2^n)-1, то счет будет производиться как круговой энкодер..


    разницу в значениях(16000действительное и 16383записанное) уравнял арифметически... так что всё работает нормально, всем спасибо


    НО! вот почему при отличном от 2^n или (2^n)-1 значении при счете в-, при переходе через ноль появляется 5355, загадка интересная..
    Последний раз редактировалось woffka; 03.11.2009 в 06:34.

  10. #10

    По умолчанию

    Спасибо, проверим.
    Не могли бы написать полное название контроллера и версию прошивки и Target (можно просто лог гипертерминала).

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

Ваши права

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