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

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

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

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

Чего-то не идет. Сделал, вроде, все, как описано, но при компиляции берет библиотеки, похоже, не оттуда.

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

cnc@cnc-desktop:~/linuxcnc-dev/N700EV27$ . /home/cnc/linuxcnc-dev/scripts/rip-environment
cnc@cnc-desktop:~/linuxcnc-dev/N700EV27$ make clean
rm -f n700e_vfd
rm -rf .o
cnc@cnc-desktop:~/linuxcnc-dev/N700EV27$ make
Makefile:17: .o/n700e_vfd.d: Нет такого файла или каталога
Makefile:17: .o/n700e_modbus.d: Нет такого файла или каталога
mkdir -p .o
cc -I/usr/include/linuxcnc -URTAPI -U__MODULE__ -DULAPI -Os -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include   -MM -MT ".o/n700e_modbus.d .o/n700e_modbus.o" n700e_modbus.c -o .o/n700e_modbus.d.tmp \
			&& mv .o/n700e_modbus.d.tmp .o/n700e_modbus.d
mkdir -p .o
cc -I/usr/include/linuxcnc -URTAPI -U__MODULE__ -DULAPI -Os -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include   -MM -MT ".o/n700e_vfd.d .o/n700e_vfd.o" n700e_vfd.c -o .o/n700e_vfd.d.tmp \
			&& mv .o/n700e_vfd.d.tmp .o/n700e_vfd.d
mkdir -p .o
cc -I/usr/include/linuxcnc -URTAPI -U__MODULE__ -DULAPI -Os -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include   -o .o/n700e_vfd.o -c n700e_vfd.c
mkdir -p .o
cc -I/usr/include/linuxcnc -URTAPI -U__MODULE__ -DULAPI -Os -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include   -o .o/n700e_modbus.o -c n700e_modbus.c
In file included from n700e_modbus.c:13:
n700e_modbus.h:18:1: warning: "PATH_MAX" redefined
In file included from /usr/include/bits/local_lim.h:39,
                 from /usr/include/bits/posix1_lim.h:157,
                 from /usr/include/limits.h:145,
                 from /usr/lib/gcc/i486-linux-gnu/4.4.3/include-fixed/limits.h:122,
                 from /usr/lib/gcc/i486-linux-gnu/4.4.3/include-fixed/syslimits.h:7,
                 from /usr/lib/gcc/i486-linux-gnu/4.4.3/include-fixed/limits.h:11,
                 from n700e_modbus.c:9:
/usr/include/linux/limits.h:12:1: warning: this is the location of the previous definition
cc -o n700e_vfd .o/n700e_vfd.o .o/n700e_modbus.o /usr/lib/libpthread.so -Wl,-rpath,/usr/lib -L/usr/lib -llinuxcnchal -lglib-2.0  
cnc@cnc-desktop:~/linuxcnc-dev/N700EV27$ 
Чудес не бывает. Бывают фокусы.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

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

Сообщение Serg »

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

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

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

Вот.
Вложения
N700E.tar.gz
(25.26 КБ) 1159 скачиваний
Чудес не бывает. Бывают фокусы.
Аватара пользователя
verser
Мастер
Сообщения: 1903
Зарегистрирован: 21 июл 2013, 22:28
Репутация: 1282
Настоящее имя: Сергей
Откуда: Тбилиси
Контактная информация:

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

Сообщение verser »

Думаю, что если в Makefile 4-ю - 6-ю строчки

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

EMC2_HOME := /usr

EXTRA_CFLAGS += -I$(EMC2_HOME)/include/linuxcnc
заменить так

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

EMC2_HOME := "`dirname $(shell ./find-bindir)`"

EXTRA_CFLAGS += -I$(EMC2_HOME)/include
то должно получиться.
Аватара пользователя
Сергей Саныч
Мастер
Сообщения: 9116
Зарегистрирован: 30 май 2012, 14:20
Репутация: 2858
Откуда: Тюмень
Контактная информация:

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

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

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

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

. /home/cnc/linuxcnc-dev/scripts/rip-environment
по крайней мере у меня ./find-bindir стабильно выдает /usr/bin
или я что-то не понимаю?
Чудес не бывает. Бывают фокусы.
Аватара пользователя
verser
Мастер
Сообщения: 1903
Зарегистрирован: 21 июл 2013, 22:28
Репутация: 1282
Настоящее имя: Сергей
Откуда: Тбилиси
Контактная информация:

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

Сообщение verser »

Сергей Саныч писал(а): по крайней мере у меня ./find-bindir стабильно выдает /usr/bin
Должна выдавать

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

/home/блабла/linuxcnc-dev/bin
Аватара пользователя
verser
Мастер
Сообщения: 1903
Зарегистрирован: 21 июл 2013, 22:28
Репутация: 1282
Настоящее имя: Сергей
Откуда: Тбилиси
Контактная информация:

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

Сообщение verser »

Может имеет значение откуда запускается rip-environment?
сделать типа

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

cd linuxcnc-dev
. ./scripts/rip-environment
Аватара пользователя
verser
Мастер
Сообщения: 1903
Зарегистрирован: 21 июл 2013, 22:28
Репутация: 1282
Настоящее имя: Сергей
Откуда: Тбилиси
Контактная информация:

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

Сообщение verser »

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

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

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

Попробую.
verser писал(а):компилляцию следует выполнять в том же терминале, в котором запускался rip-environment.
Это само собой.
Чудес не бывает. Бывают фокусы.
Аватара пользователя
Сергей Саныч
Мастер
Сообщения: 9116
Зарегистрирован: 30 май 2012, 14:20
Репутация: 2858
Откуда: Тюмень
Контактная информация:

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

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

То ли лыжи не едут... :thinking:
Вот запускаю терминал:

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

cnc@cnc-desktop:~/linuxcnc-dev/N700EV27$ ./find-bindir
/usr/bin
cnc@cnc-desktop:~/linuxcnc-dev/N700EV27$ . /home/cnc/linuxcnc-dev/scripts/rip-environment
cnc@cnc-desktop:~/linuxcnc-dev/N700EV27$ ./find-bindir
/usr/bin
cnc@cnc-desktop:~/linuxcnc-dev/N700EV27$ 
Чудес не бывает. Бывают фокусы.
Аватара пользователя
Сергей Саныч
Мастер
Сообщения: 9116
Зарегистрирован: 30 май 2012, 14:20
Репутация: 2858
Откуда: Тюмень
Контактная информация:

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

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

вот тут обсуждалось похожее
LinuxCNC run in place comp --install #1
Оказывается, в 2.7 нет comp, a есть halcompile. А find-чего_то_там ищут comp.
Последний раз редактировалось Сергей Саныч 10 дек 2014, 16:24, всего редактировалось 1 раз.
Чудес не бывает. Бывают фокусы.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

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

Сообщение Serg »

Да, правильно, надо на halcompile поправить. Или даже на halcmd.
verser писал(а):Может имеет значение откуда запускается rip-environment?
Не имеет.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
verser
Мастер
Сообщения: 1903
Зарегистрирован: 21 июл 2013, 22:28
Репутация: 1282
Настоящее имя: Сергей
Откуда: Тбилиси
Контактная информация:

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

Сообщение verser »

UAVpilot писал(а):Да, правильно, надо на halcompile поправить. Или даже на halcmd.
:wtf:
Сергей Саныч писал(а):То ли лыжи не едут... :thinking:
Вот запускаю терминал:

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

cnc@cnc-desktop:~/linuxcnc-dev/N700EV27$ ./find-bindir
/usr/bin
cnc@cnc-desktop:~/linuxcnc-dev/N700EV27$ . /home/cnc/linuxcnc-dev/scripts/rip-environment
cnc@cnc-desktop:~/linuxcnc-dev/N700EV27$ ./find-bindir
/usr/bin
cnc@cnc-desktop:~/linuxcnc-dev/N700EV27$ 
Ещё может что терминал запускается от имени root, а надо - от обычного юзера.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

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

Сообщение Serg »

verser писал(а)::wtf:
Понятно, что halcmd тут не при делах, но зато его не переименовывали от версии к версии, т.е. будет универсальный вариант. :)
verser писал(а):Ещё может что терминал запускается от имени root, а надо - от обычного юзера.
Это тоже не важно - rip-environment переопределит всё, что нужно.

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

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

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

В общем, поправил find-ы, вроде скомпилировалось и даже почти запустилось. Буду дальше разбираться.

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

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

Сообщение Serg »

Сергей Саныч писал(а):То, что comp переименовали, в общем-то правильно. Название было совершенно "никакое". Путаница теперь только будет всякая :(
Переименовали потому, что была путаница - comp есть в пакете http://savannah.nongnu.org/projects/nmh
Сергей Саныч писал(а):Интересно, насколько реально написать универсальный настраиваемый (скажем, по таблицам) вариант с сохранением полной функциональности?
Проблема в том, что у Хуанйангов modbus нестандартный, нельзя даже воспользоваться стандартной библиотекой libmodbus.
А для стандартных случаев в составе LinuxCNC есть несколько вариантов, построенных на одной основе. И теоретически можно попробовать на mb2hal изобразить, но пока не на чем потренироваться...
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
Сергей Саныч
Мастер
Сообщения: 9116
Зарегистрирован: 30 май 2012, 14:20
Репутация: 2858
Откуда: Тюмень
Контактная информация:

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

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

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

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

Сообщение aekhv »

После долгого медитирования над исходниками из первого сообщения этой темы выкладываю адаптацию под свои частотники :D

У меня два частотника, оба покупал у purelogic: Tecorp HC1C+ 01D523BK и его брат-близнец IDS Drive C01D523. Оба настраиваются и работают совершенно одинакого. Уверен что у многих есть такие преобразователи, надеюсь кто-нибудь вместе со мной порадуется что теперь можно рулить ими по modbus из LinuxCNC. Ура! :cheesy:

В исходники добавил комменты (в меру своего понимания), большинство интересных констант вынес в заголовочный файл (hc1c_vfd.h). В прилагаемом архиве тестовая конфигурация для axis, достаточно просто распаковать и запустить:

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

sudo make install
linuxcnc tecorp.ini
screen.png
tecorp.tar.gz
Аватара пользователя
verser
Мастер
Сообщения: 1903
Зарегистрирован: 21 июл 2013, 22:28
Репутация: 1282
Настоящее имя: Сергей
Откуда: Тбилиси
Контактная информация:

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

Сообщение verser »

В этой ветке уже собрались исходники для modbus от
-Huanyang VFD(в шапке)
-Hyindai N50
-Hyundai N700E
-Tecorp HC1C+ 01D523BK , IDS Drive C01D523
может в шапку их? чтоб не рыться по ветке.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

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

Сообщение Serg »

Добавил ссылки в первое сообщение.

Только у меня просьба: старайтесь адаптировать те варианты, которые имеются в составе LinuxCNC, а именно:
http://linuxcnc.org/docs/devel/html/man/man1/gs2.1.html
http://linuxcnc.org/docs/devel/html/man ... vfd.1.html
http://linuxcnc.org/docs/devel/html/man ... vfd.1.html
они получше написаны и работают через стандартную libmodbus.
Код, который я применил в этой теме имеет смысл испольpовать только для Huanyang - у них нестандартная реализация Modbus.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Ответить

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