Тестирование и настройка modbus под linux

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

Тестирование и настройка modbus под linux

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

Вот такой вопрос: кто-нибудь знает утилиту под Линукс, чтобы проверять/настраивать устройства с modbus?
Пробовал modpoll и QModBus - ни с одной не получилось связаться с инвертором. Такое впечатление, что первая толком не работает с ttyUSB, а вторая не умеет считать CRC.
(инвертор прекрасно управляется по модбасу из LCNC).
Чудес не бывает. Бывают фокусы.
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1585
Контактная информация:

Re: Тестирование и настройка modbus под linux

Сообщение nkp »

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

Re: Тестирование и настройка modbus под linux

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

COMpump не умеет считать CRC.
Чудес не бывает. Бывают фокусы.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5175
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Тестирование и настройка modbus под linux

Сообщение Serg »

Я писал свою, где-то в теме про полезные программы есть. В теории настраивается под любой частотник просто созданием файла описания на основе мануала.
Написана на Tcl/Tk, Афтаев её вроде даж в венде запускал. :)
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
Сергей Саныч
Мастер
Сообщения: 9106
Зарегистрирован: 30 май 2012, 14:20
Репутация: 2852
Откуда: Тюмень
Контактная информация:

Re: Тестирование и настройка modbus под linux

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

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

Re: Тестирование и настройка modbus под linux

Сообщение Serg »

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

Re: Тестирование и настройка modbus под linux

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

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

Re: Тестирование и настройка modbus под linux

Сообщение Serg »

Serg-tmn писал(а):Структура команд инвертора совсем другая, надо чего-то переписывать, а не только конфигурацию.
Покаж?
Serg-tmn писал(а):я даже не нашел, где адрес устройства задается.
На нулевой адрес любое устройство обязано отвечать.
Serg-tmn писал(а):А Tcl/Tk мне совсем не знакомый
Очень простой и логичный язык со стройными правилами синтаксиса с всего одним исключением:
Между командой "#" и её аргументами пробелы необязательны. :)

И кстати очень компактный - runtime всего 1.5 MB.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
Сергей Саныч
Мастер
Сообщения: 9106
Зарегистрирован: 30 май 2012, 14:20
Репутация: 2852
Откуда: Тюмень
Контактная информация:

Re: Тестирование и настройка modbus под linux

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

UAVpilot писал(а):Покаж?
N700E_Inverter-1.pdf
(584.37 КБ) 575 скачиваний
Пока мне бы хоть ответа от инвертора добиться на конкретную команду
добавил в код

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

###        	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
Репутация: 5175
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Тестирование и настройка modbus под linux

Сообщение Serg »

Может он у тебя в 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
раскоментить, не все сразу, а некторые и пробовать так, в консоли.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
Сергей Саныч
Мастер
Сообщения: 9106
Зарегистрирован: 30 май 2012, 14:20
Репутация: 2852
Откуда: Тюмень
Контактная информация:

Re: Тестирование и настройка modbus под linux

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

UAVpilot писал(а):Может он у тебя в ASCII работает?
Инвертор? нет, в RTU.

Сделал, как ты сказал:

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

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$ 
Чудес не бывает. Бывают фокусы.
Аватара пользователя
Сергей Саныч
Мастер
Сообщения: 9106
Зарегистрирован: 30 май 2012, 14:20
Репутация: 2852
Откуда: Тюмень
Контактная информация:

Re: Тестирование и настройка modbus под linux

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

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

Re: Тестирование и настройка modbus под linux

Сообщение Serg »

В оригинале: в начале param.conf

В тестовом варианте например так:

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

if {[catch {vfd::rs485open $port 38400,n,8,1} fd]} {
   puts stderr "ERROR: Can't open port $port: $fd"
   exit 1
}
P.S. Проводки A и B не перепутаны?
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
Сергей Саныч
Мастер
Сообщения: 9106
Зарегистрирован: 30 май 2012, 14:20
Репутация: 2852
Откуда: Тюмень
Контактная информация:

Re: Тестирование и настройка modbus под linux

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

UAVpilot писал(а):В оригинале: в начале param.conf
Это понятно.
UAVpilot писал(а):В тестовом варианте например так:
Пробовал (со своими параметрами). Не помогло.
UAVpilot писал(а):P.S. Проводки A и B не перепутаны?
Железо в порядке. Под LCNC всё работает. Хочется только сделать удобную настройку.
Чудес не бывает. Бывают фокусы.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5175
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Тестирование и настройка modbus под linux

Сообщение Serg »

Попробуй добавь в 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
		}
чтоб посмотреть приходит чего-нибудь из порта.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
Сергей Саныч
Мастер
Сообщения: 9106
Зарегистрирован: 30 май 2012, 14:20
Репутация: 2852
Откуда: Тюмень
Контактная информация:

Re: Тестирование и настройка modbus под linux

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

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

Re: Тестирование и настройка modbus под linux

Сообщение NightV »

мда.. бывает.
мы на прошлой неделе искали 2 часа почему окума выпала в аларм.. после того как я ковырялся с насосом смазки.
как оказалось был нажат EStop :? а веть я его сам нажал чтоб током тюкнуло... и забыл :problem:
Всё просто! если знаешь КАК!
Аватара пользователя
Сергей Саныч
Мастер
Сообщения: 9106
Зарегистрирован: 30 май 2012, 14:20
Репутация: 2852
Откуда: Тюмень
Контактная информация:

Re: Тестирование и настройка modbus под linux

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

Продолжаю ковыряться с Tcl/Tk.
Попутно возник вопрос: что, у тикля действительно так плохо с русскими шрифтами (см. нижнюю строку на скриншоте) или можно что-то подправить?
Снимок-3.png
Снимок-3.png (3.78 КБ) 2896 просмотров
И еще вопрос: как при запуске задать размеры главного окна программы, чтобы каждый раз не растягивать мышкой?
Чудес не бывает. Бывают фокусы.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5175
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Тестирование и настройка modbus под linux

Сообщение Serg »

Serg-tmn писал(а):Попутно возник вопрос: что, у тикля действительно так плохо с русскими шрифтами
Нет, это в убунте так плохо со шрифтами.
Можно сменить на какой хочешь либо в самой проге, либо через Xresources.
Serg-tmn писал(а):И еще вопрос: как при запуске задать размеры главного окна программы, чтобы каждый раз не растягивать мышкой?
стандартная опция для Х-приложений:
./proga -geometry 1024x768
или даже так:
./proga -geometry 1024x768+100+50
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Ответить

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