Vfdmod - управляем частотником по MODBUS RTU

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
Аватара пользователя
xenon-alien
Почётный участник
Почётный участник
Сообщения: 3286
Зарегистрирован: 01 янв 2013, 13:13
Репутация: 690
Настоящее имя: Daniel
Откуда: Закарпатская обл. Украина
Контактная информация:

Re: Vfdmod - управляем частотником по MODBUS RTU

Сообщение xenon-alien »

alex_sar писал(а): 17 окт 2020, 00:27 а в чём вопрос?
там есть в конфиге чтение чего-то уже, по аналогии добавь чтение других регистров - появятся значения в HAL
а панелька это здесь уже злостный оффтопик..
На сколько я понял, то в твоем файле

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

[User parameter 1]
Address=0x3F0B
# HAL pin type: 'bit', 'float', 's32' or 'u32'.
PinType=float
Multiplier=1
Divider=100
PinName=output-current
Это чтение тока по адресу 3F0B. Верно? Потому что подобного адреса в твоем PDF файле не нашел. Или его тоже нужно преображать?
Этот момент ещё подскажи пожалуйста.
Параллельно я ищу инфу.
alex_sar
Мастер
Сообщения: 733
Зарегистрирован: 28 авг 2018, 17:13
Репутация: 99
Настоящее имя: Алексей
Контактная информация:

Re: Vfdmod - управляем частотником по MODBUS RTU

Сообщение alex_sar »

xenon-alien писал(а): Это чтение тока по адресу 3F0B. Верно? Потому что подобного адреса в твоем PDF файле не нашел. Или его тоже нужно преображать?
плохо искал ) он там есть!
Для опроса параметров ПЧВ и изменения их по сети используется следующие простые принципы адресации:
1. Все параметры ПЧВ доступны для удаленного прочтения с использованием протокола ModbusRTU.
2. Каждому параметру соответствует регистр (2 регистра) с уникальным адресом
3. Адрес соответствующего регистра определяется по номеру параметра в ПЧВ по
следующей формуле:
НОМЕР _ РЕГИСТРА = НОМЕР _ ПАРАМЕТРА × 10 - 1
4. Для адресации индексируемых параметров используйте соответствующий номер
регистра (табл.4) совместно с номером индекса, заданным в регистре 8.
Приложение В. Адресация регистров ОВЕН ПЧВ для удаленного опроса и управления
92
5. В некоторых параметрах по умолчанию смещено положение десятичной точки, для
того чтобы осуществлять передачу в формате регистра. Например значение регистра 16-13, равное 504, указывает на частоту привода 50,4 Гц.
Адресация регистров ПЧВ и возможности доступа к ним по RS-485 для опроса и
изменения по сети сведены в таблице В.4.
ну и дальше читай...
Аватара пользователя
xenon-alien
Почётный участник
Почётный участник
Сообщения: 3286
Зарегистрирован: 01 янв 2013, 13:13
Репутация: 690
Настоящее имя: Daniel
Откуда: Закарпатская обл. Украина
Контактная информация:

Re: Vfdmod - управляем частотником по MODBUS RTU

Сообщение xenon-alien »

Читал...
Я искал Ctrl+C, а потом Ctrl+V 3F0B и такого адреса в том PDF нету.
Полистал в ручную и оказалось, что то буква "О", а не цифра "0" и по этому не нашло.
Теперь понял.
Огромнейшая тебе благодарность милый человек! :good:
Аватара пользователя
成龙79
Кандидат
Сообщения: 55
Зарегистрирован: 11 сен 2016, 16:49
Репутация: 4
Контактная информация:

Re: Vfdmod - управляем частотником по MODBUS RTU

Сообщение 成龙79 »

Ура!!! Товарищи! У меня тоже заработало! :cheesy: :cheesy: :cheesy:
В общем получил сегодня свистки два черных и один синий как у *xenon-alien*. Подключил черный к ноутбуку запустил сервисную программу для ПЧ запустил скан. Программа выдала ошибку нет подключения. Ну думаю все наигрался спалил порт в ПЧ в прошлый раз. Без особой надежды подключил синий свисток, и нате все отсканировало ). Обрадовался конечно, порт цел можно продолжать эксперименты). Дай думаю линукс запущю поздно конечно уже по времени возится долго не буду, так глянуть.. Запустил терминал , смотрю ошибок нет ) помедлил секунду наверное перекрестился в душе, нажал старт шпинделя и не поверил своим ушам как он начат вращение :o :o .
Всем Спасибо! И извиняюсь кого я замучил своими вопросами. )
И сразу такой вопрос, у меня стоит переменный резистор с него я регулирую скорость шпинделя, когда включил с линукса шпиндель он сразу стал вращатся на частоте которая выставлена на резисторе то есть если в программе менять скорость вращения то не реагирует, а если крутить резистор то меняется скорость, В настройках ПЧ ставил (командное слово+ цифровой вход и только командное слово) ни помогает.
Правильно ли я понимаю чтобы регулировать скорость с линукса нужно отключать переменный резистор?
三条通往知识的道路:反思之路是最高贵之路,模仿之路是最简单之路,体验之路是最苦之路
alex_sar
Мастер
Сообщения: 733
Зарегистрирован: 28 авг 2018, 17:13
Репутация: 99
Настоящее имя: Алексей
Контактная информация:

Re: Vfdmod - управляем частотником по MODBUS RTU

Сообщение alex_sar »

成龙79 писал(а): Правильно ли я понимаю чтобы регулировать скорость с линукса нужно отключать переменный резистор?
Да нет вроде, ищи настройки про "задание" и ставь, чтобы брал задание только от rs-485
Аватара пользователя
xenon-alien
Почётный участник
Почётный участник
Сообщения: 3286
Зарегистрирован: 01 янв 2013, 13:13
Репутация: 690
Настоящее имя: Daniel
Откуда: Закарпатская обл. Украина
Контактная информация:

Re: Vfdmod - управляем частотником по MODBUS RTU

Сообщение xenon-alien »

成龙79 писал(а): Правильно ли я понимаю чтобы регулировать скорость с линукса нужно отключать переменный резистор?
Резистор в нулевое положение и все пункты с 8-50 до 8-56 - 3 и так попробовать.
достаточно добавить в файл custom.hal такие строки:

# Если хотите видеть отладочные сообщения добавьте флаг --debug
# loadusr -W vfdmod --debug my-config-file.ini

loadusr -W vfdmod my-config-file.ini

net spindle-speed-cmd => vfdmod.spindle.rpm-in
net spindle-at-speed <= vfdmod.spindle.at-speed
net spindle-cw => vfdmod.control.run-forward
net spindle-ccw => vfdmod.control.run-reverse

Убедитесь что основной HAL файл конфигурации станка содержит указанные выше сигналы. Например, в некоторых конфигурациях LinuxCNC вместо сигнала spindle-speed-cmd может быть spindle-vel-cmd-rpm.
Аватара пользователя
成龙79
Кандидат
Сообщения: 55
Зарегистрирован: 11 сен 2016, 16:49
Репутация: 4
Контактная информация:

Re: Vfdmod - управляем частотником по MODBUS RTU

Сообщение 成龙79 »

Хорошо Спасибо! Завтра вечерком буду разбираться.
三条通往知识的道路:反思之路是最高贵之路,模仿之路是最简单之路,体验之路是最苦之路
fox1024
Новичок
Сообщения: 4
Зарегистрирован: 21 фев 2016, 14:57
Репутация: 0
Настоящее имя: Гена
Контактная информация:

Re: Vfdmod - управляем частотником по MODBUS RTU

Сообщение fox1024 »

Помогите понять чего не хватает для запуска
Пишет постоянно
Found file(REL): ./custom.hal
Waiting for component 'vfdmod' to become ready....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

если использовать режим отладки то видно что обмен по модбасу идет нормальный

Found file(REL): ./custom.hal
Opening /dev/ttyUSB0 at 19200 bauds (N, 8, 1)

vfdmod: reading 'spindle.rpm-out' from address 8604 (0x219C)...
[01][03][21][9C][00][01][4E][18]
Waiting for a confirmation...
<01><03><02><00><00><B8><44>
vfdmod: returned value is 0 (0x0000)

vfdmod: setting command speed value to 10 (0x000A)...
[01][06][21][9A][00][0A][23][DE]
Waiting for a confirmation...
<01><06><21><9A><00><0A><23><DE>

vfdmod: setting control word value to 2 (0x0002)...
[01][06][21][99][00][02][D2][18]
Waiting for a confirmation...
<01><06><21><99><00><02><D2><18>

vfdmod: reading 'spindle.rpm-out' from address 8604 (0x219C)...
[01][03][21][9C][00][01][4E][18]
Waiting for a confirmation...
<01><03><02><00><00><B8><44>
vfdmod: returned value is 0 (0x0000)

vfdmod: setting command speed value to 10 (0x000A)...
[01][06][21][9A][00][0A][23][DE]
Waiting for a confirmation...
<01><06><21><9A><00><0A><23><DE>

vfdmod: setting control word value to 2 (0x0002)...
[01][06][21][99][00][02][D2][18]
Waiting for a confirmation...
<01><06><21><99><00><02><D2><18>

vfdmod: reading 'spindle.rpm-out' from address 8604 (0x219C)...
[01][03][21][9C][00][01][4E][18]
Waiting for a confirmation...
<01><03><02><00><00><B8><44>
vfdmod: returned value is 0 (0x0000)

и так до бесконечности)
alex_sar
Мастер
Сообщения: 733
Зарегистрирован: 28 авг 2018, 17:13
Репутация: 99
Настоящее имя: Алексей
Контактная информация:

Re: Vfdmod - управляем частотником по MODBUS RTU

Сообщение alex_sar »

ждёт пока имя компонента "vfdmod" появится, а вы видимо его переименовали
fox1024
Новичок
Сообщения: 4
Зарегистрирован: 21 фев 2016, 14:57
Репутация: 0
Настоящее имя: Гена
Контактная информация:

Re: Vfdmod - управляем частотником по MODBUS RTU

Сообщение fox1024 »

alex_sar писал(а): ждёт пока имя компонента "vfdmod" появится, а вы видимо его переименовали
спасибо, переименовал обратно, запустилось всё
Аватара пользователя
rage
Мастер
Сообщения: 798
Зарегистрирован: 13 окт 2014, 09:14
Репутация: 430
Настоящее имя: Константин
Откуда: Новосибирск
Контактная информация:

Re: Vfdmod - управляем частотником по MODBUS RTU

Сообщение rage »

Что то не выходит каменный цветок.

Настроил инишку под свой частотник. Подключил модуль, сгенерил и подключил панельку. Модуль подключается к частотнику, считывает текущую частоту и переводит ее в обороты, все правильно. Но вот обратно в частотник ничего не записывает от слова совсем.
Linuxcnc 2.8.1

custom.hal:

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

loadusr -W vfdmod --debug eg9600.ini

net spindle-cmd-rpm => vfdmod.spindle.rpm-in
net spindle-at-speed <= vfdmod.spindle.at-speed
net spindle-cw => vfdmod.control.run-forward
net spindle-ccw => vfdmod.control.run-reverse
custom_postgui.hal:

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

net spindle-rpm-out vfdmod.spindle.rpm-out => pyvcp.rpm-out
#net spindle-cmd-rpm vfdmod.spindle.rpm-out => pyvcp.rpm-out
net spindle-at-speed <= pyvcp.at-speed

# Communication
net pyvcp-is-connected vfdmod.rs485.is-connected => pyvcp.is-connected
net pyvcp-error-count vfdmod.rs485.error-count => pyvcp.error-count
net pyvcp-last-error vfdmod.rs485.last-error => pyvcp.last-error

loadrt oneshot names=fault-reset-delay
addf fault-reset-delay servo-thread
# Two seconds delay should be enough.
setp fault-reset-delay.width 2
net pyvcp-fault-reset-short pyvcp.fault-reset => fault-reset-delay.in
net pyvcp-fault-reset-long fault-reset-delay.out => vfdmod.control.fault-reset
Понимаю, что надо как то связать vfdmod с интерфейсом (axis) но вот как, не понятно.
Сигнала spindle-speed-cmd в основом hal файле у меня нет:

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

net spindle-cmd-rpm     <= spindle.0.speed-out
net spindle-cmd-rpm-abs <= spindle.0.speed-out-abs
net spindle-cmd-rps     <= spindle.0.speed-out-rps
net spindle-cmd-rps-abs <= spindle.0.speed-out-rps-abs
net spindle-at-speed    => spindle.0.at-speed
Пробовал давать команды через MDI s1000 m3/4/5 ноль реакции, пробовал с панели "ручное управление" включать/выключать шпиндель, тоже ноль реакции. В дебаге при этом просто идет обмен с частотником (считывает обороты)

Изображение

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

Re: Vfdmod - управляем частотником по MODBUS RTU

Сообщение aekhv »

Посмотрите есть ли в основном hal файле конфигурации станка сигналы spindle-cw и spindle-ccw? Возможно они не объявлены, и поэтому вкл/выкл шпинделя не работает. Также адрес и формат управляющего слова в ini может быть неверным, перепроверьте.
Аватара пользователя
rage
Мастер
Сообщения: 798
Зарегистрирован: 13 окт 2014, 09:14
Репутация: 430
Настоящее имя: Константин
Откуда: Новосибирск
Контактная информация:

Re: Vfdmod - управляем частотником по MODBUS RTU

Сообщение rage »

aekhv писал(а): 23 дек 2020, 17:52 Посмотрите есть ли в основном hal файле конфигурации станка сигналы spindle-cw и spindle-ccw? Возможно они не объявлены, и поэтому вкл/выкл шпинделя не работает. Также адрес и формат управляющего слова в ini может быть неверным, перепроверьте.
Нет, в основном hal файле этих сигналов нет. Написал чуть выше какие есть сигналы, это всё.

Разобрался с включением-выключением, добавил в custom.hal:

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

net spindle-at-speed <= vfdmod.spindle.at-speed => spindle.0.at-speed
net spindle-cw <= spindle.0.forward => vfdmod.control.run-forward
net spindle-ccw <= spindle.0.reverse => vfdmod.control.run-reverse
А вот с оборотами пока не понял. Не могу найти пин в "Установках HAL" который бы отвечал за заданные обороты.
alex_sar
Мастер
Сообщения: 733
Зарегистрирован: 28 авг 2018, 17:13
Репутация: 99
Настоящее имя: Алексей
Контактная информация:

Re: Vfdmod - управляем частотником по MODBUS RTU

Сообщение alex_sar »

rage писал(а): А вот с оборотами пока не понял. Не могу найти пин в "Установках HAL" который бы отвечал за заданные обороты.
spindle.0.speed-out-abs
Аватара пользователя
rage
Мастер
Сообщения: 798
Зарегистрирован: 13 окт 2014, 09:14
Репутация: 430
Настоящее имя: Константин
Откуда: Новосибирск
Контактная информация:

Re: Vfdmod - управляем частотником по MODBUS RTU

Сообщение rage »

alex_sar писал(а): 23 дек 2020, 18:30
rage писал(а): А вот с оборотами пока не понял. Не могу найти пин в "Установках HAL" который бы отвечал за заданные обороты.
spindle.0.speed-out-abs
Как его правильно подключить?

И еще вопрос по пинам vfdmod.spindle.rpm-in и vfdmod.spindle.rpm-out какой из них для чего?
Один я так понимаю читает из частотника, а второй наоборот записывает? in/out - оно ведь относительно с какой стороны смотреть :D
Аватара пользователя
aekhv
Мастер
Сообщения: 381
Зарегистрирован: 17 окт 2014, 15:03
Репутация: 210
Настоящее имя: Александр
Откуда: г.Хабаровск
Контактная информация:

Re: Vfdmod - управляем частотником по MODBUS RTU

Сообщение aekhv »

rage писал(а): Как его правильно подключить?
Пин spindle.0.speed-out-abs уже соединён с сигналом spindle-cmd-rpm-abs, вот его и используйте. В custom.hal исправьте:

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

# Убрать
# net spindle-cmd-rpm => vfdmod.spindle.rpm-in

# Добавить
net spindle-cmd-rpm-abs => vfdmod.spindle.rpm-in
rage писал(а): какой из них для чего?
Ответ на этот вопрос см. в вики, ссылка в первом сообщении темы.
Аватара пользователя
aekhv
Мастер
Сообщения: 381
Зарегистрирован: 17 окт 2014, 15:03
Репутация: 210
Настоящее имя: Александр
Откуда: г.Хабаровск
Контактная информация:

Re: Vfdmod - управляем частотником по MODBUS RTU

Сообщение aekhv »

Посмотрел внимательнее, изначальный вариант тоже должен работать:

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

net spindle-cmd-rpm => vfdmod.spindle.rpm-in
Сигнал spindle-cmd-rpm у вас есть, задание оборотов vfdmod должен получать. Возможно причина в коэффициентах? На минимальных оборотах шпиндель стартует?
Аватара пользователя
rage
Мастер
Сообщения: 798
Зарегистрирован: 13 окт 2014, 09:14
Репутация: 430
Настоящее имя: Константин
Откуда: Новосибирск
Контактная информация:

Re: Vfdmod - управляем частотником по MODBUS RTU

Сообщение rage »

В MDI даю команду S1000 (например) должно ли это значение сразу записываться в частотник? Или только при включении шпинделя? Если только при включении можно ли сделать, что бы сразу?
alex_sar
Мастер
Сообщения: 733
Зарегистрирован: 28 авг 2018, 17:13
Репутация: 99
Настоящее имя: Алексей
Контактная информация:

Re: Vfdmod - управляем частотником по MODBUS RTU

Сообщение alex_sar »

rage писал(а): 24 дек 2020, 11:25 В MDI даю команду S1000 (например) должно ли это значение сразу записываться в частотник? Или только при включении шпинделя? Если только при включении можно ли сделать, что бы сразу?
На все вопросы есть один простой ответ

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

halcmd show | grep spindle | less

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

Re: Vfdmod - управляем частотником по MODBUS RTU

Сообщение aekhv »

rage писал(а): должно ли это значение сразу записываться в частотник? Или только при включении шпинделя?
Заданные обороты на входе vfdmod.spindle.rpm-in сразу же записываются в регистр задания частоты частотника, независимо от того подана команда на включение или нет. Проверяется только выход за допустимые пределы, поэтому когда в LinuxCNC шпиндель выключен и заданные обороты таким образов нулевые, в частотник всегда записывается минимально допустимые обороты (см. параметр MinSpeedRPM в конфиге).

Обратите внимание на выделенный выше текст, иначе говоря когда шпиндель выключен команда MDI Sxxxx на выходы spindle.0.speed-out-xxx никак не повлияет, там будет ноль. Обороты появятся после подачи M3 или M4.
Ответить

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