64-х осевое управление шаговыми двигателями

Контроллеры, драйверы, датчики, управляющие устройства.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: 64-х осевое управление шаговыми двигателями

Сообщение Serg »

Любой обмен по modbus начинает только мастер и начинает его с ":", а заканчивает контрольной суммой, сразу после этого слейв начинает передавать ответ (если надо). Формат ответа сильно зависит от конкретной реализации, единственное, на что можно надеятся - это то, что он тоже заканчивается контрольной суммой.
В принципе этого достаточно, чтоб написать снифер, который будет раскладывать всё по полочкам, останется только расшифровывать блоки данных. Я б за это не взялся - в данном случае нет гарантии правильной расшифровки, а позволять рулить недешёвым (наверняка) оборудованием непредсказуемому ПО я б не рискнул.
vmarkiv писал(а):вопрос 64-х осевого управления остается
Мне почему-то кажется, что в вашем случае это не сложно. Мне видится такой вариант: на экране схематично нарисована ваша линия, в соотв. местах схемы есть "регуляторы", которые позволяют задавать положения соотв. осей.

Вот для примера экран одного из старых проектов (все элементы схемы интерактивные):
30.01.05 026.jpg (1918 просмотров) <a class='original' href='./download/file.php?id=24174&mode=view' target=_blank>Загрузить оригинал (339.38 КБ)</a>
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Impartial
Мастер
Сообщения: 953
Зарегистрирован: 23 фев 2011, 01:50
Репутация: 36
Контактная информация:

Re: 64-х осевое управление шаговыми двигателями

Сообщение Impartial »

vmarkiv писал(а):Но , все равно , даже если считаю правильно протокол , вопрос 64-х осевого управления остается
Можно ЕМС пересобрать на 60 осей.
asutpka
Мастер
Сообщения: 294
Зарегистрирован: 17 апр 2013, 14:27
Репутация: 78
Контактная информация:

Re: 64-х осевое управление шаговыми двигателями

Сообщение asutpka »

Очень интересная задача, особенно если все тонкости алгоритма поведения системы в целом умещаются в одной голове или на бумаге разумного объёма.
UAVpilot писал(а):Вот для примера экран одного из старых проектов (все элементы схемы интерактивные):
Правильный подход.
vmarkiv
Мастер
Сообщения: 516
Зарегистрирован: 21 янв 2012, 00:23
Репутация: 32
Откуда: Ивано-Франковск
Контактная информация:

Re: 64-х осевое управление шаговыми двигателями

Сообщение vmarkiv »

Считал Mоdbus протокол , выглядит так :
:010304AF000247
:01030400250000D3
:010304AF000247
:01030400250000D3
:011004B9000204000000002C
:011004B9000230
:010304AF000247
:01030400250000D3
Where :
: - Start byte
01- adress
03 - read funct.
04AF - adress of register 41200
0002 - qt. byte
47- CRC
Главный вопрос в непонятности отображения адреса - по ASCII должно быть 1200 , а в посылке отображение в HEX форме - 04AF - как в Modbus RTU . Мои инженеры вопрос протокола закрыли .

По поводу управления 64 осями присматриваюсь к реализации управления шаговым приводом на базе Arduino Mega Modbus
http://cnc-club.ru/forum/viewtopic.php? ... 86#p106986 , наверное нужно будет сделать в ClassicLadder несколько компонентов и управлять . Главная боязнь у меня - сделать несколько экранов управления по группам - к примеру 4 окна по 16 осей в каждом - как попроще сделать ?
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: 64-х осевое управление шаговыми двигателями

Сообщение nkp »

vmarkiv писал(а):на базе Arduino Mega Modbus viewtopic.php?f=41&t=3803&p=106986#p106986 , наверное нужно будет сделать в ClassicLadder несколько компонентов и управлять . Главная боязнь у меня - сделать несколько экранов управления по группам - к примеру 4 окна по 16 осей в каждом - как попроще сделать ?
у CL своя бтблиотека modbus , здесь - "своя" ...
проверял в работе и первую и вторую...
мое субъективное мнение - проще работать со второй))
---------------
насчет экранов - в Glade Notebook как вариант...
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: 64-х осевое управление шаговыми двигателями

Сообщение Nick »

А что на них будет? Просто 64 оси, или всетаки анимация какая-то и описание с картинками?
И как ими управлять?

попробуй нарисуй, хоть на бумажке, что хочешь увидеть на экране, а мы подскажем, как это сделать.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: 64-х осевое управление шаговыми двигателями

Сообщение Serg »

vmarkiv писал(а):Главный вопрос в непонятности отображения адреса - по ASCII должно быть 1200 , а в посылке отображение в HEX форме - 04AF - как в Modbus RTU .
ModBus не требует строго соответствия передаваемого блока данных какому-то формату. По сути строгое соответствие распостраняется только на 3 байта: старт, адрес и crc. Всё что между ними никого не должно волновать кроме устройства, кому адресован пакет. Посему разработчики могли применить такой формат задания регистра, который им больше понравился.
vmarkiv писал(а):Главная боязнь у меня - сделать несколько экранов управления по группам - к примеру 4 окна по 16 осей в каждом - как попроще сделать ?
Вкладки (tabs)?
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
vmarkiv
Мастер
Сообщения: 516
Зарегистрирован: 21 янв 2012, 00:23
Репутация: 32
Откуда: Ивано-Франковск
Контактная информация:

Re: 64-х осевое управление шаговыми двигателями

Сообщение vmarkiv »

Сделаю эскизы - выставлю для обсуждения . Могу ли я присвоить названия осям X1 , X2 , Y5 и т.д. и потом управлять ими через G код . В TwinCat такое делается
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: 64-х осевое управление шаговыми двигателями

Сообщение nkp »

vmarkiv писал(а):Могу ли я присвоить названия осям X1 , X2 , Y5 и т.д. и потом управлять ими через G код
это для совместимости со старыми файлами программ??
наверно это будет нелегко напрямую решить в емс :thinking:
но можно как вариант рассмотреть G-код с управлением осями M-кодами
можно передавать и аналоговые параметры и цифровые...
если уж крайне важна совместимость со старым начертанием команд - то можно покопать в сторону того же Remap , то есть попробовать заменить команды вида Y2 на команду навроде M64P02
зы
пока это просто необоснованная идея , так что не обессудьте :shock:
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: 64-х осевое управление шаговыми двигателями

Сообщение Nick »

nkp писал(а):это для совместимости со старыми файлами программ??
Можно сделать скрипт, который преобразует
Y2 в M64P02
Кстати, цыфры в названиях осей не вписываются в формат Gкода...

Такую запись Y2 100 linuxcnc воспримет как Y2100 или Y 2100. Вообще, вроде как можно писать

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

G 0 1 Y -  1  1 .  123 
#а станок выполнит просто 
G01Y-11.123 
vmarkiv
Мастер
Сообщения: 516
Зарегистрирован: 21 янв 2012, 00:23
Репутация: 32
Откуда: Ивано-Франковск
Контактная информация:

Re: 64-х осевое управление шаговыми двигателями

Сообщение vmarkiv »

Сгруппировал моторы , оказалось 20 групп с количеством двигателей от 1 до 8 .
Делать 20 экранов с независимыми осями x y z a b c в каждой группе и отдельно делать управляющую программу на группу ?
Вложения
Групи мотора06.012.zip
(9.47 КБ) 328 скачиваний
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: 64-х осевое управление шаговыми двигателями

Сообщение Nick »

Как вообще выглядит вся УП?
Можешь пример прислать?
Группы работают по отдельности и при этом в одно и тоже время работает только 1 группа?
Аватара пользователя
vovafed
Мастер
Сообщения: 1822
Зарегистрирован: 08 фев 2013, 16:19
Репутация: 325
Настоящее имя: Владимир
Откуда: башкортостан
Контактная информация:

Re: 64-х осевое управление шаговыми двигателями

Сообщение vovafed »

а внутри групп двигатели должны синхронно управлятся или каждый по отдельности
vmarkiv
Мастер
Сообщения: 516
Зарегистрирован: 21 янв 2012, 00:23
Репутация: 32
Откуда: Ивано-Франковск
Контактная информация:

Re: 64-х осевое управление шаговыми двигателями

Сообщение vmarkiv »

Примерный вид файла во вложении , где-что стоит - неизвестно . Позиционировать желательно отдельно по группам , или все вместе , так-как при позиционирование по отдельности осей время перестройки будет слишком большим . На ось примерно 20 секунд . 20 х 64 ... Рабочий уснет ...
Вложения
FORMAT.txt
(512 байт) 336 скачиваний
D399.txt
(5.13 КБ) 334 скачивания
Impartial
Мастер
Сообщения: 953
Зарегистрирован: 23 фев 2011, 01:50
Репутация: 36
Контактная информация:

Re: 64-х осевое управление шаговыми двигателями

Сообщение Impartial »

vmarkiv писал(а):Могу ли я присвоить названия осям X1 , X2 , Y5 и т.д. и потом управлять ими через G код .
G код подразумевает построение пространственно-временной траектории для одной точки. На мой взгляд в данном случае такое управление применить нельзя. Скорее всего в оригинальном контроллере управления шаговыми двигателями уже реализованы функции формирования траекторий, а управление только задает по модбасу следующую необходимую позицию следуя заложенной циклограмме. Вот с этой циклограммы работы линии и нужно начинать. Дальше все само станет на свои места.
vmarkiv
Мастер
Сообщения: 516
Зарегистрирован: 21 янв 2012, 00:23
Репутация: 32
Откуда: Ивано-Франковск
Контактная информация:

Re: 64-х осевое управление шаговыми двигателями

Сообщение vmarkiv »

В принципе так , программное позиционирование 64-х осей с поиском " 0 " -вых точек и возможностью ручного перемещения , индикация всех положений
Impartial
Мастер
Сообщения: 953
Зарегистрирован: 23 фев 2011, 01:50
Репутация: 36
Контактная информация:

Re: 64-х осевое управление шаговыми двигателями

Сообщение Impartial »

Следуя этому предположению нужно включать по модбасу контроллеры и искать команды и ответы на вопросы:
Как задать команду установки в "0" оси.
Как задать команду перемещения в позицию.
Как прочитать текущую позицию.
Как узнать состояния концевиков.
...
Проще, конечно, найти доки на контроллеры управления поскольку из описания модбаса это не вытащить. Модбас только регламентирует протокол, а наборы регистров и их функционал это дело разработчиков конкретного железа.
vmarkiv
Мастер
Сообщения: 516
Зарегистрирован: 21 янв 2012, 00:23
Репутация: 32
Откуда: Ивано-Франковск
Контактная информация:

Re: 64-х осевое управление шаговыми двигателями

Сообщение vmarkiv »

Тогда вопрос другой стороной - Нужен самодельный MODBUS контроллер шагового двигателя c выходным протоколом step\dir .
Impartial
Мастер
Сообщения: 953
Зарегистрирован: 23 фев 2011, 01:50
Репутация: 36
Контактная информация:

Re: 64-х осевое управление шаговыми двигателями

Сообщение Impartial »

А как собирать информацию с концевиков, которых наверняка на линии немеряно? Нужно точно определить характеристики такого контроллера. Ему придется формировать скоростную траекторию, считать текущую позицию, определять пропуски шагов, обрабатывать сигналы концевиков, а не только формировать степ/дир. И выбрать золотую середину между количеством контроллеров и количеством степ/дир в каждом тоже не простая задачка.
В итоге получится то, что сейчас в наличии только документированное. Что проще и дешевле - найти доки на то что есть или ввязываться во все тяжкие связанные с разработкой, решать Вам.
Может проще отремонтировать неисправный головной контроллер. Не сгорел же он дотла.
vmarkiv
Мастер
Сообщения: 516
Зарегистрирован: 21 янв 2012, 00:23
Репутация: 32
Откуда: Ивано-Франковск
Контактная информация:

Re: 64-х осевое управление шаговыми двигателями

Сообщение vmarkiv »

Вот и пробую выбрать правильный путь , не нужно было бы 360 входных сигналов и 200 выходных - использовал для шаговых проводов Arduino и перерисовывал бы Линукс . А возобновить главный , генерирующий перемещения , контроллер не могу - НЕТ его . Ручное управление рабочее , заказчику этого мало
Ответить

Вернуться в «Электроника»