Страница 5 из 7

Re: LinuxCNC + Ethernet контроллеры NVEM/EC300/EC500

Добавлено: 03 авг 2022, 12:32
Duhas
MX_Master писал(а): 03 авг 2022, 11:05 До каких высот и скоростей мы докатились :hehehe: Осталось только, чтобы контроллеры всё это дело аппаратно поддерживали

ЗЫ указанные в заголовке не могут
а чего там поддерживать? на входе оптики TTL и на выходе..

Re: LinuxCNC + Ethernet контроллеры NVEM/EC300/EC500

Добавлено: 03 авг 2022, 12:51
antoxa-kylibin
Инструкция это хорошо)

Re: LinuxCNC + Ethernet контроллеры NVEM/EC300/EC500

Добавлено: 03 авг 2022, 14:20
MX_Master
И снова про андроид в роли системы для ЧПУ.. был сейчас в отделении местного банка, который недавно появился на Казахстанском рынке. Ну так вот, на мониторе, который показывает позиции электронной очереди стоит самый бюджетный андроид ТВ Бокс - X96. На АЛИ цена таких - до 30$. Как грицца, а почему, собсна, и нет?

Уже с десяток людей у меня спрашивали про готовую и недорогую систему ЧПУ безо всякой фигни. А мне до сих пор, было нечего ответить. LinuxCNC, к слову, не относится к лёгким для понимания системам. А советовать даже самый хороший контроллер без, собсна, простой и удобной системы ЧПУ, смысла нет.

Надо вплотную заняться этой связкой из ТВ бокса и Ethernet контроллера. Вайфай на таких боксах есть из коробки, Ethernet порт там всегда свободен.

Re: LinuxCNC + Ethernet контроллеры NVEM/EC300/EC500

Добавлено: 03 авг 2022, 14:35
alex_sar
Идея отличная. Нужно иметь в виду что планировщик Андроид довольно таки жёстко обращается с приложениями. Поэтому сразу надо закладываться на кастомную прошивку (то есть придётся рутовать).

Если доступного рута нет, хорошего результата не выйдет.

Re: LinuxCNC + Ethernet контроллеры NVEM/EC300/EC500

Добавлено: 03 авг 2022, 16:27
MX_Master
alex_sar писал(а): 03 авг 2022, 14:35 Идея отличная. Нужно иметь в виду что планировщик Андроид довольно таки жёстко обращается с приложениями. Поэтому сразу надо закладываться на кастомную прошивку (то есть придётся рутовать).

Если доступного рута нет, хорошего результата не выйдет.
Соль идеи не только в самом андроиде, а в свободе выбора железа и в мультиплатформе. Вариант с андройдом это не сама цель, это бонус для удешевления железа. Вся цепочка получается практически такая же как на настольных системах. На андройде мы точь также подымаем веб-, вебсокет- и прочие ЧПУ серверы, причём, без root'a (но с ним будет веселей). А итоговое приложение (без root прав) нам, просто, показывает веб страницы локального веб-сервера в качестве интерфейса управления. Даже если приложение закроется, работа серверов не остановится. Плюс, при таком варианте углубляться в Java кодинг приложений практически не нужно. Можно, канеш, своё приложение и не писать, открывать всё в приложении стандартного (или другого) браузера. Но вариант своего приложения с WebView смотрится чуть лучше.

Re: LinuxCNC + Ethernet контроллеры NVEM/EC300/EC500

Добавлено: 03 авг 2022, 21:40
antoxa-kylibin
Приладить nvem к linuxcnc это хорошая идея, а вот сделать из тв бокса как то не верится мне..... Не зря же они 30$ стоят.... Есть у меня Х96 коробочка, валяется в углу..... Че с ней делать хз, ибо она даже по инету нормально каналы показывать не может, какие то тормоза вечные.... Потому и валяется в углу.... Почему то яндекс станция по тому же Wi-Fi так не тормозит, видать железки то разные у эти двух коробочке.....

Re: LinuxCNC + Ethernet контроллеры NVEM/EC300/EC500

Добавлено: 03 авг 2022, 21:42
antoxa-kylibin
Михаил, ну если вы конечно затеетесь с этой темой, у меня еси че есть такая коробочка. В качестве тестировщика могу помочь)))

Re: LinuxCNC + Ethernet контроллеры NVEM/EC300/EC500

Добавлено: 03 авг 2022, 21:58
ebragim
Проблема в том, что на ведроиде точно так же могут упасть и сервера, к которым ваше итоговое приложение или вебвью имеет доступ. И это бывает, я пробовал пару проектов 3дпечатных мозгов на андроиде, когда траектории генерирует в спокойном режиме недосервер, а в импульсы преобразует уже плата в принтере. Адекватной оказалась только пара клиппер+октопринт, но там сервер был в малинке на линуксе.
В принципе, если бы к вашему коду шёл нормальный конфигуратор как в голом линцнц, чтобы оператору не надо было бы писать хал и конфиги ручками, это было бы не хуже, в обёртке вебсервера...

Re: LinuxCNC + Ethernet контроллеры NVEM/EC300/EC500

Добавлено: 04 авг 2022, 00:25
antoxa-kylibin
Ну да, если бы в lcnc был бы законченный gui с встроенным конфигуратором, то и не нужно изобретать ничего.... А так, на каждый пук надо искать решение в виде дописывания чего то в hal, ini и т. д. Тот же qtdragon, уже нормальный gui в принципе, ещё бы конфигурирование станка как то внедрили бы в этот gui и было бы счастье..... Но те, кто разобрался с hal, ini и др. им уже проще руками доделать конфиг.... Эта проблема походу системная, кому это надо, те не алё в linuxcnc, а кто алё тем уже это не надо....

Re: LinuxCNC + Ethernet контроллеры NVEM/EC300/EC500

Добавлено: 04 авг 2022, 06:25
MX_Master
В тв боксе должен быть конфиг железа не ниже, чем у нормального смартфона. Проц 1.8ГГц, 4Гб ОЗУ, 64ГБ ПЗУ. Вот тогда со скоростью проблем практически не будет. А на приставках с медленным процем в 1,2 ГГц, 1Гб ОЗУ И 8Гб ПЗУ (сам пробовал) можно все нервы растерять, пока доберёшься до желаемого.

Недосервер должен быть настоящим сервером, который крутится под капотом андроида, т.е. в юзер зоне ядра Linux андроида, или в Linux эмуляторе, типа Termux. Ясен перец, что под чистым Linux на минипк серверы робят стабильнее, но скорость GUI в такой системе может взбесить юзера так, что он не захочет дальше с этим работать.

Конфигуратор для NVEM будет только при достаточном количестве пользователей. Пока их мало. Конфигуратор для моего контроллера будет обязательно. А новая система ЧПУ (так уж вышло, обсуждаем тут), работу которой я хочу протестировать под андроидом, будет иметь вместо конфигуратора страницу настроек в интерфейсе.

Re: LinuxCNC + Ethernet контроллеры NVEM/EC300/EC500

Добавлено: 04 авг 2022, 11:19
Prav
antoxa-kylibin писал(а): Не зря же они 30$ стоят....
Так китайцы их миллионами на весь мир производят, вот и цена поэтому низкая.

Re: LinuxCNC + Ethernet контроллеры NVEM/EC300/EC500

Добавлено: 07 авг 2022, 15:51
a321
MX_Master писал(а): Добавил в первый пост инструкцию
Я думаю, в составе общих слов можно добавить фразу о разнице в подходе езернет и лпт, мол де по лпт сигнал передается "как есть", а по езернет по протоколу, например, tcp (судя по картинке с роутером), каковой обеспечивает на уровне алгоритма, стандарта и пр. контроль целостности доставки пакетов, что имеет большое значение в смысле пропуска шагов.
Для меня прикладной вопрос - я размышляю над заменой имеющегося контроллера (6 моторов - это по мне). Но опять провода... Гипотеза - вместо обычного lan кабеля сомнительной гибкости использовать уже проложенные кабели (распаяв нужным образом). Сам контроллер разместить на портале станка и уже от него короткими проводами к исполнительным элементам.
НИчего магического в попарной закрутке, актуальной на момент изобретения в докопьютерной эпохе, с учетом особенностей протокола tcp, я не вижу - если ошибаюсь, пожалуйста поправьте.

Re: LinuxCNC + Ethernet контроллеры NVEM/EC300/EC500

Добавлено: 07 авг 2022, 23:07
MX_Master
Одна малюсенькая поправка - там нет TCP/UDP. Свой простой протокол на Ethernet уровне 2.

Re: LinuxCNC + Ethernet контроллеры NVEM/EC300/EC500

Добавлено: 07 авг 2022, 23:15
a321
MX_Master писал(а): 07 авг 2022, 23:07 Одна малюсенькая поправка - там нет TCP/UDP. Свой простой протокол на Ethernet уровне 2.
т.е. контроля целостности нет. Но через роутер работает - судя по картинке.

Re: LinuxCNC + Ethernet контроллеры NVEM/EC300/EC500

Добавлено: 07 авг 2022, 23:27
MX_Master
У меня есть вариант протокола, при котором каждый пакет проверяется даже на подлинность. Целостность - это на порядок легче. Но я эти проверки пока в сторону отложил. При прямом подключении к ПК ваще ничего не теряется и не бьётся. Но если кому-то будет нужно позарез, включим все проверки ;)

Re: LinuxCNC + Ethernet контроллеры NVEM/EC300/EC500

Добавлено: 07 авг 2022, 23:33
a321
MX_Master писал(а): При прямом подключении к ПК ваще ничего не теряется и не бьётся.
Это, как правило, в теории. В моем гипотетическом случае кабель от компа к плате, которая на портале (будет) - это 7.5 метров. С вытекающими наводками и пр. Лучше предусмотреть "избыточность" при передаче сигналов.

Re: LinuxCNC + Ethernet контроллеры NVEM/EC300/EC500

Добавлено: 07 авг 2022, 23:42
MX_Master
Одна галочка в настройке проекта и целостность будет проверяться аппаратно. Я ж грю, всё в этом плане уже написано, придумано и сделано.

Re: LinuxCNC + Ethernet контроллеры NVEM/EC300/EC500

Добавлено: 14 авг 2022, 21:46
MX_Master
Проект открытого софта для NVEM потихоньку продвигается, но есть свои трудности - https://forum.linuxcnc.org/18-computer/ ... 310#249560. Автору проекта я подсказал, куда двигаться, будем следить за развитием проекта.

Re: LinuxCNC + Ethernet контроллеры NVEM/EC300/EC500

Добавлено: 03 сен 2022, 19:24
MX_Master
MX_Master писал(а): 14 авг 2022, 21:46 Проект открытого софта для NVEM потихоньку продвигается, но есть свои трудности - https://forum.linuxcnc.org/18-computer/ ... 310#249560. Автору проекта я подсказал, куда двигаться, будем следить за развитием проекта.
Автор открытого проекта немного притормозил эксперимент с высокоскоростным выводом шагов. Задача непростая, сам проходил. Пожелаем дальнейших успехов и терпения.

А я, тем временем, добавил в прошивку программные энкодерные счётчики. Пока что опрос ведётся на частоте 100КГц. Код счётчика довольно простой. Если кто-то желает подчерпнуть что-то для себя или улучшить мой вариант, милости просим

Код: Выделить всё

volatile uint32_t encoder_states[4] = {0b01, 0b11, 0b00, 0b10};

void encoder_main_loop() {
  static uint32_t state, c;
  for ( c = ENCODER_CH_CNT; c--; ) {
    if ( !encoder[c].en ) continue;
    if ( encoder[c].find_z ) {
      if ( (encoder[c].Z_port->IDR & encoder[c].Z_pin_msk) ) {
        encoder[c].find_z = 0;
        encoder[c].pos = 0;
      }
    }
    state  = (encoder[c].A_port->IDR & encoder[c].A_pin_msk) ? 0b10 : 0x00;
    state |= (encoder[c].B_port->IDR & encoder[c].B_pin_msk) ? 0b01 : 0x00;
    if ( state == encoder[c].state ) continue;
    encoder[c].pos += encoder_states[encoder[c].state] == state ? 1 : -1;
    encoder[c].state = state;
  }
}

Re: LinuxCNC + Ethernet контроллеры NVEM/EC300/EC500

Добавлено: 03 сен 2022, 20:37
wldev
MX_Master писал(а): Код счётчика довольно простой. Если кто-то желает подчерпнуть что-то для себя или улучшить мой вариант, милости просим

Код: Выделить всё

void encoder_main_loop() {

static uint32_t stateA, stateB, c;

for ( c = ENCODER_CH_CNT; c--; ) {
	
stateA=encoder[c].A_port->IDR & encoder[c].A_pin_msk;
stateB=encoder[c].B_port->IDR & encoder[c].B_pin_msk;

if(stateA!=encoder[c].stateA
 &&stateB!=encoder[c].stateB) //если оба канала изменились то значит не успели
   {
   //Error
   }   
   
if(encoder[c].stateA!=stateA){ //считаем фронт A
   encoder[c].stateA=stateA; 
   
    if(satateA){                            
    encoder[c].pos + = stateB ? -1:1; 
    }else{
    encoder[c].pos + = stateB ?  1:-1; 
    }   
   }else if(encoder[c].stateB!=stateB){ //считаем фронт B
            encoder[c].stateB=stateB; 
		 
            if(satateB){
            encoder[c].pos + = stateA ?  1:-1;
            }else{
            encoder[c].pos + = stateA ? -1:1;
            }
         }		
}

}

Код: Выделить всё

if ( state == encoder[c].state ) continue; //дальше пройдём только если неравно
    encoder[c].pos += encoder_states[encoder[c].state] == state ? 1 : -1;  // и здесь всегда будет только  -1?
    encoder[c].state = state;