Страница 5 из 22
Re: Arduino -> ModBus -> LCNC
Добавлено: 31 окт 2013, 08:48
nkp
здесь тестируют компонент
mb2hal,
будет работать с устройствами через модбас в емс ...
в примерах - работа с Arduino Mega 2560
при компиляции требует
libmodbus3 , поставлю - попробую , что за зверь ...
первое впечатление - наверно в силу универсальности применения скрипта все раздуто ...
может и оправдано , но мое мнение - инструмент, заточеный под одну конкретную задачу лучше универсального))
Re: Arduino -> ModBus -> LCNC
Добавлено: 31 окт 2013, 22:24
nkp
Re: Arduino -> ModBus -> LCNC
Добавлено: 02 ноя 2013, 01:48
nkp
надо бы в строку загрузки компонента добавить аргумент, устанавливающий режимы регистров (in or out)...
например loadusr gs2_vfd -v 1101 устанавливает : in,in,out,in
зы
не устанавливает конечно непосредственно(это мы прописываем в прошивке) - но формирует в зависимости от аргумента соответствующие пины Hal
Re: Arduino -> ModBus -> LCNC
Добавлено: 02 ноя 2013, 23:43
nkp
попробовал
добавитьnkp писал(а):loadusr gs2_vfd -v 1101 устанавливает : in,in,out,in
на одном регистре - из-за этой универсальности весь код будет в if-ах

----
вопрос : нужен ли шим в рассматриваемой связке?
Re: Arduino -> ModBus -> LCNC
Добавлено: 03 ноя 2013, 09:54
aftaev
nkp писал(а):вопрос : нужен ли шим в рассматриваемой связке?
вдруг кто то захочет частотником по +-10в управлять.
Re: Arduino -> ModBus -> LCNC
Добавлено: 03 ноя 2013, 10:07
nkp
aftaev писал(а):частотником по +-10в управлять.
наверно оптимальней по тому же модбасу непосредственно управлять...
из ардуины шимом слишком грубо получится (хотя там конечно требования к частоте вращения и не такие уж жесткие)
Re: Arduino -> ModBus -> LCNC
Добавлено: 03 ноя 2013, 11:45
aftaev
nkp писал(а):наверно оптимальней по тому же модбасу непосредственно управлять...
тема но форуме про модбас+частотник показывает что не все частотники так просто можно подключить к модбасу

Re: Arduino -> ModBus -> LCNC
Добавлено: 13 ноя 2013, 23:37
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
Re: Arduino -> ModBus -> LCNC
Добавлено: 13 ноя 2013, 23:45
nkp
Nick писал(а):Лучше число писать десятичное, но брать от него битовое представление
хмм...а как люди далекие от программирования будут настраивать регистры?
а так - прям как тумблеры переключаются...

Re: Arduino -> ModBus -> LCNC
Добавлено: 14 ноя 2013, 10:21
aftaev
nkp писал(а):а так - прям как тумблеры переключаются...
правильно, нужно думать за простых людей

LCNC кто делал видать думали как Nick вот LCNC не шибко популярен

Re: Arduino -> ModBus -> LCNC
Добавлено: 14 ноя 2013, 10:36
nkp
aftaev писал(а):LCNC кто делал видать думали как Nick вот LCNC не шибко популярен
к его популярности нужно прибавить все вышедшее из его алгоритмов и исходников
в коде некоторых "других" программ просматриваются куски емс

Re: Arduino -> ModBus -> LCNC
Добавлено: 14 ноя 2013, 10:48
aftaev
nkp писал(а):к его популярности нужно прибавить все вышедшее из его алгоритмов и исходников
в коде некоторых "других" программ просматриваются куски емс
если бы ЕМС был бы заточен под обычного пользователя, а не для программеров то мож других и не появилось, просто надобности не было бы
Re: Arduino -> ModBus -> LCNC
Добавлено: 14 ноя 2013, 11:45
Nick
Ну записать 0b1010110, а потом уже парсить это как число в двоичном коде...
Так правильнее, и в 1 int можно запихать 32 бита, вместо 9 знаков в деситичной записи...
PS на каком языке компонент написан?
Re: Arduino -> ModBus -> LCNC
Добавлено: 14 ноя 2013, 11:47
nkp
C
Re: Arduino -> ModBus -> LCNC
Добавлено: 14 ноя 2013, 13:00
NightV
Re: Arduino -> ModBus -> LCNC
Добавлено: 14 ноя 2013, 13:25
nkp
Nick писал(а):в 1 int можно запихать 32 бита, вместо 9 знаков в деситичной записи
может в общем случае это и оптимальней - но здесь исходя из принципа минимальной достаточности хватит и этого - просто напросто регистров больше нет))
Re: Arduino -> ModBus -> LCNC
Добавлено: 14 ноя 2013, 16:13
Serg
aftaev писал(а):если бы ЕМС был бы заточен под обычного пользователя, а не для программеров то мож других и не появилось, просто надобности не было бы
А не всё-ли равно популярно оно или нет? По мне так главное, чтоб работало как мне надо.
Re: Arduino -> ModBus -> LCNC
Добавлено: 14 ноя 2013, 16:25
Nick
А в си работает запись 0b101010?
Re: Arduino -> ModBus -> LCNC
Добавлено: 14 ноя 2013, 16:38
nkp
вроде бы такая запись не нужна...
просто пишешь 42 и делаешь битовые операции ,а компилятор и так представляет это число в памяти как 101010 (ну там еще много нулей впереди)))
инт насколько я знаю можно писать в трех видах:
десятичном, восьмиричном , и 16-ом (лень писать))) , и всё...
зы может ошибаюсь

Re: Arduino -> ModBus -> LCNC
Добавлено: 14 ноя 2013, 16:41
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