Управление частотником через modbus.
-
Kulibin74
- Почётный участник

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

- Сообщения: 665
- Зарегистрирован: 08 апр 2013, 15:33
- Репутация: 65
- Настоящее имя: Сергей Александрович
- Откуда: Москва
- Контактная информация:
Re: Управление частотником через modbus.
Нарыл программу для управления моим частотником Powtech pt-200
Пойду пробовать связаться с частотником.
Не запустилась под WINE...Вернее запускается после кучи ошибок, но окно программмы не полностью отображается, не растягивается...
Скриншот с винды.
Пойду пробовать связаться с частотником.
Не запустилась под WINE...Вернее запускается после кучи ошибок, но окно программмы не полностью отображается, не растягивается...
Скриншот с винды.
- Вложения
-
- 2014091002.zip
- 35 Мб
- (35.6 МБ) 307 скачиваний
Последний раз редактировалось Kulibin74 03 авг 2015, 21:00, всего редактировалось 3 раза.
-
Kulibin74
- Почётный участник

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

- Сообщения: 665
- Зарегистрирован: 08 апр 2013, 15:33
- Репутация: 65
- Настоящее имя: Сергей Александрович
- Откуда: Москва
- Контактная информация:
Re: Управление частотником через modbus.
я для debian есть такие программы?
- aekhv
- Мастер
- Сообщения: 393
- Зарегистрирован: 17 окт 2014, 15:03
- Репутация: 218
- Настоящее имя: Александр
- Откуда: г.Хабаровск
Re: Управление частотником через modbus.
Скорее всего есть какое-то простое консольное решение, должно быть. Гуру линуксов, подскажите! 
У вас же софт под вайном не робит? Ну и запускайте его вместе со шпионом из виндовс, главное ведь лог получить - запросы и ответы. Сравните с мануалом, разберите пакеты по байтам, где там адрес устройства, где байт команды, где аргументы, где crc. Потом надо будет попробовать отправить что-нибудь в частотник вручную, например запрос на чтение какого-либо параметра. Для этого составляете запрос, в виде последовательности байт в блокноте или даже на бумажке, и отправляете его, можно даже из консоли:Если частотник выдаст адекватный ответ, то вы почти кул-хацкер
А когда научитесь вручную давать команды на запуск/останов и установку частоты, то считайте пол дела сделано, останется только допилить чужие исходники под свой преобразователь.
У вас же софт под вайном не робит? Ну и запускайте его вместе со шпионом из виндовс, главное ведь лог получить - запросы и ответы. Сравните с мануалом, разберите пакеты по байтам, где там адрес устройства, где байт команды, где аргументы, где crc. Потом надо будет попробовать отправить что-нибудь в частотник вручную, например запрос на чтение какого-либо параметра. Для этого составляете запрос, в виде последовательности байт в блокноте или даже на бумажке, и отправляете его, можно даже из консоли:
Код: Выделить всё
echo -e "\x01\x02\x03\x04\x05\x06" > /dev/ttyS0-
Kulibin74
- Почётный участник

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

- Сообщения: 665
- Зарегистрирован: 08 апр 2013, 15:33
- Репутация: 65
- Настоящее имя: Сергей Александрович
- Откуда: Москва
- Контактная информация:
Re: Управление частотником через modbus.
Софт и в семерке при запуске выдает ошибок десять, только потом запускается, только после изменения режима совместимости на XP SP2 запускается без ошибок. Жаль в Wine нет такой функции.BentScrew писал(а):У вас же софт под вайном не робит?
- aekhv
- Мастер
- Сообщения: 393
- Зарегистрирован: 17 окт 2014, 15:03
- Репутация: 218
- Настоящее имя: Александр
- Откуда: г.Хабаровск
Re: Управление частотником через modbus.
Да.Kulibin74 писал(а):Это все мне было адресовано, постом выше?
А вот это очень интересно. Если вы про мою панель, то мигающий жёлтый - это наличие связи по modbus. Это значит, что программа получает какой-то ответ от частотника. Было бы интересно взглянуть.Kulibin74 писал(а):А когда индикатор Modbus status на окне шпинделя В ЕМС2 моргает желтым это что значит?
Добавьте в 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 tecorp.ini > ~/linuxcnc-debug.txt-
Kulibin74
- Почётный участник

- Сообщения: 665
- Зарегистрирован: 08 апр 2013, 15:33
- Репутация: 65
- Настоящее имя: Сергей Александрович
- Откуда: Москва
- Контактная информация:
Re: Управление частотником через modbus.
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
Вроде какието данные с частотника получает, но записать команду не может, Правильно я из лога понял?
.
/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.
Обмен в первом приближении есть, на запросы частотник отвечает. Получаемые данные не адекватные так как опрашиваются не те параметры. Например, у меня текущая температура - чтение параметра P006, у вас это должно быть чтение P00.15 или P00.16. См. стр. 48 мануала (P00 group Monitoring function group), там перечислены все параметры, которые можно мониторить. Сейчас можете подправить файлик hc1c_vfd.h, прописав туда свои параметры для мониторинга, т.е. замените значения 0x0001...0x0006 на свои. Затем sudo make install. После этого в панельке должны появиться циферки, похожие на правду.
Запись в регистры уставки частоты и запуска не проходит, т.к. опять же пишется не туда куда надо... А куда должно писаться пока не разобрался...
P.S. Судя по логу свзять не стабильна, частотник не всегда отвечает с первой попытки.
Запись в регистры уставки частоты и запуска не проходит, т.к. опять же пишется не туда куда надо... А куда должно писаться пока не разобрался...
P.S. Судя по логу свзять не стабильна, частотник не всегда отвечает с первой попытки.
- aekhv
- Мастер
- Сообщения: 393
- Зарегистрирован: 17 окт 2014, 15:03
- Репутация: 218
- Настоящее имя: Александр
- Откуда: г.Хабаровск
Re: Управление частотником через modbus.
Вот так должно быть:
Вообще параметров гораздо больше, но моя модификация умеет мониторить только шесть. Попробуйте скомпилировать, ждём результатов. 
Код: Выделить всё
#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.
я чего-то не пойму цифры в мануале в
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 в каком формате? мне надо еще адреса для чтения и записи поменять.
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.
Запись параметров прикрутим позже, сначала давайте элементарный мониторинг настроим. Я выше готовый кусок привёл, который надо вставить в hch1c_vfd.h (поверх существующего фрагмента). Затем компилируете и проверяете работает или нет.
-
Kulibin74
- Почётный участник

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

- Сообщения: 665
- Зарегистрирован: 08 апр 2013, 15:33
- Репутация: 65
- Настоящее имя: Сергей Александрович
- Откуда: Москва
- Контактная информация:
Re: Управление частотником через modbus.
// Tecorp HC1C+ : параметры для мониторингаBentScrew писал(а):поверх существующего фрагмента)
#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.
Да нет же, "поверх" значит с заменой существующего фрагмента.
Эдак у вас каша из констант получилась.
Это надо удалить:
Это оставить:
Это надо удалить:
Код: Выделить всё
#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.
да уже убрал, только я все равно не понимаю, почему он должен прочитать параметры, если адрес не указан.
- aekhv
- Мастер
- Сообщения: 393
- Зарегистрирован: 17 окт 2014, 15:03
- Репутация: 218
- Настоящее имя: Александр
- Откуда: г.Хабаровск
Re: Управление частотником через modbus.
Какой такой адрес? Адрес чего?Kulibin74 писал(а): если адрес не указан
У вас общение на уровне отправка/приём пакетов данных уже реализовано, это отлично видно в логе. Сейчас проблема нумер один - не те параметры преобразователя опрашиваются для мониторинга, и нумер два - не то и не туда записывается для установки частоты и подачи команды на запуск. Решаем проблемы последовательно, т.е. сначала мониторинг. Кстати, пока шпиндель не вращается, большинство параметров у вас будут в нулях, попробуйте шпиндель кнопочкой на частотнике включить (если он позволит это сделать, мой в режиме общения по modbus не разрешает такие фокусы), на месте ноликов что-то должно появиться. И лог обязательно приложите.