Ethernet контроллер для LinuxCNC (STM32, FPGA)

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
sidor094
Мастер
Сообщения: 826
Зарегистрирован: 20 фев 2014, 09:13
Репутация: 81
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Контроллер для LinuxCNC (Ethernet + STM32)

Сообщение sidor094 »

Насчет 5мс могу сказать,что частота кадров телевизионноно сигнала 25 в секунду.То есть смену картинки длительностью 40 мс человек просто не замечает.
Аватара пользователя
MX_Master
Мастер
Сообщения: 7489
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3113
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: Контроллер для LinuxCNC (Ethernet + STM32)

Сообщение MX_Master »

Ну вот скажи, у тебя время старта прерываний внутри микроконтроллера точное или +/-10мс? А реакция на внешние события внутри твоего МК с задержкой 10-100мс? Наверное, нет. А раз внутри твоей системы всё так точно, почему в других системах должны быть задержки? :hehehe:
sidor094 писал(а):Насчет 5мс могу сказать,что частота кадров телевизионноно сигнала 25 в секунду.То есть смену картинки длительностью 40 мс человек просто не замечает.
Я, наверно, сверх человек.. я прекрасно могу отличить картинку на 60fps от картинки в 30. И кроме меня таких людей ещё много ;)
sidor094
Мастер
Сообщения: 826
Зарегистрирован: 20 фев 2014, 09:13
Репутация: 81
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Контроллер для LinuxCNC (Ethernet + STM32)

Сообщение sidor094 »

MX_Master писал(а):А раз внутри твоей системы всё так точно, почему в других системах должны быть задержки?
Просто точность нужна там где это необходимо,например при выдаче шагов.Что толку реагировать на срабатывание концевика за 1мс ,а не за 10 если сервопривод будет останавливаться 200 мс?Понятно .конечно,что хуже не будет.Но можно просто проанализиновать что мы при этом теряем и что приобретаем взамен.
MX_Master писал(а): я прекрасно могу отличить картинку на 60fps от картинки в 30. И кроме меня таких людей ещё много
И при этом нажать на кнопку мышки?Потом даже если взять 100гц монитор то это уже смена картинки не чаще 10 мс .Как же можно,даже будучи сверхчеловеком, среагировать на событие с частотой 5мс,ведь на мониторе ниччего за это время не произойдет.
Impartial
Мастер
Сообщения: 953
Зарегистрирован: 23 фев 2011, 01:50
Репутация: 36
Контактная информация:

Re: Контроллер для LinuxCNC (Ethernet + STM32)

Сообщение Impartial »

UAVpilot писал(а):Как обеспечить синхронизацию буферов со шпинделем?..
Все просто.
Происходит останов интерпретатора Г кода до момента прихода синхронизации. Например после очередного цикла нарезания.
Все, что было до этого в буфере сервоциклов должно быть выгружено в привод и исполнено.
Синхронизация происходит на границах кадров Г кода. Например очередная метка шпинделя запускает очередной цикл.
Пока ожидается синхронизация буфер пустой.
Остановить движение можно только сигналом ошибки. При этом останавливается выгрузка из буфера и буфер сбрасывается.
Продолжить исполнение можно только повторив кадр.
sidor094
Мастер
Сообщения: 826
Зарегистрирован: 20 фев 2014, 09:13
Репутация: 81
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Контроллер для LinuxCNC (Ethernet + STM32)

Сообщение sidor094 »

Impartial писал(а):Все просто.
Немного не так.
sidor094
Мастер
Сообщения: 826
Зарегистрирован: 20 фев 2014, 09:13
Репутация: 81
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Контроллер для LinuxCNC (Ethernet + STM32)

Сообщение sidor094 »

Контроллер рассчитывает сколько импульсов степ должно пройти за определенное число тиков энкодера шпинделя.Затем измеряется время между этими импульсами .Затем рассчитывается требуемый делитель внутреннено счетчика для выдачи заданного числа импульсов за это время.И в процессе работы все время происходит небольшая подстройка этого делителя в зависимости от того опередила чуть чкть система энкодер или наоборот чуть чуть отстала.ТО есть кто знаком с электроникой знает что именно так устроен синтезатор частоты.
dpss-2
Мастер
Сообщения: 628
Зарегистрирован: 02 сен 2018, 15:15
Репутация: 305
Настоящее имя: Alex
Контактная информация:

Re: Контроллер для LinuxCNC (Ethernet + STM32)

Сообщение dpss-2 »

Тики, шаги... Может пора избавиться от тяжелого наследия эпохи шаговых двигателей? Вычисления нужно вести в плавучке, благо она поддерживается сейчас почти везде и только перед ШИМом и прочей периферией делать преобразование.
Аватара пользователя
MX_Master
Мастер
Сообщения: 7489
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3113
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: Контроллер для LinuxCNC (Ethernet + STM32)

Сообщение MX_Master »

sidor094 писал(а):Просто точность нужна там где это необходимо,например при выдаче шагов.
Сергей, точность нужна везде, а не только там, где ты думаешь (:
sidor094 писал(а):Что толку реагировать на срабатывание концевика за 1мс ,а не за 10 если сервопривод будет останавливаться 200 мс?
Предположим, что твой палец будет отпилен станком уже на 205-ой миллисекунде. Хотел бы ты, чтобы ответственный датчик сообщил об АВОСТе на 10-100мс позже?
sidor094
Мастер
Сообщения: 826
Зарегистрирован: 20 фев 2014, 09:13
Репутация: 81
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Контроллер для LinuxCNC (Ethernet + STM32)

Сообщение sidor094 »

Не не отпилит.Станок к примеру едет со скоростью 10 м мин .Это 166 мм сек.За 10 мс станок проедет 1.5 мм.А у меня пальцы толстые.
sidor094
Мастер
Сообщения: 826
Зарегистрирован: 20 фев 2014, 09:13
Репутация: 81
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Контроллер для LinuxCNC (Ethernet + STM32)

Сообщение sidor094 »

А сколько кстати проедет станок при скорости 10 м мин после срабатывания датчика если сигнал датчика поступит без задержки 10мс?Сантиметр? Два?
dpss-2
Мастер
Сообщения: 628
Зарегистрирован: 02 сен 2018, 15:15
Репутация: 305
Настоящее имя: Alex
Контактная информация:

Re: Контроллер для LinuxCNC (Ethernet + STM32)

Сообщение dpss-2 »

Такие ситуации в серьезных станках помимо PLC дополнительно блокируются независимой релейной защитой, устройствами безопасности типа PILZ. К примеру у нас стоит термопласт производства Баттенфельд, так там помимо PLC и реле на сдвигаемых крышках закрывающих прессформу стоят гидравлические выключатели, которые не дают работать гидравлике при открытой камере. И все эти защиты дублированные.
Аватара пользователя
MX_Master
Мастер
Сообщения: 7489
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3113
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: Контроллер для LinuxCNC (Ethernet + STM32)

Сообщение MX_Master »

sidor094 писал(а):Не не отпилит.Станок к примеру едет со скоростью 10 м мин .Это 166 мм сек.За 10 мс станок проедет 1.5 мм.А у меня пальцы толстые.
Раз уж 1.5 мм пальца или заготовки для кого-то не имеют значения, давайте рассмотрим другой пример. Допустим, мы ищем станочный нуль оси с помощью индуктивного датчика. Сделать поиск надо как можно быстрее и точнее. Насколько эффективнее будет поиск с миллисекундной реакцией датчика по сравнению с реакцией в 10-100мс? :)
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Контроллер для LinuxCNC (Ethernet + STM32)

Сообщение Serg »

sidor094 писал(а):В качестве примера можно привести возможность нарезания резьбы в мач всего по одной метке на оборот.Так что задержка в 10 мс будет вполне приемлема.
Суть не в длительности задержки, а в её стабильности - вот для этого RT и нужен.
sidor094 писал(а):Насчет 5мс могу сказать,что частота кадров телевизионноно сигнала 25 в секунду.То есть смену картинки длительностью 40 мс человек просто не замечает.
До тех пор, пока изображение статично или меняется медленно. :)
Если-же изображение меняется быстро (сравнимо со скоростью смены кадров), то наблюдатель увидит "артефакты" изображения, т.к. глаз видит не покадрово, а постоянно, например когда на одной половине кадра отрисовалось одно положение объекта, а на другой объект уже сдвинулся - т.е. глаз увидит кадр, на котором одна половина объекта будет сдвинута относительно другой... Вот чтоб таких кадров не получалось и увеличивают частоту кадров в несколько раз.
Impartial писал(а):Происходит останов интерпретатора Г кода до момента прихода синхронизации.
Так можно, хоть и с оговорками. Но это совсем не годится например для работы с датчиком инструмента/заготовки.
dpss-2 писал(а):Вычисления нужно вести в плавучке, благо она поддерживается сейчас почти везде
Только целочисленные вычисления могут быть максимально точными, просто потому, что в представлении float/double большинства чисел просто не существует и приходится использовать приближённые значения. :)
Например банки в своих вычислениях никогда не используют числа с плавающей точкой, только целые.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
sidor094
Мастер
Сообщения: 826
Зарегистрирован: 20 фев 2014, 09:13
Репутация: 81
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Контроллер для LinuxCNC (Ethernet + STM32)

Сообщение sidor094 »

UAVpilot писал(а):Суть не в длительности задержки, а в её стабильности - вот для этого RT и нужен.
Стабильность задержки в основном будет равна стабильности задания сервоцикла в LINUXCNC.Так как тактовый делитель контроллера с помощью пропорционального реулятора будет постоянно подстраивать каждые 10 мс точность сервоцикла контроллера под сервоцикл LINUXCNC.Конечно будет добавляться небольшой шум за счет разрядности делителя ,но он будет небольшой.Возьмем к примеру тактовую в 100мгц.Для получения 1 мс потребуется делитель на 100000.То есть 1/1000 процента.Так что её можно не учитывать.
UAVpilot писал(а):от чтоб таких кадров не получалось и увеличивают частоту кадров в несколько раз.
Можно конечно еще рассказать о чересстрочной развертке.Но я уже писал даже современные мониторы имеют частоту развертки в 100 гц .А это 10мс так что ни о какой реакции игрока в 3-5мс даже иговорить не приходится.Кроме того такая высокая частота выбрана только для уменьшения негативного влияния на зрение ,а никак не потому что 25 герц тормозили реакцию игрока на события игры.
D.L.
Мастер
Сообщения: 474
Зарегистрирован: 25 авг 2018, 10:11
Репутация: 152
Настоящее имя: Дмитрий
Откуда: Киров
Контактная информация:

Re: Контроллер для LinuxCNC (Ethernet + STM32)

Сообщение D.L. »

sidor094 писал(а):Насчет 5мс могу сказать,что частота кадров телевизионноно сигнала 25 в секунду.То есть смену картинки длительностью 40 мс человек просто не замечает.
Первое время после переезда с CRT на 8мс LCD глаза замечали шлейфы на быстрых движениях в играх, потом прошло.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Контроллер для LinuxCNC (Ethernet + STM32)

Сообщение Serg »

sidor094 писал(а):Конечно будет добавляться небольшой шум за счет разрядности делителя ,но он будет небольшой.Возьмем к примеру тактовую в 100мгц.Для получения 1 мс потребуется делитель на 100000.То есть 1/1000 процента.Так что её можно не учитывать.
Даже спустя несколько часов работы?.. :)
sidor094 писал(а):Но я уже писал даже современные мониторы имеют частоту развертки в 100 гц .
В современных мониторах с подключением по DVI/DP/HDMI понятием развёртки можно пренебречь - оно используется лишь в маркетинговосравнительных целях. :)
D.L. писал(а):Первое время после переезда с CRT на 8мс LCD глаза замечали шлейфы на быстрых движениях в играх, потом прошло.
надо было сразу и подключение менять. :)
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
D.L.
Мастер
Сообщения: 474
Зарегистрирован: 25 авг 2018, 10:11
Репутация: 152
Настоящее имя: Дмитрий
Откуда: Киров
Контактная информация:

Re: Контроллер для LinuxCNC (Ethernet + STM32)

Сообщение D.L. »

UAVpilot писал(а):надо было сразу и подключение менять.
Интересно на что? LCD был сразу подключен по DVI-D.
Аватара пользователя
Сергей Саныч
Мастер
Сообщения: 9116
Зарегистрирован: 30 май 2012, 14:20
Репутация: 2858
Откуда: Тюмень
Контактная информация:

Re: Контроллер для LinuxCNC (Ethernet + STM32)

Сообщение Сергей Саныч »

Глазом при определенных условиях можно и несколько килогерц увидеть. Независимо от инерционности сетчатки, глазных нервов и мозга. Достаточно просто провести взгляд из стороны в сторону и мигающий с высокой частотой источник света будет увиден как пунктирная линия, а непрерывно горящий - как сплошная. А при неподвижном взгляде разницы не будет.
Но поскольку глаз движется практически непрерывно, то мерцание отдельных элементов будет интерпретироваться мозгом по разному - то в виде шлейфов, то в виде еще каких-то артефактов.
Последний раз редактировалось Сергей Саныч 03 ноя 2019, 09:37, всего редактировалось 1 раз.
Чудес не бывает. Бывают фокусы.
sidor094
Мастер
Сообщения: 826
Зарегистрирован: 20 фев 2014, 09:13
Репутация: 81
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Контроллер для LinuxCNC (Ethernet + STM32)

Сообщение sidor094 »

UAVpilot писал(а):Даже спустя несколько часов работы?..
Да хоть сколько.Вот самый простой алгоритм работы.например у нас выставлен делитель на 100000.Контроллер заканчивает цикл.Если в момент окончания цикла очкредная порция данных от компьютера уже в буфере декрементируем делитель.таким образом следующий цикл укорачивается.Если же данных еще нет то инкрементируем , удлинняем циккл. Можно по-другому.В момент прихода данных от компьютера считываем счетчик делителя и на основе текущих данных счетчика меняем делитель.Тут уже возможно пропорциональное регулирование.Таким образом можно обеспечить постоянную синхронизацию между сервоциклами компьютера и контроллера.
sidor094
Мастер
Сообщения: 826
Зарегистрирован: 20 фев 2014, 09:13
Репутация: 81
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Контроллер для LinuxCNC (Ethernet + STM32)

Сообщение sidor094 »

UAVpilot писал(а):В современных мониторах с подключением по DVI/DP/HDMI понятием развёртки можно пренебречь - оно используется лишь в маркетинговосравнительных целях
Если говорить о мерцании экрана с частотой развертки то да.Обновление же экрана происходит точно так-же ,как и в лучквых.Вместе с частотой развертки построчно.
В любом случае у них все равно достаточно длительное послесвечение .Поэтому тянучки связаны не с разверткой ,а с медленным перезарядом емкостей .отсюда првный переход точки от предидущено состояния к нынешнему.
Но все это влияет особенности зрения и мало связано с реакцией игрока на события. Для нажатия на кнопку надо не только заметить изменение изображения но и успеть на него среанировать. Говоря про 100-400 мс я подразумеваю
время между изменением картинки и началом нажатия.То есть не просто заметить событие,но и успеть на него среагировать.Причем это автоматическая реакция.Когда человек уже наработал навык реагирования на данное событие и соответственно время на принятия решения не затрачивается.Неподготовленный человек(тот кто еще не автоматически реагирует на данное событие,а только знает,что нужно делать) добавит к этому еще время на принятие решения.
Ответить

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