LinuxCNC + Orange Pi (allwincnc)

Контроллеры, драйверы, датчики, управляющие устройства.
Kovus2
Мастер
Сообщения: 221
Зарегистрирован: 23 авг 2018, 11:52
Репутация: 35
Настоящее имя: Олег
Откуда: Минск
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение Kovus2 »

И все-таки, давайте разберемся, чему верить?
1) Загружаем нашу балалайку с Иксами.
2) Запускаем Latency test и видим наши законные 60000 - 80000
3) Переходим Ctrl-Alt-F1 на первый терминал. Вводим логин/пароль. Запускаем наш cyclictest
4) Возвращаемся в Иксы Ctrl-Alt-F7 и начинаем злобствовать. Например, грузим LibreOffice
5) В cyclictest у меня значения не поднимаются выше 150 на ядро. Latency test подпрыгивает до 82160.

Кто из них что считает? :thinking:

Может приоритет Иксов низкий и по этому Latency test тормозит вместе с Иксами, и халяльная прога, не отягощенная харамными Иксами, лупит со всей дури?
Kovus2
Мастер
Сообщения: 221
Зарегистрирован: 23 авг 2018, 11:52
Репутация: 35
Настоящее имя: Олег
Откуда: Минск
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение Kovus2 »

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

Keystick не всем понравится, зело страшен, зараза. Но его можно, как мне кажется, усовершенствовать. К примеру, можно посмотреть на утилиту dialog:
http://docs.puppyrus.org/programming/dialog

Там, относительно без проблем, можно налабать более-менее сносный интерфейс. С нормальным выбором файлов, можно мышкой работать, если к консоли ее подрубить.

А если еще докрутить, что бы наша прога фонила по UDP о своем состоянии и сообщала, что она щаз вытворяет, то на клиенте можно и отрисовывать выполнение и хз что еще. Я с таким сталкивался на ТВ-вещалках. Там ядро делает, то что надо делать, но фонит об этом клиентам. А те уже творят, что хотят, в меру своих возможностей и мастерства. Получается простая, надежная и устойчивая система.
Аватара пользователя
Maxekb77
Мастер
Сообщения: 1658
Зарегистрирован: 05 окт 2013, 00:04
Репутация: 285
Настоящее имя: Максим
Откуда: Екатеринбург
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение Maxekb77 »

Kovus2,
Конечным устройством все равно надо использовать осцилограф или еще чего для точного подсчета, что в итоге наделалось.
Пока в консоли не будет приемлимого результата по скорости работы, дальше особо не вижу смысла какие то телодвижения делать.
Так что продолжаем жадать Михаила с его степгеном через мали или еще чего нить, может там это как то удасться ускорить.
Аватара пользователя
going
Мастер
Сообщения: 523
Зарегистрирован: 29 сен 2013, 20:55
Репутация: 129
Настоящее имя: Леонид
Откуда: г.Киров
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение going »

Kovus2 писал(а):какого хрена консольная утилита и latency test дают разные показания, при том, что запускаются одновременно.
:thinking: Авангард однако.
Kovus2 писал(а):Может приоритет Иксов низкий и по этому Latency test тормозит вместе с Иксами, и халяльная прога, не отягощенная харамными Иксами, лупит со всей дури?
Может для начала понять, что и как надо измерять?
Kovus2 писал(а):И все-таки, давайте разберемся, чему верить?
1) Загружаем нашу балалайку с Иксами.
2) Запускаем Latency test и видим наши законные 60000 - 80000
3) Переходим Ctrl-Alt-F1 на первый терминал. Вводим логин/пароль. Запускаем наш cyclictest
4) Возвращаемся в Иксы Ctrl-Alt-F7 и начинаем злобствовать. Например, грузим LibreOffice
5) В cyclictest у меня значения не поднимаются выше 150 на ядро. Latency test подпрыгивает до 82160.

Кто из них что считает?
В этом случае правильный вопрос звучит так:
" А что мы хотим померять? "

Известно, что любое измерение вносит изменение в свойства измеряемого объекта. Это фундаментальный закон.
Вы пытаитесь мерять одновременно днин и тот же объект двумя разными инструментами,
а это значит, что оба эти инструмента меняют свойства обьекта и влияют на показания обоих измерительных инструментов.

Это в теории, а по сути:
1) хотим измерить латенси без иксов -->> Ctrl-Alt-F1, пароль пользователя, sudo service --help
Останавливаем xserver, lightdm
Запускаем cyclictest
2) хотим измерить латенси с иксами -->> запускаем что то одно, либо cyclictest, либо latency-test
При этом ни какое РТ приложение не должно работать.

Вы не обратили внимание на тот факт, что невозможно запустить latency-test, когда работает linuxcnc?
Платы: BPI-M3, BPI-A64, OPI-PC2
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение Serg »

going писал(а):Вы не обратили внимание на тот факт, что невозможно запустить latency-test, когда работает linuxcnc?
Можно, только не отдельной программкой, а как я показывал. :)
Одновременно нельзя запустить ПРОГРАММЫ latency-test и linuxcnc ровно по той-же причине, по которой нельзя запустить одновременно две linuxcnc.
Но таки да, нужно сначала понять что именно измеряет latency-test... :)
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
going
Мастер
Сообщения: 523
Зарегистрирован: 29 сен 2013, 20:55
Репутация: 129
Настоящее имя: Леонид
Откуда: г.Киров
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение going »

UAVpilot писал(а):Можно, только не отдельной программкой, а как я показывал.
Да, конечно, возможно всё. Я лиш о том, что это будет вносить дополнительную погрешность в измерения.
Платы: BPI-M3, BPI-A64, OPI-PC2
Kovus2
Мастер
Сообщения: 221
Зарегистрирован: 23 авг 2018, 11:52
Репутация: 35
Настоящее имя: Олег
Откуда: Минск
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение Kovus2 »

Подключил балалайку с Кейстиком к станку. Худо-бедно оно все бегает. Будете смеяться, но я не нашел как в ручном режиме передвигать каретки. Вроде и continous стоит, но перемещается только на 0.4 мм и все. В режиме MDI командами G0 ездит куда угодно. Программу загружаешь - тоже все ОК. А на кнопках я завис, к своему позору :D

Значит так, для начала я не выгружал Иксы. Перешел в терминал 1 (Ctrl-Alt_F1) и загрузил там cyclestest. В терминале 3 запустил Кейстик. Всунул туда прогу весом под 50 МБ и запустил. При этом cyclestest показывал значения менее 100 на ядро. Записал видео, позже дам ссылку.

Попробовал BASE_PERIOD занизить, что бы поднять скорость. Но ниже 30000 LCNC не дает установить. Просто перестает грузиться. Либо я неправильно понял назначение этой переменной. Я исхожу из логики, что если cyclestest дает такие небольшие значения, то, типа можно и частоту генерации сигналов повысить. Но как-то не сложилось. Если кто знает, подскажите, пжалста.

Вот видео:
https://youtu.be/o4mNuG9S3dk
Заснял сам экран Кейстика на 3-м терминале, потом переключился на 1-й с тестом скорости.

К сожалению, захрустел подшипник оси Х. И из-за этого сильно поднимать скорость не удалось. Надо туда поставить нормальные BF BK 12. А пока дешман там стоит, вот и захрустело.

PS пересмотрел видео и обнаружил варнинг на скрине с тестом скорости:
WARN: open /dev/cpu_dma_latency: Permission denied

Запустил с правами суперюзера. Варнинг ушел, цифры соответсвуют как при запуске от обычного юзера.
Kovus2
Мастер
Сообщения: 221
Зарегистрирован: 23 авг 2018, 11:52
Репутация: 35
Настоящее имя: Олег
Откуда: Минск
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение Kovus2 »

Maxekb77 писал(а):Kovus2,
Конечным устройством все равно надо использовать осцилограф или еще чего для точного подсчета, что в итоге наделалось.
Пока в консоли не будет приемлимого результата по скорости работы, дальше особо не вижу смысла какие то телодвижения делать.
Так что продолжаем жадать Михаила с его степгеном через мали или еще чего нить, может там это как то удасться ускорить.
Погонял cyclestest с абсолютно разными нагрузками(Axis, Firefox, LibreOffice). Как мне показалось, он измеряет что-то, не знаю что. И циферки у него красивые. :D
По этому согласен, что круче осцилографа внешнего ничего нету.

Планирую взять у корефана 8-ми канальный, который ему же и подарил на ДР :D , но прежде нужно разобраться как уменьшать BASE_PERIOD. Пока он ниже 30000 не опускается.

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

Re: LinuxCNC + Orange Pi

Сообщение MX_Master »

Если базовый период нельзя сделать меньше 30 мкс, значит LCNC не успевает за 30 мкс выполнить код тех функций, которые прилеплены в HAL к базовому периоду.
Kovus2
Мастер
Сообщения: 221
Зарегистрирован: 23 авг 2018, 11:52
Репутация: 35
Настоящее имя: Олег
Откуда: Минск
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение Kovus2 »

MX_Master писал(а):Если базовый период нельзя сделать меньше 30 мкс, значит LCNC не успевает за 30 мкс выполнить код тех функций, которые прилеплены в HAL к базовому периоду.
Он не успевает это и Axis и Keystick?
Просто это морды настолько разные по своей нагрузке на процессор....
Аватара пользователя
MX_Master
Мастер
Сообщения: 7488
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3113
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение MX_Master »

Если ваще исключить морды, то базовому периоду будет мешать только быстродействие функций в базовом периоде, ядро linux и задержки в работе железа.

Например, ядро linux время от времени делает "домашнюю уборку" на каждом ядре. Скидывает, к примеру, дампы памяти на флэху и это занимает примерно 30 мкс. Я лично это наблюдал на осциллограмме. Это значит, что время от времени базовый период LCNC становится длиннее (максимум на 30 мкс). Т.к. "домашняя уборка" на ядрах проца выполняется реже базового периода LCNC, это "железное" latency в 30 мкс можно разбросать по чуть чуть между другими циклами базового периода. Вплоть до следующей "домашней уборки" на ядрах.

Если выставить базовый период меньше 30 мкс, то процессор будет всё чаще не успевать отрабатывать все функции базового периода вкупе с компенсацией "железного" latency. Это означает, что RT у нас соблюдаться не будет. А LCNC в таких условиях не работает.
Аватара пользователя
Maxekb77
Мастер
Сообщения: 1658
Зарегистрирован: 05 окт 2013, 00:04
Репутация: 285
Настоящее имя: Максим
Откуда: Екатеринбург
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение Maxekb77 »

MX_Master, ту бишь latency меньше 30000-40000 в принципе не возможен на данной плате без глобального вмешательства ?
Аватара пользователя
MX_Master
Мастер
Сообщения: 7488
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3113
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение MX_Master »

В нашей бюджетной платке меньше и не нужно (: Можно, канеш, немного похимичить с интервалами "домашней уборки" на ядрах и множеством прочих факторов. Но в конечном итоге базовый период всё равно суммарно сложится в стабильные 50 мкс. С учётом внешних генераторов и счётчиков, этого более чем достаточно.
Kovus2
Мастер
Сообщения: 221
Зарегистрирован: 23 авг 2018, 11:52
Репутация: 35
Настоящее имя: Олег
Откуда: Минск
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение Kovus2 »

кхм... я понимаю, что сборщик мусора чистит оперативную память, но на флеху дампы кидать.... :thinking: Он же так убъет ее через неделю работы. Деструктивные действия какие-то. Эти дампы вырубить можно?
Аватара пользователя
MX_Master
Мастер
Сообщения: 7488
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3113
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение MX_Master »

Можно уменьшить интервал и немного снизить кол-во действий во время "домашней уборки" ядер. Все остальные вопросы - к авторам ядра linux (: Кстати, SD флэхи лучше всего убиваются не на таких узконаправленных платках, а на телефонах с андроидом ;)
P.S.: работа над степгенами снова в разгаре
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение Serg »

going писал(а):Да, конечно, возможно всё. Я лиш о том, что это будет вносить дополнительную погрешность в измерения.
В эти измерения не будет. :)
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
going
Мастер
Сообщения: 523
Зарегистрирован: 29 сен 2013, 20:55
Репутация: 129
Настоящее имя: Леонид
Откуда: г.Киров
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение going »

Kovus2 писал(а):но на флеху дампы кидать.... :thinking: Он же так убъет ее через неделю работы. Деструктивные действия какие-то. Эти дампы вырубить можно?
Флеху не убьёт. См. параметры монтирования "/" и "/tmp" в "/etc/fstab" как это делает armbian.
Перемещение root "/" раздела на SSD и возвращение параметров монтирования по умолчанию, даёт уменьшение латенси на 10-15 микросекунд.
Т.е. дамп памяти на раздел будет происходить чаще и соответственно меньше по размеру и короче по времени.
Платы: BPI-M3, BPI-A64, OPI-PC2
svb
Мастер
Сообщения: 312
Зарегистрирован: 10 апр 2018, 11:31
Репутация: 82
Настоящее имя: Сергей
Откуда: Нижний Новгород
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение svb »

Наступили зачетные недели, так что я пока выпадаю из процесса, недели на 2-3 :(
Платы: OPI-PC(умерла), OPI-PC2
Аватара пользователя
going
Мастер
Сообщения: 523
Зарегистрирован: 29 сен 2013, 20:55
Репутация: 129
Настоящее имя: Леонид
Откуда: г.Киров
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение going »

Вопрос. А linuxcnc с библиотеками lges соберётся?
Платы: BPI-M3, BPI-A64, OPI-PC2
Аватара пользователя
antoxa-kylibin
Мастер
Сообщения: 786
Зарегистрирован: 22 июн 2017, 13:18
Репутация: 107
Настоящее имя: Антон
Откуда: г. Воронеж
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение antoxa-kylibin »

MX_Master писал(а):В нашей бюджетной платке меньше и не нужно (: Можно, канеш, немного похимичить с интервалами "домашней уборки" на ядрах и множеством прочих факторов. Но в конечном итоге базовый период всё равно суммарно сложится в стабильные 50 мкс. С учётом внешних генераторов и счётчиков, этого более чем достаточно.
А как же тогда генерировать 100кгц на шд и читать 100кгц с энкодеров? Не совсем понял как lcnc при такой низкой производительности будет работать с "внешними" генераторами шагов в виде сопроцессора? Получается что то аналогично плате Mesa? Которая по сути и является внешним генератором и читателем импульсов? Как в таких случаях linuxcnc дружит с внешними "приблудами" и нагрузка с цп переносится на приблуды? Это решается специальным драйвером к этой приблуде? Под Mesa платы кажись драйвера в системе есть и даже конфигуратор есть (я про х86 системы). С этой балалайкой какой план действий?
Ответить

Вернуться в «Электроника»