реклама на сайте
подробности

 
 
11 страниц V  « < 8 9 10 11 >  
Reply to this topicStart new topic
> Система команд сервоконтроллера, обсудим?
dpss
сообщение Feb 21 2009, 06:26
Сообщение #136


Знающий
****

Группа: Свой
Сообщений: 540
Регистрация: 19-04-08
Из: Москва
Пользователь №: 36 913



Цитата(khach @ Feb 21 2009, 01:20) *
Может кто еще подскажет опенсоурсные проекты контроллеров или вообще полезные ссылки по управлению моторами и интерпретации кода.

Небольшое обсуждение реализации Look ahead на форуме http://www.forum.gigamesh.ru/viewtopic.php?f=50&t=64

Сообщение отредактировал dpss - Feb 21 2009, 06:27
Go to the top of the page
 
+Quote Post
Rst7
сообщение Feb 21 2009, 08:39
Сообщение #137


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Павел, я тут помыслил насчет текстового режима информационного обмена - как-то плохо эхо на RS485 ложится, не кажется?


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
Rst7
сообщение Feb 21 2009, 11:30
Сообщение #138


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Кстати, об этом:
Код
/*  reduced to 32 bits */
    int32_t     DDA1;            // speed (dS/dt)
    int32_t     DDA2;            // acceleration (d2S/dt)
    int32_t        DDA3;            // accel.derivative (d3S/dt)


В Маче фигурирует int64 в виде fixed point 32.32


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Feb 21 2009, 12:12
Сообщение #139


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата(khach @ Feb 20 2009, 23:27) *
 Есть ли исходники цилиндрической интерполяции

Джентльмены, скажите, плз, что мешает цилиндр.интерполяцию перевести в сплайны по осям?


Цитата(dpss @ Feb 21 2009, 00:57) *
Переход без торможения - это так называемый предварительный просмотр кадров.

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

Цитата(Rst7 @ Feb 21 2009, 11:39) *
 как-то плохо эхо на RS485 ложится, не кажется?

Что конкретно беспокоит? Пока я в девайсе заложил всегда включенный прием (т.е. для коллизий) и паузу в 3.5 символа - типо-таймаут если недополучили или неправильный строка. Посимвольного эха не будет - это и ежу понятно.

Цитата(Rst7 @ Feb 21 2009, 14:30) *
Кстати, об этом:
Код
/*  reduced to 32 bits */
    int32_t     DDA1;            // speed (dS/dt)
    int32_t     DDA2;            // acceleration (d2S/dt)
    int32_t        DDA3;            // accel.derivative (d3S/dt)


В Маче фигурирует int64 в виде fixed point 32.32

Резать до 16.16 можно и по месту. Тогда для удобства сервостроителей вносим


Код
typedef struct

{
  int32_t integer;
 uint32_t fractional;
}fixpt64;


и меняем этот кусок на


Код
    fixpt64     DDA1;            // speed (dS/dt)
    fixpt64     DDA2;            // acceleration (d2S/dt)
    fixpt64     DDA3;            // accel.derivative (d3S/dt)


Нет возражений ?
ЗЫ движок форума реально достал...
Go to the top of the page
 
+Quote Post
Rst7
сообщение Feb 21 2009, 12:31
Сообщение #140


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Цитата
Что конкретно беспокоит?


Да уже ничего. Мерещилось посимвольное эхо. Сам дурак smile.gif

Цитата
Еще один проход интерполятора. Т.е. склейка кадров и, может быть, в рамках одного полинома. Если не выключать оптимизм, в 4 квартале 2009 можно получить вовсе не монстроидальное решение на том же STR750.


Стоп-стоп. Какие еще монстроидальные решения? На сколько я понял в гинекологии того-же Mach'а, при выставленной где-то галочке он сам будет давать нам склеенные DDA. Склеенные - в смысле без торможений лишних.

Цитата
typedef struct
{
int32_t integer;
uint32_t fractional;
}fixpt64;


А смысл?
Код
typedef long long fixpt64;

да и всех делов.


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Feb 21 2009, 12:51
Сообщение #141


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата(Rst7 @ Feb 21 2009, 15:31) *
Стоп-стоп. Какие еще монстроидальные решения? На сколько я понял в гинекологии того-же Mach'а, при выставленной где-то галочке он сам будет давать нам склеенные DDA. Склеенные - в смысле без торможений лишних.

Тогда это вопрос к ув. khach


Когда-то спросил у одного чела про линуксовые средства. Он мне ответил: "Какой нах линукс?! Мач!". Вопрос отпал smile.gif

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

Цитата
А смысл?
Код
typedef long long fixpt64;

да и всех делов.

Предполагается, что этот файл будет для всех один. Можно так, можно эдак. По мне - пусть с явным разделением. Тогда еще и в union обернуть.

Это единственный аргумент. Если в сад - напишите. Будет в сад.
Go to the top of the page
 
+Quote Post
Rst7
сообщение Feb 21 2009, 13:15
Сообщение #142


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Цитата
Предполагается, что этот файл будет для всех один. Можно так, можно эдак. По мне - пусть с явным разделением. Тогда еще и в union обернуть.


Ну и что? Это ж для прошлого века, сейчас все компиляторы хавают long long без вопросов. А то потом вот такие уродцы генетические получаются:
Код
((WTCubic*)&Cubic.Message)->d[axis].dda1.i = (signed long)(dda1[axis] >> 32);
((WTCubic*)&Cubic.Message)->d[axis].dda1.f = (unsigned long)(dda1[axis] & 0xFFFFFFFFuLL);
((WTCubic*)&Cubic.Message)->d[axis].dda2.i = (signed long)(dda2[axis] >> 32);
((WTCubic*)&Cubic.Message)->d[axis].dda2.f = (unsigned long)(dda2[axis] & 0xFFFFFFFFuLL);
((WTCubic*)&Cubic.Message)->d[axis].dda3.i = (signed long)(dda3[axis] >> 32);
((WTCubic*)&Cubic.Message)->d[axis].dda3.f = (unsigned long)(dda3[axis] & 0xFFFFFFFFuLL);


Причем, заметьте, dda1[] объявлен как массив 64хбитных значений. А в WTCubic - криворучье smile.gif


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
khach
сообщение Feb 21 2009, 13:52
Сообщение #143


Гуру
******

Группа: Свой
Сообщений: 3 439
Регистрация: 29-12-04
Пользователь №: 1 741



Цитата(_Pasha @ Feb 21 2009, 14:51) *
Тогда это вопрос к ув. khach
Когда-то спросил у одного чела про линуксовые средства. Он мне ответил: "Какой нах линукс?! Мач!". Вопрос отпал smile.gif

Линух в топку (хотя и было такое желание, когда контроллер с Эзернетом рассматривался, но слишком монстрически получалось). LinuxCNC только источник исходников, в котором есть много полезного - например интерполяция (в том числе и по скорости), компенсация люфтов на уровне управления моторами итд. Если бы были исходники Мачевского ЛПТшного дрыгоножества- то конечно бы использовал бы их, не надо было бы возиться с "особенностями реализации".
Сплайн опасен в местах резкого изменения траектории- может нарисовать петлю около точки перелома и соответственно воткнуть фрезу. По скорости - при применении серв не всега получается ехать со скоростью, которую Мач прописывает в пакетах, на тяжелых станках и слабых сервоприводах разгон-остановка затягиваются, надо их в драйвер переносить. При использовании серв бывает приятно вести фрезу с постоянной нагрузкой на шпиндель- обратная связь от датчика тока/мощности на моторе шпинделя. Хотелось бы реализовать.
Да кстати вопрос по интерполяции. Мач может выдать ребования на сферическую инерполяцию или она всегда будет цилиндрической (одна из точек центра интерполяции и начало и конец траектории всегда лежат в одной плоскости по одной из осей) или возможно требование сферической интерполяции?
Вот по этой цитате из мануала следует что Мач может требовать от драйвера циркулярной интерполяции по двум осям и синхронизированной с ней линейной подачи по любой другой оси. Я правильно понял?
Код
10.1.7 Arc Motion
Any pair of the linear axes (XY, YZ, XZ) can be controlled to move in a circular arc in the
plane of that pair of axes. While this is occurring, the third linear axis and the rotational
axes can be controlled to move simultaneously at effectively a constant rate. As in coordinated
linear motion, the motions can be co-ordinated so that acceleration and
deceleration do not affect the path.
If the rotational axes do not move, but the third linear axis does move, the trajectory of the
controlled point is a helix
Go to the top of the page
 
+Quote Post
dpss
сообщение Feb 21 2009, 16:38
Сообщение #144


Знающий
****

Группа: Свой
Сообщений: 540
Регистрация: 19-04-08
Из: Москва
Пользователь №: 36 913



Добавлю к предидущему посту. Специализированное оборудование часто требует дополнительных действий или движений при отработки программы. Это сложно а иногда невозможно учесть при генерации NC кода в CAMе. Например проволочный эррозионный станок должен поддерживать зазор между проволокой и деталью , а в случае замыкания отводить проволоку назад по контуру. Машины лазерной, термической или гидроабразивной резки
должны делать зарез вне контура , стеклорезной машине нужно ориентировать рабочий ролик вдоль движения. Без исходников или специализированной библиотеки это не сделать.
Go to the top of the page
 
+Quote Post
Rst7
сообщение Feb 21 2009, 16:56
Сообщение #145


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Цитата
Вот по этой цитате из мануала следует что Мач может требовать от драйвера циркулярной интерполяции по двум осям и синхронизированной с ней линейной подачи по любой другой оси. Я правильно понял?


Судя по исходникам в мачевском SDK все драйверы пользуют исключительно приготовленные самим Мачем коэффициенты для кубического сплайна, которым определяется текущая скорость привода.

Я сейчас (не конкретно сей секунд, а за пару-тройку дней) попробую написать эмулятор сервопривода для Мача, будем смотреть более конкретно, как он себя ведет и чем кормит wink.gif


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Feb 21 2009, 22:29
Сообщение #146


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата(khach @ Feb 21 2009, 16:52) *
Сплайн опасен ...может нарисовать петлю

Если рассуждать логически, то это не косяки сплайна, а недостаточное кол-во элементарных перемещений, т.е. попытка "объять необъятное" одним интерполяционным интервалом. Можно даже ввести дополнительное условие на проверку "опасности" интервала - по знаку второй производной в начале и в конце планируемого движения.
Цитата
По скорости ... надо их в драйвер переносить.

Спасибо! Технологические настройки будут в серваках обязательно, до них можно будет добраться, и копия, очевидно, будет в мастере - без нее никак в некоторых случаях. 
-Пересчет шага/скорости в реальные координаты в плавающем формате
-Ограничения на скорость/ускорение/произв.ускорения.
-Может быть, решится через токовую защиту в виде нормированных параметров. Пока думаю.
Цитата
вести фрезу с постоянной нагрузкой на шпиндель

Штатными средствами - фигушки smile.gif Это будет ужЕ самодеятельной частью протокола, в котором предусмотрены регистры S(координата) V(скорость) M(момент) T(время) 
Если нам удастся утрясти быстрый протокол (с приращениями).

Цитата
Мач может выдать ребования на сферическую инерполяцию или она всегда будет цилиндрической
 
В т.ч на сферическую
Цитата
Я правильно понял?

ДА.

Цитата(dpss @ Feb 21 2009, 19:38) *
Например...  в случае замыкания отводить проволоку назад по контуру.
Это есть внешняя по отношению к основному контуру регулирования обратная связь. Пока не рассматриваем.

Цитата
зарез вне контура... ориентировать рабочий ролик вдоль движения.

В общем случае, мало кто согласится на что-то кроме ручного управления процессом, ввиду его недостаточной формализуемости.
Go to the top of the page
 
+Quote Post
dpss
сообщение Feb 22 2009, 08:51
Сообщение #147


Знающий
****

Группа: Свой
Сообщений: 540
Регистрация: 19-04-08
Из: Москва
Пользователь №: 36 913



Цитата(slog @ Feb 19 2009, 20:14) *
Как бы раздобыть EtherCAT IP core for Altera? Много ли денег за него хотят? Может где-то в и-нете оно уже лежит?

Прайс лист на продукцию Бекхофа годовалой давности. Там есть цены на ET1100 , ET1200. При количестве больше 200 цена вполне терпимая.
Дилеры их не продают. Нужно обращаться в сам Бекхоф. (можно в Московское представительство) www.promotechsrl.it/gestione/pdf/fieldbus_0108.csv
Go to the top of the page
 
+Quote Post
dpss
сообщение Feb 24 2009, 08:17
Сообщение #148


Знающий
****

Группа: Свой
Сообщений: 540
Регистрация: 19-04-08
Из: Москва
Пользователь №: 36 913



Цитата(dpss @ Feb 22 2009, 11:51) *
Чтобы его портировать под плату на АРМе без Линуха надо очень много выкидывать.

На форуме cnczone.ru пльзователь serq_io говорит что уже вырезал из EMC ядро (интерпретатор, планировщик, интерполятор) и портировал его на ARM7.

Сообщение отредактировал dpss - Feb 24 2009, 08:18
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Feb 24 2009, 08:55
Сообщение #149


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата(dpss @ Feb 24 2009, 11:17) *
говорит что уже вырезал из EMC ядро



Стремный софт:

Цитата
EMC2 is precompiled with Ubuntu LTS (long term support) versions for ease of installation and longevity. 
Note: Do Not upgrade Ubuntu from the installed version as it will prevent EMC from working
Go to the top of the page
 
+Quote Post
Огурцов
сообщение Feb 24 2009, 10:10
Сообщение #150


Гуру
******

Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588



Цитата(dpss @ Feb 24 2009, 08:17) *
На форуме cnczone.ru пльзователь serq_io говорит что уже вырезал из EMC ядро (интерпретатор, планировщик, интерполятор) и портировал его на ARM7.

Странный форум - не пускает. Регаться надо ? Порт там выложен ?


Кстати, вспомнил. Про стандарты на систему команд - у микрософта оно есть.
Go to the top of the page
 
+Quote Post

11 страниц V  « < 8 9 10 11 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 19:56
Рейтинг@Mail.ru


Страница сгенерированна за 0.01504 секунд с 7
ELECTRONIX ©2004-2016