Arduino -> ModBus -> LCNC

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Arduino -> ModBus -> LCNC

Сообщение nkp »

здесь тестируют компонент mb2hal,
будет работать с устройствами через модбас в емс ...
в примерах - работа с Arduino Mega 2560
при компиляции требует libmodbus3 , поставлю - попробую , что за зверь ...
первое впечатление - наверно в силу универсальности применения скрипта все раздуто ...
может и оправдано , но мое мнение - инструмент, заточеный под одну конкретную задачу лучше универсального))
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Arduino -> ModBus -> LCNC

Сообщение nkp »

вот еще один проект arduino-modbus-slave
https://www.youtube.com/watch?v=PCaEYBh8ubs
final_2.ino.rar
(6.38 КБ) 536 скачиваний
https://sites.google.com/site/jpmzometa ... dbus-slave
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Arduino -> ModBus -> LCNC

Сообщение nkp »

надо бы в строку загрузки компонента добавить аргумент, устанавливающий режимы регистров (in or out)...
например loadusr gs2_vfd -v 1101 устанавливает : in,in,out,in
зы
не устанавливает конечно непосредственно(это мы прописываем в прошивке) - но формирует в зависимости от аргумента соответствующие пины Hal
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Arduino -> ModBus -> LCNC

Сообщение nkp »

попробовал добавить
nkp писал(а):loadusr gs2_vfd -v 1101 устанавливает : in,in,out,in
на одном регистре - из-за этой универсальности весь код будет в if-ах ;)
----
вопрос : нужен ли шим в рассматриваемой связке?
aftaev
Зачётный участник
Зачётный участник
Сообщения: 34042
Зарегистрирован: 04 апр 2010, 19:22
Репутация: 6194
Откуда: Казахстан.
Контактная информация:

Re: Arduino -> ModBus -> LCNC

Сообщение aftaev »

nkp писал(а):вопрос : нужен ли шим в рассматриваемой связке?
вдруг кто то захочет частотником по +-10в управлять.
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Arduino -> ModBus -> LCNC

Сообщение nkp »

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

Re: Arduino -> ModBus -> LCNC

Сообщение aftaev »

nkp писал(а):наверно оптимальней по тому же модбасу непосредственно управлять...
тема но форуме про модбас+частотник показывает что не все частотники так просто можно подключить к модбасу :)
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Arduino -> ModBus -> LCNC

Сообщение Nick »

nkp писал(а):например loadusr gs2_vfd -v 1101 устанавливает : in,in,out,in
Лучше число писать десятичное, но брать от него битовое представление.

Т.е. будет например cfg= 107, это побитово равно 01101011

В коде надо что-то вроде

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

for i in range(...):
  if cfg%2 :
    in
  else:
    out
  cfg = cfg>>1
Или лучше даже так:

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

for i in range(...):
  if cfg & 1<<i :
    in
  else:
    out
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Arduino -> ModBus -> LCNC

Сообщение nkp »

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

Re: Arduino -> ModBus -> LCNC

Сообщение aftaev »

nkp писал(а):а так - прям как тумблеры переключаются...
правильно, нужно думать за простых людей :) LCNC кто делал видать думали как Nick вот LCNC не шибко популярен :)
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Arduino -> ModBus -> LCNC

Сообщение nkp »

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

Re: Arduino -> ModBus -> LCNC

Сообщение aftaev »

nkp писал(а):к его популярности нужно прибавить все вышедшее из его алгоритмов и исходников
в коде некоторых "других" программ просматриваются куски емс
если бы ЕМС был бы заточен под обычного пользователя, а не для программеров то мож других и не появилось, просто надобности не было бы
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Arduino -> ModBus -> LCNC

Сообщение Nick »

Ну записать 0b1010110, а потом уже парсить это как число в двоичном коде...
Так правильнее, и в 1 int можно запихать 32 бита, вместо 9 знаков в деситичной записи...

PS на каком языке компонент написан?
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Arduino -> ModBus -> LCNC

Сообщение nkp »

C
Аватара пользователя
NightV
Почётный участник
Почётный участник
Сообщения: 6610
Зарегистрирован: 30 дек 2011, 09:14
Репутация: 2279
Настоящее имя: Владимир Айрапетян
Откуда: Israel
Контактная информация:

Re: Arduino -> ModBus -> LCNC

Сообщение NightV »

Nick писал(а):Ну записать 0b1010110, а потом уже парсить это как число в двоичном коде...
Так правильнее, и в 1 int можно запихать 32 бита, вместо 9 знаков в деситичной записи...
:wtf: :wtf: :wtf: программисты :hehehe: :hehehe: :hehehe:
Всё просто! если знаешь КАК!
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Arduino -> ModBus -> LCNC

Сообщение nkp »

Nick писал(а):в 1 int можно запихать 32 бита, вместо 9 знаков в деситичной записи
может в общем случае это и оптимальней - но здесь исходя из принципа минимальной достаточности хватит и этого - просто напросто регистров больше нет))
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Arduino -> ModBus -> LCNC

Сообщение Serg »

aftaev писал(а):если бы ЕМС был бы заточен под обычного пользователя, а не для программеров то мож других и не появилось, просто надобности не было бы
А не всё-ли равно популярно оно или нет? По мне так главное, чтоб работало как мне надо.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Arduino -> ModBus -> LCNC

Сообщение Nick »

А в си работает запись 0b101010?
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Arduino -> ModBus -> LCNC

Сообщение nkp »

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

Re: Arduino -> ModBus -> LCNC

Сообщение aftaev »

Nick писал(а):А в си работает запись 0b101010?
в Ардуине так:
//################ Инициализация I/O ################# // 0 => Выход, 1 => Input, напротив нормальной Arduino, но моя привычка с других платформ, 0 выглядит как O и 1 выглядит как я
Register[IO_Config_Register] = 0b1111111111111111; // UNO and MEGA PIN 00-15
Register[IO_Config_Register+1] = 0b1111111111111111; // MEGA PIN 16-31
Register[IO_Config_Register+2] = 0b1111111111111111; // MEGA PIN 32-47 делаем как входы
Register[IO_Config_Register+3] = 0b1111111111111111; // MEGA PIN 48-64
Register[IO_Config_Register+4] = 0b1111111111111111; // AN Digital PIN A0-A16
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Ответить

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