_Pasha 0 16 февраля, 2009 Опубликовано 16 февраля, 2009 · Жалоба Доброго времени суток! "Заболел" я созданием мелкого сервоконтроллера. Очень хочется поговорить о системе команд, поскольку то, что я наблюдаю в openservo, elm-chan и в аппликухах microchip, не нравится. Думаю, может лучше подмножество G-кода огранизовать? Кто из сервостроителей имеет свое мнение на сей счет? Только не надо Siemens и т.п. цитировать - немножко уровень полулюбительский должен остаться. В идеале хочется, чтобы в конце обсуждения появился некий маленький "стандартик" на систему команд и применяемые интерфейсы и протоколы. Или организую RS-274D, если это никому не интересно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 61 16 февраля, 2009 Опубликовано 16 февраля, 2009 · Жалоба Доброго времени суток! "Заболел" я созданием мелкого сервоконтроллера. Очень хочется поговорить о системе команд, поскольку то, что я наблюдаю в openservo, elm-chan и в аппликухах microchip, не нравится. Вы имеете в виду эти странные Dir & Step? Если речь о них, то я тоже не могу их назвать удобными, т.к. никакой полезной инфой с сервой не обменяешься. Ни конфиги принять/передать, ничего. Думаю, может лучше подмножество G-кода огранизовать? Беглое знакомство с G-кодом говорит, что он скорее предназначен для программирования уже готовой системы, например станка. А серва это лишь периферия ЧПУшного оборудования. Кстати, подобная проблема обсуждалась в моей ветке по приводу, вот только плохо помню, где она. Но там пришли к выводу, что можно (и я реализовал, кроме I2С) сделать два интерфейса: RS-232 и I2C. Первый для сервисного обслуживания, т.е. для работы "на столе" потестировать, настроить, что не исключает подключение по нему и к системе более выского ранга. Второй - как раз ориентирован для работы в системе. Над протоколом I2C, к сожалению пока еще все не думал, так вышло( Но как основу хотел покопать протокол на www.openservo.com . Там тоже серва по I2C управляется. очется, чтобы в конце обсуждения появился некий маленький "стандартик" на систему команд и применяемые интерфейсы и протоколы. Всеми четырьмя лапами за!!!) Все равно это прорабатывать придеться в будущем. Почему бы не заняться сейчас?! Или организую RS-274D, если это никому не интересно. Ну что Вы, интерес есть! Что касается меня, то я придерживаюсь пока двух интерфейсов, как написал выше. Интерфейс для RS-232 создан по образу одного из микрочиповских аппноутов. Т.е. примерно это я ввожу в терминалке: $ m 250 Где доллар - приглашение командной строки сервы. m - задать вручную значение PWM. 250 - непосредственное значение. Все подтверждается ENTERом. Редактирование не возможно. Т.к. программа сервы это не поддерживает. Все остальные команды в подобном стиле. Например * позвояет посмотреть все текущие настройки сервы (параметры ПИДа, заданной скорости и тд). В общем, все пока примитивненько. Но общими силами может быть и получится что-то? Очень надеюсь на это!!! Паша, респект! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
evgeny_ch 0 16 февраля, 2009 Опубликовано 16 февраля, 2009 · Жалоба Доброго времени суток! "Заболел" я созданием мелкого сервоконтроллера. Очень хочется поговорить о системе команд, поскольку то, что я наблюдаю в openservo, elm-chan и в аппликухах microchip, не нравится. Думаю, может лучше подмножество G-кода огранизовать? Кто из сервостроителей имеет свое мнение на сей счет? ... В станках G-код преобразуется (скажем постпроцессором) в команды контроллера. Долго и нудно описывать, назову группы. Калибровка привода. Отображение состояния. Включение/выкл. функций. Сброс, запись, чтение, сохранение, ожидание. Тестовые. Знач. параметров двигателя, энкодера, регуляторов. Величина и тип перемещения. Ввод программы, загр. прогр. в EEPROM, старт программы. И пр. мелочи. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_Pasha 0 16 февраля, 2009 Опубликовано 16 февраля, 2009 · Жалоба Паша, респект! :) до респекта далеко еще. Думается, надо для начала определить, какая скорость передачи будет считаться нормальной. Вариант "чем больше тем лучше" не нужен совершенно. К чему привязаться? К длительности сервоцикла? Вроде слишком избыточно. Я возможность изменения настроек в процессе выполнения команды ("на лету") никогда не разрешаю ни в одном своем моторном девайсе. Надо поменять - остановился и поменял. Хотя, было один раз - наступил на свои же грабли. Но к серваку то же: никаких настроек на лету. Только команды. А какое должно быть минимальное время между командами ? В станках G-код преобразуется (скажем постпроцессором) в команды контроллера. Т.е напрямую G-код на контроллер сервака никогда не поступит? "В команды контроллера" - слишком расплывчатое определение. Интересно, насколько это стандартизовано. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
arisov 0 16 февраля, 2009 Опубликовано 16 февраля, 2009 · Жалоба А зачем всё это? Для полулюбительского уровня мне кажется уже достаточно G-code. Другое дело – интерфейс. Для самодельщиков-ЧПУшников актуально будет управление через USB или ТСР, т.к. LPT «отходит». И ориентироваться надо, на мой взгляд, на самую популярную программу Масh3. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
evgeny_ch 0 16 февраля, 2009 Опубликовано 16 февраля, 2009 (изменено) · Жалоба ... Т.е напрямую G-код на контроллер сервака никогда не поступит? "В команды контроллера" - слишком расплывчатое определение. Интересно, насколько это стандартизовано. Нет смысла передавать G-код в контроллер, это снизит быстродействие. Хост (PLC, например) транслирует G-код в команды контроллеров (!) привода. Насчет стандартов не знаю, я же бывший. Изменено 16 февраля, 2009 пользователем evgeny_ch Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_Pasha 0 16 февраля, 2009 Опубликовано 16 февраля, 2009 · Жалоба как основу хотел покопать протокол на www.openservo.com Кстати, я большой противник регистров, их адресов и прочей низкоуровневой шелухи. Только команды. Например, для "тупокрутилок" асинхронных двигателей у меня такое: Адрес устройства Размер блока данных Адрес вызывающего Команда мастера или статус слейва (слейв - привод) Опциональные данные (ограничены макс длиной блока - 4байта) CRC8 типа как у DS18B20 А команды: 0x00 - сводка о состоянии привода (набор параметров программируется) 0x01.. 0x7F пространство команд чтения параметров 0x80 - программируется содержимое, выдаваемое командой 0x00 0x81..0xFE пространство команд записи параметров 0xFF - резерв, какой-нить HELP по поводу того или иного параметра. Например 0xFF 0x00 привод выдаст "GET_BRIEF" Меняются версии, контроллеры, вместо простенького пульта компьютер... протокол изменять надобности нет. И ориентироваться надо, на мой взгляд, на самую популярную программу Масh3. Да-да-да. Есть такое подозрение :) Только хоцца и объять необъятное и определить нужный людям уровень универсальности. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 61 16 февраля, 2009 Опубликовано 16 февраля, 2009 · Жалоба А зачем всё это? Вопрос риторический, ответа не имеет... Ведь и elm-chan когда-то создавался... актуально будет управление через USB или ТСР TCP, пожалуй, тяжеловато да и монстрообразно для привода. Хотя при современном спектер недорогих армов вполне. Но речь идет об интерфейсе не системы ЧПУ, где эти интерфесы как раз, а о серве. Где можно применить дешевый AVR или PIC, но поднять USB или TCP на их бортах дело тяжелое, да и зачем? т.к. LPT «отходит». Есть еще RS-232. И дешевые конвертилки RS-232<->USB. Поэтому (ИМХО) RS-232 забывать не стоит) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
arisov 0 16 февраля, 2009 Опубликовано 16 февраля, 2009 · Жалоба А какой смысл применения своих команд, если это никакой прогой не будет поддерживаться? Возможно это пригодиться только единицам. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_Pasha 0 16 февраля, 2009 Опубликовано 16 февраля, 2009 · Жалоба TCP не надо: поголовно никто ставить не будет, а в качестве опции - вот, мосты всяческие ETHERNET<->RS-485. А потом, возможно, придется двигаться в сторону RTP (все равно рано или поздно к этому придут) - это уж точно ни в какой АВР не влезет :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
arisov 0 16 февраля, 2009 Опубликовано 16 февраля, 2009 · Жалоба Есть еще RS-232. И дешевые конвертилки RS-232<->USB. Поэтому (ИМХО) RS-232 забывать не стоит) Дешёвые конвертилки на FT232 почему «отваливаются» с сервоконтроллером, при чём не только у меня. http://kazus.ru/forum/topics/14286.html И здесь http://forum.rcdesign.ru/f41/thread40981-5.html#post1037070 начиная с сообщения №165 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 61 16 февраля, 2009 Опубликовано 16 февраля, 2009 · Жалоба А какой смысл применения своих команд, если это никакой прогой не будет поддерживаться? Возможно это пригодиться только единицам. А как быть с физическим интерфейсом? Или он не будет особой роли играть, главное команды? Этот уровень, я тоже сейчас до шел до этого, нужно пытаться делать совместимым с чем-нибудь стандартным, но не особо навороченным, возможно со своими подмножествами. Как все-таки по поводу Rs-232 для подключения к кому, чтобы можно было из терминалки с приводом пообщаться? Ведь не всегда под рукой будет спецсофт, да стойка ЧПУ, а вот комп с примитивным терминалом обычно есть... (ИМХО). Да и для матлаба такой интерфейс, наверно больше подходит. Я вот сейчас пытаюсь в матлаб со своего привода данные гнать, для моделирования... RS-232 в этом деле как раз кстати: простота, куча примеров в инете... и тп. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
arisov 0 16 февраля, 2009 Опубликовано 16 февраля, 2009 · Жалоба ...Как все-таки по поводу Rs-232 для подключения к кому, чтобы можно было из терминалки с приводом пообщаться?... Если уж с терминальной программой «отваливается», то чё уж тогда говорить о непосредственном управлении. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 61 16 февраля, 2009 Опубликовано 16 февраля, 2009 · Жалоба Дешёвые конвертилки на FT232 почему «отваливаются» с сервоконтроллером, при чём не только у меня. http://kazus.ru/forum/topics/14286.html И здесь http://forum.rcdesign.ru/f41/thread40981-5.html#post1037070 начиная с сообщения №165 Бегло прочел. Там говорят что нужен оптрон. Так в моем приводе силовая L298 уже оптронами отделена от цифры... Может быть поэтому ничего не отваливается, правда я долго не тестировал. Кстати, тут много споров было по поводу оптронов. Может быть ответ тут, в этой ветке?) Если уж с терминальной программой «отваливается», то чё уж тогда говорить о непосредственном управлении. Так я и не предлагаю RS-232 для непосредственного управлениея :unsure: Ну а "отваливание" нужно решать. Интерефейс-то из за этого игнорироваться не должен :rolleyes: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
arisov 0 16 февраля, 2009 Опубликовано 16 февраля, 2009 · Жалоба Вот Screen из Mach. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться