Страница 40 из 71

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

Добавлено: 02 ноя 2019, 17:11
sidor094
Насчет 5мс могу сказать,что частота кадров телевизионноно сигнала 25 в секунду.То есть смену картинки длительностью 40 мс человек просто не замечает.

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

Добавлено: 02 ноя 2019, 18:14
MX_Master
Ну вот скажи, у тебя время старта прерываний внутри микроконтроллера точное или +/-10мс? А реакция на внешние события внутри твоего МК с задержкой 10-100мс? Наверное, нет. А раз внутри твоей системы всё так точно, почему в других системах должны быть задержки? :hehehe:
sidor094 писал(а):Насчет 5мс могу сказать,что частота кадров телевизионноно сигнала 25 в секунду.То есть смену картинки длительностью 40 мс человек просто не замечает.
Я, наверно, сверх человек.. я прекрасно могу отличить картинку на 60fps от картинки в 30. И кроме меня таких людей ещё много ;)

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

Добавлено: 02 ноя 2019, 18:41
sidor094
MX_Master писал(а):А раз внутри твоей системы всё так точно, почему в других системах должны быть задержки?
Просто точность нужна там где это необходимо,например при выдаче шагов.Что толку реагировать на срабатывание концевика за 1мс ,а не за 10 если сервопривод будет останавливаться 200 мс?Понятно .конечно,что хуже не будет.Но можно просто проанализиновать что мы при этом теряем и что приобретаем взамен.
MX_Master писал(а): я прекрасно могу отличить картинку на 60fps от картинки в 30. И кроме меня таких людей ещё много
И при этом нажать на кнопку мышки?Потом даже если взять 100гц монитор то это уже смена картинки не чаще 10 мс .Как же можно,даже будучи сверхчеловеком, среагировать на событие с частотой 5мс,ведь на мониторе ниччего за это время не произойдет.

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

Добавлено: 02 ноя 2019, 19:05
Impartial
UAVpilot писал(а):Как обеспечить синхронизацию буферов со шпинделем?..
Все просто.
Происходит останов интерпретатора Г кода до момента прихода синхронизации. Например после очередного цикла нарезания.
Все, что было до этого в буфере сервоциклов должно быть выгружено в привод и исполнено.
Синхронизация происходит на границах кадров Г кода. Например очередная метка шпинделя запускает очередной цикл.
Пока ожидается синхронизация буфер пустой.
Остановить движение можно только сигналом ошибки. При этом останавливается выгрузка из буфера и буфер сбрасывается.
Продолжить исполнение можно только повторив кадр.

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

Добавлено: 02 ноя 2019, 19:18
sidor094
Impartial писал(а):Все просто.
Немного не так.

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

Добавлено: 02 ноя 2019, 19:27
sidor094
Контроллер рассчитывает сколько импульсов степ должно пройти за определенное число тиков энкодера шпинделя.Затем измеряется время между этими импульсами .Затем рассчитывается требуемый делитель внутреннено счетчика для выдачи заданного числа импульсов за это время.И в процессе работы все время происходит небольшая подстройка этого делителя в зависимости от того опередила чуть чкть система энкодер или наоборот чуть чуть отстала.ТО есть кто знаком с электроникой знает что именно так устроен синтезатор частоты.

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

Добавлено: 02 ноя 2019, 19:48
dpss-2
Тики, шаги... Может пора избавиться от тяжелого наследия эпохи шаговых двигателей? Вычисления нужно вести в плавучке, благо она поддерживается сейчас почти везде и только перед ШИМом и прочей периферией делать преобразование.

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

Добавлено: 02 ноя 2019, 20:05
MX_Master
sidor094 писал(а):Просто точность нужна там где это необходимо,например при выдаче шагов.
Сергей, точность нужна везде, а не только там, где ты думаешь (:
sidor094 писал(а):Что толку реагировать на срабатывание концевика за 1мс ,а не за 10 если сервопривод будет останавливаться 200 мс?
Предположим, что твой палец будет отпилен станком уже на 205-ой миллисекунде. Хотел бы ты, чтобы ответственный датчик сообщил об АВОСТе на 10-100мс позже?

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

Добавлено: 02 ноя 2019, 20:25
sidor094
Не не отпилит.Станок к примеру едет со скоростью 10 м мин .Это 166 мм сек.За 10 мс станок проедет 1.5 мм.А у меня пальцы толстые.

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

Добавлено: 02 ноя 2019, 20:38
sidor094
А сколько кстати проедет станок при скорости 10 м мин после срабатывания датчика если сигнал датчика поступит без задержки 10мс?Сантиметр? Два?

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

Добавлено: 02 ноя 2019, 20:41
dpss-2
Такие ситуации в серьезных станках помимо PLC дополнительно блокируются независимой релейной защитой, устройствами безопасности типа PILZ. К примеру у нас стоит термопласт производства Баттенфельд, так там помимо PLC и реле на сдвигаемых крышках закрывающих прессформу стоят гидравлические выключатели, которые не дают работать гидравлике при открытой камере. И все эти защиты дублированные.

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

Добавлено: 02 ноя 2019, 20:56
MX_Master
sidor094 писал(а):Не не отпилит.Станок к примеру едет со скоростью 10 м мин .Это 166 мм сек.За 10 мс станок проедет 1.5 мм.А у меня пальцы толстые.
Раз уж 1.5 мм пальца или заготовки для кого-то не имеют значения, давайте рассмотрим другой пример. Допустим, мы ищем станочный нуль оси с помощью индуктивного датчика. Сделать поиск надо как можно быстрее и точнее. Насколько эффективнее будет поиск с миллисекундной реакцией датчика по сравнению с реакцией в 10-100мс? :)

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

Добавлено: 02 ноя 2019, 21:12
Serg
sidor094 писал(а):В качестве примера можно привести возможность нарезания резьбы в мач всего по одной метке на оборот.Так что задержка в 10 мс будет вполне приемлема.
Суть не в длительности задержки, а в её стабильности - вот для этого RT и нужен.
sidor094 писал(а):Насчет 5мс могу сказать,что частота кадров телевизионноно сигнала 25 в секунду.То есть смену картинки длительностью 40 мс человек просто не замечает.
До тех пор, пока изображение статично или меняется медленно. :)
Если-же изображение меняется быстро (сравнимо со скоростью смены кадров), то наблюдатель увидит "артефакты" изображения, т.к. глаз видит не покадрово, а постоянно, например когда на одной половине кадра отрисовалось одно положение объекта, а на другой объект уже сдвинулся - т.е. глаз увидит кадр, на котором одна половина объекта будет сдвинута относительно другой... Вот чтоб таких кадров не получалось и увеличивают частоту кадров в несколько раз.
Impartial писал(а):Происходит останов интерпретатора Г кода до момента прихода синхронизации.
Так можно, хоть и с оговорками. Но это совсем не годится например для работы с датчиком инструмента/заготовки.
dpss-2 писал(а):Вычисления нужно вести в плавучке, благо она поддерживается сейчас почти везде
Только целочисленные вычисления могут быть максимально точными, просто потому, что в представлении float/double большинства чисел просто не существует и приходится использовать приближённые значения. :)
Например банки в своих вычислениях никогда не используют числа с плавающей точкой, только целые.

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

Добавлено: 02 ноя 2019, 21:55
sidor094
UAVpilot писал(а):Суть не в длительности задержки, а в её стабильности - вот для этого RT и нужен.
Стабильность задержки в основном будет равна стабильности задания сервоцикла в LINUXCNC.Так как тактовый делитель контроллера с помощью пропорционального реулятора будет постоянно подстраивать каждые 10 мс точность сервоцикла контроллера под сервоцикл LINUXCNC.Конечно будет добавляться небольшой шум за счет разрядности делителя ,но он будет небольшой.Возьмем к примеру тактовую в 100мгц.Для получения 1 мс потребуется делитель на 100000.То есть 1/1000 процента.Так что её можно не учитывать.
UAVpilot писал(а):от чтоб таких кадров не получалось и увеличивают частоту кадров в несколько раз.
Можно конечно еще рассказать о чересстрочной развертке.Но я уже писал даже современные мониторы имеют частоту развертки в 100 гц .А это 10мс так что ни о какой реакции игрока в 3-5мс даже иговорить не приходится.Кроме того такая высокая частота выбрана только для уменьшения негативного влияния на зрение ,а никак не потому что 25 герц тормозили реакцию игрока на события игры.

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

Добавлено: 02 ноя 2019, 22:01
D.L.
sidor094 писал(а):Насчет 5мс могу сказать,что частота кадров телевизионноно сигнала 25 в секунду.То есть смену картинки длительностью 40 мс человек просто не замечает.
Первое время после переезда с CRT на 8мс LCD глаза замечали шлейфы на быстрых движениях в играх, потом прошло.

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

Добавлено: 03 ноя 2019, 00:43
Serg
sidor094 писал(а):Конечно будет добавляться небольшой шум за счет разрядности делителя ,но он будет небольшой.Возьмем к примеру тактовую в 100мгц.Для получения 1 мс потребуется делитель на 100000.То есть 1/1000 процента.Так что её можно не учитывать.
Даже спустя несколько часов работы?.. :)
sidor094 писал(а):Но я уже писал даже современные мониторы имеют частоту развертки в 100 гц .
В современных мониторах с подключением по DVI/DP/HDMI понятием развёртки можно пренебречь - оно используется лишь в маркетинговосравнительных целях. :)
D.L. писал(а):Первое время после переезда с CRT на 8мс LCD глаза замечали шлейфы на быстрых движениях в играх, потом прошло.
надо было сразу и подключение менять. :)

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

Добавлено: 03 ноя 2019, 01:57
D.L.
UAVpilot писал(а):надо было сразу и подключение менять.
Интересно на что? LCD был сразу подключен по DVI-D.

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

Добавлено: 03 ноя 2019, 09:28
Сергей Саныч
Глазом при определенных условиях можно и несколько килогерц увидеть. Независимо от инерционности сетчатки, глазных нервов и мозга. Достаточно просто провести взгляд из стороны в сторону и мигающий с высокой частотой источник света будет увиден как пунктирная линия, а непрерывно горящий - как сплошная. А при неподвижном взгляде разницы не будет.
Но поскольку глаз движется практически непрерывно, то мерцание отдельных элементов будет интерпретироваться мозгом по разному - то в виде шлейфов, то в виде еще каких-то артефактов.

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

Добавлено: 03 ноя 2019, 09:30
sidor094
UAVpilot писал(а):Даже спустя несколько часов работы?..
Да хоть сколько.Вот самый простой алгоритм работы.например у нас выставлен делитель на 100000.Контроллер заканчивает цикл.Если в момент окончания цикла очкредная порция данных от компьютера уже в буфере декрементируем делитель.таким образом следующий цикл укорачивается.Если же данных еще нет то инкрементируем , удлинняем циккл. Можно по-другому.В момент прихода данных от компьютера считываем счетчик делителя и на основе текущих данных счетчика меняем делитель.Тут уже возможно пропорциональное регулирование.Таким образом можно обеспечить постоянную синхронизацию между сервоциклами компьютера и контроллера.

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

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