Просмотр полной версии : странное поведение энкодера
плк110-32. на входе подключен линейный энкодер, один "оборот" 16000 импульсов. для того чтобы по включении станка не надо было выводить линейку в ноль, решил записывать данные при выключении в энергонезависимую память, а потом при включении пересчитывать разницу и оперировать уже этими данными. В общем после выключения/включения всё работает нормально, но только при счете в плюс, а при счете в минус через ноль вылетает какоето абстрактное значение, потом опытным путем выяснил что при переходе через точку где было поданно питание на энкодер в отрицательном направлении его значение принимает не 15999...15998...15997 итд как следовалобы, а не богвесть откуда взявшиеся 5355...5354...5353 итд, потом при чтении в плюс данные нормально доходят до 15999..0..1..2 итд затем при отричательном счете при переходе через ноль снова 5355...5354...5353 итд... Не подскажете в чем дело?:confused: :confused: :confused:я просто ума не приложу в чем может быть дело
lara197a
02.11.2009, 12:55
Плк работает с энкодером с частотой до 3000кГц Возможно у вас слишком большие угловые скорости.
скорее всего нет.. в + же считает нормально, и в - тоже, до момента перехода через ноль, затем появляется пресловутое 5355. при длине линейки 620мм, 16000 импульсов на длину, и максимальной скорости 4см/сек частота импульсов составляет 1032Гц :) так что тут всё нормально
Николаев Андрей
02.11.2009, 13:09
Выложите лог гипертерминала контроллера и полные данные о нем. К каому входу подключаете энкодер?
полные данные и лог получится выложить завтра только :( (одно могу сказать заказан ПЛК был в июне в августе получен, этого года), энкодер подключаю к входу 1-А к входу 2-В,
А предварительно ни каких соображений нет? просто работаю в ночь, делать будет не чего "поковырял"бы сегодня :)
Филоненко Владислав
02.11.2009, 14:09
Выложите проект. Возможно у Вас просто арифметическая ошибка.
не.. арифментическая ошибка исключенна, абсолютно. о тех цифрах что я говорю, это данные переменной которая присвоена непосредственно к энкодеру в конфигурации ПЛК.
Доброе утро. Вобщем вопрос решился. Экспеременитруя с данными прищел к такому выводу - линейка корректно работает только если в поле числа импульсов, в конфигурации энкодера, вводить число 2^n, тогда при счете в минус при переходе через 0 появляется не пресловутые 5355, а (в моем случае раз уж 16000 импульсов на длину, то выбрал 2^14=16384) 16383...16382...итд... и ещё, если записать в число импульсов как 2^n, то энкодер будет считываться как линейный, те при значении энкодера 0 счет в минус производиться не будет (ну и при достижении максимума счет в+ тоже остановится), а если как (2^n)-1, то счет будет производиться как круговой энкодер..
разницу в значениях(16000действительное и 16383записанное) уравнял арифметически... так что всё работает нормально, всем спасибо:)
НО! вот почему при отличном от 2^n или (2^n)-1 значении при счете в-, при переходе через ноль появляется 5355, загадка интересная..
Николаев Андрей
03.11.2009, 09:49
Спасибо, проверим.
Не могли бы написать полное название контроллера и версию прошивки и Target (можно просто лог гипертерминала).
Хорошо. Выложу в четверг вечером.
И ещё.. не подскажете, что есть лог гипертерминала? просто я ещё не всё знаю, опыта работы с плк пару месяцев
Николаев Андрей
05.11.2009, 10:12
В меню Пуск\программы\связь есть утилита Hyperterminal.
Укажите COM порт, к которому подклчен ПЛК. В настройках измените скорость на 115200 и управление выставльте - нет. Ок.
После этого перезагружаем контроллер с кнопки на передней панели.
Естественно CoDeSys во время этих манипуляций должен быть отключен...
Модель 110-32
Прошивка 2.07.3
Таргет 2.06
А в гипертерминале одни фигурные скобки
Николаев Андрей
06.11.2009, 09:46
Прошивку надо будет сменить на 2.11.
Что значит в гипертерминале одни скобки??? Скопируйте что терминал выдал и пришлите на plc(собака)owen.ru.
Заодно и прошивку скину.
Powered by vBulletin® Version 4.2.3 Copyright © 2026 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot