Нужно подружить Schneider Electric LXM32A с компьютером

Контроллеры, драйверы, датчики, управляющие устройства.
Yevhen_k
Новичок
Сообщения: 22
Зарегистрирован: 21 май 2014, 19:43
Репутация: 3
Контактная информация:

Re: Нужно подружить Schneider Electric LXM32A с компьютером

Сообщение Yevhen_k »

tooshka писал(а):
Yevhen_k писал(а):Продвинулся в освоении протокола CanOpen с помощью платы arduino mega 2560 и can bus shield.
Очень интересно, а какая скорость отклика? Хоть не много похоже на реалтайм? Все что пробовал на ардуинах ethernet modbus - изрядно тормозят.
Скорость отклика между командой и её выполнением приводом - естественно реалтайм, т.к. это основной протокол управления этими приводами. Слабым звеном здесь является контроллер и библиотека для can bus shield. Скетч который просто отправляет команду по шине CAN выпоняется за 2 мс. Не знаю много это или мало.
Аватара пользователя
selenur
Почётный участник
Почётный участник
Сообщения: 4604
Зарегистрирован: 21 авг 2013, 19:44
Репутация: 1621
Настоящее имя: Сергей
Откуда: Новый Уренгой
Контактная информация:

Re: Нужно подружить Schneider Electric LXM32A с компьютером

Сообщение selenur »

Yevhen_k - опиши тут подробнее, если возможно с картинками, как работает, и я попробую придумать как помочь :-)
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Аватара пользователя
N1X
Мастер
Сообщения: 3653
Зарегистрирован: 16 фев 2015, 21:19
Репутация: 1645
Настоящее имя: Владимир
Откуда: Беларусь, Гомель
Контактная информация:

Re: Нужно подружить Schneider Electric LXM32A с компьютером

Сообщение N1X »

Yevhen_k писал(а):CAN выпоняется за 2 мс
Главное не много или мало, главное постоянство. Главное, чтобы от получения контроллером обновленных координат до их ухода в шину привода всегда проходило одно и то же время :)
Аватара пользователя
tooshka
Почётный участник
Почётный участник
Сообщения: 1803
Зарегистрирован: 24 окт 2012, 14:26
Репутация: 209
Настоящее имя: Андрей
Откуда: Нижний Новгород
Контактная информация:

Re: Нужно подружить Schneider Electric LXM32A с компьютером

Сообщение tooshka »

N1X писал(а):Главное не много или мало, главное постоянство. Главное, чтобы от получения контроллером обновленных координат до их ухода в шину привода всегда проходило одно и то же время
Истину глаголете!
Милая, ты услышь меня
под окном стою со своим я ЧПУ! (Протяжно; с надрывом; форте)
Внимание!!! Чрезмерное увлечение ЧПУ приводит к проблемам в семейных отношениях!
Yevhen_k
Новичок
Сообщения: 22
Зарегистрирован: 21 май 2014, 19:43
Репутация: 3
Контактная информация:

Re: Нужно подружить Schneider Electric LXM32A с компьютером

Сообщение Yevhen_k »

selenur писал(а):Yevhen_k - опиши тут подробнее, если возможно с картинками, как работает, и я попробую придумать как помочь :-)
Ок, попытаюсь. Не буду вдаваться в тонкости протокола CanOpen. В общем привод через определённые промежутки времени всегда отсылает свои абсолютные координаты. Если нужно заставить его повернуться в нужное положение - формируем команду которая содержит ID привода, бит отвечающий за остановку в конце перемещения (тормозить в конце отрезка или нет), координаты конца отрезка. Также привод может начинать движение непосредственно при получении координаты цели, либо по отдельной команде, либо по завершению текущего перемещения всё это задаётся определёнными параметрами. При достижении координаты цели привод посылает сообщение об этом. Возможно реализовать плавное перемещение по интерполяции - пока привод движется к цели, отсылаем ему новую цель. При достижении первой он начинает движение ко второй автоматически, а контроллер отсылаем ему третью и т.д. Концевые, estop и прочие входы, софтовые ограничения рабочего поля перемещения, ускорения и замедления - всё это реализовано внутри приводов, управляется и опрашивается по шине.
Всё, что касается контроллера - это я смогу написать.
На данном этапе мне нужно чтобы компьютер преобразовал G-код в линейные отрезки. Для линейных перемещений эти отрезки могут быть большой длинны, чтобы один кадр отрабатывался одной командой. Для круговых интерполяций нужны мелкие отрезки с точностью около 3 градусов или 0,2-0,3 мм. Также нужна индикация текущих координат и текущего режима станка на компьютере.
Планирую сделать три режима - ручное управление с кнопок, выход в ноль и работа по программе.
Насколько я понимаю компьютер должен отправлять контроллеру (по rs232 скорее всего) координаты точек траектории движения и скорость, и контроллер обратно текущие координаты и режим работы.
Yevhen_k
Новичок
Сообщения: 22
Зарегистрирован: 21 май 2014, 19:43
Репутация: 3
Контактная информация:

Re: Нужно подружить Schneider Electric LXM32A с компьютером

Сообщение Yevhen_k »

tooshka писал(а):
N1X писал(а):Главное не много или мало, главное постоянство. Главное, чтобы от получения контроллером обновленных координат до их ухода в шину привода всегда проходило одно и то же время
Истину глаголете!
Насколько я понимаю у контроллера есть буфер, в котором будет хранится массив координат.
Меня больше волнует синхронная работа трёх осей. Либо придётся каждый раз в конце отрезка тормозить и ждать пока все три оси не достигнут целевой точки. Либо вносить коррекции во время обработки для отстающих или спешащих осей. Здесь очень точно нужно настраивать ускорения и скорости каждой оси, чтобы в конце отрезка не было рассогласования.
Аватара пользователя
selenur
Почётный участник
Почётный участник
Сообщения: 4604
Зарегистрирован: 21 авг 2013, 19:44
Репутация: 1621
Настоящее имя: Сергей
Откуда: Новый Уренгой
Контактная информация:

Re: Нужно подружить Schneider Electric LXM32A с компьютером

Сообщение selenur »

Если я правильно понял схема такая: привод <-> твой контроллер <-> компьютер с программой.
Привод с контроллером соединяется по can, а контроллер с компьютером по rs232?
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Аватара пользователя
N1X
Мастер
Сообщения: 3653
Зарегистрирован: 16 фев 2015, 21:19
Репутация: 1645
Настоящее имя: Владимир
Откуда: Беларусь, Гомель
Контактная информация:

Re: Нужно подружить Schneider Electric LXM32A с компьютером

Сообщение N1X »

Yevhen_k писал(а):Насколько я понимаю у контроллера есть буфер, в котором будет хранится массив координат.
Меня больше волнует синхронная работа трёх осей. Либо придётся каждый раз в конце отрезка тормозить и ждать пока все три оси не достигнут целевой точки. Либо вносить коррекции во время обработки для отстающих или спешащих осей. Здесь очень точно нужно настраивать ускорения и скорости каждой оси, чтобы в конце отрезка не было рассогласования.
В приводе должен быть верно настроен контур положения. Он должен четко с минимальной ошибкой отрабатывать заданную координату. Приступать к отработке сразу, даже если предыдущая координата не отработана, т.е. никакой дополнительной буферизации - просто получили число и едем в него. Получили его на ходу - пофик, забыли старое задание, едем туда, куда сказали.
Остальное - забота ЧПУ. Шина обмена с ЧПУ обеспечивает так называемый сервоцикл: цикл обновления задания на привода и приема данных о положении. Этот цикл должен иметь фиксированное время исполнения и быть достаточно малым, чтобы обеспечить нужную дискретность.
Планировщик траектории генерирует наборы координат (XYZ который хранится в ЧПУ) и допустим каждую миллисекунду эти координаты уходят приводам. Таким образом даже если внутри этой миллисекунды привода немножко рассинхронизируются - в разумных пределах это будет незаметно. Конечная траектория будет соответствовать ожидаемой. Если время цикла будет слишком большим - тогда уже можно будет наблюдать ломаную линию. Слишком маленьким - большая нагрузка на канал передачи, ну и нет смысла слать координаты чаще, чем их вычисляет планировщик. У него тоже есть свой цикл.
Yevhen_k
Новичок
Сообщения: 22
Зарегистрирован: 21 май 2014, 19:43
Репутация: 3
Контактная информация:

Re: Нужно подружить Schneider Electric LXM32A с компьютером

Сообщение Yevhen_k »

selenur писал(а):Если я правильно понял схема такая: привод <-> твой контроллер <-> компьютер с программой.
Привод с контроллером соединяется по can, а контроллер с компьютером по rs232?
Да, верно.
Yevhen_k
Новичок
Сообщения: 22
Зарегистрирован: 21 май 2014, 19:43
Репутация: 3
Контактная информация:

Re: Нужно подружить Schneider Electric LXM32A с компьютером

Сообщение Yevhen_k »

N1X писал(а):В приводе должен быть верно настроен контур положения. Он должен четко с минимальной ошибкой отрабатывать заданную координату.
контур положения оставим на совести производителя. Думаю что он настроен.
N1X писал(а):Приступать к отработке сразу, даже если предыдущая координата не отработана, т.е. никакой дополнительной буферизации - просто получили число и едем в него. Получили его на ходу - пофик, забыли старое задание, едем туда, куда сказали.
Эта функция тоже реализована. Исключая буферизацию нужно обеспечить реалтайм на компьютере, думаю что это лишнее. Проще иметь массив координат и фиксированный промежуток времени через который координаты должны отрабатываться.
N1X писал(а):Остальное - забота ЧПУ. Шина обмена с ЧПУ обеспечивает так называемый сервоцикл: цикл обновления задания на привода и приема данных о положении. Этот цикл должен иметь фиксированное время исполнения и быть достаточно малым, чтобы обеспечить нужную дискретность.
Планировщик траектории генерирует наборы координат (XYZ который хранится в ЧПУ) и допустим каждую миллисекунду эти координаты уходят приводам. Таким образом даже если внутри этой миллисекунды привода немножко рассинхронизируются - в разумных пределах это будет незаметно. Конечная траектория будет соответствовать ожидаемой. Если время цикла будет слишком большим - тогда уже можно будет наблюдать ломаную линию. Слишком маленьким - большая нагрузка на канал передачи, ну и нет смысла слать координаты чаще, чем их вычисляет планировщик. У него тоже есть свой цикл.
Самого ЧПУ как раз и нет. Я сейчас хочу определиться что использовать в качестве планировщика.
Аватара пользователя
selenur
Почётный участник
Почётный участник
Сообщения: 4604
Зарегистрирован: 21 авг 2013, 19:44
Репутация: 1621
Настоящее имя: Сергей
Откуда: Новый Уренгой
Контактная информация:

Re: Нужно подружить Schneider Electric LXM32A с компьютером

Сообщение selenur »

Yevhen_k писал(а):Эта функция тоже реализована. Исключая буферизацию нужно обеспечить реалтайм на компьютере, думаю что это лишнее. Проще иметь массив координат и фиксированный промежуток времени через который координаты должны отрабатываться.
Вот представим, что на компьютере, уже имеем массив точек, но как часто нужно отсылать? будет ли от контроллера какая-либо информация, о необходимости слать следующую точку, или информация о том что пока не нужно слать? Т.к. отрезки куда нужно двигаться будут на разном удалинении, от текущей точки, в связи с чем нужно будет каким либо образом понять, когда слать следующие координаты...
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Аватара пользователя
MX_Master
Мастер
Сообщения: 7465
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3088
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: Нужно подружить Schneider Electric LXM32A с компьютером

Сообщение MX_Master »

Почему связка контроллер - ПК должна происходить через RS232? Если уж идти по дороге новых технологий, то связывать надо через Ethernet, в худшем случае - через USB. На другом конце провода конвертер/хаб сразу в CAN сеть.
Аватара пользователя
N1X
Мастер
Сообщения: 3653
Зарегистрирован: 16 фев 2015, 21:19
Репутация: 1645
Настоящее имя: Владимир
Откуда: Беларусь, Гомель
Контактная информация:

Re: Нужно подружить Schneider Electric LXM32A с компьютером

Сообщение N1X »

Yevhen_k писал(а):Исключая буферизацию нужно обеспечить реалтайм на компьютере, думаю что это лишнее.
А по другому нужно выполнять интерполяцию на железном контроллере, по-другому никак :)
Аватара пользователя
selenur
Почётный участник
Почётный участник
Сообщения: 4604
Зарегистрирован: 21 авг 2013, 19:44
Репутация: 1621
Настоящее имя: Сергей
Откуда: Новый Уренгой
Контактная информация:

Re: Нужно подружить Schneider Electric LXM32A с компьютером

Сообщение selenur »

Еще нужно будет обеспечить наличие аппаратного rs232, т.к. usb адаптеры с rs232 в данной реализации могут не подойти.
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Yevhen_k
Новичок
Сообщения: 22
Зарегистрирован: 21 май 2014, 19:43
Репутация: 3
Контактная информация:

Re: Нужно подружить Schneider Electric LXM32A с компьютером

Сообщение Yevhen_k »

MX_Master писал(а):Почему связка контроллер - ПК должна происходить через RS232? Если уж идти по дороге новых технологий, то связывать надо через Ethernet, в худшем случае - через USB. На другом конце провода конвертер/хаб сразу в CAN сеть.
USB не подойдёт. Ethernet возможно, но это не освобождает от написания софта на компьютере.
Yevhen_k
Новичок
Сообщения: 22
Зарегистрирован: 21 май 2014, 19:43
Репутация: 3
Контактная информация:

Re: Нужно подружить Schneider Electric LXM32A с компьютером

Сообщение Yevhen_k »

selenur писал(а):Еще нужно будет обеспечить наличие аппаратного rs232, т.к. usb адаптеры с rs232 в данной реализации могут не подойти.
Это не проблема.

Нашёл подобную тему, плагин к mach3 - http://www.cnc-club.ru/forum/viewtopic. ... 6&start=20. Там даже пояснения кое-какие есть. Насколько я понял плагин отправляет контроллеру количество шагов за определённый промежуток времени
Yevhen_k
Новичок
Сообщения: 22
Зарегистрирован: 21 май 2014, 19:43
Репутация: 3
Контактная информация:

Re: Нужно подружить Schneider Electric LXM32A с компьютером

Сообщение Yevhen_k »

Покопался ещё в мануалах по приводам и нашёл описание работы сервоцикла.
Получается что нужно G-код пересчитать в координаты перемещений с дискретностью 10 мс. Привод поддерживает сервоцикл от 2 до 20 мс. Скорее всего придётся ковырять плагин к mach3.

Вопрос такой, Mach3 под win7 работает? Или только xp?
Аватара пользователя
MX_Master
Мастер
Сообщения: 7465
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3088
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: Нужно подружить Schneider Electric LXM32A с компьютером

Сообщение MX_Master »

Yevhen_k писал(а):Вопрос такой, Mach3 под win7 работает? Или только xp?
Работает и под 7 тоже.

Вот еще пара плюшек в тему:
  1. http://www.aliexpress.com/item/Ethernet ... 03760.html
  2. http://www.aliexpress.com/item/1-Channe ... 07229.html
Я считаю, что надо делать уклон именно в сторону сетевого (TCP/UDP) соединения. Работать с ним проще, он широко распространён и арсенал устройств, поддерживающих его, довольно велик. Соответственно, написать плагин/скрипт или программу для трансляции данных будет легче.
Yevhen_k
Новичок
Сообщения: 22
Зарегистрирован: 21 май 2014, 19:43
Репутация: 3
Контактная информация:

Re: Нужно подружить Schneider Electric LXM32A с компьютером

Сообщение Yevhen_k »

MX_Master писал(а):
Yevhen_k писал(а):Вопрос такой, Mach3 под win7 работает? Или только xp?
Работает и под 7 тоже.

Вот еще пара плюшек в тему:
  1. http://www.aliexpress.com/item/Ethernet ... 03760.html
  2. http://www.aliexpress.com/item/1-Channe ... 07229.html
Я считаю, что надо делать уклон именно в сторону сетевого (TCP/UDP) соединения. Работать с ним проще, он широко распространён и арсенал устройств, поддерживающих его, довольно велик. Соответственно, написать плагин/скрипт или программу для трансляции данных будет легче.
Возможна на будущее и стоит что-то подобное купить, но большой вопрос с документацией на эти устройства.
Аватара пользователя
MX_Master
Мастер
Сообщения: 7465
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3088
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: Нужно подружить Schneider Electric LXM32A с компьютером

Сообщение MX_Master »

Там сложностей нет. Смысл работы таких простых устройств - что пришло по протоколу TCP/IP, то сразу отправляется на все доступные выходы по протоколу CAN.
Ответить

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