Тестирование и настройка modbus под linux
- Сергей Саныч
- Мастер
- Сообщения: 9116
- Зарегистрирован: 30 май 2012, 14:20
- Репутация: 2856
- Откуда: Тюмень
- Контактная информация:
Тестирование и настройка modbus под linux
Вот такой вопрос: кто-нибудь знает утилиту под Линукс, чтобы проверять/настраивать устройства с modbus?
Пробовал modpoll и QModBus - ни с одной не получилось связаться с инвертором. Такое впечатление, что первая толком не работает с ttyUSB, а вторая не умеет считать CRC.
(инвертор прекрасно управляется по модбасу из LCNC).
Пробовал modpoll и QModBus - ни с одной не получилось связаться с инвертором. Такое впечатление, что первая толком не работает с ttyUSB, а вторая не умеет считать CRC.
(инвертор прекрасно управляется по модбасу из LCNC).
Чудес не бывает. Бывают фокусы.
-
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: Тестирование и настройка modbus под linux
настраивал платку под модбас в емс , cмотрел порт программкой COMPamp...
- Сергей Саныч
- Мастер
- Сообщения: 9116
- Зарегистрирован: 30 май 2012, 14:20
- Репутация: 2856
- Откуда: Тюмень
- Контактная информация:
Re: Тестирование и настройка modbus под linux
COMpump не умеет считать CRC.
Чудес не бывает. Бывают фокусы.
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5181
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Тестирование и настройка modbus под linux
Я писал свою, где-то в теме про полезные программы есть. В теории настраивается под любой частотник просто созданием файла описания на основе мануала.
Написана на Tcl/Tk, Афтаев её вроде даж в венде запускал.
Написана на Tcl/Tk, Афтаев её вроде даж в венде запускал.

Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
- Сергей Саныч
- Мастер
- Сообщения: 9116
- Зарегистрирован: 30 май 2012, 14:20
- Репутация: 2856
- Откуда: Тюмень
- Контактная информация:
Re: Тестирование и настройка modbus под linux
Вот эта Полезные программы #61?UAVpilot писал(а):Я писал свою, где-то в теме про полезные программы есть.
Похоже, то, что нужно.

Пропишу конфигурацию под свой частотник и попробую.
Чудес не бывает. Бывают фокусы.
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5181
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Тестирование и настройка modbus под linux
Она.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
- Сергей Саныч
- Мастер
- Сообщения: 9116
- Зарегистрирован: 30 май 2012, 14:20
- Репутация: 2856
- Откуда: Тюмень
- Контактная информация:
Re: Тестирование и настройка modbus под linux
Похоже, не пойдет. Структура команд инвертора совсем другая, надо чего-то переписывать, а не только конфигурацию. я даже не нашел, где адрес устройства задается.
А Tcl/Tk мне совсем не знакомый
А Tcl/Tk мне совсем не знакомый

Чудес не бывает. Бывают фокусы.
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5181
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Тестирование и настройка modbus под linux
Покаж?Serg-tmn писал(а):Структура команд инвертора совсем другая, надо чего-то переписывать, а не только конфигурацию.
На нулевой адрес любое устройство обязано отвечать.Serg-tmn писал(а):я даже не нашел, где адрес устройства задается.
Очень простой и логичный язык со стройными правилами синтаксиса с всего одним исключением:Serg-tmn писал(а):А Tcl/Tk мне совсем не знакомый
Между командой "#" и её аргументами пробелы необязательны.

И кстати очень компактный - runtime всего 1.5 MB.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
- Сергей Саныч
- Мастер
- Сообщения: 9116
- Зарегистрирован: 30 май 2012, 14:20
- Репутация: 2856
- Откуда: Тюмень
- Контактная информация:
Re: Тестирование и настройка modbus под linux
Пока мне бы хоть ответа от инвертора добиться на конкретную командуUAVpilot писал(а):Покаж?
добавил в код
Код: Выделить всё
### set cmd [binary format c* [list 1 1 1 $pcode]]
set cmd [binary format c* [list 5 3 1 1 0 1]]
puts $fd ;###
Код: Выделить всё
after [expr $::vfd::rs485RcvTimeout * $::vfd::rs485NetTimeout]
set resp [read $fd]
binary scan $str H* x ;###
puts "send: $x" ;###
Код: Выделить всё
send: 050301010001d5b2
ругается на таймаут, то есть вроде как ничего не приняло.
Скорость и прочее установлены как надо.
Чудес не бывает. Бывают фокусы.
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5181
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Тестирование и настройка modbus под linux
Может он у тебя в ASCII работает?
Там рядом с твоими добавлениями есть
поправь на
И вообще для тестирования лучше в конце строчки начиная с
или даже с
закоментить или удалить, а строчки начиная с
раскоментить, не все сразу, а некторые и пробовать так, в консоли.
Там рядом с твоими добавлениями есть
Код: Выделить всё
if {[catch {vfd::rs485io $fd $cmd} res]} {
Код: Выделить всё
if {[catch {vfd::rs485io $fd $cmd -asc} res]} {
Код: Выделить всё
set ::prgbar 0
Код: Выделить всё
package require BWidget
Код: Выделить всё
#set port /dev/ttyUSB0
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
- Сергей Саныч
- Мастер
- Сообщения: 9116
- Зарегистрирован: 30 май 2012, 14:20
- Репутация: 2856
- Откуда: Тюмень
- Контактная информация:
Re: Тестирование и настройка modbus под linux
Инвертор? нет, в RTU.UAVpilot писал(а):Может он у тебя в ASCII работает?
Сделал, как ты сказал:
Код: Выделить всё
set port /dev/ttyUSB0
if {[catch {vfd::rs485open $port} fd]} {
puts stderr "ERROR: Can't open port $port: $fd"
exit 1
}
#set res [vfd::rs485io $fd ":010203000bb8"]
set cmd "\x05\x03\x01\x01\x00\x01"
#set cmd "\x01\x01\x01\x17"
#set cmd "\x01\x04\x01\x07"
binary scan $cmd H* x
puts "send: $x"
set res [vfd::rs485io $fd $cmd]
binary scan $res H* x
puts "recv: $x"
vfd::rs485close $fd
exit 0
Код: Выделить всё
cnc@cnc-desktop:~/linuxcnc/modbus$ ./vfd
send: 050301010001
send: 050301010001d5b2
Command timeout.
while executing
"vfd::rs485io $fd $cmd"
invoked from within
"set res [vfd::rs485io $fd $cmd]"
(file "./vfd" line 195)
cnc@cnc-desktop:~/linuxcnc/modbus$
Чудес не бывает. Бывают фокусы.
- Сергей Саныч
- Мастер
- Сообщения: 9116
- Зарегистрирован: 30 май 2012, 14:20
- Репутация: 2856
- Откуда: Тюмень
- Контактная информация:
Re: Тестирование и настройка modbus под linux
А подскажи, где у тебя настраиваются параметры порта (скорость, битность, четность)?
Чудес не бывает. Бывают фокусы.
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5181
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Тестирование и настройка modbus под linux
В оригинале: в начале param.conf
В тестовом варианте например так:
P.S. Проводки A и B не перепутаны?
В тестовом варианте например так:
Код: Выделить всё
if {[catch {vfd::rs485open $port 38400,n,8,1} fd]} {
puts stderr "ERROR: Can't open port $port: $fd"
exit 1
}
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
- Сергей Саныч
- Мастер
- Сообщения: 9116
- Зарегистрирован: 30 май 2012, 14:20
- Репутация: 2856
- Откуда: Тюмень
- Контактная информация:
Re: Тестирование и настройка modbus под linux
Это понятно.UAVpilot писал(а):В оригинале: в начале param.conf
Пробовал (со своими параметрами). Не помогло.UAVpilot писал(а):В тестовом варианте например так:
Железо в порядке. Под LCNC всё работает. Хочется только сделать удобную настройку.UAVpilot писал(а):P.S. Проводки A и B не перепутаны?
Чудес не бывает. Бывают фокусы.
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5181
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Тестирование и настройка modbus под linux
Попробуй добавь в vfd::rs485io:
чтоб посмотреть приходит чего-нибудь из порта.
Код: Выделить всё
while {1} {
set resp [read $fd]
if {$resp != ""} {
#------8<-------
binary scan $resp H* x
puts "Rx: $x"
#------8<-------
append buffer $resp
set CmdWait 0
set RcvWait 0
continue
}
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
- Сергей Саныч
- Мастер
- Сообщения: 9116
- Зарегистрирован: 30 май 2012, 14:20
- Репутация: 2856
- Откуда: Тюмень
- Контактная информация:
Re: Тестирование и настройка modbus под linux
Ну, в общем
, я
и 
У меня же питание инвертора включается при запуске LinuxCNC! То есть инвертор не отвечал, потому что был тупо обесточен! А у него на интерфейсном адаптере, который вместо штатной морды стоит, нет ни одной лампочки, да и отлаживаю по сети из соседнего помещения.
Сейчас всё нормально, запрос-ответ. Буду дальше про тикль читать.



У меня же питание инвертора включается при запуске LinuxCNC! То есть инвертор не отвечал, потому что был тупо обесточен! А у него на интерфейсном адаптере, который вместо штатной морды стоит, нет ни одной лампочки, да и отлаживаю по сети из соседнего помещения.
Сейчас всё нормально, запрос-ответ. Буду дальше про тикль читать.
Чудес не бывает. Бывают фокусы.
- NightV
- Почётный участник
- Сообщения: 6599
- Зарегистрирован: 30 дек 2011, 09:14
- Репутация: 2279
- Настоящее имя: Владимир Айрапетян
- Откуда: Israel
- Контактная информация:
Re: Тестирование и настройка modbus под linux
мда.. бывает.
мы на прошлой неделе искали 2 часа почему окума выпала в аларм.. после того как я ковырялся с насосом смазки.
как оказалось был нажат EStop
а веть я его сам нажал чтоб током тюкнуло... и забыл 
мы на прошлой неделе искали 2 часа почему окума выпала в аларм.. после того как я ковырялся с насосом смазки.
как оказалось был нажат EStop


Всё просто! если знаешь КАК!
- Сергей Саныч
- Мастер
- Сообщения: 9116
- Зарегистрирован: 30 май 2012, 14:20
- Репутация: 2856
- Откуда: Тюмень
- Контактная информация:
Re: Тестирование и настройка modbus под linux
Продолжаю ковыряться с Tcl/Tk.
Попутно возник вопрос: что, у тикля действительно так плохо с русскими шрифтами (см. нижнюю строку на скриншоте) или можно что-то подправить? И еще вопрос: как при запуске задать размеры главного окна программы, чтобы каждый раз не растягивать мышкой?
Попутно возник вопрос: что, у тикля действительно так плохо с русскими шрифтами (см. нижнюю строку на скриншоте) или можно что-то подправить? И еще вопрос: как при запуске задать размеры главного окна программы, чтобы каждый раз не растягивать мышкой?
Чудес не бывает. Бывают фокусы.
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5181
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Тестирование и настройка modbus под linux
Нет, это в убунте так плохо со шрифтами.Serg-tmn писал(а):Попутно возник вопрос: что, у тикля действительно так плохо с русскими шрифтами
Можно сменить на какой хочешь либо в самой проге, либо через Xresources.
стандартная опция для Х-приложений:Serg-tmn писал(а):И еще вопрос: как при запуске задать размеры главного окна программы, чтобы каждый раз не растягивать мышкой?
./proga -geometry 1024x768
или даже так:
./proga -geometry 1024x768+100+50
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...