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

 
 
> Система команд сервоконтроллера, обсудим?
_Pasha
сообщение Feb 16 2009, 13:23
Сообщение #1


;
******

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



Доброго времени суток! "Заболел" я созданием мелкого сервоконтроллера. Очень хочется поговорить о системе команд, поскольку то, что я наблюдаю в openservo, elm-chan и в аппликухах microchip, не нравится. Думаю, может лучше подмножество G-кода огранизовать? Кто из сервостроителей имеет свое мнение на сей счет? Только не надо Siemens и т.п. цитировать - немножко уровень полулюбительский должен остаться. В идеале хочется, чтобы в конце обсуждения появился некий маленький "стандартик" на систему команд и применяемые интерфейсы и протоколы. Или организую RS-274D, если это никому не интересно. 
Go to the top of the page
 
+Quote Post
11 страниц V   1 2 3 > »   
Start new topic
Ответов (1 - 99)
haker_fox
сообщение Feb 16 2009, 14:40
Сообщение #2


Познающий...
******

Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125



Цитата(_Pasha @ Feb 16 2009, 21:23) *
Доброго времени суток! "Заболел" я созданием мелкого сервоконтроллера. Очень хочется поговорить о системе команд, поскольку то, что я наблюдаю в openservo, elm-chan и в аппликухах microchip, не нравится.

Вы имеете в виду эти странные Dir & Step? Если речь о них, то я тоже не могу их назвать удобными, т.к. никакой полезной инфой с сервой не обменяешься. Ни конфиги принять/передать, ничего.
Цитата(_Pasha @ Feb 16 2009, 21:23) *
Думаю, может лучше подмножество G-кода огранизовать?

Беглое знакомство с G-кодом говорит, что он скорее предназначен для программирования уже готовой системы, например станка. А серва это лишь периферия ЧПУшного оборудования. Кстати, подобная проблема обсуждалась в моей ветке по приводу, вот только плохо помню, где она. Но там пришли к выводу, что можно (и я реализовал, кроме I2С) сделать два интерфейса: RS-232 и I2C. Первый для сервисного обслуживания, т.е. для работы "на столе" потестировать, настроить, что не исключает подключение по нему и к системе более выского ранга. Второй - как раз ориентирован для работы в системе. Над протоколом I2C, к сожалению пока еще все не думал, так вышло( Но как основу хотел покопать протокол на www.openservo.com . Там тоже серва по I2C управляется.
Цитата(_Pasha @ Feb 16 2009, 21:23) *
очется, чтобы в конце обсуждения появился некий маленький "стандартик" на систему команд и применяемые интерфейсы и протоколы.

Всеми четырьмя лапами за!!!) Все равно это прорабатывать придеться в будущем. Почему бы не заняться сейчас?!
Цитата(_Pasha @ Feb 16 2009, 21:23) *
Или организую RS-274D, если это никому не интересно.

Ну что Вы, интерес есть!

Что касается меня, то я придерживаюсь пока двух интерфейсов, как написал выше.
Интерфейс для RS-232 создан по образу одного из микрочиповских аппноутов. Т.е. примерно это я ввожу в терминалке:
Цитата
$ m 250

Где доллар - приглашение командной строки сервы.
m - задать вручную значение PWM.
250 - непосредственное значение. Все подтверждается ENTERом. Редактирование не возможно. Т.к. программа сервы это не поддерживает.
Все остальные команды в подобном стиле. Например * позвояет посмотреть все текущие настройки сервы (параметры ПИДа, заданной скорости и тд). В общем, все пока примитивненько. Но общими силами может быть и получится что-то? Очень надеюсь на это!!!

Паша, респект!


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
evgeny_ch
сообщение Feb 16 2009, 14:55
Сообщение #3


чукчхэшаражогрмонтажник
*****

Группа: Участник
Сообщений: 1 852
Регистрация: 13-07-07
Из: Minsk
Пользователь №: 29 094



Цитата(_Pasha @ Feb 16 2009, 17:23) *
Доброго времени суток! "Заболел" я созданием мелкого сервоконтроллера. Очень хочется поговорить о системе команд, поскольку то, что я наблюдаю в openservo, elm-chan и в аппликухах microchip, не нравится. Думаю, может лучше подмножество G-кода огранизовать? Кто из сервостроителей имеет свое мнение на сей счет?
...
В станках G-код преобразуется (скажем постпроцессором) в команды контроллера.
Долго и нудно описывать, назову группы.
Калибровка привода.
Отображение состояния.
Включение/выкл. функций.
Сброс, запись, чтение, сохранение, ожидание.
Тестовые.
Знач. параметров двигателя, энкодера, регуляторов.
Величина и тип перемещения.
Ввод программы, загр. прогр. в EEPROM, старт программы.
И пр. мелочи. biggrin.gif


--------------------
Quo vadis?
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Feb 16 2009, 15:01
Сообщение #4


;
******

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



Цитата(haker_fox @ Feb 16 2009, 18:40) *
Паша, респект!

smile.gif до респекта далеко еще. Думается, надо для начала определить, какая скорость передачи будет считаться нормальной. Вариант "чем больше тем лучше" не нужен совершенно. К чему привязаться? К длительности сервоцикла? Вроде слишком избыточно. Я возможность изменения настроек в процессе выполнения команды ("на лету") никогда не разрешаю ни в одном своем моторном девайсе. Надо поменять - остановился и поменял. Хотя, было один раз - наступил на свои же грабли. Но к серваку то же: никаких настроек на лету. Только команды. А какое должно быть минимальное время между командами ?

Цитата(evgeny_ch @ Feb 16 2009, 18:55) *
В станках G-код преобразуется (скажем постпроцессором) в команды контроллера.

Т.е напрямую G-код на контроллер сервака никогда не поступит? "В команды контроллера" - слишком расплывчатое определение. Интересно, насколько это стандартизовано.
Go to the top of the page
 
+Quote Post
arisov
сообщение Feb 16 2009, 15:08
Сообщение #5


Частый гость
**

Группа: Свой
Сообщений: 157
Регистрация: 17-02-07
Из: Ульяновск
Пользователь №: 25 455



А зачем всё это? Для полулюбительского уровня мне кажется уже достаточно G-code. Другое дело – интерфейс. Для самодельщиков-ЧПУшников актуально будет управление через USB или ТСР, т.к. LPT «отходит». И ориентироваться надо, на мой взгляд, на самую популярную программу Масh3.
Go to the top of the page
 
+Quote Post
evgeny_ch
сообщение Feb 16 2009, 15:15
Сообщение #6


чукчхэшаражогрмонтажник
*****

Группа: Участник
Сообщений: 1 852
Регистрация: 13-07-07
Из: Minsk
Пользователь №: 29 094



Цитата(_Pasha @ Feb 16 2009, 19:01) *
...
Т.е напрямую G-код на контроллер сервака никогда не поступит? "В команды контроллера" - слишком расплывчатое определение. Интересно, насколько это стандартизовано.
Нет смысла передавать G-код в контроллер, это снизит быстродействие.
Хост (PLC, например) транслирует G-код в команды контроллеров (!) привода.
Насчет стандартов не знаю, я же бывший. biggrin.gif

Сообщение отредактировал evgeny_ch - Feb 16 2009, 15:16


--------------------
Quo vadis?
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Feb 16 2009, 15:25
Сообщение #7


;
******

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



Цитата(haker_fox @ Feb 16 2009, 18:40) *
как основу хотел покопать протокол на www.openservo.com

Кстати, я большой противник регистров, их адресов и прочей низкоуровневой шелухи. Только команды. Например, для "тупокрутилок" асинхронных двигателей у меня такое:
Код
Адрес устройства
Размер блока данных
Адрес вызывающего
Команда мастера или статус слейва (слейв - привод)
Опциональные данные (ограничены макс длиной блока - 4байта)
CRC8 типа как у DS18B20

А команды:
Код
0x00 - сводка о состоянии привода (набор параметров программируется)
0x01.. 0x7F пространство команд чтения параметров
0x80 - программируется содержимое, выдаваемое командой 0x00
0x81..0xFE пространство команд записи параметров
0xFF - резерв, какой-нить HELP по поводу того или иного параметра. Например 0xFF 0x00 привод выдаст "GET_BRIEF"

Меняются версии, контроллеры, вместо простенького пульта компьютер... протокол изменять надобности нет.

Цитата(arisov @ Feb 16 2009, 19:08) *
И ориентироваться надо, на мой взгляд, на самую популярную программу Масh3.

Да-да-да. Есть такое подозрение smile.gif Только хоцца и объять необъятное и определить нужный людям уровень универсальности.
Go to the top of the page
 
+Quote Post
haker_fox
сообщение Feb 16 2009, 15:27
Сообщение #8


Познающий...
******

Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125



Цитата(arisov @ Feb 16 2009, 23:08) *
А зачем всё это?

Вопрос риторический, ответа не имеет... Ведь и elm-chan когда-то создавался...
Цитата(arisov @ Feb 16 2009, 23:08) *
актуально будет управление через USB или ТСР

TCP, пожалуй, тяжеловато да и монстрообразно для привода. Хотя при современном спектер недорогих армов вполне. Но речь идет об интерфейсе не системы ЧПУ, где эти интерфесы как раз, а о серве. Где можно применить дешевый AVR или PIC, но поднять USB или TCP на их бортах дело тяжелое, да и зачем?
Цитата(arisov @ Feb 16 2009, 23:08) *
т.к. LPT «отходит».

Есть еще RS-232. И дешевые конвертилки RS-232<->USB. Поэтому (ИМХО) RS-232 забывать не стоит)


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
arisov
сообщение Feb 16 2009, 15:29
Сообщение #9


Частый гость
**

Группа: Свой
Сообщений: 157
Регистрация: 17-02-07
Из: Ульяновск
Пользователь №: 25 455



А какой смысл применения своих команд, если это никакой прогой не будет поддерживаться? Возможно это пригодиться только единицам.
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Feb 16 2009, 15:35
Сообщение #10


;
******

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



TCP не надо: поголовно никто ставить не будет, а в качестве опции - вот, мосты всяческие ETHERNET<->RS-485. А потом, возможно, придется двигаться в сторону RTP (все равно рано или поздно к этому придут) - это уж точно ни в какой  АВР не влезет smile.gif
Go to the top of the page
 
+Quote Post
arisov
сообщение Feb 16 2009, 15:36
Сообщение #11


Частый гость
**

Группа: Свой
Сообщений: 157
Регистрация: 17-02-07
Из: Ульяновск
Пользователь №: 25 455



Цитата(haker_fox @ Feb 16 2009, 18:27) *
Есть еще RS-232. И дешевые конвертилки RS-232<->USB. Поэтому (ИМХО) RS-232 забывать не стоит)

Дешёвые конвертилки на FT232 почему «отваливаются» с сервоконтроллером, при чём не только у меня. biggrin.gif
http://kazus.ru/forum/topics/14286.html

И здесь http://forum.rcdesign.ru/f41/thread40981-5.html#post1037070 начиная с сообщения №165
Go to the top of the page
 
+Quote Post
haker_fox
сообщение Feb 16 2009, 15:41
Сообщение #12


Познающий...
******

Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125



Цитата(arisov @ Feb 16 2009, 23:29) *
А какой смысл применения своих команд, если это никакой прогой не будет поддерживаться? Возможно это пригодиться только единицам.

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

Как все-таки по поводу Rs-232 для подключения к кому, чтобы можно было из терминалки с приводом пообщаться? Ведь не всегда под рукой будет спецсофт, да стойка ЧПУ, а вот комп с примитивным терминалом обычно есть... (ИМХО). Да и для матлаба такой интерфейс, наверно больше подходит. Я вот сейчас пытаюсь в матлаб со своего привода данные гнать, для моделирования... RS-232 в этом деле как раз кстати: простота, куча примеров в инете... и тп.


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
arisov
сообщение Feb 16 2009, 15:44
Сообщение #13


Частый гость
**

Группа: Свой
Сообщений: 157
Регистрация: 17-02-07
Из: Ульяновск
Пользователь №: 25 455



Цитата(haker_fox @ Feb 16 2009, 18:41) *
...Как все-таки по поводу Rs-232 для подключения к кому, чтобы можно было из терминалки с приводом пообщаться?...

Если уж с терминальной программой «отваливается», то чё уж тогда говорить о непосредственном управлении.
Go to the top of the page
 
+Quote Post
haker_fox
сообщение Feb 16 2009, 15:47
Сообщение #14


Познающий...
******

Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125



Цитата(arisov @ Feb 16 2009, 23:36) *
Дешёвые конвертилки на FT232 почему «отваливаются» с сервоконтроллером, при чём не только у меня. biggrin.gif
http://kazus.ru/forum/topics/14286.html

И здесь http://forum.rcdesign.ru/f41/thread40981-5.html#post1037070 начиная с сообщения №165

Бегло прочел. Там говорят что нужен оптрон. Так в моем приводе силовая L298 уже оптронами отделена от цифры... Может быть поэтому ничего не отваливается, правда я долго не тестировал. Кстати, тут много споров было по поводу оптронов. Может быть ответ тут, в этой ветке?)

Цитата(arisov @ Feb 16 2009, 23:44) *
Если уж с терминальной программой «отваливается», то чё уж тогда говорить о непосредственном управлении.

Так я и не предлагаю RS-232 для непосредственного управлениея unsure.gif Ну а "отваливание" нужно решать. Интерефейс-то из за этого игнорироваться не должен rolleyes.gif


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
arisov
сообщение Feb 16 2009, 15:47
Сообщение #15


Частый гость
**

Группа: Свой
Сообщений: 157
Регистрация: 17-02-07
Из: Ульяновск
Пользователь №: 25 455



Вот Screen из Mach.
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
haker_fox
сообщение Feb 16 2009, 15:51
Сообщение #16


Познающий...
******

Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125



Цитата(arisov @ Feb 16 2009, 23:47) *
Вот Screen из Mach.

Там я LPT вижу и что-то еще, связанное с TCP?
___________
OFF: у меня тут уже полночь почти пришла. Завтра на учебу и работу рано. Хочется, конечно, поучавствовать, но надо спать идти. Не хочу спать на парте перед лектором)
Завтра днем посмотрю, что получится из обсуждения.
Всем успехов!


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
arisov
сообщение Feb 16 2009, 15:59
Сообщение #17


Частый гость
**

Группа: Свой
Сообщений: 157
Регистрация: 17-02-07
Из: Ульяновск
Пользователь №: 25 455



Можно выбирать тип интерфейса (протокола) LPT или TCP Modbus, например. Производители оборудования (сервоконтроллеров) обычно дополняют Mach различными плагинами для согласования.
Go to the top of the page
 
+Quote Post
Rst7
сообщение Feb 16 2009, 16:10
Сообщение #18


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

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



Цитата
TCP не надо: поголовно никто ставить не будет, а в качестве опции - вот, мосты всяческие ETHERNET<->RS-485.


Можем скооперироваться. У меня как-раз тут рояль завалялся - недорогой мост Modbus Over Serial Line <-> Modbus Over TCP. Можем с модбаса переточить на что-нибудь другое.


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


Частый гость
**

Группа: Свой
Сообщений: 157
Регистрация: 17-02-07
Из: Ульяновск
Пользователь №: 25 455



_Pasha а это будет коммерческая разработка или OpenServo?
Go to the top of the page
 
+Quote Post
Duhas
сообщение Feb 16 2009, 17:35
Сообщение #20


Местный
***

Группа: Участник
Сообщений: 227
Регистрация: 13-04-07
Пользователь №: 27 018



в принципе могут быть актуальны задание ускорения, времени выполнения перемещений и тд... в обратку отдавать факты перегруза по току и прочие казусы...
Go to the top of the page
 
+Quote Post
arisov
сообщение Feb 16 2009, 18:47
Сообщение #21


Частый гость
**

Группа: Свой
Сообщений: 157
Регистрация: 17-02-07
Из: Ульяновск
Пользователь №: 25 455



Это уже не любительский получается. А в любительских задание ускорения, времени выполнения перемещений и т.д. выполняется в управляющей программе обработки, обратная связь – единственный сигнал ServoError объединяющий несколько ошибок (рассогласование позиции, большие и долгие перегрузки по току и т.п.) подается снова в управляющую программу. В управляющей программе при поступлении этого сигнала (по отдельному входу) происходит экстренная остановка.
Любителям всех этих наворотов, как я понял не надо. Им даже концевиков ограничения хода не надо, т.к. они тоже предусмотрены в некоторых программах.
Любителям надо НЕДОРОГОЙ, надёжный сервоконтроллер с максимальной частотой (энкодер) 100-150кГц, напряжением питания серводвигателя – до 150В, мощностью – до 1кВт. С регулируемой защитой по току. И как я уже писал желательно с интерфейсом согласования USB, т.к. многие сейчас переходят на ноутбуки (один комп – несколько станков).
Go to the top of the page
 
+Quote Post
Rst7
сообщение Feb 16 2009, 19:09
Сообщение #22


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

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



Цитата
И как я уже писал желательно с интерфейсом согласования USB, т.к. многие сейчас переходят на ноутбуки (один комп - несколько станков).


А мне кажется, что "нечто over TCP" с физикой в виде Ethernet будет самое оно - объединяй в одной сети сколько надо приводов, а по помехоустойчивости и дальности эзернет на голову выше USB.


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


Частый гость
**

Группа: Свой
Сообщений: 157
Регистрация: 17-02-07
Из: Ульяновск
Пользователь №: 25 455



Конечно было бы ещё лучше, просто выше писали о сложностях при этом.
Go to the top of the page
 
+Quote Post
evgeny_ch
сообщение Feb 16 2009, 19:19
Сообщение #24


чукчхэшаражогрмонтажник
*****

Группа: Участник
Сообщений: 1 852
Регистрация: 13-07-07
Из: Minsk
Пользователь №: 29 094



Цитата(_Pasha @ Feb 16 2009, 19:01) *
...
"В команды контроллера" - слишком расплывчатое определение. Интересно, насколько это стандартизовано.
Покопался в доках, можно почитать, как стандартизуют ПО для ПЛК.
Программирование ПЛК: языки МЭК 61131-3 и возможные альтернативы.
Некоторые конторы указывают на соответствие своих языков пр. сервоконтроллеров этому стандарту.


--------------------
Quo vadis?
Go to the top of the page
 
+Quote Post
Rst7
сообщение Feb 16 2009, 19:41
Сообщение #25


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

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



Цитата
Конечно было бы ещё лучше, просто выше писали о сложностях при этом.


В каждый контроллер смысла засовывать Ethernet в полулюбительском варианте конечно нет. Но оконцовывать контроллер интерфейсом USB тоже не есть гуд - врядли ему будет хорошо работаться в "горячей" (с точки зрения ЭМС) зоне. А выполнив физику в виде 485го интерфейса и дополнительный мост в TCP - это, как мне кажется, будет самая пися золотая. Мост могу организовать. Весьма дешево. И решится вопрос с зависанием FT232 (к сожалению, вынужден констатировать, что один из моих знакомых, занимающийся модулями телеуправления, хотя и имеет в ассортименте выпускаемой продукции конверторы 485-USB, применять их не рекомендует. Хотя у него профессиональные разработчики, но справиться с зависаниями фтэшки не смогли)


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


Гуру
******

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



* гуд!
* RS-274D на уровне приводов избыточен и неудобен
* I2C совсем неподходит, RS232 просто не подходит - есть прекрасные RS485/RS422 или CAN. После долгих мучений с выбором я остановился на RS422, как наиболее отвечающему всем ограничениям
* терминалка с одной стороны хорошо, но с другой - сильно ограниченный и незащищенный способ обмена с девайсом. Но нет ничего проще, чем написать свою терминалку, с формированием команд в пакетах
* скорость 9600, дефолтовая для конфигурирования, и выше, для работы. Я остановился на 1 MBit - на столе вроде бы работает
* задирать сервоциклы я (бы) не стал, иначе и arm не хватит, а хотелось бы остановиться на народном avr
* интерфейс со стороны компа USB/ETHERNET/RS232/LPT - в порядке убывания
* Масh3 нужен далеко не всем
* Modbus слишком неудобный протокол. Под Масh3 лучше бы иметь свой протокол и свой плагин
* навороты любителям не нужны, это точно, но любители могут подрасти
* в интерфейсах начинал описание своего протокола Slp, но никто не поддержал. Если все же интересно, то в процессе разработки уже появились некоторые изменения
* все имхо
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Feb 16 2009, 22:58
Сообщение #27


;
******

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



Цитата(arisov @ Feb 16 2009, 19:36) *
Дешёвые конвертилки на FT232 почему «отваливаются» с сервоконтроллером
Тему ниасилил ввиду большого объема. К тому же FT232 ни разу не того. PL2303 немножко юзал. А FTшки на слуху отдельно от матюков не употребляются.

Цитата(Rst7 @ Feb 16 2009, 20:10) *
Можем скооперироваться. У меня как-раз тут рояль завалялся
Про рояль знаю, т.к. слежу за Вашими постами с большим интересом.  Изначально была мысль "дружить девайсами" smile.gif, но вначале хоть запущу то, что наваял. Завтра... ой, уже сегодня  платы приедут! В общем, кажется, впереди нас ждет, извините, невыпитое море водки.smile.gif

Цитата(arisov @ Feb 16 2009, 20:24) *
_Pasha а это будет коммерческая разработка или OpenServo?

Начнем Open, потом, когда появятся "фишечки" (если появятся), тему плавно прикроем, чтоб уже кормила заинтересованных фигурантов smile.gif как, впрочем и должно все развиваться. Имхо.

Цитата(evgeny_ch @ Feb 16 2009, 23:19) *
 языки МЭК 61131-3 Некоторые конторы указывают на соответствие своих языков пр. сервоконтроллеров этому стандарту.

Громоздко несколько. Надо подумать...

Цитата(Огурцов @ Feb 17 2009, 00:49) *
* в интерфейсах начинал описание своего протокола Slp, но никто не поддержал. Если все же интересно, то в процессе разработки уже появились некоторые изменения
Конечно, интересно! Только ссылку киньте, пожалуйста, а то за Вашими деяниями как-то не слежу. Пока не было интереса. По поводу выбора RS-422 vs RS-485, прошу Вас высказаться подробнее, почему именно 422 рулит?

Цитата(arisov @ Feb 16 2009, 22:47) *
Любителям надо НЕДОРОГОЙ, надёжный сервоконтроллер с максимальной частотой (энкодер) 100-150кГц, напряжением питания серводвигателя – до 150В, мощностью – до 1кВт. С регулируемой защитой по току.

Спасибо за взвешенные цифры.
Go to the top of the page
 
+Quote Post
haker_fox
сообщение Feb 17 2009, 04:29
Сообщение #28


Познающий...
******

Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125



Цитата(arisov @ Feb 16 2009, 23:59) *
Можно выбирать тип интерфейса (протокола) LPT

По-моему слишком архаичен.


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
dpss
сообщение Feb 17 2009, 04:50
Сообщение #29


Знающий
****

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



До создания своего собственного физического интерфейса и системы команд привода предлагаю рассмотреть и обсудить уже существующие решения , которые используют большие компании. По моему проще приспособится к готовому стандарту чем изобретать свой собственный велосипед. Возможно это будет несколько дороже и сложнее , но у такого варианта есть и преимущества. Ваш привод (и другая перефирия) будет совместим с оборудованием которое выпускает большая фирма, можно использовать готовый "верхний" софт , который пишет , отлавливает баги и сопровождает не один - два человека а целая коорпорация. Какими свойствами должен обладать кандидат?
Относительно низкая стоимость реализации физического интерфейса.
Гальваническая развязка.
Легкая масштабируемость и переконфигурация.
Защита от помех, сбоев и зависаний.
Автоопределение типов устройств (у каждого должен быть свой паспорт).
Высокая скорость.
Доступная и полная информация описывающая интерфейс, примеры и готовые решения.
Доступный (возможно после некоторого "лечения"), удобный и часто обновляемый "верхний" софт.

Для начала предлагаю рассмотреть EtherCAT, Sercos, PROFINET.
Go to the top of the page
 
+Quote Post
slog
сообщение Feb 17 2009, 05:52
Сообщение #30


Знающий
****

Группа: Свой
Сообщений: 961
Регистрация: 28-11-05
Пользователь №: 11 489



Ну вы тут наобсуждали. Аж волосья встают от ужасов. А для чего нужен этот сервоконтроллер и что он из себя представляет как-то забыли упомянуть, надо именно от этого и плясать. Вы бы сначала посмотрели как сделано в других готовых системах. Прежде чем изобретать чего-то. G-код к серво вообще никакого отношения не имеет, это другой уровень. Его даже вспоминать тут неуместно. Если не устраивает древний +/-10в или step-dir смотрите цифровые уже существующие решения EtherCAT, Sercos. И как у ведущих ЧПУ-строителей сделано. Ваш самодельный интерфейс ни с чем не совместимый вряд ли кому-то будет нужен, вы же не Siemens чтобы протолкнуть свой интерфейс. Выше уже была мудрая идея - приспособиться к существующему стандарту.

IMHO EtherCAT весьма перспективно. Но это не для простых "серво". Для простых достаточно и step-dir.


--------------------
В действительности всё не так, как на самом деле.
Go to the top of the page
 
+Quote Post
haker_fox
сообщение Feb 17 2009, 06:07
Сообщение #31


Познающий...
******

Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125



Цитата(dpss @ Feb 17 2009, 12:50) *
Ваш привод (и другая перефирия) будет совместим с оборудованием которое выпускает большая фирма, можно использовать готовый "верхний" софт , который пишет , отлавливает баги и сопровождает не один - два человека а целая коорпорация. Какими свойствами должен обладать кандидат?

Интересно, а есть ли различие в плане интерфейса привода станка и привода робота? Хотелось бы не только на привод станка ориентироваться.

Цитата(slog @ Feb 17 2009, 13:52) *
А для чего нужен этот сервоконтроллер и что он из себя представляет как-то забыли упомянуть, надо именно от этого и плясать.

Это действительно упущение, хотя выше и предполагалось
Цитата
Любителям надо НЕДОРОГОЙ, надёжный сервоконтроллер с максимальной частотой (энкодер) 100-150кГц, напряжением питания серводвигателя – до 150В, мощностью – до 1кВт. С регулируемой защитой по току.

Но надо детализировать.
Цитата(slog @ Feb 17 2009, 13:52) *
Ваш самодельный интерфейс ни с чем не совместимый вряд ли кому-то будет нужен, вы же не Siemens чтобы протолкнуть свой интерфейс. Выше уже была мудрая идея - приспособиться к существующему стандарту.

Так идеи протолкнуть интерфейс вроде бы и не ставилось.
Просто EtherCAT и другие предложенные базируются на ETHERNET, как я понял. Довольно таки монстрообразно. Хотелось бы на AVR-подобные МК уложиться. С другой стороны на AVRке серьезный привод вряд ли можно сделать. Получается, что мы хотим создать что-то среднего класса.
По поводу стандартного интерфейса: можно ведь создать при необходимости переходник наш_интерфейс<->что_то_стандартное. А вот команды может быть можно и ближе к распространенным стандартным взять.


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
arisov
сообщение Feb 17 2009, 06:15
Сообщение #32


Частый гость
**

Группа: Свой
Сообщений: 157
Регистрация: 17-02-07
Из: Ульяновск
Пользователь №: 25 455



Вот здесь похожее обсуждалось http://www.cnczone.com/forums/showthread.php?t=42373
Go to the top of the page
 
+Quote Post
Iptash
сообщение Feb 17 2009, 07:05
Сообщение #33


Профессионал
*****

Группа: Свой
Сообщений: 1 613
Регистрация: 2-09-08
Из: г.Набережные Челны
Пользователь №: 39 936



Step-dir это самый простой и надежный интерфейс, сам делаю на этом(от ЦАПа отхожу). Но это под ЧПУ реального времени. А под Windows это плохо работает
(у меня), поэтому видимо выход как раз допустим M команды типа <М96.1000> - повернуть вал двигателя на 1000 импульсов датчика. Это особенно подходит
для роботов и манипуляторов, где простой командой можно повернуть "руку" на определенный угол. А также это нужно, что-бы программировать сам привод допустим P командами и практически не нужны встроенные пульты на блоках управления. Все же не соглашусь, что в реале не нужно изменять какие ли бо параметры. Как раз таки параметры типа разгон торможение и т.п. удобнее на "ходу" регулировать и для опытного электронщика методика настройки из книги не нужна, он это на "глаз" сделает и под конкретное железо. А RS-422, я согласен, рулит. Не знаю, мое мнение на счет
МК. Все же лучше применять 16 разрядные МК, типа dsPIC30/33 да и по цене они не намного дороже, и переферия мощная и все есть.
Go to the top of the page
 
+Quote Post
Огурцов
сообщение Feb 17 2009, 07:11
Сообщение #34


Гуру
******

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



Цитата(_Pasha @ Feb 16 2009, 22:58) *
чтоб уже кормила

Ой )

Цитата(_Pasha @ Feb 16 2009, 22:58) *
Только ссылку киньте

http://electronix.ru/forum/index.php?showt...495&hl=slp*

Цитата(_Pasha @ Feb 16 2009, 22:58) *
По поводу выбора RS-422 vs RS-485, прошу Вас высказаться подробнее, почему именно 422 рулит?

Минимум, не болит голова с переключениями прием-передача, блокировкой шины, снижением трафика и совместимостью с rs232.
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Feb 17 2009, 07:14
Сообщение #35


;
******

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



Цитата(slog @ Feb 17 2009, 09:52) *
А для чего нужен этот сервоконтроллер

Если не устраивает древний +/-10в или step-dir смотрите цифровые уже существующие решения EtherCAT, Sercos. И как у ведущих ЧПУ-строителей сделано. 

1. Как раз хочу охватить CNC и применения в манипуляторах. "Первый блин" - 24В/4А на базе L298, но это ничего не значит. Надо платформенно-независимые вещи разрабатывать.


2. А как же : изначально заложил 4-20мА и step/dir/limit_switch. 

Еще PROFIBUS очень интересен. Надо вкурить подробнее.
Go to the top of the page
 
+Quote Post
dpss
сообщение Feb 17 2009, 07:56
Сообщение #36


Знающий
****

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



Вот "отец - основатель" EtherCAT. http://www.beckhoff.com/ http://www.beckhoff.ru
Есть международная ассоциация www.ethercat.org
Самый быстрый интерфейс реального времени на основе эзернета.
PLC , декодер G кода , профиль движения, интерполяторы делаются программно с использовнием TwinCAT который
сделан из CODESYS.
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Feb 17 2009, 08:40
Сообщение #37


;
******

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



Блин, занесло всех в эзернет! Ну нельзя сразу его закладывать! Рано еще. 
Go to the top of the page
 
+Quote Post
dpss
сообщение Feb 17 2009, 08:42
Сообщение #38


Знающий
****

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



Цитата(_Pasha @ Feb 17 2009, 11:40) *
Блин, занесло всех в эзернет! Ну нельзя сразу его закладывать! Рано еще. 

Для кого рано? На самом деле не так страшен черт как его малюют. Зато сколько преимуществ. Одни готовые библиотеки трансформации координат чего стоят.

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


Познающий...
******

Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125



Цитата(_Pasha @ Feb 17 2009, 16:40) *
Блин, занесло всех в эзернет! Ну нельзя сразу его закладывать! Рано еще. 

Я тоже так считаю. Так что же выбрать в качестве пока еще физического интерфейса?


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
evgeny_ch
сообщение Feb 17 2009, 08:58
Сообщение #40


чукчхэшаражогрмонтажник
*****

Группа: Участник
Сообщений: 1 852
Регистрация: 13-07-07
Из: Minsk
Пользователь №: 29 094



Цитата(_Pasha @ Feb 17 2009, 11:40) *
Блин, занесло всех в эзернет! Ну нельзя сразу его закладывать! Рано еще. 
Поздно, оптику надо, это же привод,
а не описная сеть.
Пмсм, рассуждая о системе команд, нужно отталкиваться от
ЦП контроллера. Специализированные процессоры для упр. электродвигатлями
уже имеют библиотеки и ПО, поставляемое производителем.
Далее автоматически получается функциональные возможности.
Особенности специализированных контроллеров для управления прецизионными электроприводами.

Сообщение отредактировал evgeny_ch - Feb 17 2009, 09:04


--------------------
Quo vadis?
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Feb 17 2009, 09:03
Сообщение #41


;
******

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



Цитата(dpss @ Feb 17 2009, 11:42) *
Для кого рано?

Пусть будет два девайса: мост эзернет в какой-нить RS485 либо Ether->PLC->[step/dir/Analogue] Но в одном флаконе - рановато

Цитата(evgeny_ch @ Feb 17 2009, 11:58) *
Поздно, оптику надо, это же привод,
а не описная сеть.

Тогда повторяю вопрос: каким выражением (алгебраическим, ессно, а не матерным) можно отобразить требования по максимальному времени доставки сообщения и получения ответа ???
Go to the top of the page
 
+Quote Post
dpss
сообщение Feb 17 2009, 09:18
Сообщение #42


Знающий
****

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



Цитата(_Pasha @ Feb 17 2009, 12:03) *
Тогда повторяю вопрос: каким выражением (алгебраическим, ессно, а не матерным) можно отобразить требования по максимальному времени доставки сообщения и получения ответа ???

Можно ориентироваться на частоту с которой работает токовый регулятор в приводе. Частота обновления командного регистра положения 0.5 - 0.1
от частоты токового регулятора.
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Feb 17 2009, 09:29
Сообщение #43


;
******

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



Цитата(arisov @ Feb 17 2009, 09:15) *
Вот здесь похожее обсуждалось http://www.cnczone.com/forums/showthread.php?t=42373

Цитата
affordable, Windows based, 6-axis Double Closed-Loop CNC controller. This device is literally a "brain" for your CNC machine. It acts as the focal point for incoming data and outbound control signals. It constantly corrects and adjusts your machine while carrying out G-Code instructions.


Мда-с... Зураб Церетели отдыхает на DIN-рейке smile.gif
Go to the top of the page
 
+Quote Post
evgeny_ch
сообщение Feb 17 2009, 09:32
Сообщение #44


чукчхэшаражогрмонтажник
*****

Группа: Участник
Сообщений: 1 852
Регистрация: 13-07-07
Из: Minsk
Пользователь №: 29 094



Цитата(_Pasha @ Feb 17 2009, 12:03) *
...
Тогда повторяю вопрос: каким выражением (алгебраическим, ессно, а не матерным) можно отобразить требования по максимальному времени доставки сообщения и получения ответа ???
Временем реакции системы на самое быстрое событие, делённым на количество управляемых осей.
Тип интерфейса определяется вовсе не скоростью, пмсм. Есть ещё помехоустойчивость и пр. простые вещи.


--------------------
Quo vadis?
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Feb 17 2009, 09:33
Сообщение #45


;
******

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



Цитата(dpss @ Feb 17 2009, 12:18) *
Частота обновления командного регистра положения 0.5 - 0.1 от частоты токового регулятора.

О! Уже что-то очень ценное! Спасибо. Частота токового регулятора == длительность сервоцикла ? 
Go to the top of the page
 
+Quote Post
Огурцов
сообщение Feb 17 2009, 09:33
Сообщение #46


Гуру
******

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



Цитата(evgeny_ch @ Feb 17 2009, 08:58) *
Поздно, оптику надо

Вот, пожайлуйста, еще одна причина делать rs422, но не что-нибудь еще.

Цитата(evgeny_ch @ Feb 17 2009, 08:58) *
Специализированные процессоры для упр. электродвигатлями
уже имеют библиотеки и ПО, поставляемое производителем.

Насколько сложнее будет сделать совместимый протокол, нежели свой ?
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Feb 17 2009, 09:47
Сообщение #47


;
******

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



Цитата(evgeny_ch @ Feb 17 2009, 12:32) *
Временем реакции системы на самое быстрое событие, делённым на количество управляемых осей.

Нет, даже еще хуже: деленным на количество устройств в сегменте сети. Их может быть немного больше чем осей sad.gif Действительно, до фига большая скорость

Цитата(dpss @ Feb 17 2009, 12:18) *
Частота обновления командного регистра положения 0.5 - 0.1 от частоты токового регулятора.


Ну, допустим, как снизить частоту обновления, понятно всем: использовать макроязык с интерполяторами. Зачем апдейтить координату еще и с дисперсией времени доставки, когда можно ее хоть кусочно-линейно хоть сплайном интерполировать. А кто знает уже готовые устоявшиеся решения?
Go to the top of the page
 
+Quote Post
dpss
сообщение Feb 17 2009, 09:59
Сообщение #48


Знающий
****

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



Цитата(evgeny_ch @ Feb 17 2009, 11:58) *
Поздно, оптику надо, это же привод,
а не описная сеть.

Можно использовать дешевый пластик POF . Есть программа MOST перевода автомобильной электроники на этот пластик.
http://www.pofto.com/ Аваго , Инфенион, Тайко собираются выпускать дешевые приемники и передатчики под этот стандарт.
Go to the top of the page
 
+Quote Post
haker_fox
сообщение Feb 17 2009, 10:10
Сообщение #49


Познающий...
******

Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125



Цитата(evgeny_ch @ Feb 17 2009, 16:58) *
Поздно, оптику надо, это же привод,
а не описная сеть.

А я воспринял Ваше сообщение, как иронию. Или неправильно воспринял?


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Feb 17 2009, 10:11
Сообщение #50


;
******

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



Цитата(evgeny_ch @ Feb 16 2009, 22:19) *
Покопался в доках, можно почитать, как стандартизуют ПО для ПЛК.
Программирование ПЛК: языки МЭК 61131-3 и возможные альтернативы.

Теперь, если стремиться снизить требования к коммуникационному каналу, получается, что  рулят Techno IL и Techno ST

http://www.adastra.ru/products/overview/IEC61131/

ЗЫ: а если сервоцикл уложится в один период ШИМ? smile.gif Причем это будут честные 4 кГц wink.gif
Go to the top of the page
 
+Quote Post
dpss
сообщение Feb 17 2009, 10:17
Сообщение #51


Знающий
****

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



Цитата(_Pasha @ Feb 17 2009, 12:47) *
Ну, допустим, как снизить частоту обновления, понятно всем: использовать макроязык с интерполяторами. Зачем апдейтить координату еще и с дисперсией времени доставки, когда можно ее хоть кусочно-линейно хоть сплайном интерполировать. А кто знает уже готовые устоявшиеся решения?

А как при таком управлении делать табличные корректировки положения, управлять приводами ведущий-ведомый ?
Go to the top of the page
 
+Quote Post
arisov
сообщение Feb 17 2009, 11:15
Сообщение #52


Частый гость
**

Группа: Свой
Сообщений: 157
Регистрация: 17-02-07
Из: Ульяновск
Пользователь №: 25 455



Мне кажется «в дебри улезли». Изначально планировалось полулюбительский контроллер. Таких контроллеров по 100-150$ много уже кто выпускает. Даже российский есть http://www.ellab.ru/russian/razrabotki/sva...rka_001_rus.htm. С приобретением особых проблем нет. Любители ЧПУ народ консервативный и будут покупать или изготавливать (ServoOpen) только многократно проверенные конструкции. И надо ещё видео на рабочем станке ЧПУ показать, а то так не поверят. Испытания желательно производить на станке с ЧПУ. _Pasha у Вас он есть? Испытания на столе никого не убедят в работоспособности. Я просто с этим уже столкнулся.
Сначала надо попробовать с «мощным» двигателем (хотя бы 110В, 10А) - возможно что и разговоры о протоколах не понадобятся – можно будет здесь «увязнуть». И если уж такой движок будет «послушным», то и от 24В подавно.

Если Вы действительно хотите сделать что-то полезное для любителей и которое пользовалось бы спросом, то я думаю преобразователь USB в Step/Dir было бы самое то. Например http://www.usbcnc.com/index_products.html или http://www.cnc4pc.com/Store/osc/product_in...products_id=185, только цену конечно не 180-320$.
За открытый проект или 50$ многие сказали бы спасибо. И на своих станочках начали бы ещё усерднее бороться с мировым кризисом. smile3009.gif
К тому для этого никакого оборудования не надо.
А вообще то лучше конечно сначала пообщаться с теми кому это предназначено и из "первых рук" узнать что им надо. http://www.cnczone.ru/forums/index.php?&act=idx
http://forum.rcdesign.ru/f41
Go to the top of the page
 
+Quote Post
khach
сообщение Feb 17 2009, 11:28
Сообщение #53


Гуру
******

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



Коллеги, а кто нибудь может ответить на вопрос, как в интеллектуальном интерфейсе синхронизировать движение по двум осям? Если в системе step-dir эта задача висит на контроллере, то в сервоприводе у меня оси разезжаются внутри косого отрезка, хотя на концах отрезка- все нормально. Приходиться длины отрезков уменьшать, привод дергается, получается управление как на шаговиках, а не "плавно врезался и поехал фрезой под постоянной нагрузкой"
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Feb 17 2009, 11:34
Сообщение #54


;
******

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



Цитата(dpss @ Feb 17 2009, 13:17) *
А как при таком управлении делать табличные корректировки положения, управлять приводами ведущий-ведомый ?

CODE
Макроязык управления сервоконтроллером.
1. Концепция
Для снижения нагрузки на канал связи локального управляющего контроллера
и одновременно для обеспечения возможности активно воздействовать на все параметры
управляющего серво-алгоритма предлагается макроязык, позволяющий описывать поведение параметров во времени с использованием предопределенного набора известных методов интерполяции, а также задавать управление в реальном времени от различных входов

2. Набор параметров управления

2.1. Управляющие параметры
- Координата S либо X,Y,Z в случае, если определены функции сервоконтроллера по перемещению вдоль конкретной оси.
- Скорость V либо VX, VY, VZ
- Момент T либо TX, TY, TZ
- Прямой нормированный канал ШИМ U, либо UX,UY,UZ
- Интервалы времени du - в микросекундах, dm-миллисекунды ds-секунды dt-время в формате с плавающей точкой либо dt=<число><суффикс u|m|s>

2.2. Входы управления или источники команд
- Одиночная команда. Например S=1120,dt=1.09Е-2 или тоже самое S=1120,du=10900
- Интерполятор, например S= cspline(-11.24,-3.003,6.573,0) dt=1.09E-2
S= pwl((115,1120u),(220,2400u),(1120,10900u))

- Частота по входу, например S=freq(x1), где
x1 - символическое имя дискретного входа,

- Период по входу, напр. S= per(x1,K)
- Напряжение по входу например S=an(x3)
Денормирующие коэффициенты хранятся в настройках

2.3. Вывод состояния сервоконтроллера - выходные параметры
- координата
- скорость
- момент
- прямой нормированный канал тока

2.4. Средства мониторинга выходных параметров
- прямой лог
- лог с интерполяцией
- лог о выходе за заданные пределы
- лог ошибки, например между заданным S и фактическим

2.5. Простые настроечные параметры в EEPROM - через символические имена
например Kp_speed = 16384 - коэфф пропорциональности в ПИ-звене контура
регулирования скорости

Сразу говорю - просьба не пинать за этот поток сознания. Интересует, существуют ли где-то похожие концепции.


Цитата(arisov @ Feb 17 2009, 14:15) *
Испытания желательно производить на станке с ЧПУ. _Pasha у Вас он есть?

Ну, у меня есть хорошо "промаринованный" заказчик, который ловит каждое мое слово, а я, в свою очередь, стараюсь не наглеть и держаться на уровне. А у заказчика - станок. smile.gif
Go to the top of the page
 
+Quote Post
arisov
сообщение Feb 17 2009, 11:37
Сообщение #55


Частый гость
**

Группа: Свой
Сообщений: 157
Регистрация: 17-02-07
Из: Ульяновск
Пользователь №: 25 455



Цитата(khach @ Feb 17 2009, 14:28) *
...привод дергается, получается управление как на шаговиках, а не "плавно врезался и поехал фрезой под постоянной нагрузкой"

Что делать не подскажу, но такое дёргание в Mach происходит когда вместо G1 (линейная интерполяция) выполняется G0 (ускоренное перемещение) при одинаковых заданных скоростях.
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Feb 17 2009, 11:38
Сообщение #56


;
******

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



Цитата(khach @ Feb 17 2009, 14:28) *
Коллеги, а кто нибудь может ответить на вопрос, как в интеллектуальном интерфейсе синхронизировать движение по двум осям?

В идеале - перекрестной связью по датчику положения. В реале - sad.gif кисло
Go to the top of the page
 
+Quote Post
khach
сообщение Feb 17 2009, 11:47
Сообщение #57


Гуру
******

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



Цитата(_Pasha @ Feb 17 2009, 14:38) *
В идеале - перекрестной связью по датчику положения. В реале - sad.gif кисло

Это как, доп раземы на драйверы сервомоашинок от енокдеров другой оси? А кто тогда математикой заведует?
Я уже не говорю, что заказчики "обнаглели" и присылают G-код с хеликоидальной интерполяцией или пытаются использовать
зуборезные пальчиковые фрезы- это когда отверстие и фрезеруется и резьба режется одной и той же фрезой и нужно согласованное
с вращением шпинделя движение детали по двум осям :-)
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Feb 17 2009, 11:53
Сообщение #58


;
******

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



Цитата(khach @ Feb 17 2009, 15:47) *
Это как, доп раземы на драйверы сервомоашинок от енокдеров другой оси? А кто тогда математикой заведует?

Если есть проблемы - надо PLC дополнительный ставить. А перекрестная связь - это же теоретически 100% действенный метод.
ЗЫ мне кажется, средствами самого сервака трудно будет определить кто ведущий, а кто ведомый.
Go to the top of the page
 
+Quote Post
evgeny_ch
сообщение Feb 17 2009, 12:02
Сообщение #59


чукчхэшаражогрмонтажник
*****

Группа: Участник
Сообщений: 1 852
Регистрация: 13-07-07
Из: Minsk
Пользователь №: 29 094



Цитата(haker_fox @ Feb 17 2009, 13:10) *
А я воспринял Ваше сообщение, как иронию. Или неправильно воспринял?
Вполне серьезно.
Вот энкодер с оптовыходом.

Сообщение отредактировал evgeny_ch - Feb 17 2009, 12:05


--------------------
Quo vadis?
Go to the top of the page
 
+Quote Post
Rst7
сообщение Feb 17 2009, 13:18
Сообщение #60


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

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



Цитата
Сразу говорю - просьба не пинать за этот поток сознания.


Как по мне, то пинать совершенно не за что.

Я вообще считаю, что надо как можно больше мозга уносить ближе к исполнительным механизмам. Во-первых - снижается нагрузка на канал связи. Во-вторых - намного проще обеспечить действительно реалтайм работу - ну о каком вменяемом реалтайме может идти речь, если весь моск суть программа на большом брате работающем под виндой/никсами? А гарантированное время доставки? Как по мне - это сугубо говнопиар. А если пакет потеряется? Как-то мне никогда в описаниях протоколов не попадалась фраза "время доставки меньше T гарантируется с вероятностью X". А именно такая формулировка и должна присутствовать. Может, конечно, не туда смотрел, посему с удовольствием разую глаза по вашей фразе "А это ты внимательно курил?" и приложенной ссылке.

Однако, для такого управления необходимо помимо команд задания алгоритма движения необходимо еще предусмотреть выбор алгоритма на случай аварийной ситуации - например, серьезная авария при заклинивании механизма может быть обработана банальным обесточиванием, а вот, например, ситуация неприхода привода в точку финиша? Или большое отклонение от заданной траектории?

Кроме того, в каждом пакете данных необходимо иметь таймстамп в приемлемых единицах. Для получения информации с контроллера смысл понятен - точная привязка данных к временной шкале. А для передачи команд управления - возможно, например, передавать команды с будущим временем, а контроллер будет принимать их к исполнению по достижению внутренними часами метки времени во входящем пакете.

Пошел покурить про Mach3... Очень порадовало описанице на форуме biggrin.gif
Цитата
Програмное обеспечение с сайта производителя.
Без таблеток и кряков.
Ограничения производителя 1000сторк G-кода и 25000гц частота.
ВНИМАНИЕ!!!
При использовании MACH оптимизируйте операционную систему согласно рекомендаций,погасите все ненужные сервисы,иначе реал -тайм в виндах проблематичен.
После установки программы ОБЯЗАТЕЛЬНО перезагрузите компьютер.
Перед первым запуском запустите Driver Test.exe (по умолчанию в папке C:\Mach3\Driver Test.exe)
НЕ ИСПОЛЬЗУЙТЕ компьютер станка для задач кроме управления станком.
При отсутствии другого компьютера-разделите жесткий диск и поставьте ОТДЕЛЬНУЮ операционную систему ТОЛЬКО для задач управления станком.

Последние релизы программ на сайте производителя:


Болд мой smile.gif Только вот фраза неправильная - "иначе реалтайм в виндах проблематичен". Правильная фраза "В любом случае реалтайм в виндах невозможен!"


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


Профессионал
*****

Группа: Свой
Сообщений: 1 613
Регистрация: 2-09-08
Из: г.Набережные Челны
Пользователь №: 39 936



Цитата(khach @ Feb 17 2009, 14:47) *
Это как, доп раземы на драйверы сервомоашинок от енокдеров другой оси? А кто тогда математикой заведует?
Я уже не говорю, что заказчики "обнаглели" и присылают G-код с хеликоидальной интерполяцией или пытаются использовать
зуборезные пальчиковые фрезы- это когда отверстие и фрезеруется и резьба режется одной и той же фрезой и нужно согласованное
с вращением шпинделя движение детали по двум осям :-)

Это надо, что-бы у каждего привода выхода датчиков положения соединялись как с ЧПУ так и между собой, и ЧПУ распределяет кто
ведущий кто ведомый. Например при нарезки резьбы, ведущий привод шпинделя, поэтому привод допустим Z считывает импульсы датчика "S " и синхронизуется с масштабом которая ЧПУ прописала (что будет соответсвовать какому-то шагу), также и допустим
линейная интерполяция ведущий допустим "Z" , а ведомый "X" (здесь ведущий будет тот, у кого по расчетам будет наибольшая скорость).
Go to the top of the page
 
+Quote Post
Огурцов
сообщение Feb 17 2009, 14:47
Сообщение #62


Гуру
******

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



Mach, конечно, хорошо. Но в дефолтовом виде таки плохо. Windows и realtime - слишком противоположные слова. Еще раз - нужен свой плагин, который и (по)мог бы победить болезни windows. В других вариантах я бы и не рассматривал Mach, как программу для управления станком или ботом.


Цитата(_Pasha @ Feb 17 2009, 12:34) *
Сразу говорю - просьба не пинать за этот поток сознания. Интересует, существуют ли где-то похожие концепции.

А это откуда ? Еще есть ? На первый взгляд вроде бы логично. Наверно можно детализировать.
Go to the top of the page
 
+Quote Post
haker_fox
сообщение Feb 17 2009, 15:12
Сообщение #63


Познающий...
******

Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125



Что-то это меня настораживает:
Цитата
The Home of Mach3 and LazyCam

Artsoft has been in the CNC business since 2001. In this time, the Mach series of CNC software has evolved into the best available PC-based CNC software on the market. Not only is it extremely affordable to the hobbyist and industry alike, it is pioneering in it's features and continuing development. There are over 10000 users of Mach who swear by its ease of use, great features, and outstanding support.



Software Requirements

Keeping with our home hobbyist roots, the minimum software requirements to run Mach are very reasonable. Below are the specifications for running Mach3 stably.
Mach3 Minimum Requirements:

* Windows 2000/XP Operating System
* 1Ghz CPU
* 512MB RAM
* Non-integrated Video Card with 32MB RAM
* Basic Computer Skills (ability to copy/rename files, browse directories, etc)
* Desktop PC if using the Mach3 Driver (Laptops are not supported because the power saving features of the chipsets disrupt the pulse stream)

Взято отсюда.
Получается, что Mach3 софтварно реализует ЧПУ на базе компьютера? С учетом требований к реалтайтму, возникает вопрос, а на сколько все это надежно?
Да и системные требования впечателяют, хотя и не сверхбольшие. Или это нормально и я отстал (не догнал) от жизни?
Просто в моем представлении ЧПУ это специализированная платформа (ну пусть IBM PC) с соответствующей ОС. А компьютер, пусть даже и под виндой, выполняет только функцию терминала - удобного рабочего места для оператора, наладчика. Но не как не выполняет функции непосредственного управления оборудованием.


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Feb 17 2009, 15:18
Сообщение #64


;
******

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



Цитата(Rst7 @ Feb 17 2009, 17:18) *
Как по мне, то пинать совершенно не за что.
Есть за что: явный перекос потока данных. От сервака с АВР в реалтайме да еще и режиме мониторинга требовать обрабатывать поставляемые данные - это что-то особеннаго smile.gif Надо додумать. Оправдывает только то, что написано буквально "на кончиках пальцев" - что вижу, то и пою.

Цитата
ситуация неприхода привода в точку финиша? Или большое отклонение от заданной траектории?
Это по-большей части головная боль контроллера верхнего уровня, надо только гарантировать доставку лога от сервака.


Цитата
Кроме того, в каждом пакете данных необходимо иметь таймстамп в приемлемых единицах.
+1 И еще синхронизацию как-то сделать бы. Синхропакетом, что ли? Пока непонятно.
Цитата
Пошел покурить про Mach3... Очень порадовало описанице на форуме biggrin.gif



smile.gif У меня старый ноутбук, на который еле-еле влезла ХР, печатная машинка, короче. Думал: ага, пристрою вещицу. Пень 300 МГЦ/192 ОЗУ... Блин, как поставил Mach3 - компьютер чуть ли не вздулся от "реалтайма" smile.gif

Цитата(Огурцов @ Feb 17 2009, 18:47) *
А это откуда ? Еще есть ?

Из головы, дурное дело - нехитрое wink.gif
Go to the top of the page
 
+Quote Post
Огурцов
сообщение Feb 17 2009, 15:29
Сообщение #65


Гуру
******

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



Цитата(_Pasha @ Feb 17 2009, 16:18) *
+1 И еще синхронизацию как-то сделать бы. Синхропакетом, что ли? Пока непонятно.

Slp_system_synchronize

Цитата(_Pasha @ Feb 17 2009, 16:18) *
Пень 300 МГЦ/192 ОЗУ... Блин, как поставил Mach3 - компьютер чуть ли не вздулся от "реалтайма"

Лол...у меня пентиум 2GHz временами зависает. Не, если кроме Mach больше ничего не пущать, то оно работает. Так что выше не просто так про отдельную и оптимизированную ось написано.

Цитата(_Pasha @ Feb 17 2009, 16:18) *
Из головы, дурное дело - нехитрое wink.gif

Неплохо. Подумывал написать нечто такое, та все некогда.
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Feb 17 2009, 15:33
Сообщение #66


;
******

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



Цитата(Огурцов @ Feb 17 2009, 18:29) *
Slp_system_synchronize

Не, я начал вкуривать, но пока чего-то все кажется, что это избыточно. Надо еще время для осознания.
Go to the top of the page
 
+Quote Post
Rst7
сообщение Feb 17 2009, 15:45
Сообщение #67


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

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



Цитата
И еще синхронизацию как-то сделать бы. Синхропакетом, что ли? Пока непонятно.


Это не трудно. Можно реализовать что-то аля NTP.

К сожалению, винда - это тоже не атомные часы. Миллисекундные тики - они хорошо если с дискретностью 10-20мс идут. При частом вызове вот такого (а часов с меньшей дискретой в винде я не знаю)
Цитата
struct timeb ct;
double d;
ftime(&ct);
d=ct.time*1000.0+ct.millitm;

d будет иметь дискрету, названную выше.


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


;
******

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



Получил платы, Ё-МОЁ. Таки умудрился накосячить. Если бы у меня был начальнег, уволил бы меня нахрен. В общем, все блины - первые sad.gif

Хорошо, что не смертельно, можно и так запустить.

По теме. Есть еще вариант задания траекторий/профилей тупо в виде арифметического выражения. Влезет в m168 ?
В общем, на ум приходят все более текстовые версии протокола. Бинарные - мимо кассы, раз тут математика пойдет. А это, в свою очередь, облегчает навороты с синхронизмом, адресацией, маршрутизацией и т.п.
Go to the top of the page
 
+Quote Post
Rst7
сообщение Feb 17 2009, 16:24
Сообщение #69


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

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



Цитата
Есть еще вариант задания траекторий/профилей тупо в виде арифметического выражения.


Давайте все-же определимся, кто будет этому контроллеру команды давать? Нужен ли тому, кто будет давать эти команды такой способ их задания?

Цитата
Влезет в m168 ?


Калькулятор на +-*/() - это очень маленькая софтинка smile.gif


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


Знающий
****

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



Как говорится "все уже придумано до нас" Десятки приводов ,тысячи портов с управлением под "Окнами" c
жестким реальным временем до 30 микросекунд на цикл http://www.beckhoff.ru/english/pdf/EtherCA...AT_Overview.pdf
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Feb 17 2009, 16:34
Сообщение #71


;
******

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



Цитата(Rst7 @ Feb 17 2009, 19:24) *
Калькулятор на +-*/() - это очень маленькая софтинка smile.gif

Не, с синусами, логарифмами, экспонентами и степенями... А может и не надо
Go to the top of the page
 
+Quote Post
Rst7
сообщение Feb 17 2009, 16:41
Сообщение #72


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

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



Цитата
А может и не надо


+1.


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


Гуру
******

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



Цитата(_Pasha @ Feb 17 2009, 16:33) *
Не, я начал вкуривать, но пока чего-то все кажется, что это избыточно. Надо еще время для осознания.

Не, это еще малая толика. Но не избыточно и не сложно. Описание, конечно, нужно, с картинками, чтобы хоть чуть-чуть понятно было.


Цитата(_Pasha @ Feb 17 2009, 17:34) *
Не, с синусами, логарифмами, экспонентами и степенями... А может и не надо

Какие синусы, таблично бы успеть...


Цитата(dpss @ Feb 17 2009, 17:30) *
Десятки приводов ,тысячи портов с управлением под "Окнами" c
жестким реальным временем до 30 микросекунд на цикл

Mach3 и побыстрее может. Ядро способно работать на 100kHz, при том, что реально прерывания вызваются еще в два раза чаще.
Однако все упирается в цену ошибки. Пока он грызет фанеру вопрос с зависаниями не актуален, если запущена обработка чегой-нибудь более ценного, чем фанера с пенопластом, то тут уж задумаешься.
Go to the top of the page
 
+Quote Post
slog
сообщение Feb 18 2009, 06:27
Сообщение #74


Знающий
****

Группа: Свой
Сообщений: 961
Регистрация: 28-11-05
Пользователь №: 11 489



Вам бы сначала определится что за сервоконтроллер изобретаете.
Какие функции у этого сервоконтроллера? Это что, гибрид сервоусилителя и motion controller?
Куда подключены датчики обратной связи?
Кто синхронизирует оси?
Кто интерпретирует G-код?
Какая программа будет им управлять?
Не напишите же вы софт для ЧПУ и роботов. От этого и надо плясать. А большинство любительских программ используют step-dir и не нужна там никакая система команд и протокол.


Цитата(dpss @ Feb 17 2009, 19:30) *
Как говорится "все уже придумано до нас" Десятки приводов ,тысячи портов с управлением под "Окнами" c
жестким реальным временем до 30 микросекунд на цикл http://www.beckhoff.ru/english/pdf/EtherCA...AT_Overview.pdf

Есть ли в свободном доступе документация по логической части EtherCAT? Дастаточная чтобы его можно было использовать в своих контроллерах.


--------------------
В действительности всё не так, как на самом деле.
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Feb 18 2009, 07:38
Сообщение #75


;
******

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



Цитата(slog @ Feb 18 2009, 09:27) *
Вам бы сначала определится что за сервоконтроллер изобретаете.


Объясняю более внятно.


1. Цель: получить "гибрид сервоусилителя и motion controller"

2. Заложены 6 свободно программируемых дискретных входов по IEC61131-2 http://www.prolog-plc.ru/beck/docum/AN_SC1X3_IO.pdf которые закороткой одного стабилитрона можно превратить обратно TTL  

Из этих входов  2/3 идут на квадратурный энкодер, Step, Dir, Limit_Switch

3. Аналоговый вход 4..20 мА

4. RS-485 с растяжками и джампером на RC-termination 

Протокол уже строю по принципу Hayes-модема: с одной стороны богатая текстовая командная строка, затем переход к варианту MODBUS-RTU или скорострельный поток данных  непосредственно для командных регистров положения/скорости/момента.

Теперь про бинарный поток данных

Избежать "экзотики", видимо, не получится. Замечу еще полезное свойство: командные регистры не могут  измениться мгновенно, поэтому для низкоуровневого потока данных достаточно передавать приращения с гарантией их доставки, например инвалидацией после приема блока данных (адресат отправляет обратно CRC блока), отправитель решает, повторять ли передачу. В пакет входит Timestamp с "зерном" в 100 мкс  разрядности 16 бит, потому что реально никто больше 1 секунды молчать не будет.
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Feb 18 2009, 10:06
Сообщение #76


;
******

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



Так. В процесса курения инфы кое-что меняется. В общем, придется-таки заняться PROFIBUS, потому что там есть все ответы на вопросы по физическому и канальному уровням, а также "домашние заготовки" в части управления движением. Предлагаю просмотреть чтиво во вложении и вот это http://www.profibus.com/celummdb/doc/PROFI...scr_e_Aug07.pdf
Go to the top of the page
 
+Quote Post
slog
сообщение Feb 18 2009, 10:27
Сообщение #77


Знающий
****

Группа: Свой
Сообщений: 961
Регистрация: 28-11-05
Пользователь №: 11 489



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


PROFIBUS, несмотря на то что там простой RS-485 очень "жирный" протокольчик. Особенно если с уклоном в серво. Теоретически, если осилить, можно замахнуться и на совместимость с ЧПУ от Siemens. Это круто, но практически, это сложновато будет.


--------------------
В действительности всё не так, как на самом деле.
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Feb 18 2009, 10:33
Сообщение #78


;
******

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



[attachment=29847:Untitled_1_copy.jpg]

Это что, сложно ???
ЗЫ: Не забывайте, что PROFIDRIVE не некая вещь в себе, а уже содержит заточенную под моторный девайс систему параметров, которая на 99.9% совпадает с реализуемой в данный момент.
Go to the top of the page
 
+Quote Post
dpss
сообщение Feb 18 2009, 10:56
Сообщение #79


Знающий
****

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



Цитата(_Pasha @ Feb 18 2009, 13:06) *
Так. В процесса курения инфы кое-что меняется. В общем, придется-таки заняться PROFIBUS, потому что там есть все ответы на вопросы по физическому и канальному уровням, а также "домашние заготовки" в части управления движением. Предлагаю просмотреть чтиво во вложении и вот это http://www.profibus.com/celummdb/doc/PROFI...scr_e_Aug07.pdf

PROFIBUS старая медленная шина. В новых проектах ее редко используют.
Go to the top of the page
 
+Quote Post
slog
сообщение Feb 18 2009, 11:00
Сообщение #80


Знающий
****

Группа: Свой
Сообщений: 961
Регистрация: 28-11-05
Пользователь №: 11 489



Цитата(_Pasha @ Feb 18 2009, 13:33) *
Это что, сложно ???

Смотря для кого. Что делать с манчестером на 12мегабитах уже решили?
Как устроены "PROFIchip" внутри посмотрели? http://www.profichip.com/products/
Если не испугались, то ничего сложного.

И действительно, 12 мегабит для серво это сейчас медленно.


--------------------
В действительности всё не так, как на самом деле.
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Feb 18 2009, 11:34
Сообщение #81


;
******

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



Цитата(slog @ Feb 18 2009, 15:00) *
Смотря для кого. Что делать с манчестером на 12мегабитах уже решили?

Стоп-стоп. Давайте не будем мешать в кучу физический уровень 1 OSI и весь Profibus, который использует уровни 1,2 и 7

То, что Вы назвали - это MBP. Кстати, почему-то написано
Цитата
MBP is synchronous transmission with a defined transmission rate of 31.25 Kbit/s and Manchester coding



Цитата
MBP transmission technology is usually limited to a specific segment (field devices in hazardous areas) of a plant, which are then linked to a RS485 segment via a segment coupler or links (Fig. ). Segment couplers are signal converters that modulate the RS485 signals to the MBP signal level and vice versa.


Т.е. говоря по-русски Profibus, реализованный на манчестере и Profibus, реализованный на RS-485 или Profibus, реализованный на оптике. Надеюсь, понятно объяснил.

Итого, на борту несчастной меги168 имеем UART и микросхему ST485 - это уровень 1 OSI

Уровень 2 OSI- пока собираю инфу. Как-то все ненаглядно sad.gif Развеселая картинка, что приводил выше - это относится к нему

Уровень 7 - уже параметры и некоторые рекомендации по улучшению синхронности.

12Мбит может и мало, но это уже восходит к возможностям сервака и энкодера, а они -то как раз скромненькие.
Go to the top of the page
 
+Quote Post
slog
сообщение Feb 18 2009, 12:02
Сообщение #82


Знающий
****

Группа: Свой
Сообщений: 961
Регистрация: 28-11-05
Пользователь №: 11 489



Манчестер там всегда. Не зависимо от физического уровня. Который кроме RS-485 может быть и по оптике. И несколько фиксированных скоростей с 9.6к до 12мбит. И автоопределение скорости. Мега программно потянет только самые маленькие скорости. А для серво 12мбит надо.


--------------------
В действительности всё не так, как на самом деле.
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Feb 18 2009, 12:20
Сообщение #83


;
******

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



Цитата(slog @ Feb 18 2009, 16:02) *
Мега программно потянет только самые маленькие скорости.
Флаги поддерживаемых скоростей - содержатся в GSD, типо паспорте устройства - это я уже асилил. Поэтому для собственно поддержки Profibus не имеет значения, что мега не успеет на 12Мбит. Это уже относится только к ТТХ системы в целом, а из-за того, что контроллер не поддерживает какие-либо скорости, сеть не развалится.
Цитата
Манчестер там всегда.

Где?! Не вижу. Ткнете носом, где это написано?
Go to the top of the page
 
+Quote Post
dpss
сообщение Feb 18 2009, 12:43
Сообщение #84


Знающий
****

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



Цитата(slog @ Feb 18 2009, 15:02) *
Манчестер там всегда. Не зависимо от физического уровня. Который кроме RS-485 может быть и по оптике. И несколько фиксированных скоростей с 9.6к до 12мбит. И автоопределение скорости. Мега программно потянет только самые маленькие скорости. А для серво 12мбит надо.

Если не удастся достать специализированный чип , то проще сделать на какой- нибудь дешевой Альтере . Кстати есть готовая корка под EtherCAT.
Если получится ее найти с ключиком , то считайте что у вас есть вся система. С их софтом проблема уже кажется решена. :-)
http://www.beckhoff.com/download/Document/...1810_ET1815.pdf
Go to the top of the page
 
+Quote Post
Rst7
сообщение Feb 18 2009, 14:07
Сообщение #85


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

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



Цитата
поэтому для низкоуровневого потока данных достаточно передавать приращения с гарантией их доставки, например инвалидацией после приема блока данных (адресат отправляет обратно CRC блока), отправитель решает, повторять ли передачу.


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

На самом деле надо просто пронумеровать пакеты (или байты) и ввести подтверждение по номерам. Аля TCP. Если обмен организован в стиле "только запрос-ответ", то достаточно пронумеровать по модулю 2. Т.е. для номера достаточно одного бита.

Алгоритм прост (в однобитном варианте) - у передающей стороны есть переменная SEQ, у принимающей - ACK. Передающая сторона в пакет вставляет свой SEQ, принимающая сторона сравнивает SEQ со своим ACK, если SEQ!=ACK - пакет отбрасывается, если SEQ==ACK - пакет принимается, увеличивается ACK на 1 (ну точнее ACK^=1). В любом случае значение ACK передается обратно в качестве подтверждения. Передающая сторона при приеме ACK!=SEQ выбрасывает переданный пакет (его подтвердили) и делает SEQ=ACK. В противном случае (ACK==SEQ) происходит перепосылка текущего пакета.


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


Знающий
****

Группа: Свой
Сообщений: 961
Регистрация: 28-11-05
Пользователь №: 11 489



Цитата(_Pasha @ Feb 18 2009, 15:20) *
Флаги поддерживаемых скоростей - содержатся в GSD, типо паспорте устройства - это я уже асилил. Поэтому для собственно поддержки Profibus не имеет значения, что мега не успеет на 12Мбит. Это уже относится только к ТТХ системы в целом, а из-за того, что контроллер не поддерживает какие-либо скорости, сеть не развалится.

Где?! Не вижу. Ткнете носом, где это написано?

Где написано не помню, информация из памяти, в доках искать лень. Если нет 12 мбит, то и делать PROFIBUS для серво не интересно. Очень сложно и медленно. Добиться совместимости с фирменными устройствами не самая простая задача. Без гарантированной совместимости с остальными в PROFIBUS нет никакого смысла. EtherCAT гораздо интереснее. Но это не для простых сервоконтроллеров на мега168. Для простых достаточно step-dir или +/-10v для работы с простым ЧПУ софтом или любого простого самопального протокола хоть на основе ModBus для работы в качестве контроллера позиционирования.

Цитата(dpss @ Feb 18 2009, 15:43) *
Если не удастся достать специализированный чип , то проще сделать на какой- нибудь дешевой Альтере .

Чипы достать теоретически можно. Но в штучных кол-вах цена у них десятки баксов за штуку, что совсем не интересно. Делать программно - не получить скорость. Есть корки для PROFIBUS под FPGA, но зачем его делать в FPGA если лучше сделать EtherCAT. Для серво это гораздо перспективнее.
Цитата(dpss @ Feb 18 2009, 15:43) *
Кстати есть готовая корка под EtherCAT. Если получится ее найти с ключиком , то считайте что у вас есть вся система. С их софтом проблема уже кажется решена. :-)
http://www.beckhoff.com/download/Document/...1810_ET1815.pdf

Это конечно хорошо, но как быть с лицензией? Сколько она стоит? Может есть достаточно информации по которой можно самостоятельно что-то сваять типа этой корки?


--------------------
В действительности всё не так, как на самом деле.
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Feb 18 2009, 14:21
Сообщение #87


;
******

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



Цитата(Rst7 @ Feb 18 2009, 18:07) *
 Если обмен организован в стиле "только запрос-ответ"

А вот как раз уже и не хочется. Профибаса хачу! smile.gif А нумерация - полезно! В общем, хотелось определенности, а теперь вариантов в голове - на порядок больше. sad.gif

Протупил чуть. Профибас пылится в закромах upload/DOCs/Standarts&Specifications&Gosts/Profibus/
Go to the top of the page
 
+Quote Post
haker_fox
сообщение Feb 18 2009, 14:44
Сообщение #88


Познающий...
******

Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125



Цитата(_Pasha @ Feb 18 2009, 22:21) *
Профибаса хачу! smile.gif

Я уже тут плохо разбираюсь в вопросе. Но по профибасу, если не ошибаюсь, также контроллеры и оборудование фирмы Simiens соединяется?
Просто, как я вижу, тема далеко отклонилась от первоначальных требований laughing.gif
Цитата(_Pasha @ Feb 16 2009, 21:23) *
"Заболел" я созданием мелкого сервоконтроллера.
немножко уровень полулюбительский должен остаться.
В идеале хочется, чтобы в конце обсуждения появился некий маленький "стандартик" на систему команд и применяемые интерфейсы и протоколы.

Можно в двух словах примитивно мне объяснить прелести профибаса? Ну про совместимость со производственным оборудованием я понял. А что он еще дает? И на какой элементной базе реализовать поддержку этого протокола, а то уже FPGA мелькают сверху... И какой МК вообще будет ядром сервы? Как на счет остальных элементов привода (мост, питание, защиты, алгоритмы... и тп)? Я конечно помню, что тема для обсуждения команд, но мне, как начинающему в этой области хотелось бы остальное услышать) Не сочтите за наглость rolleyes.gif


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Feb 18 2009, 15:00
Сообщение #89


;
******

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



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



Посмотрел - таки да, там NRZ, но поверх обычного октета, т.е. в формате 8-bit UART. А это значит, что на передачу нам нада таблицу из 16 байт, а на прием - из 256. Так что именно это и не пугает. Пугает скорость sad.gif в два раза упавшая.
Go to the top of the page
 
+Quote Post
slog
сообщение Feb 18 2009, 15:08
Сообщение #90


Знающий
****

Группа: Свой
Сообщений: 961
Регистрация: 28-11-05
Пользователь №: 11 489



Прелесть PROFIBUS только в том, что сервоконтроллер его поддерживающий будет совместим с кучей готового оборудования PLC и ЧПУ и всякого другого, в основном от Siemens. Это будет большо-о-й плюс. Но это только в том случае, если удастся сделать полностью поддержку протокола. А это без спец. чипов предназначенных для этого не очень просто. А если не будет 100% совместимости, то этот PROFIBUS вообще не нужен, слишком сложно.


--------------------
В действительности всё не так, как на самом деле.
Go to the top of the page
 
+Quote Post
Огурцов
сообщение Feb 18 2009, 15:18
Сообщение #91


Гуру
******

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



Цитата(_Pasha @ Feb 18 2009, 15:21) *
Профибаса хачу!

Кажется...тема умерла.


2 slog: согласен по всем пунктам
Go to the top of the page
 
+Quote Post
slog
сообщение Feb 18 2009, 15:22
Сообщение #92


Знающий
****

Группа: Свой
Сообщений: 961
Регистрация: 28-11-05
Пользователь №: 11 489



Цитата(_Pasha @ Feb 18 2009, 18:00) *
Пугает скорость sad.gif в два раза упавшая.

Меня пугает даже не упавшая, а максимальная скорость UARTа в Меге. Я уже делал серво с интерфейсом на 12 мегабит. Этого в притык хватило для управления 4-мя осями. И без всяких сложно-наворочанных протоколов. Еще и протокол и так примитивный оптимизировать под максимальную скорость пришлось. Но для простого позиционирования одной оси большая скорость обмена конечно не нужна.


--------------------
В действительности всё не так, как на самом деле.
Go to the top of the page
 
+Quote Post
Rst7
сообщение Feb 18 2009, 16:26
Сообщение #93


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

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



И всеже еще раз призываю подумать над тем, какой софт или железо будет использоваться в качестве верхнего уровня для изобретаемого контроллера. Я вам гарантирую, что ответ на этот вопрос даст ответы на все остальные - и протокол, и прочее smile.gif


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


;
******

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



Цитата(Rst7 @ Feb 18 2009, 18:07) *
Если обмен организован в стиле "только запрос-ответ"


Делаю шаг назад, и вот почему:

CODE
Протокол 8-E-2
Скорость по умолчанию 9600
Режимы ASCII и BIN

Режимы различаются по первому байту.

Если первый байт 0x00..0x7f то это у нас ASCII с набором команд, о котором позже.

Если же первый байт >= 0x80,то это будет такая весчь:
7 6 5 4 3 2 1 0
1 V R R A A A A

V- номер пакета по версии RST7
RR - командный регистр
00 - положения
01 - скорости
10 - момента
11 - прямой ШИМ
------------------------
AAAA - адрес устройства в сегменте сети, то бишь, короткий адрес. Адрес 0 - всегда адрес хоста. Адреса общего вызова нет, поскольку в бинарном потоке это не нужно.
------------------
Далее (это все про BIN)идет 1 байт signed приращения командного регистра, 1 байт timestamp и crc8 а-ля даллас
-----------------------------
После получения подобной команды слейв обязан ответить таким образом:
первый байт 1VRR0000 (V,R - тот же смысл, ессно)
второй - приращение фактической величины (положение/скорость/момент/ШИМ)
третий -timestamp
четвертый CRC8
-----------------------

ASCII - в процессе разработки, но сразу скажу, что там с игнорированием регистра, поскольку делать из юзеров неврастеников неприлично.
Умерла тема? Не дождетесь! smile.gif

Возражения и правки принимаются до конца недели в "парламентском" режиме.
Насчет интеграции мысль такая: если страдаемый протокол будет поддержан людьми, то дальше - конверторы с чего хошь куда хошь как средство зарабатывания и поддержания интереса к теме вообще. В данном случае за уши притягивается итоговый перфоманс с учетом реализации на АВР.

Цитата(Rst7 @ Feb 18 2009, 20:26) *
призываю подумать над тем, какой софт или железо будет использоваться в качестве верхнего уровня


ЗЫ: посоветуйте, надо ли в рамках бинарного потока сигналить об аварии или достаточно сделать это в текстовом виде?
Go to the top of the page
 
+Quote Post
Rst7
сообщение Feb 19 2009, 04:57
Сообщение #95


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

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



Цитата
Протокол 8-E-2


Эээ, я не очень понял, данные передаются по инициативе контроллера? Или запрашиваются мастером?

Цитата
надо ли в рамках бинарного потока сигналить об аварии или достаточно сделать это в текстовом виде?


Хотя бы флаг аварии надо передать. А расшифровку можно уже и потихоньку текстом забрать.

Но есть ли смысл реализовывать текстовый протокол вообще? Как по мне, так и не очень...


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


;
******

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



Цитата(Rst7 @ Feb 19 2009, 08:57) *
Эээ, я не очень понял, данные передаются по инициативе контроллера? Или запрашиваются мастером?
Хотя бы флаг аварии надо передать. А расшифровку можно уже и потихоньку текстом забрать.
Но есть ли смысл реализовывать текстовый протокол вообще? Как по мне, так и не очень...

1. Мастер - инициатор обмена. Следовательно запрашиваются мастером

2. Какой нибудь MAGIC... вот: использовать несимметричность signed char, т.е в отдаваемом приращении 0x80 -ето туши свет smile.gif

3. Вы его еще не видели smile.gif 
PS текстовый - в первую очередь для возможности управлять, причем всем сегментом сети, из терминала. Отсюда некоторые особенности:
Код
1. Единица обработки команды - строка, заканч. 0x0d или 0x0a - настраивается
2. Команды широковещательные, адресные и может быть приватные сообщения между слейвами
3. широковещательные, адресные - идут от компа, читай - от юзера, поэтому для проверки правильности делаем эхо обратно
4. приваты - в конце добавляется CRC8, пусть слейвы между собой разбираются :)
*****Как это выглядит *****
команда назначения имени и адресу
assign x=0x04
девайс отвечает
@x: assign x=0x04 OK
Дальше что-то пишем ему
x: S+=20
@x: S+=20 OK
Go to the top of the page
 
+Quote Post
Огурцов
сообщение Feb 19 2009, 06:56
Сообщение #97


Гуру
******

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



Если таки речь не про профибас: Текстовый режим плох по многим причинам. Сходу:
- не защищен (если не собираетесь заставить юзера руками считать crc)
- избыточен, раза в два примерно (а канал и так довольно узкий)
- требует для дешифрации больших ресурсов в слейве (особенно если давать командам осмысленные имена)
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Feb 19 2009, 08:34
Сообщение #98


;
******

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



- не защищен

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

Из предыдущего моего поста: x: S+=20 после получения команды можно сделать сразу эхо, а можно после выполнения smile.gif

- избыточен, раза в два примерно 

Почему в два? Гораздо больше, но тут упор на макроязык и всякие навороты по синхронному исполнению о них - позже

- требует для дешифрации больших ресурсов в слейве 
"На лету" ничего делаться не будет в текстовом режиме. Получил - сверился- выполнил - отчитался.
В бинарном режиме, по получении MAGIC 0x80, сигнализирующем об аварии, хост останавливает процесс элементарно - переходом в текст. Остальные - услышали MAGIC и стали, а для "особо понятливых" - сработает тайм-аут "потеря связи" по прекращению бинарного потока (планируеццо 3,5 символа) Кстати, тайм-аут в символах на полудуплексе ваще удобно делать - Dummy writes при выключенном драйвере 485

ЗЫ какой из меня парсер сообщений! smile.gif

Следующая "умная мысль". Структура строки

Код
[#<идентификатор потока>] [<имя устройства>:] [<команда1> [;<команда1>]]

идентификатор потока: число 1-99

имя устройства: идентификатор

команда1: семейство команд модификации регистров S,V,M,T


Идент. потока нужен для задания синхронного начала исполнения команд. 

По именам регистров: регистр момента предлагаю назвать M,а не T(torque) потому что иначе нечем назвать время



Еще вопрос из другой оперы: кто как считает ресурс/наработку сервака?

Имхо есть смысл считать отдельно:

Код
1. Моточасы, т.е. общее время в работе силовухи

2. Счетчик общего пробега

3. Время нахождения в режиме с ускорением
 



По поводу бинарного протокола: +статистика: общее число принятых пакетов, число подтвердженных. 
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Feb 19 2009, 09:48
Сообщение #99


;
******

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



Добавил (текстовый режим):

Код
Только для адресных команд!

По умолчанию слейв возвращает полученную строку обратно

Запустить ее на исполнение можно набрав / и ввод.

Если же в конце строки будет /, то исполнение начнется сразу, после чего слейв выдаст простой отчет OK

x: S=1200; V=12; T=122m юзер пишет

@x: S=1200; V=12; T=122m OK отвечает сервак

x:/  юзер

сервак подумал, переместился и написал

@x:OK

***********************************

Или то же самое но без эха

x: S=1200;V=12; T=122m  /   юзер пишет

сервак подумал и сгорел. И никто не знает, что он там получил,

потому что если был бы ошибка, то он написал бы

@x: S=0200;V=12Ё;T= / ERROR

Мораль: не уверен - не пользуй опасные вещи.

Тем более, что испортить можно все и всегда.


Еще. Например, выполняется команда, а нам неймется в текстовом режиме 

обратиться к девайсу

Код
X: S+=120

@X: S+=120 BUSY


Таким образом, других сообщений от слейва не надо, кроме {"OK","BUSY","ERROR"}

На какую комбинацию клавиш лучше  ввести  экстренный стоп?
Go to the top of the page
 
+Quote Post
Rst7
сообщение Feb 19 2009, 09:56
Сообщение #100


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

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



Цитата
На какую комбинацию клавиш лучше ввести экстренный стоп?

^C, че за вопрос


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

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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 07:15
Рейтинг@Mail.ru


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