а тут у нас мк вообще, цепляемся к Rx , Tx и никаких юсб...(у меги по моему 4 пары)Сергей Саныч писал(а):Вылечилось исключением кабелей USB
Arduino -> ModBus -> LCNC
-
nkp
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: Arduino -> ModBus -> LCNC
- solo
- Мастер
- Сообщения: 1374
- Зарегистрирован: 20 окт 2011, 18:39
- Репутация: 272
- Настоящее имя: Юрий Соловьев
- Откуда: Украина Харьков
- Контактная информация:
Re: Arduino -> ModBus -> LCNC
я конечно дилетант во всех вопросах которые здесь обсуждали,nkp писал(а):вот solo выше говорил о помехах,вырубающих модбас...
возможно ,при непосредственной коммутации через компорт проблема снимется
Но при тестировании модбуса у меня не было потери связи по модбусу , было не сколь ко раз что подвивал Lcnc по моеей вине сильно быстро тыкал на буковку "R" запуск ж кода но как только нажимал в Lcnc "стоп выполнение Ж кода" связь восстанавливалась , ардуина принимала и отправляла сигналы светодиоды RX TX опять начинали "весело гореть".
А связь с ардуино у мена теряется постоянно на 3Д принтере , там ардуина работает не так там светодиоды RX TX "вспыхивают" только когда если что то передается или принимается с ардуино ИМХО трафит по USB на 3Д принтере гораздо ниже по этому он и теряет связь от каждого щелчка
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5183
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Arduino -> ModBus -> LCNC
https://git.kernel.org/cgit/linux/kerne ... /v3.14-rc4Impartial писал(а):Ком порт в стандартной архитектуре IBM не подключен к ДМА. Так что обмен по ДМА невозможен.
а такие стало быть не надо?Impartial писал(а):Мы находимся на форуме любителей и говорить загадками, по моему , не очень хороший вариант.
Подобные утверждения нужно хоть как то обосновать.
Impartial писал(а):Я чем дальше разбираюсь с линуксом, тем больше уважаю микрософт.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
-
nkp
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: Arduino -> ModBus -> LCNC
а как бы разобраться с непереключением входов ардуины своими же выходами?
где то же недоработка...
где то же недоработка...
-
Impartial
- Мастер
- Сообщения: 953
- Зарегистрирован: 23 фев 2011, 01:50
- Репутация: 36
- Контактная информация:
Re: Arduino -> ModBus -> LCNC
А какой процессор в ней используется?nkp писал(а):а как бы разобраться с непереключением входов ардуины своими же выходами?
- solo
- Мастер
- Сообщения: 1374
- Зарегистрирован: 20 окт 2011, 18:39
- Репутация: 272
- Настоящее имя: Юрий Соловьев
- Откуда: Украина Харьков
- Контактная информация:
Re: Arduino -> ModBus -> LCNC
Через релюшку все переключается и наверное на практика такая функция соединения входа выхода адуино не потребуетя ИМХО . Просто моя ардуина в такой ситуации себя ведет как то странно
Странность заключается в в следующем
К выходному пину подключаю светодиод и по модбусу передаю на этот пин "0" светодиод тухнет но если при этом дополнительно проводком подтыкаю входной пин ардуино то светодиод начинает светится в пол накала (что естественно не 0) что и отражается на на панели Гледи
А может для целей управления цифровыми входами выходами подойдет библиотека ардуино которая рассчитана на работу с клавиатурой
Странность заключается в в следующем
К выходному пину подключаю светодиод и по модбусу передаю на этот пин "0" светодиод тухнет но если при этом дополнительно проводком подтыкаю входной пин ардуино то светодиод начинает светится в пол накала (что естественно не 0) что и отражается на на панели Гледи
А может для целей управления цифровыми входами выходами подойдет библиотека ардуино которая рассчитана на работу с клавиатурой
- Сергей Саныч
- Мастер
- Сообщения: 9116
- Зарегистрирован: 30 май 2012, 14:20
- Репутация: 2858
- Откуда: Тюмень
- Контактная информация:
Re: Arduino -> ModBus -> LCNC
Похоже, этот вход на самом деле сконфигурирован на выход.solo писал(а):К выходному пину подключаю светодиод и по модбусу передаю на этот пин "0" светодиод тухнет но если при этом дополнительно проводком подтыкаю входной пин ардуино то светодиод начинает светится в пол накала (что естественно не 0) что и отражается на на панели Гледи
Чудес не бывает. Бывают фокусы.
-
Impartial
- Мастер
- Сообщения: 953
- Зарегистрирован: 23 фев 2011, 01:50
- Репутация: 36
- Контактная информация:
Re: Arduino -> ModBus -> LCNC
Тут нужно уточнить как включен светодиод. Замыкать пины не зная точно как они сконфигурированы может привести к выходу из строя чипа.solo писал(а):К выходному пину подключаю светодиод и по модбусу передаю на этот пин "0" светодиод тухнет но если при этом дополнительно проводком подтыкаю входной пин ардуино то светодиод начинает светится в пол накала (что естественно не 0) что и отражается на на панели Гледи
И все таки какой проц там стоит?
-
nkp
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: Arduino -> ModBus -> LCNC
вот описание платки...Impartial писал(а):И все таки какой проц там стоит?
-
nkp
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: Arduino -> ModBus -> LCNC
приведу код скетчей ...Сергей Саныч писал(а):Похоже, этот вход на самом деле сконфигурирован на выход.
вот здесь мы конфигурируем регистры:
Код: Выделить всё
//################ Initialize IO ################# // 0 => Output, 1 => Input, opposite of normal Arduino, but my habit from other platforms, 0 looks like an O and 1 looks like an I
Register[IO_Config_Register] = 0b0000000000000000; // UNO and MEGA PIN 00-15
Register[IO_Config_Register+1] = 0b1111111111111111; // MEGA PIN 16-31
Register[IO_Config_Register+2] = 0b0000000000000000; // MEGA PIN 32-47
Register[IO_Config_Register+3] = 0b0000000000000000; // MEGA PIN 48-64
Register[IO_Config_Register+4] = 0b1111111111111111; // AN Digital PIN A0-A16
//################ Kill IO Register ################# // 0 => Leave, 1 => Kill
Register[Kill_IO_Register] = 0b1111111111111111; // UNO and MEGA PIN 00-15
Register[Kill_IO_Register+1] = 0b1111111111111111; // MEGA PIN 16-31
Register[Kill_IO_Register+2] = 0b1111111111111111; // MEGA PIN 32-47
Register[Kill_IO_Register+3] = 0b1111111111111111; // MEGA PIN 48-64
Register[Kill_IO_Register+4] = 0b1111111111111111; // AN Digital PIN A0-A16
//################ PWM IO Register ################# // 0 => Normal I/O, 1 => PWM I/O
Register[PWMIOMap_Register] = 0b0000111001101000; // UNO and MEGA PWM 01-16
//################ AN IO Register ################# // 0 => Digital, 1=> Analog
Register[ANIOMap_Register] = 0b1111111111111111; // UNO and MEGAКод: Выделить всё
pinMode(Pin,~bitRead(Register[Index+IO_Config_Register],Bit)); // Set Pin Mode to Input or Output-
Impartial
- Мастер
- Сообщения: 953
- Зарегистрирован: 23 фев 2011, 01:50
- Репутация: 36
- Контактная информация:
Re: Arduino -> ModBus -> LCNC
В проце ATMEGA1280 конфигурация пинов задается регистром DDRA. DDRB....nkp писал(а): Register[IO_Config_Register] = 0b0000000000000000; // UNO and MEGA PIN 00-15
Если в соответствующем бите это регистра "0" - пин сконфигурирован на вход. Если "1" - выход.
При конфигурации "вход" возможно включить подтяжку включением бита PUD регистра MCUCR.
Регистры PINA, ... читают состояние пина.
Названия регистров взято из документации. Какое соответствие этих названий в скетчах нужно просмотреть в хедерах.
Ну а потом посмотреть в отладчике как они настроены после конфигурации.
- solo
- Мастер
- Сообщения: 1374
- Зарегистрирован: 20 окт 2011, 18:39
- Репутация: 272
- Настоящее имя: Юрий Соловьев
- Откуда: Украина Харьков
- Контактная информация:
Re: Arduino -> ModBus -> LCNC
выскажу свою свою бредову мысль
А может проблема что в одно регистре ардуино есть пины разного назначения то есть
50 нога ардуино, регистр РВ3, "бит", ин
10 нога ардуино , регистр РВ4 , S32, ин
31 нога ардуино , регистр PС6 ,бит, аут
32 нога ардуино , регистр PC5 .бит , ин
А может проблема что в одно регистре ардуино есть пины разного назначения то есть
50 нога ардуино, регистр РВ3, "бит", ин
10 нога ардуино , регистр РВ4 , S32, ин
31 нога ардуино , регистр PС6 ,бит, аут
32 нога ардуино , регистр PC5 .бит , ин
Последний раз редактировалось solo 26 фев 2014, 11:08, всего редактировалось 1 раз.
-
nkp
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: Arduino -> ModBus -> LCNC
10-я нога - это же шим(выход)
входы у нас 16-31
там в начале скрипта:
/*
PINS_PWM
3 5 6 9 10 11
PINS_IN
16 - 31
PINS_OUT
32 - 47
48 49 50 51 52
*/
входы у нас 16-31
там в начале скрипта:
/*
PINS_PWM
3 5 6 9 10 11
PINS_IN
16 - 31
PINS_OUT
32 - 47
48 49 50 51 52
*/
- solo
- Мастер
- Сообщения: 1374
- Зарегистрирован: 20 окт 2011, 18:39
- Репутация: 272
- Настоящее имя: Юрий Соловьев
- Откуда: Украина Харьков
- Контактная информация:
Re: Arduino -> ModBus -> LCNC
это все понятно
просто где то читал что рекомендовано , а в настройка прошивки ардуино для 3Д принтера там это обязательно чтобы пины которые управляют одним ШД (степ дир) были в одном регистре!!!! очевидно влияет на быстродействие
А у нас есть в регистре разный формат, и разное направление передачи, может ШИМ влияет на бит в одном регистре , а входной пин влияет на выходной в одном регистре.
ИМХО это все мои не очень умные предположения
просто где то читал что рекомендовано , а в настройка прошивки ардуино для 3Д принтера там это обязательно чтобы пины которые управляют одним ШД (степ дир) были в одном регистре!!!! очевидно влияет на быстродействие
А у нас есть в регистре разный формат, и разное направление передачи, может ШИМ влияет на бит в одном регистре , а входной пин влияет на выходной в одном регистре.
ИМХО это все мои не очень умные предположения
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5183
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Arduino -> ModBus -> LCNC
Не может оно влиять, пины объеденены в регистры просто потому, что в управляющих регистрах по 8 бит. Да и МК с всего одним регистром никто не отменял.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
-
nkp
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: Arduino -> ModBus -> LCNC
а что же тогда мешает выходу переключить вход?UAVpilot писал(а):Не может оно влиять
у меня так нет опыта в этом - но вроде бы ток достаточный - если светодиоду хватает...
- solo
- Мастер
- Сообщения: 1374
- Зарегистрирован: 20 окт 2011, 18:39
- Репутация: 272
- Настоящее имя: Юрий Соловьев
- Откуда: Украина Харьков
- Контактная информация:
Re: Arduino -> ModBus -> LCNC
Хочу протестировать модбус на Lcnc 2.6
Установил все как здесь Установка LinuxCNC EMC2 из исходников #3
вроди долго что то делалось и вродя все нормально прошло
компонент модбуа заменил в папка /home/cnc/linuxcnc-dev/src/hal/user_comps
Пытаюсь открыть конфигурацию та что работала у меня в Lcnc 2.5.3 получаю в ответ
модбус хел пока за комментировал
Ардуина не откликается и не создает пины, светодиоды на плате RX TX при старте Lcnc не загораются
чего в этом супе не хватает
У меня ардуина определяется как ttyACM0
Lcnc 2.5.3 с этой конфигурацией запускается нормально и сейчас
Установил все как здесь Установка LinuxCNC EMC2 из исходников #3
вроди долго что то делалось и вродя все нормально прошло
компонент модбуа заменил в папка /home/cnc/linuxcnc-dev/src/hal/user_comps
Пытаюсь открыть конфигурацию та что работала у меня в Lcnc 2.5.3 получаю в ответ
модбус хел пока за комментировал
Ардуина не откликается и не создает пины, светодиоды на плате RX TX при старте Lcnc не загораются
Код: Выделить всё
cnc@cnc-desktop:~/linuxcnc-dev$ linuxcnc
LINUXCNC - 2.6.0~pre
Machine configuration directory is '/home/cnc/linuxcnc/configs/ArduinoSlave'
Machine configuration file is 'ArduinoSlave.ini'
Starting LinuxCNC...
io started
halcmd loadusr io started
gs2_vfd: device='/dev/ttyS0', baud=38400, parity='O', bits=8, stopbits=1, address=1
gs2_vfd: ERROR: couldn't open serial device: Input/output error
task pid=24747
emcTaskInit: using builtin interpreter
Unexpected realtime delay: check dmesg for details.
RTAPI: ERROR: Unexpected realtime delay on task 1
This Message will only display once per session.
Run the Latency Test and resolve before continuing.
Xlib.protocol.request.QueryExtension
Xlib.protocol.request.QueryExtension
Shutting down and cleaning up LinuxCNC...
/home/cnc/linuxcnc-dev/bin/gladevcp:292: GtkWarning: GdkWindow 0x4a00003 unexpectedly destroyed
gtk.main()
**** GLADE VCP ERROR: X Protocol Error: 3
Cleanup done
cnc@cnc-desktop:~/linuxcnc-dev$
У меня ардуина определяется как ttyACM0
Lcnc 2.5.3 с этой конфигурацией запускается нормально и сейчас
-
Impartial
- Мастер
- Сообщения: 953
- Зарегистрирован: 23 фев 2011, 01:50
- Репутация: 36
- Контактная информация:
Re: Arduino -> ModBus -> LCNC
Нельзя путать понятие регистра и пина. Это не одно и то-же. Регистры принадлежат устройствам внутри проца. Например регистр данных юарт, регистр выходной порта А, входной порта А. А вот пины могут использоваться всеми устройствами проца. Например прием- передача юарта альтернативно используют пины порта и, если включен юарт, эти пины захвачены юартом и вывод в порт уже не изменит состояние пинов.nkp писал(а):а что же тогда мешает выходу переключить вход?
В скечах ардуины все это очень завуалировано. Проще пользоваться AVR Studio с WinAVR. Там хоть понятно откуда чьи ноги торчат и отладку нормальную можно включить. А так можно блуждать впотьмах долго. Может просто неправильно выбран какой нибудь заголовочный файл ( не для этого процессора).
Ошибка здесь. Нет такого устройства.gs2_vfd: device='/dev/ttyS0', baud=38400, parity='O', bits=8, stopbits=1, address=1
Вот его и нужно подставить.У меня ардуина определяется как ttyACM0![]()
-
nkp
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: Arduino -> ModBus -> LCNC
наверно да - только под wine у меня не работает(пока))Impartial писал(а):AVR Studio с WinAVR
eclipce тоже пока не одолел(затык при выборе программатора))
но это временные трудности - один раз настроется и будем смотреть...
я вот Ethernet shield заказал - его с modbus попробуем...
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5183
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Arduino -> ModBus -> LCNC
Скорее всего отсутствие собственно входа - поведение очень похоже на случай, когда входной пин настроен как выход.nkp писал(а):а что же тогда мешает выходу переключить вход?
P.S. Или уже был настроен, а теперь выходные транзисторы пробиты.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...