Управление частотником через modbus.

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
Kulibin74
Почётный участник
Почётный участник
Сообщения: 665
Зарегистрирован: 08 апр 2013, 15:33
Репутация: 65
Настоящее имя: Сергей Александрович
Откуда: Москва
Контактная информация:

Re: Управление частотником через modbus.

Сообщение Kulibin74 »

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

Re: Управление частотником через modbus.

Сообщение aekhv »

Не имея на руках частотника для опытов, переделать исходники для работы с ним очень-очень хлопотно.

Вкратце схема работы такая:
1. Внимательно изучить манул, понять как формируются пакеты и как рассчитываются контрольные суммы для них. Понять что должен ответить преобразователь.
2. При помощи программы, умеющей общаться с com-портом, вручную что-либо отправить преобразователю. Убедиться в адекватном ответе. Если есть готовый софт, который умеет общаться с преобразователем по modbus, то очень поможет программа-шпион, следящая за обменом через порт.
3. Когда в голове выработается ясное понимание, как оно работает в целом, реализовать свои мысли в виде правок выложенных тут исходников. Обычно к этому моменту уже становится понятно, как они (исходники) работают :freak:
Это только по началу кажется очень сложным, главное захотеть в проблеме разобраться. Я в си вообще ничего не понимал, но очень хотел частотник по modbus завести. :cheesy: Тужился на эти исходники из последних сил, по строкам, по абзацам ковырял. Несколько раз бросал, думал зря время трачу. :hottabych: А потом БАЦ - озарение! Я вижу Матрицу! И всё завелось. :hehehe:
Kulibin74
Почётный участник
Почётный участник
Сообщения: 665
Зарегистрирован: 08 апр 2013, 15:33
Репутация: 65
Настоящее имя: Сергей Александрович
Откуда: Москва
Контактная информация:

Re: Управление частотником через modbus.

Сообщение Kulibin74 »

Нарыл программу для управления моим частотником Powtech pt-200
Пойду пробовать связаться с частотником.
Не запустилась под WINE...Вернее запускается после кучи ошибок, но окно программмы не полностью отображается, не растягивается...
Скриншот с винды.
Вложения
окно программы (2172 просмотра) <a class='original' href='./download/file.php?id=55241&mode=view' target=_blank>Загрузить оригинал (204.82 КБ)</a>
окно программы
2014091002.zip
35 Мб
(35.6 МБ) 307 скачиваний
Последний раз редактировалось Kulibin74 03 авг 2015, 21:00, всего редактировалось 3 раза.
Kulibin74
Почётный участник
Почётный участник
Сообщения: 665
Зарегистрирован: 08 апр 2013, 15:33
Репутация: 65
Настоящее имя: Сергей Александрович
Откуда: Москва
Контактная информация:

Re: Управление частотником через modbus.

Сообщение Kulibin74 »

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

Re: Управление частотником через modbus.

Сообщение aekhv »

Kulibin74 писал(а):Что за программа?
Их много, на любой вкус и цвет, вот даже тема есть: Программа для прослушивания СОМ порта
Kulibin74
Почётный участник
Почётный участник
Сообщения: 665
Зарегистрирован: 08 апр 2013, 15:33
Репутация: 65
Настоящее имя: Сергей Александрович
Откуда: Москва
Контактная информация:

Re: Управление частотником через modbus.

Сообщение Kulibin74 »

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

Re: Управление частотником через modbus.

Сообщение aekhv »

Скорее всего есть какое-то простое консольное решение, должно быть. Гуру линуксов, подскажите! :thinking:

У вас же софт под вайном не робит? Ну и запускайте его вместе со шпионом из виндовс, главное ведь лог получить - запросы и ответы. Сравните с мануалом, разберите пакеты по байтам, где там адрес устройства, где байт команды, где аргументы, где crc. Потом надо будет попробовать отправить что-нибудь в частотник вручную, например запрос на чтение какого-либо параметра. Для этого составляете запрос, в виде последовательности байт в блокноте или даже на бумажке, и отправляете его, можно даже из консоли:

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

echo -e "\x01\x02\x03\x04\x05\x06" > /dev/ttyS0
Если частотник выдаст адекватный ответ, то вы почти кул-хацкер :good: А когда научитесь вручную давать команды на запуск/останов и установку частоты, то считайте пол дела сделано, останется только допилить чужие исходники под свой преобразователь.
Kulibin74
Почётный участник
Почётный участник
Сообщения: 665
Зарегистрирован: 08 апр 2013, 15:33
Репутация: 65
Настоящее имя: Сергей Александрович
Откуда: Москва
Контактная информация:

Re: Управление частотником через modbus.

Сообщение Kulibin74 »

Это все мне было адресовано, постом выше? Не успел я сегодня ноут с семеркой подцепить к частотнику. Мысль была такая же как написали выше, только что потом с этим делать для меня темный лес... :D. но у меня принцип "чем дальше в лес...и т.д. и т.п." А когда индикатор Modbus status на окне шпинделя В ЕМС2 моргает желтым это что значит?
Kulibin74
Почётный участник
Почётный участник
Сообщения: 665
Зарегистрирован: 08 апр 2013, 15:33
Репутация: 65
Настоящее имя: Сергей Александрович
Откуда: Москва
Контактная информация:

Re: Управление частотником через modbus.

Сообщение Kulibin74 »

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

Re: Управление частотником через modbus.

Сообщение aekhv »

Kulibin74 писал(а):Это все мне было адресовано, постом выше?
Да.
Kulibin74 писал(а):А когда индикатор Modbus status на окне шпинделя В ЕМС2 моргает желтым это что значит?
А вот это очень интересно. Если вы про мою панель, то мигающий жёлтый - это наличие связи по modbus. Это значит, что программа получает какой-то ответ от частотника. Было бы интересно взглянуть.

Добавьте в custom.hal флаг отладки (--debug), включится расширенное логирование. Вот для примера:

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

# Load the VFD user component
loadusr -Wn spindle-vfd hc1c_vfd -n spindle-vfd -d /dev/ttyUSB0 -r 9600 -b 8 -p none -s 1 -t 1 --debug 
Затем запускаем linuxcnc из консоли:

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

linuxcnc tecorp.ini > ~/linuxcnc-debug.txt
Ждем секунд 5...10, linuxcnc закрываем, в домашнем каталоге появится файлик linuxcnc-debug.txt, его загрузите сюда.
Kulibin74
Почётный участник
Почётный участник
Сообщения: 665
Зарегистрирован: 08 апр 2013, 15:33
Репутация: 65
Настоящее имя: Сергей Александрович
Откуда: Москва
Контактная информация:

Re: Управление частотником через modbus.

Сообщение Kulibin74 »

user@cnc:~/linuxcnc/configs/my1$ linuxcnc my1.ini > ~/linuxcnc-debug.txt
.
/usr/bin/gladevcp:292: GtkWarning: GdkWindow 0x3e00003 unexpectedly destroyed
gtk.main()
**** GLADE VCP ERROR: X Protocol Error: 3
user@cnc:~/linuxcnc/configs/my1$
это после выключения Linuxcnc
Вроде какието данные с частотника получает, но записать команду не может, Правильно я из лога понял?
Вложения
linuxcnc-debug.txt
(56.35 КБ) 1072 скачивания
Аватара пользователя
aekhv
Мастер
Сообщения: 393
Зарегистрирован: 17 окт 2014, 15:03
Репутация: 218
Настоящее имя: Александр
Откуда: г.Хабаровск

Re: Управление частотником через modbus.

Сообщение aekhv »

Обмен в первом приближении есть, на запросы частотник отвечает. Получаемые данные не адекватные так как опрашиваются не те параметры. Например, у меня текущая температура - чтение параметра P006, у вас это должно быть чтение P00.15 или P00.16. См. стр. 48 мануала (P00 group Monitoring function group), там перечислены все параметры, которые можно мониторить. Сейчас можете подправить файлик hc1c_vfd.h, прописав туда свои параметры для мониторинга, т.е. замените значения 0x0001...0x0006 на свои. Затем sudo make install. После этого в панельке должны появиться циферки, похожие на правду.

Запись в регистры уставки частоты и запуска не проходит, т.к. опять же пишется не туда куда надо... А куда должно писаться пока не разобрался...

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

Re: Управление частотником через modbus.

Сообщение aekhv »

Вот так должно быть:

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

#define STATUS_Set_Freq		0x0001
#define STATUS_Output_Freq	0x0000
#define STATUS_Output_Current	0x0004
#define STATUS_Rotating_Speed	0x0005
#define STATUS_DC_Bus_Voltage	0x0002
#define STATUS_Temperature	0x0016
Вообще параметров гораздо больше, но моя модификация умеет мониторить только шесть. Попробуйте скомпилировать, ждём результатов. ;)
Kulibin74
Почётный участник
Почётный участник
Сообщения: 665
Зарегистрирован: 08 апр 2013, 15:33
Репутация: 65
Настоящее имя: Сергей Александрович
Откуда: Москва
Контактная информация:

Re: Управление частотником через modbus.

Сообщение Kulibin74 »

я чего-то не пойму цифры в мануале в
And transmission character which can be
used is hexadecimal 0...9, A...F. network equipment constantly detects network
bus, including the time of pause interval.
а в файлах hv1vd.h в каком формате? мне надо еще адреса для чтения и записи поменять.
Аватара пользователя
aekhv
Мастер
Сообщения: 393
Зарегистрирован: 17 окт 2014, 15:03
Репутация: 218
Настоящее имя: Александр
Откуда: г.Хабаровск

Re: Управление частотником через modbus.

Сообщение aekhv »

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

Re: Управление частотником через modbus.

Сообщение Kulibin74 »

сделал как описано выше, параметры не мониторятся
Вложения
linuxcnc-debug.txt
(44.35 КБ) 981 скачивание
Kulibin74
Почётный участник
Почётный участник
Сообщения: 665
Зарегистрирован: 08 апр 2013, 15:33
Репутация: 65
Настоящее имя: Сергей Александрович
Откуда: Москва
Контактная информация:

Re: Управление частотником через modbus.

Сообщение Kulibin74 »

BentScrew писал(а):поверх существующего фрагмента)
// Tecorp HC1C+ : параметры для мониторинга
#define STATUS_Set_Freq 0x0001
#define STATUS_Output_Freq 0x0000
#define STATUS_Output_Current 0x0004
#define STATUS_Rotating_Speed 0x0005
#define STATUS_DC_Bus_Voltage 0x0002
#define STATUS_Temperature 0x0016
#define STATUS_Set_Freq 0x0001 // P001 - Заданная частота
#define STATUS_Output_Freq 0x0002 // P002 - Выходная частота
#define STATUS_Output_Current 0x0003 // P003 - Выходной ток
#define STATUS_Rotating_Speed 0x0004 // P004 - Скорость вращения
#define STATUS_DC_Bus_Voltage 0x0005 // P005 - Напряжение в линии
#define STATUS_Temperature 0x0006 // P006 - Температура

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

Re: Управление частотником через modbus.

Сообщение aekhv »

Да нет же, "поверх" значит с заменой существующего фрагмента. :hehehe: Эдак у вас каша из констант получилась.

Это надо удалить:

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

#define STATUS_Set_Freq	0x0001 // P001 - Заданная частота
#define STATUS_Output_Freq	0x0002 // P002 - Выходная частота
#define STATUS_Output_Current	0x0003 // P003 - Выходной ток
#define STATUS_Rotating_Speed	0x0004 // P004 - Скорость вращения
#define STATUS_DC_Bus_Voltage	0x0005 // P005 - Напряжение в линии
#define STATUS_Temperature	0x0006 // P006 - Температура
Это оставить:

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

#define STATUS_Set_Freq 0x0001
#define STATUS_Output_Freq 0x0000
#define STATUS_Output_Current 0x0004
#define STATUS_Rotating_Speed 0x0005
#define STATUS_DC_Bus_Voltage 0x0002
#define STATUS_Temperature 0x0016
Kulibin74
Почётный участник
Почётный участник
Сообщения: 665
Зарегистрирован: 08 апр 2013, 15:33
Репутация: 65
Настоящее имя: Сергей Александрович
Откуда: Москва
Контактная информация:

Re: Управление частотником через modbus.

Сообщение Kulibin74 »

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

Re: Управление частотником через modbus.

Сообщение aekhv »

Kulibin74 писал(а): если адрес не указан
Какой такой адрес? Адрес чего?

У вас общение на уровне отправка/приём пакетов данных уже реализовано, это отлично видно в логе. Сейчас проблема нумер один - не те параметры преобразователя опрашиваются для мониторинга, и нумер два - не то и не туда записывается для установки частоты и подачи команды на запуск. Решаем проблемы последовательно, т.е. сначала мониторинг. Кстати, пока шпиндель не вращается, большинство параметров у вас будут в нулях, попробуйте шпиндель кнопочкой на частотнике включить (если он позволит это сделать, мой в режиме общения по modbus не разрешает такие фокусы), на месте ноликов что-то должно появиться. И лог обязательно приложите.
Ответить

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