Arduino -> ModBus -> LCNC

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
Аватара пользователя
Serb01
Опытный
Сообщения: 107
Зарегистрирован: 04 июн 2012, 09:58
Репутация: 17
Настоящее имя: Сергей Беседин
Откуда: Новокузнецк
Контактная информация:

Re: Arduino -> ModBus -> LCNC

Сообщение Serb01 »

Для автоматической загрузки порта ttyACM0 вместо ttyUSB0 при запуске системы в файл /etc/rc.local строку
sudo ln -s /dev/ttyUSB0 /dev/ttyACM0
Для автоматического разрешения чтения-записи ttyUSB0 при подключении USB-устройства создать файл /etc/udev/rules.d/50-ttyusb.rules и вставить туда:
KERNEL=="ttyUSB[0-9]*",NAME="tts/USB%n",SYMLINK+="%k",GROUP="uucp",MODE="0666"
Значительно проще быть чуточку внимательней, чем долгое время пускать деньги на ветер
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Arduino -> ModBus -> LCNC

Сообщение Serg »

Нужно учитывать ещё такой момент: в случае реконекта USB, например из-за помехи, устройство может заново присоединиться быстрее, чем система освободит /dev/ttyUSB0 - в итоге устройство получит порт /dev/ttyUSB1 и ваша ссылка будет указывать в никуда.

Поэтому надо не изобретать велосипед с квадратными колёсами, а всё, и права и ссылку, делать штатными средствами только через udev. :)
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
Serb01
Опытный
Сообщения: 107
Зарегистрирован: 04 июн 2012, 09:58
Репутация: 17
Настоящее имя: Сергей Беседин
Откуда: Новокузнецк
Контактная информация:

Re: Arduino -> ModBus -> LCNC

Сообщение Serb01 »

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

Re: Arduino -> ModBus -> LCNC

Сообщение Serg »

Serb01 писал(а):Это Гугл ... А как правильно сделать?
Я ж чуть выше написал:
UAVpilot писал(а):Я где-то тут на форуме подробно расписывал как средствами системы (udev) автоматически назначать таким устройствам желаемые имена и права доступа. Вроде в своей теме про управление частотником по Modbus.
Не думаю что поиск по таким критериям непосильная задача... :)
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
Serb01
Опытный
Сообщения: 107
Зарегистрирован: 04 июн 2012, 09:58
Репутация: 17
Настоящее имя: Сергей Беседин
Откуда: Новокузнецк
Контактная информация:

Re: Arduino -> ModBus -> LCNC

Сообщение Serb01 »

Если знаешь - скажи, что знаешь - забыл - лучше промолчи, а не знаешь - не обращай внимание.
Значительно проще быть чуточку внимательней, чем долгое время пускать деньги на ветер
aftaev
Зачётный участник
Зачётный участник
Сообщения: 34042
Зарегистрирован: 04 апр 2010, 19:22
Репутация: 6191
Откуда: Казахстан.
Контактная информация:

Re: Arduino -> ModBus -> LCNC

Сообщение aftaev »

UAVpilot писал(а):Не думаю что поиск по таким критериям непосильная задача...
Re: Управление частотником через modbus. #219
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Аватара пользователя
Serb01
Опытный
Сообщения: 107
Зарегистрирован: 04 июн 2012, 09:58
Репутация: 17
Настоящее имя: Сергей Беседин
Откуда: Новокузнецк
Контактная информация:

Re: Arduino -> ModBus -> LCNC

Сообщение Serb01 »

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

Re: Arduino -> ModBus -> LCNC

Сообщение Serg »

Serb01 писал(а):Пробовал. Серийного номера нет ...
Дело не в серийном номере, а в принципе. Изображение
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
Serb01
Опытный
Сообщения: 107
Зарегистрирован: 04 июн 2012, 09:58
Репутация: 17
Настоящее имя: Сергей Беседин
Откуда: Новокузнецк
Контактная информация:

Re: Arduino -> ModBus -> LCNC

Сообщение Serb01 »

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

Re: Arduino -> ModBus -> LCNC

Сообщение Serg »

Я знаю и помню, но мне лень и ещё раз это разъяснять и искать свой прошлый пост, особенно для тех, кому для себя любимого лень поискать по очевидным критериям. Видимо не так уж и нужно.
Хотя, скажем за 500 евро может будет и не лень... :)
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
Serb01
Опытный
Сообщения: 107
Зарегистрирован: 04 июн 2012, 09:58
Репутация: 17
Настоящее имя: Сергей Беседин
Откуда: Новокузнецк
Контактная информация:

Re: Arduino -> ModBus -> LCNC

Сообщение Serb01 »

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

Re: Arduino -> ModBus -> LCNC

Сообщение Serg »

Serb01 писал(а):забыл добавить - за 500 евро.
Скопируй подпись себе и добавь. У меня написано как надо.
И какое отношение к теме имеет обсуждение подписей?..
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
Serb01
Опытный
Сообщения: 107
Зарегистрирован: 04 июн 2012, 09:58
Репутация: 17
Настоящее имя: Сергей Беседин
Откуда: Новокузнецк
Контактная информация:

Re: Arduino -> ModBus -> LCNC

Сообщение Serb01 »

Я тебя ещё пять постов назад просил отойти и не раздувать ветку неподелу.
Значительно проще быть чуточку внимательней, чем долгое время пускать деньги на ветер
treyne
Новичок
Сообщения: 10
Зарегистрирован: 04 апр 2020, 21:17
Репутация: 1
Настоящее имя: Илья
Откуда: Ростов-на-Дону
Контактная информация:

Re: Arduino -> ModBus -> LCNC

Сообщение treyne »

[quote="nkp"]
сам скрипт:
Вложение gs2_vfd.c больше недоступно
заменяем ним оригинальный в папка_с_lcnc/src/hal/user_comps
в терминале :
cd папка_с_lcnc/src
make
-----------------------------

Ребята, помогите пожалуйста, не хочет компилировать скрипт gs2_vfd.c
Выдаёт следующее.

cnc@LinuxCNC:~/LCNC/src$ make
Reading 187/187 dependency files
Done reading dependencies
Compiling hal/user_comps/gs2_vfd.c
hal/user_comps/gs2_vfd.c:110:16: error: unknown type name ‘modbus_param_t’
hal/user_comps/gs2_vfd.c:132:15: error: unknown type name ‘modbus_param_t’
hal/user_comps/gs2_vfd.c: In function ‘main’:
hal/user_comps/gs2_vfd.c:179:5: error: unknown type name ‘modbus_param_t’
hal/user_comps/gs2_vfd.c:294:5: warning: implicit declaration of function ‘modbus_init_rtu’ [-Wimplicit-function-declaration]
hal/user_comps/gs2_vfd.c:295:13: error: request for member ‘debug’ in something not a structure or union
hal/user_comps/gs2_vfd.c:297:5: warning: passing argument 1 of ‘modbus_connect’ from incompatible pointer type [enabled by default]
In file included from hal/user_comps/gs2_vfd.c:12:0:
/usr/include/modbus/modbus.h:158:5: note: expected ‘struct modbus_t *’ but argument is of type ‘int *’
hal/user_comps/gs2_vfd.c:412:9: warning: implicit declaration of function ‘read_data’ [-Wimplicit-function-declaration]
hal/user_comps/gs2_vfd.c:413:9: warning: implicit declaration of function ‘write_data’ [-Wimplicit-function-declaration]
hal/user_comps/gs2_vfd.c:426:5: warning: passing argument 1 of ‘modbus_close’ from incompatible pointer type [enabled by default]
In file included from hal/user_comps/gs2_vfd.c:12:0:
/usr/include/modbus/modbus.h:159:6: note: expected ‘struct modbus_t *’ but argument is of type ‘int *’
make: *** [objects/hal/user_comps/gs2_vfd.o] Ошибка 1

Скрипт gs2_vfd.c взятый отсюда компилируется БЕЗ ошибок, Но проект ардуины не компилируется. https://github.com/nkp216/Arduino----Modbus---Linuxcnc
Вложения
Ошибка при компиляции проекта ModbusSlave.ino (3293 просмотра) <a class='original' href='./download/file.php?id=179618&sid=af00f2ddcf210c1b426b69c52cb90353&mode=view' target=_blank>Загрузить оригинал (73.63 КБ)</a>
Ошибка при компиляции проекта ModbusSlave.ino
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Arduino -> ModBus -> LCNC

Сообщение nkp »

там библиотеки изменились
надо подправлять
treyne
Новичок
Сообщения: 10
Зарегистрирован: 04 апр 2020, 21:17
Репутация: 1
Настоящее имя: Илья
Откуда: Ростов-на-Дону
Контактная информация:

Re: Arduino -> ModBus -> LCNC

Сообщение treyne »

nkp писал(а):там библиотеки изменились
надо подправлять
Нашёл причитну, В архиве с проектом не хватало файла Pin_Manipulator.ino содержащего в себе недостающие функции.
Появилась другая проблема, Ардуина не отвечает на запросы от EMC. Светодиод (TX) на плате одиночно моргает, в консоли появляется сообщение о таймауте. Возможно не правильно сконфигурирована прошивка под мою ардуину.(У меня Arduino MEGA 2560) .

В файле standard_pinout.hal указал loadusr gs2_vfd -r 19200 -d /dev/ttyUSB0 -p none
Файл конфигурации во вложении.


cnc@LinuxCNC:~/LCNC$ linuxcnc
LINUXCNC - 2.7.14
Machine configuration directory is '/home/cnc/linuxcnc/configs/ArduinoSlave'
Machine configuration file is 'ArduinoSlave.ini'
Starting LinuxCNC...
.
Found file(REL): ./stepper_xyza.hal
Found file(REL): ./standard_pinout.hal
gs2_vfd: device='/dev/ttyUSB0', baud=19200, parity='N', bits=8, stopbits=1, address=1, enabled=1
Exception in Tkinter callback
Traceback (most recent call last):
File "/usr/lib/python2.7/lib-tk/Tkinter.py", line 1437, in __call__
return self.func(*args)
File "/usr/bin/axis", line 1325, in jogspeed_listbox_change
if isinstance(value, str): value = value.encode('utf-8', 'replace')
UnicodeDecodeError: 'ascii' codec can't decode byte 0xd0 in position 0: ordinal not in range(128)
failed to set register P0x0101 to 0x0064 (100): Connection timed out
Xlib.protocol.request.QueryExtension
Xlib.protocol.request.QueryExtension
modbus.hal:15: Pin 'arduino.Dout3-48' does not exist
Shutting down and cleaning up LinuxCNC...
/usr/bin/gladevcp:295: GtkWarning: GdkWindow 0x3c00003 unexpectedly destroyed
gtk.main()
**** GLADE VCP ERROR: X Protocol Error: 3
task: 159 cycles, min=0.000017, max=0.021514, avg=0.008979, 0 latency excursions (> 10x expected cycle time of 0.010000s)
failed to set register P0x0101 to 0x0064 (100): Connection timed out
LinuxCNC terminated with an error. You can find more information in the log:
/home/cnc/linuxcnc_debug.txt
and
/home/cnc/linuxcnc_print.txt
as well as in the output of the shell command 'dmesg' and in the terminal
Вложения
ArduinoSlave.zip
Архив с конфигурацией
(9.05 КБ) 210 скачиваний
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Arduino -> ModBus -> LCNC

Сообщение nkp »

treyne писал(а):Нашёл причитну,
какой дистрибутив?
какая версия емс?
всё компилировалось из исходников или был взят скомпилированный файл ?
treyne
Новичок
Сообщения: 10
Зарегистрирован: 04 апр 2020, 21:17
Репутация: 1
Настоящее имя: Илья
Откуда: Ростов-на-Дону
Контактная информация:

Re: Arduino -> ModBus -> LCNC

Сообщение treyne »

nkp писал(а):какой дистрибутив?
какая версия емс?
всё компилировалось из исходников или был взят скомпилированный файл ?
1.дистрибутив Debian 7 wheezy скачаный с официального сайта linuxcnc.
2.версия емс 2.7.14. По крайней мере так пишет консоль. Хотя я скачивал версию исходников linuxcnc_2.7.15.2.g8a0a225.tar.gz (2.7-rtpreempt)
3.Всё компилировалось из исходников. Весь EMC и файл gs2_vfd.c
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Arduino -> ModBus -> LCNC

Сообщение nkp »

это делалось еще под Ubuntu 10.04
с тех пор несколько раз использовал ,но опять же - с U10.04
как то попробовал на более свежем дистре проделать - ругнулось на библиотеку modbus
дальше не рылся...
поэтому немного странно,что собралось (но может и не странно - а я не доглядел тогда :) )
treyne
Новичок
Сообщения: 10
Зарегистрирован: 04 апр 2020, 21:17
Репутация: 1
Настоящее имя: Илья
Откуда: Ростов-на-Дону
Контактная информация:

Re: Arduino -> ModBus -> LCNC

Сообщение treyne »

nkp писал(а):поэтому немного странно,что собралось
Я целую тонну библиотек скачал что бы оно собралось, что то около 700мб.
Попробовал запустить EMC с подключеной ардуиной и без. Результат одинаковый. Т.е не приходят данные от ардуины в EMC. Хотя светодиод (TX) на плате при попытке запуска моргает.
nkp можешь написать мне в личку.
Ответить

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