Перейти к содержимому


Фотография

Обратная связь для компенсации пропуска шагов


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 6

#1 OFFLINE   novarobotix

novarobotix

    Клоун CNC

  • Пользователи+
  • PipPipPipPipPip
  • 890 сообщений
  • Пол:Мужчина
  • Интересы:главное чтобы палочки от мороженного не кончались
  • Из:магадан

Отправлено 27 Июль 2014 - 01:58

как?


  • 0
мне не нужна война.мне нужен МИР. желательно весь...

#2 OFFLINE   torvn77

torvn77

    Пользователь LinuxCNC

  • Заблокированные
  • PipPipPipPipPipPipPipPipPipPip
  • 2 151 сообщений
  • Пол:Мужчина
  • Из:Санкт-Петербурга

Отправлено 27 Июль 2014 - 03:30

Сам я этого не делал,поэтому могу написать не правильно,но думаю что для софтварного декодирования это должно выглядеть так:
Для того чтоб можно было сразу приступить к эксперементам подключим сигналы ABZ энкодера к входным пинам LPT номер ....
Далее сигналы с LPT порта подаются через программный комутатор сигналов Hal на входы модуля encoder,
который на пине encoder.[axis_number].counts будет вырабатывать значение координаты которое надо будет подать на пин axis.N.motor-pos-fb модуля axis
 
Задействавание LPT порта: Parallel Port Driver
Описание модуля encoder: Encoder
Описание модуля Axis: Axis (Joints)
Описание программы net: net

Но надо учитывать,что быстродействия LPT порта не достаточно для своевременной обработки сигналов энкодера
при сколько бы то ни было заметном движениии станка,поэтому для рабочего варианта надо использовать аппаратные декодеры сигнала.
Они могут подключатся как к спецальным PC платам,как и по последовательным шинам (CAN RS485 и T-Rex ещё какие знает)

А здесь можно посмотреть на пример использования модуля encoder для управления станком через джойстик : #4


Сообщение отредактировал torvn77: 27 Июль 2014 - 03:31

  • 0
Я по мнению сообщества безграмотен,могу дать вредные или ошибочные советы.
Используйте их после обдумывания и на свой страх и риск.

У меня не всегда выходит понять вопрос,если это случилось то пожалуйста напишите мне об этом в личку.Ответ то я может и знаю,но пишу не то и не о том...

#3 OFFLINE   novarobotix

novarobotix

    Клоун CNC

  • Пользователи+
  • PipPipPipPipPip
  • 890 сообщений
  • Пол:Мужчина
  • Интересы:главное чтобы палочки от мороженного не кончались
  • Из:магадан

Отправлено 27 Июль 2014 - 04:41

для первого ознакомления с принципом пусть будет на любой самой низкой скорости.

в принципе интересует простейший алгоритм:

1. LinuxCNC выдаёт на LPT порт команду сделать 1 шаг по Х 1 шаг по Y и 1 по Z

2. смотрит на входы LPT к которымм подключены энкодеры XYZ и убеждается что шаги сделаны.

3. если к примеру шаг по Х не сделан - пытается его сделать ещё раз и опять проверяет (дальнейшее выполнение программы останавливается пока не сделается шаг)

4. пытаемся раз 100 если неудача значит стоп и сообщение на экран - уберите бревно с пути...

 

или как-то по другому реализовано?


  • 0
мне не нужна война.мне нужен МИР. желательно весь...

#4 OFFLINE   torvn77

torvn77

    Пользователь LinuxCNC

  • Заблокированные
  • PipPipPipPipPipPipPipPipPipPip
  • 2 151 сообщений
  • Пол:Мужчина
  • Из:Санкт-Петербурга

Отправлено 27 Июль 2014 - 05:25

Примерно так и работает,из axis исходит через пин axis.N.motor-pos-cmd желаемая позиция,а на пин axis.N.motor-pos-fb приводится контрольный сигнал.

Если разница между контрольным и обратным сигналом оказывается больше заданных в ini файле,то будет генерироваться ошибка с остановкой работы.

Посмотреть текущею ощибку можно на пине axis.N.f-error,а задать в "MIN_FERROR =" "FERROR ="  секции [AXIS_<num>]

Линк: [AXIS_<num>] Section


Ещё только скажу тебе что в hal'e определяется не алгоритм работы,а дискретные по времени потоки сигналов между пинами.

То есть разумным аналогом будет сеть водопроводных труб.


Сообщение отредактировал torvn77: 27 Июль 2014 - 05:25

  • 0
Я по мнению сообщества безграмотен,могу дать вредные или ошибочные советы.
Используйте их после обдумывания и на свой страх и риск.

У меня не всегда выходит понять вопрос,если это случилось то пожалуйста напишите мне об этом в личку.Ответ то я может и знаю,но пишу не то и не о том...

#5 OFFLINE   novarobotix

novarobotix

    Клоун CNC

  • Пользователи+
  • PipPipPipPipPip
  • 890 сообщений
  • Пол:Мужчина
  • Интересы:главное чтобы палочки от мороженного не кончались
  • Из:магадан

Отправлено 27 Июль 2014 - 05:28

Если разница между контрольным и обратным сигналом оказывается больше заданных в ini файле,то будет генерироваться ошибка с остановкой работы.

это уже хорошо, можно с этой же позиции опять запустить на попытку  дальнейшего выполнения.

а повторить шаг оно само не пытается?


  • 0
мне не нужна война.мне нужен МИР. желательно весь...

#6 OFFLINE   torvn77

torvn77

    Пользователь LinuxCNC

  • Заблокированные
  • PipPipPipPipPipPipPipPipPipPip
  • 2 151 сообщений
  • Пол:Мужчина
  • Из:Санкт-Петербурга

Отправлено 27 Июль 2014 - 05:37

Точно не знаю,но думаю что повтора шага не будет,а будет замедление скорости движения,если толку с этого не будет,
то последует остановка с аварией.(При исправной механике и правильных настройках необходимости в повторе шака быть не должно)
В принципе можно пропустить прямой или обратный сигнал через компонент sum2 и съэммитировать им то или иное отставание или опережение позиций.
Чтобы понять,как он подключается выполни следующее:
halrun
loadrt sum2
show all

Сообщение отредактировал torvn77: 27 Июль 2014 - 05:52

  • 0
Я по мнению сообщества безграмотен,могу дать вредные или ошибочные советы.
Используйте их после обдумывания и на свой страх и риск.

У меня не всегда выходит понять вопрос,если это случилось то пожалуйста напишите мне об этом в личку.Ответ то я может и знаю,но пишу не то и не о том...

#7 OFFLINE   novarobotix

novarobotix

    Клоун CNC

  • Пользователи+
  • PipPipPipPipPip
  • 890 сообщений
  • Пол:Мужчина
  • Интересы:главное чтобы палочки от мороженного не кончались
  • Из:магадан

Отправлено 28 Июль 2014 - 14:26

можно ли LinuxCNC приостановить выполнение работы сигналом с лпт порта? (типа пауза)


Сообщение отредактировал novarobotix: 28 Июль 2014 - 14:26

  • 0
мне не нужна война.мне нужен МИР. желательно весь...




Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных