Плата развязки для LinuxCNC (Ethernet + STM32)

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.

Re: Плата развязки для LinuxCNC (Ethernet + STM32)

Сообщение MX_Master » 19 апр 2018, 11:36

А что если добавить возможность подключения по SPI ? У одноплатных ПК ethernet порт - это зачастую единственный выход в сеть. Если воткнуть STM'ку в этот порт, то одноплатник сразу лишается интернетов и прочих сетевых прелестей. Я, к примеру, очень часто закидываю файлы УП по сети.
Аватара пользователя
MX_Master
Мастер
 
Сообщения: 2626
Зарегистрирован: 27 июн 2015, 19:45
Откуда: форт Верный
Репутация: 1371
Медальки:
Настоящее имя: Михаил

Re: Плата развязки для LinuxCNC (Ethernet + STM32)

Сообщение UAVpilot » 19 апр 2018, 12:00

Для интернетов есть USB-Eth.

У SPI есть такой недостаток как длина линии связи. Тогда уж RS422.
1. Робот не может ответить отказом на предложение человека выпить или своим бездействием допустить, чтобы человек напился один.
Аватара пользователя
UAVpilot
Мастер
 
Сообщения: 15975
Зарегистрирован: 17 апр 2012, 14:58
Откуда: Москва
Репутация: 3901
Медальки:
Настоящее имя: Сергей

Re: Плата развязки для LinuxCNC (Ethernet + STM32)

Сообщение MX_Master » 19 апр 2018, 12:26

Ясно, значит, пока не дёргаюсь (:
Аватара пользователя
MX_Master
Мастер
 
Сообщения: 2626
Зарегистрирован: 27 июн 2015, 19:45
Откуда: форт Верный
Репутация: 1371
Медальки:
Настоящее имя: Михаил

Re: Плата развязки для LinuxCNC (Ethernet + STM32)

Сообщение sergx99 » 19 апр 2018, 19:33

SPI на длинной линии, описание проблемы и решение.
sergx99
Новичок
 
Сообщения: 13
Зарегистрирован: 27 фев 2016, 17:03
Репутация: 1
Настоящее имя: Сергей

Re: Плата развязки для LinuxCNC (Ethernet + STM32)

Сообщение UAVpilot » 20 апр 2018, 01:29

sergx99 писал(а):SPI на длинной линии, описание проблемы и решение.

Т.ё. тот-же самый RS422, только пар проводов больше. :)
Напрашивается вопрос: а собственно сам SPI там зачем?.. :)
1. Робот не может ответить отказом на предложение человека выпить или своим бездействием допустить, чтобы человек напился один.
Аватара пользователя
UAVpilot
Мастер
 
Сообщения: 15975
Зарегистрирован: 17 апр 2012, 14:58
Откуда: Москва
Репутация: 3901
Медальки:
Настоящее имя: Сергей

Re: Плата развязки для LinuxCNC (Ethernet + STM32)

Сообщение sergx99 » 20 апр 2018, 09:25

UAVpilot писал(а):
sergx99 писал(а):SPI на длинной линии, описание проблемы и решение.

Т.ё. тот-же самый RS422, только пар проводов больше. :)
Напрашивается вопрос: а собственно сам SPI там зачем?.. :)

Да проводов больше, два SPI со стороны мастера, но идет речь о кабеле 100м и скорости 10 Мбит/с.
Честный RS422, на этой длинне, только 1 Мбит / с гарантирует.
sergx99
Новичок
 
Сообщения: 13
Зарегистрирован: 27 фев 2016, 17:03
Репутация: 1
Настоящее имя: Сергей

Re: Плата развязки для LinuxCNC (Ethernet + STM32)

Сообщение UAVpilot » 20 апр 2018, 15:28

Простой SPI вообще ничего не гарантирует по длине и скорости - это всё зависит только от физического уровня который SPI не описывает. Например если его засунуть в оптоволокно, то это вообще будут гигабиты или десятки километров.
Если-же SPI запихнуть в "честный RS422" (что собственно в статье и предлагается), то скорости и дальность теоретически будет как у "честного RS422". :)

Кстати, про
sergx99 писал(а):речь о кабеле 100м и скорости 10 Мбит/с.

для SPI это невозможно физически. В смысле законы физики не позволят. :)
1. Робот не может ответить отказом на предложение человека выпить или своим бездействием допустить, чтобы человек напился один.
Аватара пользователя
UAVpilot
Мастер
 
Сообщения: 15975
Зарегистрирован: 17 апр 2012, 14:58
Откуда: Москва
Репутация: 3901
Медальки:
Настоящее имя: Сергей

Re: Плата развязки для LinuxCNC (Ethernet + STM32)

Сообщение Bender » 21 апр 2018, 06:30

У меня когда встал вопрос о расширении кол-ва входов , осей и пр. То я выбрал такую схему: с ПК соединяется stm32f4 (или круче) по usb. Далее сеть can с опторазвязкой (iso1050) от пк. Результат более чем устраивает.

+ Аппаратная поддержка stm 32
+ Стремящаяся к нулю вероятность передачи неверных данных
+ Приоритетности передачи
+ Одну посылку видят все
+ Можно передавать децентрализованно
+ Цена

- пакет максимум 8 байт

Например у меня f4 двигает осями а датчик org "y " подключен через can к f1. Или
управление узлом рубки сделал так что ШИМ и входные сигналы по can а логика сидит на f4.
wlmotion.ru управление станком ЧПУ ПК+STM32
Аватара пользователя
Bender
Мастер
 
Сообщения: 568
Зарегистрирован: 24 янв 2012, 16:04
Откуда: Новосибирск
Репутация: 134
Медальки:
Настоящее имя: Сергей

Re: Плата развязки для LinuxCNC (Ethernet + STM32)

Сообщение MX_Master » 21 апр 2018, 09:37

Ну, с ethernet'ами вопрос расширения решается довольно просто (: Я, буквально, вчера проверял.

До проверки скоростей ещё не дошёл, изучаю тонкости работы с ethernet в F4. Хочу убрать из функций приёма и отправки всё лишнее. Остановился на RAW пакетах, для меня это лучший вариант.
Аватара пользователя
MX_Master
Мастер
 
Сообщения: 2626
Зарегистрирован: 27 июн 2015, 19:45
Откуда: форт Верный
Репутация: 1371
Медальки:
Настоящее имя: Михаил

Re: Плата развязки для LinuxCNC (Ethernet + STM32)

Сообщение Birukov » 24 май 2018, 22:25

Хочу присоединиться к проекту. СТМ программировать умею, ЛЦНЦ видел, даже поставил на 3Д фрезер большой Пратт-Уитни.
Со стороны ЛСНЦ как раз проблемы - не понимаю протокола обмена, как настраивать и т.д.
Birukov
Новичок
 
Сообщения: 2
Зарегистрирован: 08 апр 2017, 20:26
Репутация: 0
Настоящее имя: Ak

Re: Плата развязки для LinuxCNC (Ethernet + STM32)

Сообщение MX_Master » 13 июн 2018, 22:07

Немного отвлёкся на другой проект (OrangePi + LinuxCNC). Но отвлёкся не зря. В перерывах было время подумать на тему, как использовать этот проект (STM32 + Ethernet) как можно продуктивнее.

В какой-то момент в голову ударила мысль, что эту платку можно смело заюзать не только как ногодрыг для LinuxCNC, но и как отдельный контроллер с веб мордой. Причём, морда управления будет лежать внутри самой STM'ки (или рядом на SPI флэшке 8/16/32 Мб). Для хранения файлов УП будет использоваться любая внешняя SD флэшка. Согласно этой задумке, решил взять за основу STM32F407VGT6 у которой на борту 1024 Кб программной памяти.

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

Re: Плата развязки для LinuxCNC (Ethernet + STM32)

Сообщение alex1816 » 14 июн 2018, 03:43

Ух и задумки ... :)
Если файлы УП на флешке - значит в контроллере планируется полноценный ЧПУ с планировщиком и тп?
А не за мало мощи у стм-ки для этого.
Может лучше все таки в таком случае разделить на два сопроцессора, реалтайм отдельно, а все остальное .... ну наверное на OrangePI:)
Веб морда реалтайму вряд ли мешать будет, потому как она больше стоять будет чем работать.
alex1816
Опытный
 
Сообщения: 178
Зарегистрирован: 03 фев 2017, 01:06
Откуда: Украина
Репутация: 25
Настоящее имя: Александр

Re: Плата развязки для LinuxCNC (Ethernet + STM32)

Сообщение MX_Master » 14 июн 2018, 07:33

Вспоминая первый опыт работы со Smoothieware, могу сказать, что полноценный контроллер запихнуть внутрь - не проблема. Проблемой Smoothieware был неправильный выбор чипа по аппаратной части и нерациональное его использование.

Самая большая проблема у них была в скорости работы с SD картой. Если G код был из очень мелких отрезков, контроллер тупо не успевал их читать и обрабатывать. Мне в этом плане нравится подход программы CNC USB Controller. Она перед стартом переваривает весь текстовый G код в удобный бинарный формат. Т.е. планирует всё заранее. Этот бинарный файл, состоящий из строгих команд контроллеру, читается и выполняется в разы быстрее. Поэтому во время работы проц не волнуется о планировании и занимается более полезными делами.
Аватара пользователя
MX_Master
Мастер
 
Сообщения: 2626
Зарегистрирован: 27 июн 2015, 19:45
Откуда: форт Верный
Репутация: 1371
Медальки:
Настоящее имя: Михаил

Re: Плата развязки для LinuxCNC (Ethernet + STM32)

Сообщение selenur » 14 июн 2018, 07:51

MX_Master писал(а):Этот бинарный формат потом читается в разы быстрее обычного текста. Поэтому во время работы проц уже не занимается этой ерундой.

Смотрел много разных решений, и это на мой взгляд самое интересное, да контроллер сам не парсит G-код, зато есть единый формат "кадров" которые передаются в контроллер либо по USB, либо по сети, либо с карты памяти, где в каждом кадре есть информация о том какие оси на каких скоростях, сколько должны выполнить импульсов, и какие доп-выходы какой должны генерировать сигнал (для шпинделя, лазера, тумана).
К похожему решению я постепенно и двигаюсь, генерация данных в бинарном формате в принципе уже у меня частично готова, а вот контроллер только в планах, и было-бы прикольно, если логика работы контроллера позволила добавить работу с бинарными данными. :-)
Мой блог: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Аватара пользователя
selenur
Почётный участник
Почётный участник
 
Сообщения: 3527
Зарегистрирован: 21 авг 2013, 19:44
Откуда: Новый Уренгой
Репутация: 1242
Медальки:
Настоящее имя: Сергей

Re: Плата развязки для LinuxCNC (Ethernet + STM32)

Сообщение MX_Master » 14 июн 2018, 10:31

selenur писал(а):Смотрел много разных решений, и это на мой взгляд самое интересное, да контроллер сам не парсит G-код, зато есть единый формат "кадров" которые передаются в контроллер либо по USB, либо по сети, либо с карты памяти, где в каждом кадре есть информация о том какие оси на каких скоростях, сколько должны выполнить импульсов, и какие доп-выходы какой должны генерировать сигнал (для шпинделя, лазера, тумана).

В моем случае надо проверить, какой вариант разбора G кода будет быстрее - STM'кой или средствами браузера. Давно хотел поверить возможности WebAssembly.

Продолжение темы - http://www.cnc-club.ru/forum/viewtopic.php?f=41&t=19713.
Аватара пользователя
MX_Master
Мастер
 
Сообщения: 2626
Зарегистрирован: 27 июн 2015, 19:45
Откуда: форт Верный
Репутация: 1371
Медальки:
Настоящее имя: Михаил

Re: Плата развязки для LinuxCNC (Ethernet + STM32)

Сообщение selenur » 14 июн 2018, 10:58

MX_Master писал(а):Давно хотел поверить возможности WebAssembly.

посмотрел как выглядит "линейный ассемблерный код байт-код" :-)
Смесь Си и ассемблера в перемешку, выглядит конечно странновато....
Но интересно что из этого получится :-)
Мой блог: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Аватара пользователя
selenur
Почётный участник
Почётный участник
 
Сообщения: 3527
Зарегистрирован: 21 авг 2013, 19:44
Откуда: Новый Уренгой
Репутация: 1242
Медальки:
Настоящее имя: Сергей

Re: Плата развязки для LinuxCNC (Ethernet + STM32)

Сообщение MX_Master » 14 июн 2018, 11:24

selenur писал(а):посмотрел как выглядит "линейный ассемблерный код байт-код"
Смесь Си и ассемблера в перемешку, выглядит конечно странновато....

Мне тоже интересно. Потому что обычная виртуальная машинка для JavaScript в браузере работает не ахти как быстро. А тут практически машинный байт-код, который выполняется в песочнице.

Вот, кстати, и тесты - https://takahirox.github.io/WebAssembly-benchmark/
Видно, что именно на тяжёлых процессорных подсчётах WebAssembly намного быстрее.
Аватара пользователя
MX_Master
Мастер
 
Сообщения: 2626
Зарегистрирован: 27 июн 2015, 19:45
Откуда: форт Верный
Репутация: 1371
Медальки:
Настоящее имя: Михаил

Re: Плата развязки для LinuxCNC (Ethernet + STM32)

Сообщение UAVpilot » 14 июн 2018, 14:22

MX_Master писал(а):Видно, что именно на тяжёлых процессорных подсчётах WebAssembly намного быстрее.

Вобщем в очередной раз изобрели велосипед...
В давние времена, ещё до существования Java самым кросплатформенным языком был Tcl/Tk - работал на любых платформах, коих тогда было сильно больше трёх.
Так-же его можно было встроить в браузер (сейчас это называют плагинами) и исполнять Tcl скрипты в браузере.
Потом появилась группа людей, которые решили создать мощный, удобный и "единственный" кросплатформенный язык - и появила Java. Нет, про Tcl они конечно-же знали, просто его лицензия не позволяла продавать свои лицензии на его использование...
Кстати, по размеру Runtime комплекта Tcl/Tk и по использованию им памяти ему до сих пор нет равных среди других решений при одинаковом функционале.
1. Робот не может ответить отказом на предложение человека выпить или своим бездействием допустить, чтобы человек напился один.
Аватара пользователя
UAVpilot
Мастер
 
Сообщения: 15975
Зарегистрирован: 17 апр 2012, 14:58
Откуда: Москва
Репутация: 3901
Медальки:
Настоящее имя: Сергей

Re: Плата развязки для LinuxCNC (Ethernet + STM32)

Сообщение MX_Master » 14 июн 2018, 15:05

Сейчас практически любая новая мысль - это небольшая переработка старой идеи. Казалось бы, это плохо, велосипеды/повторение/блаблабла, но именно так идёт эволюция. Даже наш организм в цепочке ДНК несёт информацию, добытую эволюционно ещё черти сколько тысяч лет назад. Так что я не удивлюсь, если кто-то скоро подправит внешне Tcl/Tk, назовёт его иначе и разрекламирует это как новую прорывную технологию..
Аватара пользователя
MX_Master
Мастер
 
Сообщения: 2626
Зарегистрирован: 27 июн 2015, 19:45
Откуда: форт Верный
Репутация: 1371
Медальки:
Настоящее имя: Михаил

Re: Плата развязки для LinuxCNC (Ethernet + STM32)

Сообщение UAVpilot » 14 июн 2018, 16:11

Это эволюция способов победы маркетологов над инженерами.
Java и iPhone - классические примеры тому. Например ещё в 1998 году у меня в кармане лежал "наладонник" со встроенным мобильником и лишь спустя почти 10 лет Джобс "изобрёл" iPhone...
1. Робот не может ответить отказом на предложение человека выпить или своим бездействием допустить, чтобы человек напился один.
Аватара пользователя
UAVpilot
Мастер
 
Сообщения: 15975
Зарегистрирован: 17 апр 2012, 14:58
Откуда: Москва
Репутация: 3901
Медальки:
Настоящее имя: Сергей

Пред.След.

Вернуться в LinuxCNC

Кто сейчас на конференции

Зарегистрированные пользователи: 3DLab, aftaev, Alex lamaka, AlexVlg, atomichammer, Bing [Bot], blackwizard, borodaagvali, bunny_k, Сергей Саныч, chipok, CNC-Logic, eastwind, ferum, frezeryga, gigs, Google [Bot], killla, Kiriller, NikolayUa24, paganel, pavell1100, pdv1970, Q-starь, R6MF49T2, Reborn, selenur, sinys, Smlua, Titanius, UAVpilot, Udjin, viael, Yandex [bot], шпиндель

Поделиться

Reputation System ©'