Ethernet контроллер для LinuxCNC (STM32, FPGA)
-
sidor094
- Мастер
- Сообщения: 826
- Зарегистрирован: 20 фев 2014, 09:13
- Репутация: 81
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Контроллер для LinuxCNC (Ethernet + STM32)
Насчет 5мс могу сказать,что частота кадров телевизионноно сигнала 25 в секунду.То есть смену картинки длительностью 40 мс человек просто не замечает.
- MX_Master
- Мастер
- Сообщения: 7489
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3113
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: Контроллер для LinuxCNC (Ethernet + STM32)
Ну вот скажи, у тебя время старта прерываний внутри микроконтроллера точное или +/-10мс? А реакция на внешние события внутри твоего МК с задержкой 10-100мс? Наверное, нет. А раз внутри твоей системы всё так точно, почему в других системах должны быть задержки? 

Я, наверно, сверх человек.. я прекрасно могу отличить картинку на 60fps от картинки в 30. И кроме меня таких людей ещё многоsidor094 писал(а):Насчет 5мс могу сказать,что частота кадров телевизионноно сигнала 25 в секунду.То есть смену картинки длительностью 40 мс человек просто не замечает.
-
sidor094
- Мастер
- Сообщения: 826
- Зарегистрирован: 20 фев 2014, 09:13
- Репутация: 81
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Контроллер для LinuxCNC (Ethernet + STM32)
Просто точность нужна там где это необходимо,например при выдаче шагов.Что толку реагировать на срабатывание концевика за 1мс ,а не за 10 если сервопривод будет останавливаться 200 мс?Понятно .конечно,что хуже не будет.Но можно просто проанализиновать что мы при этом теряем и что приобретаем взамен.MX_Master писал(а):А раз внутри твоей системы всё так точно, почему в других системах должны быть задержки?
И при этом нажать на кнопку мышки?Потом даже если взять 100гц монитор то это уже смена картинки не чаще 10 мс .Как же можно,даже будучи сверхчеловеком, среагировать на событие с частотой 5мс,ведь на мониторе ниччего за это время не произойдет.MX_Master писал(а): я прекрасно могу отличить картинку на 60fps от картинки в 30. И кроме меня таких людей ещё много
-
Impartial
- Мастер
- Сообщения: 953
- Зарегистрирован: 23 фев 2011, 01:50
- Репутация: 36
- Контактная информация:
Re: Контроллер для LinuxCNC (Ethernet + STM32)
Все просто.UAVpilot писал(а):Как обеспечить синхронизацию буферов со шпинделем?..
Происходит останов интерпретатора Г кода до момента прихода синхронизации. Например после очередного цикла нарезания.
Все, что было до этого в буфере сервоциклов должно быть выгружено в привод и исполнено.
Синхронизация происходит на границах кадров Г кода. Например очередная метка шпинделя запускает очередной цикл.
Пока ожидается синхронизация буфер пустой.
Остановить движение можно только сигналом ошибки. При этом останавливается выгрузка из буфера и буфер сбрасывается.
Продолжить исполнение можно только повторив кадр.
-
sidor094
- Мастер
- Сообщения: 826
- Зарегистрирован: 20 фев 2014, 09:13
- Репутация: 81
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Контроллер для LinuxCNC (Ethernet + STM32)
Немного не так.Impartial писал(а):Все просто.
-
sidor094
- Мастер
- Сообщения: 826
- Зарегистрирован: 20 фев 2014, 09:13
- Репутация: 81
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Контроллер для LinuxCNC (Ethernet + STM32)
Контроллер рассчитывает сколько импульсов степ должно пройти за определенное число тиков энкодера шпинделя.Затем измеряется время между этими импульсами .Затем рассчитывается требуемый делитель внутреннено счетчика для выдачи заданного числа импульсов за это время.И в процессе работы все время происходит небольшая подстройка этого делителя в зависимости от того опередила чуть чкть система энкодер или наоборот чуть чуть отстала.ТО есть кто знаком с электроникой знает что именно так устроен синтезатор частоты.
-
dpss-2
- Мастер
- Сообщения: 628
- Зарегистрирован: 02 сен 2018, 15:15
- Репутация: 305
- Настоящее имя: Alex
- Контактная информация:
Re: Контроллер для LinuxCNC (Ethernet + STM32)
Тики, шаги... Может пора избавиться от тяжелого наследия эпохи шаговых двигателей? Вычисления нужно вести в плавучке, благо она поддерживается сейчас почти везде и только перед ШИМом и прочей периферией делать преобразование.
- MX_Master
- Мастер
- Сообщения: 7489
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3113
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: Контроллер для LinuxCNC (Ethernet + STM32)
Сергей, точность нужна везде, а не только там, где ты думаешь (:sidor094 писал(а):Просто точность нужна там где это необходимо,например при выдаче шагов.
Предположим, что твой палец будет отпилен станком уже на 205-ой миллисекунде. Хотел бы ты, чтобы ответственный датчик сообщил об АВОСТе на 10-100мс позже?sidor094 писал(а):Что толку реагировать на срабатывание концевика за 1мс ,а не за 10 если сервопривод будет останавливаться 200 мс?
-
sidor094
- Мастер
- Сообщения: 826
- Зарегистрирован: 20 фев 2014, 09:13
- Репутация: 81
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Контроллер для LinuxCNC (Ethernet + STM32)
Не не отпилит.Станок к примеру едет со скоростью 10 м мин .Это 166 мм сек.За 10 мс станок проедет 1.5 мм.А у меня пальцы толстые.
-
sidor094
- Мастер
- Сообщения: 826
- Зарегистрирован: 20 фев 2014, 09:13
- Репутация: 81
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Контроллер для LinuxCNC (Ethernet + STM32)
А сколько кстати проедет станок при скорости 10 м мин после срабатывания датчика если сигнал датчика поступит без задержки 10мс?Сантиметр? Два?
-
dpss-2
- Мастер
- Сообщения: 628
- Зарегистрирован: 02 сен 2018, 15:15
- Репутация: 305
- Настоящее имя: Alex
- Контактная информация:
Re: Контроллер для LinuxCNC (Ethernet + STM32)
Такие ситуации в серьезных станках помимо PLC дополнительно блокируются независимой релейной защитой, устройствами безопасности типа PILZ. К примеру у нас стоит термопласт производства Баттенфельд, так там помимо PLC и реле на сдвигаемых крышках закрывающих прессформу стоят гидравлические выключатели, которые не дают работать гидравлике при открытой камере. И все эти защиты дублированные.
- MX_Master
- Мастер
- Сообщения: 7489
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3113
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: Контроллер для LinuxCNC (Ethernet + STM32)
Раз уж 1.5 мм пальца или заготовки для кого-то не имеют значения, давайте рассмотрим другой пример. Допустим, мы ищем станочный нуль оси с помощью индуктивного датчика. Сделать поиск надо как можно быстрее и точнее. Насколько эффективнее будет поиск с миллисекундной реакцией датчика по сравнению с реакцией в 10-100мс?sidor094 писал(а):Не не отпилит.Станок к примеру едет со скоростью 10 м мин .Это 166 мм сек.За 10 мс станок проедет 1.5 мм.А у меня пальцы толстые.
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5183
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Контроллер для LinuxCNC (Ethernet + STM32)
Суть не в длительности задержки, а в её стабильности - вот для этого RT и нужен.sidor094 писал(а):В качестве примера можно привести возможность нарезания резьбы в мач всего по одной метке на оборот.Так что задержка в 10 мс будет вполне приемлема.
До тех пор, пока изображение статично или меняется медленно.sidor094 писал(а):Насчет 5мс могу сказать,что частота кадров телевизионноно сигнала 25 в секунду.То есть смену картинки длительностью 40 мс человек просто не замечает.
Если-же изображение меняется быстро (сравнимо со скоростью смены кадров), то наблюдатель увидит "артефакты" изображения, т.к. глаз видит не покадрово, а постоянно, например когда на одной половине кадра отрисовалось одно положение объекта, а на другой объект уже сдвинулся - т.е. глаз увидит кадр, на котором одна половина объекта будет сдвинута относительно другой... Вот чтоб таких кадров не получалось и увеличивают частоту кадров в несколько раз.
Так можно, хоть и с оговорками. Но это совсем не годится например для работы с датчиком инструмента/заготовки.Impartial писал(а):Происходит останов интерпретатора Г кода до момента прихода синхронизации.
Только целочисленные вычисления могут быть максимально точными, просто потому, что в представлении float/double большинства чисел просто не существует и приходится использовать приближённые значения.dpss-2 писал(а):Вычисления нужно вести в плавучке, благо она поддерживается сейчас почти везде
Например банки в своих вычислениях никогда не используют числа с плавающей точкой, только целые.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
-
sidor094
- Мастер
- Сообщения: 826
- Зарегистрирован: 20 фев 2014, 09:13
- Репутация: 81
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Контроллер для LinuxCNC (Ethernet + STM32)
Стабильность задержки в основном будет равна стабильности задания сервоцикла в LINUXCNC.Так как тактовый делитель контроллера с помощью пропорционального реулятора будет постоянно подстраивать каждые 10 мс точность сервоцикла контроллера под сервоцикл LINUXCNC.Конечно будет добавляться небольшой шум за счет разрядности делителя ,но он будет небольшой.Возьмем к примеру тактовую в 100мгц.Для получения 1 мс потребуется делитель на 100000.То есть 1/1000 процента.Так что её можно не учитывать.UAVpilot писал(а):Суть не в длительности задержки, а в её стабильности - вот для этого RT и нужен.
Можно конечно еще рассказать о чересстрочной развертке.Но я уже писал даже современные мониторы имеют частоту развертки в 100 гц .А это 10мс так что ни о какой реакции игрока в 3-5мс даже иговорить не приходится.Кроме того такая высокая частота выбрана только для уменьшения негативного влияния на зрение ,а никак не потому что 25 герц тормозили реакцию игрока на события игры.UAVpilot писал(а):от чтоб таких кадров не получалось и увеличивают частоту кадров в несколько раз.
-
D.L.
- Мастер
- Сообщения: 474
- Зарегистрирован: 25 авг 2018, 10:11
- Репутация: 152
- Настоящее имя: Дмитрий
- Откуда: Киров
- Контактная информация:
Re: Контроллер для LinuxCNC (Ethernet + STM32)
Первое время после переезда с CRT на 8мс LCD глаза замечали шлейфы на быстрых движениях в играх, потом прошло.sidor094 писал(а):Насчет 5мс могу сказать,что частота кадров телевизионноно сигнала 25 в секунду.То есть смену картинки длительностью 40 мс человек просто не замечает.
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5183
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Контроллер для LinuxCNC (Ethernet + STM32)
Даже спустя несколько часов работы?..sidor094 писал(а):Конечно будет добавляться небольшой шум за счет разрядности делителя ,но он будет небольшой.Возьмем к примеру тактовую в 100мгц.Для получения 1 мс потребуется делитель на 100000.То есть 1/1000 процента.Так что её можно не учитывать.
В современных мониторах с подключением по DVI/DP/HDMI понятием развёртки можно пренебречь - оно используется лишь в маркетинговосравнительных целях.sidor094 писал(а):Но я уже писал даже современные мониторы имеют частоту развертки в 100 гц .
надо было сразу и подключение менять.D.L. писал(а):Первое время после переезда с CRT на 8мс LCD глаза замечали шлейфы на быстрых движениях в играх, потом прошло.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
-
D.L.
- Мастер
- Сообщения: 474
- Зарегистрирован: 25 авг 2018, 10:11
- Репутация: 152
- Настоящее имя: Дмитрий
- Откуда: Киров
- Контактная информация:
Re: Контроллер для LinuxCNC (Ethernet + STM32)
Интересно на что? LCD был сразу подключен по DVI-D.UAVpilot писал(а):надо было сразу и подключение менять.
- Сергей Саныч
- Мастер
- Сообщения: 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)
Да хоть сколько.Вот самый простой алгоритм работы.например у нас выставлен делитель на 100000.Контроллер заканчивает цикл.Если в момент окончания цикла очкредная порция данных от компьютера уже в буфере декрементируем делитель.таким образом следующий цикл укорачивается.Если же данных еще нет то инкрементируем , удлинняем циккл. Можно по-другому.В момент прихода данных от компьютера считываем счетчик делителя и на основе текущих данных счетчика меняем делитель.Тут уже возможно пропорциональное регулирование.Таким образом можно обеспечить постоянную синхронизацию между сервоциклами компьютера и контроллера.UAVpilot писал(а):Даже спустя несколько часов работы?..
-
sidor094
- Мастер
- Сообщения: 826
- Зарегистрирован: 20 фев 2014, 09:13
- Репутация: 81
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Контроллер для LinuxCNC (Ethernet + STM32)
Если говорить о мерцании экрана с частотой развертки то да.Обновление же экрана происходит точно так-же ,как и в лучквых.Вместе с частотой развертки построчно.UAVpilot писал(а):В современных мониторах с подключением по DVI/DP/HDMI понятием развёртки можно пренебречь - оно используется лишь в маркетинговосравнительных целях
В любом случае у них все равно достаточно длительное послесвечение .Поэтому тянучки связаны не с разверткой ,а с медленным перезарядом емкостей .отсюда првный переход точки от предидущено состояния к нынешнему.
Но все это влияет особенности зрения и мало связано с реакцией игрока на события. Для нажатия на кнопку надо не только заметить изменение изображения но и успеть на него среанировать. Говоря про 100-400 мс я подразумеваю
время между изменением картинки и началом нажатия.То есть не просто заметить событие,но и успеть на него среагировать.Причем это автоматическая реакция.Когда человек уже наработал навык реагирования на данное событие и соответственно время на принятия решения не затрачивается.Неподготовленный человек(тот кто еще не автоматически реагирует на данное событие,а только знает,что нужно делать) добавит к этому еще время на принятие решения.