|
|
  |
Система команд сервоконтроллера, обсудим? |
|
|
|
Feb 19 2009, 12:53
|

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

|
Цитата(_Pasha @ Feb 19 2009, 18:47)  Тут немножко не так. Имхо, текстовый протокол служит двум целям. С одной стороны, обеспечить систему команд типа "подай-принеси" и какой-нить локальный контроллер может запросто гонять скрипты на этом уровне. Там не надо извратов с флудо-слейвами. С другой стороны - комфорт для юзера и почти язык для ручного управления, настройки, просмотра. Уф!  Вы все-таки решили, что текстовый протокол имеет место быть. Это здорово (ИМХО). Мне понравился подход с подтверждением, т.е. когда серва может ответить, что она получила, а юзер подтвердить выполнение. Сам я такого бы не придумал. Надо бы Вашу идею на свой девайс перенести, не возражаете?) Чем еще хорош (ИМХО опять же) текстовый интерфейс, что с ним относительно несложно с матлабом соединиться. Ведь, наверно же полезно видеть графики, показывающие динамику процесса. Поиграться с ПИДом, посравнивать реальную систему с математической моделью. Или это все я ерунду изложил?
--------------------
Выбор.
|
|
|
|
|
Feb 19 2009, 13:26
|

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

|
Цитата(_Pasha @ Feb 19 2009, 20:59)  Вот я на такую аудиторию и рассчитываю в первую очередь. Чтоб это уже был не elm-chan две тысячи затертого года. В elm-chan хотябы неплохо токовую защиту поставить, что, впрочем было реализовано в других модификациях. Цитата(_Pasha @ Feb 19 2009, 20:59)  Вы только не спешите это все реализовать - пофантазируйте тоже, пока оно не устоялось. Мне кажется, что оно будет проще в реализации. Вспоминая свои летние рассуждения на форуме по приводу, не могу не вспомнить, что был также предложен вариант реализации одного физического интерфейса, например RS-485, чтобы несколько приводов на одну шину можно было посадить и не городить кучу разъемов на хосте. Правда в этом случае придеться делать переходник RS-485<->RS-232, для подключения к компу. Также предполагалось, что привод стартует в текстовом режиме, где юзеру предоставляется командная строка. По определенной команде, привод переходит в бинарный режим, когда по каналу уже гонятся полноценные пакеты, с CRC. Но я решил, что хранить переходник неудобно, и реализовал два интерфейса на приводе. Но об этом я уже выше сообщал. Не могу сказать, что это удачное решение. Далее по Вашему предложенному протоколу. Подтверждение одним символом слэша '/' будет ли надежным, а если помеха удачная пройдет, что привод по ошибке примет слэш тогда, когда не надо? Или тут уже паранойей я занялся... Было бы неплохо также предусмотреть редактирование командой строки со стороны привода, вдруг юзер ошибься на 20 символе. Не набивать же строку заново. Либо, если такое возможно, можно взять терминал, где сначала строка вводится и редактируется по мере надобности, а затем уже отправляется по нажатию ENTER в порт. Это я к тому, что Вы предлагаете в одной строке задавать несколько параметров. У меня привод только один может принять в строке, и то напрягает в случае ошибки жать ENTER и снова набирать строку. Не знаю, насколько я полезные мысли изложил, просьба не пинать, если что)
--------------------
Выбор.
|
|
|
|
|
Feb 19 2009, 13:44
|
;
     
Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509

|
Цитата(haker_fox @ Feb 19 2009, 17:26)  Подтверждение одним символом слэша '/' будет ли надежным Зависит от реализации на МК сервака. Имхо: строка получена и парсер не ругаеццо -> взвели флаг готовности к выполнению-> отдали эхо -> подождали, если принято нечто, отличное от / (пробелы не в счет) - флаг готовности сбросили и больше никто никуда не идет. По поводу того, что это должен быть именно "/" - еще непонятно, вдруг деление можно вставить? Тогда надо другой символ. Цитата(haker_fox @ Feb 19 2009, 17:26)  предусмотреть редактирование командой строки со стороны привода А как? Ну введу я backspace и del а дальше что? И еще в этом случае надо посимвольное эхо, что невозможно, т.к. девайсы по определенного момента не знают, кому адресована команда
|
|
|
|
|
Feb 19 2009, 14:21
|

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

|
Я тут попробовал покурить, как плагины для своего железа делать к Mach3. Начал курить тут - http://www.machsupport.com/MachCustomizeWi..._device_controlНа сколько я понял, у него есть 2 способа управления: 1. Прямое (которое Jogging) - просто двигаться по нужной оси в направлении со скоростью такой-то 2. GCode movement - движение с координатами. Цитата struct GMoves { int type; // 0 is linear, 1 is cubic double cx,cy,cz; // center of move for cubics. double ex,ey,ez,ea,eb,ec; double sx,sy,sz,sa,sb,sc; __int64 DDA1[6]; //DDA1's for cubics __int64 DDA2[6]; __int64 DDA3[6]; double Time; bool Stop; };
“type” is a 1 or zero to tell you if this move is part of a line or arc.
Cx,cy,cz are the center corrdinates if this is an arc.
Ex,ey,ez,ea,eb,ec are the end points of this move in machine coordinates.
Sx,sy,syz… are the start points of the move.
Time is the time of the move in ms. These moves will all be 1-64ms long depending on the move. No move will be longer than 64ms. Я так понимаю, что GCode movement - это его основной режим. И нафлудить он не сможет больше чем раз в миллисекунду. Вот я и думаю - надо в контроллере имплементить понимание таких данных да и всех делов. Отдельно там идут всякие IO - но тоже вроде небыстро... Это я все к тому, что должен уметь делать контроллер. Чуть позже еще покурю, может чего накопаю более конкретного.
--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
|
|
|
|
|
Feb 19 2009, 16:42
|

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

|
Цитата будет именно такой контроллер, чтоб туда гонялось эти 280 байт и по осям оно раскидывало. По осям - это да. Я так себе вижу, что принял по UDP пакет, расбросал его в N девайсов, собрал с них информацию и при помощи UDP обратно отправил. А вот курить c,e,s,t - должен уметь сам контроллер. Кстати, а вот DDA - это скорость, ускорение и ускорение ускорения - оно еще и в таком виде умеет задавать работу (или это довесок к c,e,s,t - я пока не вкурил). Тоже, я думаю, было бы неплохо поддержать. Вообщем, посмотрите, можно ли асилить задание начальных и конечных координат. Это упростит девайс-преобразователь интерфейсов и снизит нагрузку на канал.
--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
|
|
|
|
|
Feb 19 2009, 17:14
|
Знающий
   
Группа: Свой
Сообщений: 961
Регистрация: 28-11-05
Пользователь №: 11 489

|
Цитата(dpss @ Feb 19 2009, 16:21)  Небольшое уточнение: софт Бекхофа сделан но основе CoDeSys . Бекхофф купил лицензию на ядро и приспособил под свои задачи. В каждом модуле находится ASIC ET1100 или ET1200 или маленький Циклон. Через интерфейс физического уровня (Микрел) он подключается к эзернету. Как бы раздобыть EtherCAT IP core for Altera? Много ли денег за него хотят? Может где-то в и-нете оно уже лежит?
--------------------
В действительности всё не так, как на самом деле.
|
|
|
|
|
  |
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|