Скорость отклика между командой и её выполнением приводом - естественно реалтайм, т.к. это основной протокол управления этими приводами. Слабым звеном здесь является контроллер и библиотека для can bus shield. Скетч который просто отправляет команду по шине CAN выпоняется за 2 мс. Не знаю много это или мало.tooshka писал(а):Очень интересно, а какая скорость отклика? Хоть не много похоже на реалтайм? Все что пробовал на ардуинах ethernet modbus - изрядно тормозят.Yevhen_k писал(а):Продвинулся в освоении протокола CanOpen с помощью платы arduino mega 2560 и can bus shield.
Нужно подружить Schneider Electric LXM32A с компьютером
-
- Новичок
- Сообщения: 22
- Зарегистрирован: 21 май 2014, 19:43
- Репутация: 3
- Контактная информация:
Re: Нужно подружить Schneider Electric LXM32A с компьютером
- selenur
- Почётный участник
- Сообщения: 4604
- Зарегистрирован: 21 авг 2013, 19:44
- Репутация: 1621
- Настоящее имя: Сергей
- Откуда: Новый Уренгой
- Контактная информация:
Re: Нужно подружить Schneider Electric LXM32A с компьютером
Yevhen_k - опиши тут подробнее, если возможно с картинками, как работает, и я попробую придумать как помочь
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
- N1X
- Мастер
- Сообщения: 3653
- Зарегистрирован: 16 фев 2015, 21:19
- Репутация: 1645
- Настоящее имя: Владимир
- Откуда: Беларусь, Гомель
- Контактная информация:
Re: Нужно подружить Schneider Electric LXM32A с компьютером
Главное не много или мало, главное постоянство. Главное, чтобы от получения контроллером обновленных координат до их ухода в шину привода всегда проходило одно и то же времяYevhen_k писал(а):CAN выпоняется за 2 мс
- tooshka
- Почётный участник
- Сообщения: 1803
- Зарегистрирован: 24 окт 2012, 14:26
- Репутация: 209
- Настоящее имя: Андрей
- Откуда: Нижний Новгород
- Контактная информация:
Re: Нужно подружить Schneider Electric LXM32A с компьютером
Истину глаголете!N1X писал(а):Главное не много или мало, главное постоянство. Главное, чтобы от получения контроллером обновленных координат до их ухода в шину привода всегда проходило одно и то же время
Милая, ты услышь меня
под окном стою со своим я ЧПУ! (Протяжно; с надрывом; форте)
Внимание!!! Чрезмерное увлечение ЧПУ приводит к проблемам в семейных отношениях!
под окном стою со своим я ЧПУ! (Протяжно; с надрывом; форте)
Внимание!!! Чрезмерное увлечение ЧПУ приводит к проблемам в семейных отношениях!
-
- Новичок
- Сообщения: 22
- Зарегистрирован: 21 май 2014, 19:43
- Репутация: 3
- Контактная информация:
Re: Нужно подружить Schneider Electric LXM32A с компьютером
Ок, попытаюсь. Не буду вдаваться в тонкости протокола CanOpen. В общем привод через определённые промежутки времени всегда отсылает свои абсолютные координаты. Если нужно заставить его повернуться в нужное положение - формируем команду которая содержит ID привода, бит отвечающий за остановку в конце перемещения (тормозить в конце отрезка или нет), координаты конца отрезка. Также привод может начинать движение непосредственно при получении координаты цели, либо по отдельной команде, либо по завершению текущего перемещения всё это задаётся определёнными параметрами. При достижении координаты цели привод посылает сообщение об этом. Возможно реализовать плавное перемещение по интерполяции - пока привод движется к цели, отсылаем ему новую цель. При достижении первой он начинает движение ко второй автоматически, а контроллер отсылаем ему третью и т.д. Концевые, estop и прочие входы, софтовые ограничения рабочего поля перемещения, ускорения и замедления - всё это реализовано внутри приводов, управляется и опрашивается по шине.selenur писал(а):Yevhen_k - опиши тут подробнее, если возможно с картинками, как работает, и я попробую придумать как помочь
Всё, что касается контроллера - это я смогу написать.
На данном этапе мне нужно чтобы компьютер преобразовал G-код в линейные отрезки. Для линейных перемещений эти отрезки могут быть большой длинны, чтобы один кадр отрабатывался одной командой. Для круговых интерполяций нужны мелкие отрезки с точностью около 3 градусов или 0,2-0,3 мм. Также нужна индикация текущих координат и текущего режима станка на компьютере.
Планирую сделать три режима - ручное управление с кнопок, выход в ноль и работа по программе.
Насколько я понимаю компьютер должен отправлять контроллеру (по rs232 скорее всего) координаты точек траектории движения и скорость, и контроллер обратно текущие координаты и режим работы.
-
- Новичок
- Сообщения: 22
- Зарегистрирован: 21 май 2014, 19:43
- Репутация: 3
- Контактная информация:
Re: Нужно подружить Schneider Electric LXM32A с компьютером
Насколько я понимаю у контроллера есть буфер, в котором будет хранится массив координат.tooshka писал(а):Истину глаголете!N1X писал(а):Главное не много или мало, главное постоянство. Главное, чтобы от получения контроллером обновленных координат до их ухода в шину привода всегда проходило одно и то же время
Меня больше волнует синхронная работа трёх осей. Либо придётся каждый раз в конце отрезка тормозить и ждать пока все три оси не достигнут целевой точки. Либо вносить коррекции во время обработки для отстающих или спешащих осей. Здесь очень точно нужно настраивать ускорения и скорости каждой оси, чтобы в конце отрезка не было рассогласования.
- selenur
- Почётный участник
- Сообщения: 4604
- Зарегистрирован: 21 авг 2013, 19:44
- Репутация: 1621
- Настоящее имя: Сергей
- Откуда: Новый Уренгой
- Контактная информация:
Re: Нужно подружить Schneider Electric LXM32A с компьютером
Если я правильно понял схема такая: привод <-> твой контроллер <-> компьютер с программой.
Привод с контроллером соединяется по can, а контроллер с компьютером по rs232?
Привод с контроллером соединяется по can, а контроллер с компьютером по rs232?
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
- N1X
- Мастер
- Сообщения: 3653
- Зарегистрирован: 16 фев 2015, 21:19
- Репутация: 1645
- Настоящее имя: Владимир
- Откуда: Беларусь, Гомель
- Контактная информация:
Re: Нужно подружить Schneider Electric LXM32A с компьютером
В приводе должен быть верно настроен контур положения. Он должен четко с минимальной ошибкой отрабатывать заданную координату. Приступать к отработке сразу, даже если предыдущая координата не отработана, т.е. никакой дополнительной буферизации - просто получили число и едем в него. Получили его на ходу - пофик, забыли старое задание, едем туда, куда сказали.Yevhen_k писал(а):Насколько я понимаю у контроллера есть буфер, в котором будет хранится массив координат.
Меня больше волнует синхронная работа трёх осей. Либо придётся каждый раз в конце отрезка тормозить и ждать пока все три оси не достигнут целевой точки. Либо вносить коррекции во время обработки для отстающих или спешащих осей. Здесь очень точно нужно настраивать ускорения и скорости каждой оси, чтобы в конце отрезка не было рассогласования.
Остальное - забота ЧПУ. Шина обмена с ЧПУ обеспечивает так называемый сервоцикл: цикл обновления задания на привода и приема данных о положении. Этот цикл должен иметь фиксированное время исполнения и быть достаточно малым, чтобы обеспечить нужную дискретность.
Планировщик траектории генерирует наборы координат (XYZ который хранится в ЧПУ) и допустим каждую миллисекунду эти координаты уходят приводам. Таким образом даже если внутри этой миллисекунды привода немножко рассинхронизируются - в разумных пределах это будет незаметно. Конечная траектория будет соответствовать ожидаемой. Если время цикла будет слишком большим - тогда уже можно будет наблюдать ломаную линию. Слишком маленьким - большая нагрузка на канал передачи, ну и нет смысла слать координаты чаще, чем их вычисляет планировщик. У него тоже есть свой цикл.
-
- Новичок
- Сообщения: 22
- Зарегистрирован: 21 май 2014, 19:43
- Репутация: 3
- Контактная информация:
Re: Нужно подружить Schneider Electric LXM32A с компьютером
Да, верно.selenur писал(а):Если я правильно понял схема такая: привод <-> твой контроллер <-> компьютер с программой.
Привод с контроллером соединяется по can, а контроллер с компьютером по rs232?
-
- Новичок
- Сообщения: 22
- Зарегистрирован: 21 май 2014, 19:43
- Репутация: 3
- Контактная информация:
Re: Нужно подружить Schneider Electric LXM32A с компьютером
контур положения оставим на совести производителя. Думаю что он настроен.N1X писал(а):В приводе должен быть верно настроен контур положения. Он должен четко с минимальной ошибкой отрабатывать заданную координату.
Эта функция тоже реализована. Исключая буферизацию нужно обеспечить реалтайм на компьютере, думаю что это лишнее. Проще иметь массив координат и фиксированный промежуток времени через который координаты должны отрабатываться.N1X писал(а):Приступать к отработке сразу, даже если предыдущая координата не отработана, т.е. никакой дополнительной буферизации - просто получили число и едем в него. Получили его на ходу - пофик, забыли старое задание, едем туда, куда сказали.
Самого ЧПУ как раз и нет. Я сейчас хочу определиться что использовать в качестве планировщика.N1X писал(а):Остальное - забота ЧПУ. Шина обмена с ЧПУ обеспечивает так называемый сервоцикл: цикл обновления задания на привода и приема данных о положении. Этот цикл должен иметь фиксированное время исполнения и быть достаточно малым, чтобы обеспечить нужную дискретность.
Планировщик траектории генерирует наборы координат (XYZ который хранится в ЧПУ) и допустим каждую миллисекунду эти координаты уходят приводам. Таким образом даже если внутри этой миллисекунды привода немножко рассинхронизируются - в разумных пределах это будет незаметно. Конечная траектория будет соответствовать ожидаемой. Если время цикла будет слишком большим - тогда уже можно будет наблюдать ломаную линию. Слишком маленьким - большая нагрузка на канал передачи, ну и нет смысла слать координаты чаще, чем их вычисляет планировщик. У него тоже есть свой цикл.
- selenur
- Почётный участник
- Сообщения: 4604
- Зарегистрирован: 21 авг 2013, 19:44
- Репутация: 1621
- Настоящее имя: Сергей
- Откуда: Новый Уренгой
- Контактная информация:
Re: Нужно подружить Schneider Electric LXM32A с компьютером
Вот представим, что на компьютере, уже имеем массив точек, но как часто нужно отсылать? будет ли от контроллера какая-либо информация, о необходимости слать следующую точку, или информация о том что пока не нужно слать? Т.к. отрезки куда нужно двигаться будут на разном удалинении, от текущей точки, в связи с чем нужно будет каким либо образом понять, когда слать следующие координаты...Yevhen_k писал(а):Эта функция тоже реализована. Исключая буферизацию нужно обеспечить реалтайм на компьютере, думаю что это лишнее. Проще иметь массив координат и фиксированный промежуток времени через который координаты должны отрабатываться.
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
- MX_Master
- Мастер
- Сообщения: 7467
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3089
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: Нужно подружить Schneider Electric LXM32A с компьютером
Почему связка контроллер - ПК должна происходить через RS232? Если уж идти по дороге новых технологий, то связывать надо через Ethernet, в худшем случае - через USB. На другом конце провода конвертер/хаб сразу в CAN сеть.
- N1X
- Мастер
- Сообщения: 3653
- Зарегистрирован: 16 фев 2015, 21:19
- Репутация: 1645
- Настоящее имя: Владимир
- Откуда: Беларусь, Гомель
- Контактная информация:
Re: Нужно подружить Schneider Electric LXM32A с компьютером
А по другому нужно выполнять интерполяцию на железном контроллере, по-другому никакYevhen_k писал(а):Исключая буферизацию нужно обеспечить реалтайм на компьютере, думаю что это лишнее.
- selenur
- Почётный участник
- Сообщения: 4604
- Зарегистрирован: 21 авг 2013, 19:44
- Репутация: 1621
- Настоящее имя: Сергей
- Откуда: Новый Уренгой
- Контактная информация:
Re: Нужно подружить Schneider Electric LXM32A с компьютером
Еще нужно будет обеспечить наличие аппаратного rs232, т.к. usb адаптеры с rs232 в данной реализации могут не подойти.
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
-
- Новичок
- Сообщения: 22
- Зарегистрирован: 21 май 2014, 19:43
- Репутация: 3
- Контактная информация:
Re: Нужно подружить Schneider Electric LXM32A с компьютером
USB не подойдёт. Ethernet возможно, но это не освобождает от написания софта на компьютере.MX_Master писал(а):Почему связка контроллер - ПК должна происходить через RS232? Если уж идти по дороге новых технологий, то связывать надо через Ethernet, в худшем случае - через USB. На другом конце провода конвертер/хаб сразу в CAN сеть.
-
- Новичок
- Сообщения: 22
- Зарегистрирован: 21 май 2014, 19:43
- Репутация: 3
- Контактная информация:
Re: Нужно подружить Schneider Electric LXM32A с компьютером
Это не проблема.selenur писал(а):Еще нужно будет обеспечить наличие аппаратного rs232, т.к. usb адаптеры с rs232 в данной реализации могут не подойти.
Нашёл подобную тему, плагин к mach3 - http://www.cnc-club.ru/forum/viewtopic. ... 6&start=20. Там даже пояснения кое-какие есть. Насколько я понял плагин отправляет контроллеру количество шагов за определённый промежуток времени
-
- Новичок
- Сообщения: 22
- Зарегистрирован: 21 май 2014, 19:43
- Репутация: 3
- Контактная информация:
Re: Нужно подружить Schneider Electric LXM32A с компьютером
Покопался ещё в мануалах по приводам и нашёл описание работы сервоцикла.
Получается что нужно G-код пересчитать в координаты перемещений с дискретностью 10 мс. Привод поддерживает сервоцикл от 2 до 20 мс. Скорее всего придётся ковырять плагин к mach3.
Вопрос такой, Mach3 под win7 работает? Или только xp?
Получается что нужно G-код пересчитать в координаты перемещений с дискретностью 10 мс. Привод поддерживает сервоцикл от 2 до 20 мс. Скорее всего придётся ковырять плагин к mach3.
Вопрос такой, Mach3 под win7 работает? Или только xp?
- MX_Master
- Мастер
- Сообщения: 7467
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3089
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: Нужно подружить Schneider Electric LXM32A с компьютером
Работает и под 7 тоже.Yevhen_k писал(а):Вопрос такой, Mach3 под win7 работает? Или только xp?
Вот еще пара плюшек в тему: Я считаю, что надо делать уклон именно в сторону сетевого (TCP/UDP) соединения. Работать с ним проще, он широко распространён и арсенал устройств, поддерживающих его, довольно велик. Соответственно, написать плагин/скрипт или программу для трансляции данных будет легче.
-
- Новичок
- Сообщения: 22
- Зарегистрирован: 21 май 2014, 19:43
- Репутация: 3
- Контактная информация:
Re: Нужно подружить Schneider Electric LXM32A с компьютером
Возможна на будущее и стоит что-то подобное купить, но большой вопрос с документацией на эти устройства.MX_Master писал(а):Работает и под 7 тоже.Yevhen_k писал(а):Вопрос такой, Mach3 под win7 работает? Или только xp?
Вот еще пара плюшек в тему: Я считаю, что надо делать уклон именно в сторону сетевого (TCP/UDP) соединения. Работать с ним проще, он широко распространён и арсенал устройств, поддерживающих его, довольно велик. Соответственно, написать плагин/скрипт или программу для трансляции данных будет легче.
- MX_Master
- Мастер
- Сообщения: 7467
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3089
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: Нужно подружить Schneider Electric LXM32A с компьютером
Там сложностей нет. Смысл работы таких простых устройств - что пришло по протоколу TCP/IP, то сразу отправляется на все доступные выходы по протоколу CAN.