Частотник и Modbus. Универсальная заготовка.

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
Аватара пользователя
aekhv
Мастер
Сообщения: 393
Зарегистрирован: 17 окт 2014, 15:03
Репутация: 218
Настоящее имя: Александр
Откуда: г.Хабаровск
Контактная информация:

Частотник и Modbus. Универсальная заготовка.

Сообщение aekhv »

Задался целью немного облегчить задачу для тех отчаяных энтузиастов, кто мечтает связать частотник с LinuxCNC по Modbus, но варианты исходников из этой темы по разным причинам не подходят, а при попытке понять как они устроены, с целью что-то изменить, в голове наступает состояние E-Stop. :hehehe: К слову, выражаю огромную благодарность автору того топика и всем активно участвовавшим в обсуждении. Спасибо!

Возможности

https://youtu.be/kV7CG8pSJBo
spindle-vfd-02.png (16016 просмотров) <a class='original' href='./download/file.php?id=61953&sid=6ab3cca6e6bc62051f007808c55a0495&mode=view' target=_blank>Загрузить оригинал (148.88 КБ)</a>
- За основу взят исходник gs2_vfd.c отсюда, обработан напильником и обильно сдобрен комментариями. В modbus.c и modbus.h никаких правок не вносилось.
- Исходники специально подготовлены для сравнительно лёгкой адаптации под любой ПЧ, поддерживающий стандартный режим обмена MODBUS RTU.
- Поддерживается мониторинг 11-ти параметров, задание частоты, подача команд на запуск и останов, сброс ошибки (fault reset). При достижении заданной частоты формируется spindle-at-speed.
- В зависимости от модели ПЧ предусмотрена возможность выбора способа задания скорости вращения:
а) установка значения требуемой частоты (Гц)
б) установка процента (%) от максимальной скорости
- Введены и вынесены в шапку константы для настройки параметров связи по умолчанию (/dev/ttyUSB0, 9600, 8N1 и т.п.)
- При вызове справки (spindle-vfd -h) в описание ключей, а именно их дефолтных значений, подставляются введённые выше константы. Таким образом, в случае измений в константах, после перекомпиляции справка всё равно останется корректной.
- Предусмотрена возможность читать параметры двумя способами:
а) Одна команда - один параметр. Медленный и верный способ.
б) Одна команда - несколько параметров. Более быстрый способ. Очень удобно для чтения последовательной цепочки регистров.
- Проведена чёткая граница между уровнями логирования:
--verbose - просто полезные сервисные сообщения (что отправлено в ПЧ, что принято и т.д.)
--debug - включет --verbose и добавляет содержимое отправленных и принятых байт-пакетов
- К общему статусу соединения MODBUS добавлен код последней ошибки связи
- Подготовлены две панели glade: вариант для закладки (tab) и панель для размещения в правой части окна axis
- Добавлена возможность быстрой расшифровки кодов ошибок ПЧ и ошибок связи на панели glade (см. spindle-vfd.py)
- Кнопка "сбросить ошибку" активна только если установлено соединение MODBUS

Что нужно для быстрого старта?

1. Распаковываем архив, находим и открываем spindle-vfd.c в текстовом редакторе, лучше всего в gedit, так как я активно пользовался символом табуляции, и, что-бы ничего визуально не поплыло, лучше использовать именно его. Если gedit не устанолен, попробуйте sudo apt-get install gedit или Яндекс/Google.
2. Практически в самом начале файла объявляются настройки связи по умолчанию, вписываем свои значения. Можно ничего не вписывать, но тогда корректные настройки придётся задавать в custom.hal.
3. Далее перечислены адреса регистров для мониторинга параметров, для задания частоты и управления. Внимательно читаем манул на свой ПЧ и подставляем правильные адреса регистров.
4. Определяемся со способом задания частоты (абс. значение частоты или процент от макс. значения), указываем минимальную и максимальную допустимые скорости.
5. Открываем терминал, переходим в папку с исходниками, то есть непосредственно туда где лежит spindle-vfd.c. Набираем make, а затем, если компиляция завершилась успешно, sudo make install. Как узнать что компиляция завершилась успешно, если из километров текста в терминале ничего не понятно? Очень просто, в текущей папке должен появиться исполняемый файл spindle-vfd.
6. Переходим в папку sim.axis.example, в ней подготовлено два примера для проверки. Если в п.2 не были прописаны корректные дефолтные настройки, то укажите их явно в custom.hal. После пробуем любую из двух тестовых конфигураций, набрав в командной строке linuxcnc axis_panel.ini или linuxcnc axis_tab.ini.
7. Если мониторинг параметров работает, но значения слишком велики/малы, то нужно в spindle-vfd.c найти функцию read_data и подправить множители для неверно отображаемых параметров. В исходном коде есть подробный комментарий. После повторяем п.5.
8. Если на каком-то из этапов возникают трудности, то, наверное, задаём вопросы в этой теме. :-D

Подключение компонента к вашей конфигурации LinuxCNC

1. Копируем содержимое папки linuxcnc в папку с вашей рабочей конфигурацией, заменив или дополнив файлы custom.hal и custom_postgui.hal.
2. Открываем в любом текстовом редакторе ini-файл и в секции [DISPLAY] прописываем одну из двух glade-панелей.

Если нравится панель в правой части окна Axis:

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

[DISPLAY]
GLADEVCP = -u spindle-vfd.py spindle-vfd-panel.glade 
Если же хочется видеть вкладку:

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

[DISPLAY]
EMBED_TAB_NAME=Spindle-VFD
EMBED_TAB_COMMAND=halcmd loadusr -Wn gladevcp gladevcp -c gladevcp -x {XID} -u spindle-vfd.py spindle-vfd-tab.glade
3. Также в текстовом редакторе открываем spindle-vfd.py и редактируем список ошибок ПЧ. Вместо ерунды, приведённой по умолчанию, впишите корректные расшифровки кодов неисправностей, сверившись с мануалом на преобразователь.

Пример:

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

def fault_codes_list(case):
    return {
    0 : "ALL CLEAR",
    3 : "LOW VOLTAGE",
    7 : "OVERLOAD",
    8 : "OVERHEATING",
    9 : "OVERVOLTAGE",
    }.get(case, "UNKNOWN ERROR")
4. На этом всё. Можно запускать LinuxCNC.

Архив с исходниками
spindle-vfd.tar.gz
(55.61 КБ) 1784 скачивания
Обновление от 29.09.2017
Благодаря участнику форума N1X установлено, что в компоненте отсутствует пауза после передачи пакета, что может быть причиной неустойчивой связи с некоторыми частотниками. Исходник, где этот баг пофиксен, выложен тут: http://www.cnc-club.ru/forum/viewtopic. ... 30#p383830

Обновление от 01.04.2020
Проект морально устарел! Переходите на новую версию: http://www.cnc-club.ru/forum/viewtopic. ... 79#p557679
Последний раз редактировалось aekhv 01 апр 2020, 05:01, всего редактировалось 6 раз.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Частотник и Modbus. Универсальная заготовка.

Сообщение Serg »

Пожелание по интерерфейсу:
Большой и красивый индикатор скорости нафик не нужен (разве что только для склеротиков) - и так понятно, что он будет показывать то, что задано параметром S.
А вот индикатор тока необходим - именно он показывает нагрузку на шпиндель, что гораздо важнее.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
aekhv
Мастер
Сообщения: 393
Зарегистрирован: 17 окт 2014, 15:03
Репутация: 218
Настоящее имя: Александр
Откуда: г.Хабаровск
Контактная информация:

Re: Частотник и Modbus. Универсальная заготовка.

Сообщение aekhv »

UAVpilot писал(а):А вот индикатор тока необходим
Переделал панель-закладку, так лучше?
spindle-vfd-tab-new.png (16092 просмотра) <a class='original' href='./download/file.php?id=61860&sid=6ab3cca6e6bc62051f007808c55a0495&mode=view' target=_blank>Загрузить оригинал (60.37 КБ)</a>
Аватара пользователя
Сергей Саныч
Мастер
Сообщения: 9116
Зарегистрирован: 30 май 2012, 14:20
Репутация: 2857
Откуда: Тюмень
Контактная информация:

Re: Частотник и Modbus. Универсальная заготовка.

Сообщение Сергей Саныч »

А откуда брать информацию про момент? :thinking:
Чудес не бывает. Бывают фокусы.
Аватара пользователя
aekhv
Мастер
Сообщения: 393
Зарегистрирован: 17 окт 2014, 15:03
Репутация: 218
Настоящее имя: Александр
Откуда: г.Хабаровск
Контактная информация:

Re: Частотник и Modbus. Универсальная заготовка.

Сообщение aekhv »

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

Re: Частотник и Modbus. Универсальная заготовка.

Сообщение Serg »

Я б для универсальности оставил только один индикатор, которые показывал-бы момент, если есть или ток в противном случае.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
eugenysg
Опытный
Сообщения: 119
Зарегистрирован: 18 ноя 2013, 13:23
Репутация: 25
Контактная информация:

Re: Частотник и Modbus. Универсальная заготовка.

Сообщение eugenysg »

За труды +.
Но вот
BentScrew писал(а): но варианты исходников из этой темы по разным причинам не подходят, а при попытке понять как они устроены, с целью что-то изменить, в голове наступает состояние E-Stop.
не совсем правда - у меня ушло 1,5 вечера под пиво что бы заточить имеющиеся исходники под Веспер E2-8300. Комментарии более чем понятны, структура то же не запутанная.
P.S. Последний раз до этого Cи трогал руками лет 10 назад.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Частотник и Modbus. Универсальная заготовка.

Сообщение Serg »

А попробуй заточить под Huanyang...
У него не только команды/регистры не стандартные, но сам Modbus свой собственный... :)
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
aekhv
Мастер
Сообщения: 393
Зарегистрирован: 17 окт 2014, 15:03
Репутация: 218
Настоящее имя: Александр
Откуда: г.Хабаровск
Контактная информация:

Re: Частотник и Modbus. Универсальная заготовка.

Сообщение aekhv »

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

Re: Частотник и Modbus. Универсальная заготовка.

Сообщение Serg »

А зачем выходное напряжение? Тем более это по сути просто функция от частоты.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
Сергей Саныч
Мастер
Сообщения: 9116
Зарегистрирован: 30 май 2012, 14:20
Репутация: 2857
Откуда: Тюмень
Контактная информация:

Re: Частотник и Modbus. Универсальная заготовка.

Сообщение Сергей Саныч »

UAVpilot писал(а):А зачем выходное напряжение? Тем более это по сути просто функция от частоты.
В векторном режиме - не просто.
Чудес не бывает. Бывают фокусы.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Частотник и Modbus. Универсальная заготовка.

Сообщение Serg »

В любом режиме напряжение меняется так, чтобы получить нужный ток на обмотках. :)
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
eugenysg
Опытный
Сообщения: 119
Зарегистрирован: 18 ноя 2013, 13:23
Репутация: 25
Контактная информация:

Re: Частотник и Modbus. Универсальная заготовка.

Сообщение eugenysg »

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

Re: Частотник и Modbus. Универсальная заготовка.

Сообщение Serg »

Это всё-же Modbus, ибо изменены не обязательные параметры протокола, а лишь рекомендованные.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Kulibin74
Почётный участник
Почётный участник
Сообщения: 660
Зарегистрирован: 08 апр 2013, 15:33
Репутация: 65
Настоящее имя: Сергей Александрович
Откуда: Москва
Контактная информация:

Re: Частотник и Modbus. Универсальная заготовка.

Сообщение Kulibin74 »

А можно сделать так, чтобы если вдруг шпиндель аварийно остановился или возникла какая нибудь ошибка (превышение момента больше допустимого) станок вставал на аварийный стоп?
Аватара пользователя
aekhv
Мастер
Сообщения: 393
Зарегистрирован: 17 окт 2014, 15:03
Репутация: 218
Настоящее имя: Александр
Откуда: г.Хабаровск
Контактная информация:

Re: Частотник и Modbus. Универсальная заготовка.

Сообщение aekhv »

Почему бы и нет? Надо добавить в компонент опрос текущего значения момента и выходной пин для него, а при превышении некоторого порогового значения формировать сигнал, который затем завести на e-stop.
Аватара пользователя
Сергей Саныч
Мастер
Сообщения: 9116
Зарегистрирован: 30 май 2012, 14:20
Репутация: 2857
Откуда: Тюмень
Контактная информация:

Re: Частотник и Modbus. Универсальная заготовка.

Сообщение Сергей Саныч »

BentScrew писал(а):Надо добавить в компонент опрос текущего значения момента
Где б его только взять? :thinking:
Чудес не бывает. Бывают фокусы.
Аватара пользователя
aekhv
Мастер
Сообщения: 393
Зарегистрирован: 17 окт 2014, 15:03
Репутация: 218
Настоящее имя: Александр
Откуда: г.Хабаровск
Контактная информация:

Re: Частотник и Modbus. Универсальная заготовка.

Сообщение aekhv »

Дык ясно-понятно, что брать нужно из самого частотника, если конечно он имеет такую фичу. :hehehe:
Аватара пользователя
Сергей Саныч
Мастер
Сообщения: 9116
Зарегистрирован: 30 май 2012, 14:20
Репутация: 2857
Откуда: Тюмень
Контактная информация:

Re: Частотник и Modbus. Универсальная заготовка.

Сообщение Сергей Саныч »

В векторном режиме можно еще на ток шпинделя смотреть.
В "скалярном" на малых оборотах этот параметр не информативен. Можно полностью затормозить шпиндель, а ток почти не изменится.
Чудес не бывает. Бывают фокусы.
mmavka
Новичок
Сообщения: 27
Зарегистрирован: 04 окт 2014, 23:13
Репутация: 0
Настоящее имя: Илья
Откуда: Ярославль
Контактная информация:

Re: Частотник и Modbus. Универсальная заготовка.

Сообщение mmavka »

Доброго времени суток.
У меня проблема с настройкой данной заготовки. На вашем примере в тестовой конфигурации, все работает. Немного подправил файл. Частотник не поддерживает x06. пришлось пользоваться 10
так вот. в тестовой конфигурации я все настроил. Все работает. Но стоило присоединить к рабочей конфигурации у меня не больше 3000 об.мин. и не меняется. хотя все параметры читаются и шпиндель вкл и выкл. меняет направление.
Куда копать?
Ответить

Вернуться в «LinuxCNC»