PCI контроллер. Halcompail и драйвер.

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
Аватара пользователя
Lexxa
Мастер
Сообщения: 2703
Зарегистрирован: 16 дек 2011, 16:48
Репутация: 319
Настоящее имя: Алексей
Откуда: ryazan
Контактная информация:

Re: Halcompail и драйвер.

Сообщение Lexxa »

Давайте вот с чего начнем.
1) С какой периодичностью планивровщик расчитывает траекторию и обновляет axis.n.motor-pos-cmd, servo-thread?
2) С какой периодичностью обновляется pid.n.output, тоже servo-thread?

Если я правильно понимаю, то и то и другое обновляется с servo-thread.
Как их задать жестко и чтоб не плавали?
base-thread (the high-speed thread): this thread handles items that need a fast response, like making step pulses, and reading
and writing the parallel port.
servo-thread (the slow-speed thread): this thread handles items that can tolerate a slower response, like the motion controller,
ClassicLadder, and the motion command handler.
motion - Accepts NML motion commands, interacts with HAL in realtime.
axis - Accepts NML motion commands, interacts with HAL in realtime.
classicladder - Realtime software PLC based on ladder logic. See Classic Ladder manual for more information.
threads - Creates hard realtime HAL threads.
[EMCMOT]Base period =50000- the Base task period in nanoseconds.
[EMCMOT]SERVO_PERIOD = 1000000 - This is the "Servo" task period in nanoseconds.
[EMCMOT]TRAJ_PERIOD = 100000 - This is the Trajectory Planner task period in nanoseconds.

[TASK]CYCLE_TIME = 0.010 - The period, in seconds, at which TASK will run. This parameter affects the polling interval when waiting for motion to complete, when executing a pause instruction, and when accepting a command from a user interface. There is usually no need to change this number.
Поехали.
[EMCMOT]SERVO_PERIOD = 1 мкс - По идее разработчика, это период обновления PID регулятора, так?
[EMCMOT]TRAJ_PERIOD =0.1 мкс - Период расчета нового положения для оси.
[TASK]CYCLE_TIME - не понятно, о каких ожиданиях завершения движения идет речь.

Т.е. каждую 0.1 мкс планировщик расчитывает новое положение для осей, а каждую 1 мкс должен обновляться PID?

Теперь, если принять, что
Nick писал(а):Ну при каждом вызове servo-thread (в компе) он не ровно 1 000 000 а +- 25 000, а то и более.
То получается, что [EMCMOT]TRAJ_PERIOD = 100000 +-25% или же TRAJ_PERIOD жесткий?
Если он жесткий, тогда в помойку [EMCMOT]SERVO_PERIOD и использовать каждый 10-й импульс от TRAJ_PERIOD.
Или я перепутал всё?
:bender:
T00T
Мастер
Сообщения: 742
Зарегистрирован: 16 дек 2011, 12:07
Репутация: 100
Контактная информация:

Re: Halcompail и драйвер.

Сообщение T00T »

Lexxa писал(а):Т.е. каждую 0.1 мкс планировщик расчитывает новое положение для осей, а каждую 1 мкс должен обновляться PID?
Лёх ну во-первых Всё где ты писал мкс - это мс !!!!!! :)

Во-вторых я бы хотел вернуться к проблеме формирования сигнала step!!!

вопросы так и не обсудили следующие:
T00T писал(а):Ладно и такой вопрос как в функции, считать системное время, ну или как ещё, что бы узнать сколько реально времени прошло с момента её последнего вызова?
Вопрос про разрядность я так понимаю безсмысленно обсуждать, ну тогда походу проще будет реализовывать так:
T00T писал(а): stepgen. axis.position.cmd(длинна перемещения) -> драйвер (количество шагов, Fзаполнения) -> Контроллер (тут step/dir)-> драйвер двигателя ->двигатель.
Я не волшебник я пока учусь......
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Halcompail и драйвер.

Сообщение Serg »

Lexxa писал(а):Или я перепутал всё?
Всё несколько сложнее.
TRAJ_PERIOD - периодичность работы планировщика (не совсем верно, но в данном случае такое упрощение сойдёт), однако длительност-ь цикла работы планировщика заметно меньше этого значения.
Lexxa писал(а):100000 +-25%
Nick не совсем верно написал. Длительность сервоцикла не "плавает" на 25%. При расчёте длительности делается поправка на величину латентности. Если опять упростить для наглядности, то время ожидания начала следующего сервоцикла завершится не через 1мс, а чуть раньше, на величину латентности, произойдёт вычисление сколько именно времени прошло и если меньше 1мс, то пауза продолжится чтобы получилось ровно 1мс.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
T00T
Мастер
Сообщения: 742
Зарегистрирован: 16 дек 2011, 12:07
Репутация: 100
Контактная информация:

Re: Halcompail и драйвер.

Сообщение T00T »

Nick писал(а):1 000 000 а +- 25 000
Уффф тяжко мне с вами..... Ну вроде у ника тут 2,5%
Ну и ладно, а я пока железку пилить буду.....
Я не волшебник я пока учусь......
Аватара пользователя
Lexxa
Мастер
Сообщения: 2703
Зарегистрирован: 16 дек 2011, 16:48
Репутация: 319
Настоящее имя: Алексей
Откуда: ryazan
Контактная информация:

Re: Halcompail и драйвер.

Сообщение Lexxa »

Так, документально подтвердить инфу о 1 нс у фанука я не могу, поэтому допускаю, что могу ошибиться.
Однако вот какой нюанс.
Сравнивать linuxcnc ни с сименсом ни с фануком не корректно по той причине, что архитектуры разные.
Зато можно наблюдать колоссальную схожесть с Heidenhain 320
Коротко о ней:
CPU Celeron 400МГц, 512 МБ ОЗУ.
Управление аналоговыми приводами +-10В до 5 осей, линейная интерполяция одновременно по 4, круговая по трем.
Время цикла обработки блока: 6 мс,
Время цикла интерполяции 3 мс.
Куча циклов
в качестве ОС - HEROS (linux свой),
Окружение рабочего стола - XFCE.

Итак, имеем Linuxcnc на P4 2400MHz, который тормозит и HH320 на Celeron 400MHz без тормозов.
Вывод: что-то в супе с Ubuntu не хватает, чтоб она взяла и резко перестала тормозить.
Почему же никакие X не мешают нормально работать HH, а у linuxcnc они так влияют на латенси?
:bender:
Аватара пользователя
PKM
Почётный участник
Почётный участник
Сообщения: 4263
Зарегистрирован: 31 мар 2011, 18:11
Репутация: 705
Настоящее имя: Андрей
Откуда: Украина
Контактная информация:

Re: Halcompail и драйвер.

Сообщение PKM »

Lexxa писал(а): в качестве ОС - HEROS (linux свой)
Главная причина нормальной latency
Lexxa писал(а):Время цикла обработки блока: 6 мс,
Время цикла интерполяции 3 мс.
Не очень хорошие показатели. У линукса в 6 раз меньше, но как раз и процессор в 6 раз производительнее :)
Аватара пользователя
Lexxa
Мастер
Сообщения: 2703
Зарегистрирован: 16 дек 2011, 16:48
Репутация: 319
Настоящее имя: Алексей
Откуда: ryazan
Контактная информация:

Re: Halcompail и драйвер.

Сообщение Lexxa »

Согласен, но нужны ли такие короткие времена?
:bender:
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Halcompail и драйвер.

Сообщение Serg »

Lexxa писал(а):Итак, имеем Linuxcnc на P4 2400MHz, который тормозит и HH320 на Celeron 400MHz без тормозов.
Я могу обычный Linux так урезать, оставив только самое необходимое, что он будет резвее HH320 на том-же Celeron 400MHz, но это нафик не надо.
Lexxa писал(а):Согласен, но нужны ли такие короткие времена?
А как-же
Lexxa писал(а):Он каждую нс не 1 дискрету едет, а получает новое положение, в котором может быть и 1 и 1000 дискрет. Там все на ПЛИС.
? :)
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Halcompail и драйвер.

Сообщение Nick »

Некоторые сообщения перенесены в новую тему: Что можно урезать в Linux/LinuxCNC, чтобы сделать меньше Lat #1.
T00T
Мастер
Сообщения: 742
Зарегистрирован: 16 дек 2011, 12:07
Репутация: 100
Контактная информация:

Re: Halcompail и драйвер.

Сообщение T00T »

Итак, ну пока у меня нет возможности испытывать это всё....
Если есть желающие тестировать, то могу подготовить через неделю тестовый экземпляр......(Желательно из России, так проще с доставкой и оплатой).
Я не волшебник я пока учусь......
Аватара пользователя
Lexxa
Мастер
Сообщения: 2703
Зарегистрирован: 16 дек 2011, 16:48
Репутация: 319
Настоящее имя: Алексей
Откуда: ryazan
Контактная информация:

Re: Halcompail и драйвер.

Сообщение Lexxa »

T00T, могу)
:bender:
T00T
Мастер
Сообщения: 742
Зарегистрирован: 16 дек 2011, 12:07
Репутация: 100
Контактная информация:

Re: Halcompail и драйвер.

Сообщение T00T »

Мне кажется у тебя руки до этого дойдут ещё дольше чем у меня )
Я не волшебник я пока учусь......
Аватара пользователя
Lexxa
Мастер
Сообщения: 2703
Зарегистрирован: 16 дек 2011, 16:48
Репутация: 319
Настоящее имя: Алексей
Откуда: ryazan
Контактная информация:

Re: Halcompail и драйвер.

Сообщение Lexxa »

ну ты на меня комплектик все равно собери))
:bender:
T00T
Мастер
Сообщения: 742
Зарегистрирован: 16 дек 2011, 12:07
Репутация: 100
Контактная информация:

Re: Halcompail и драйвер.

Сообщение T00T »

тебе он когда нужен будет, а то как говорил, 2 недели прошли 2 недели назад :)
Я не волшебник я пока учусь......
Аватара пользователя
Lexxa
Мастер
Сообщения: 2703
Зарегистрирован: 16 дек 2011, 16:48
Репутация: 319
Настоящее имя: Алексей
Откуда: ryazan
Контактная информация:

Re: Halcompail и драйвер.

Сообщение Lexxa »

Ну к 1 апреля хотелось бы
:bender:
T00T
Мастер
Сообщения: 742
Зарегистрирован: 16 дек 2011, 12:07
Репутация: 100
Контактная информация:

Re: Halcompail и драйвер.

Сообщение T00T »

Появилось немного времени между заказами.....
Вчера дописал прошивки плисин, на MAIN. В общем она готова.
Нужно прикрутить масштабный коэффициент для энкодеров в драйвере. И на днях подключу на ось станка.....
На столе всё работает, да и PWM уже тестировался на станке, так что всё должно работать!!!!!!!!!!!
Проверим......



Желающих поучаствовать так и не нашлось?
Я не волшебник я пока учусь......
T00T
Мастер
Сообщения: 742
Зарегистрирован: 16 дек 2011, 12:07
Репутация: 100
Контактная информация:

Re: Halcompail и драйвер.

Сообщение T00T »

К СТАРТУ ГОТОВ!!
тестовый комплект
Вложения
DSC03314.JPG (2292 просмотра) <a class='original' href='./download/file.php?id=74009&mode=view' target=_blank>Загрузить оригинал (3.25 МБ)</a>
Я не волшебник я пока учусь......
Сергей 67
Новичок
Сообщения: 6
Зарегистрирован: 07 ноя 2015, 17:57
Репутация: 0
Настоящее имя: Сергей
Контактная информация:

Re: Halcompail и драйвер.

Сообщение Сергей 67 »

А не работает!
Аватара пользователя
Lexxa
Мастер
Сообщения: 2703
Зарегистрирован: 16 дек 2011, 16:48
Репутация: 319
Настоящее имя: Алексей
Откуда: ryazan
Контактная информация:

Re: Halcompail и драйвер.

Сообщение Lexxa »

зреет вопрос - что именно?
:bender:
T00T
Мастер
Сообщения: 742
Зарегистрирован: 16 дек 2011, 12:07
Репутация: 100
Контактная информация:

Re: Halcompail и драйвер.

Сообщение T00T »

Не тот файл драйвера с собой взял, PWM не запускалось.....
Я не волшебник я пока учусь......
Ответить

Вернуться в «LinuxCNC»