Страница 1 из 2

Нужен - ли медленный модбас-мастер или продолжать поиски

Добавлено: 30.01.2016{, 12:47}
support
Из всех библиотек поддерживающих модбас-мастер на Ардуино я нашол только одну стабильно работающую http://playground.arduino.cc/Code/ModbusMaster.
Она поддерживает весь функционал модбас, и работает без зависаний и ошибок. Но есть одна болшая проблемма. Время одного запроса 2007 милисикунд, то есть2 секунды. Причём это время почти не зависит от объёма передаваемых или читаемых данных. Поэтому я не знаю, стоит ли с ней заморачиваться и реализовывать в программе, или ещё поискать какое - то время. Давайте решим это вместе.

Нужен - ли медленный модбас-мастер или продолжать поиски

Добавлено: 30.01.2016{, 13:16}
XENOMAN
ИМХО полнофункциональный и надежный slave будет куда более полезен. С появлением возможность использования C в своих блоках, необходимость в модбас как средстве общения между ардуинами - отпадает, а вот как средство прямого общения ардуины с компьютером - вещь незаменимая(в моём конкретном случае), но тут важен именно слейв и не мастер. Сорри за офтоп.

Нужен - ли медленный модбас-мастер или продолжать поиски

Добавлено: 30.01.2016{, 13:19}
support
Насчёт слейвов я не переживаю, они и сейчас отлично работают. И менять их я не планирую. А вот с мастером беда. Я так подозреваю что возможностей ардуинки не хватает, поэтому и никто пока не сделал оптимальной библиотеки мастера

Нужен - ли медленный модбас-мастер или продолжать поиски

Добавлено: 30.01.2016{, 13:30}
XENOMAN
И снова прошу прощение за оффтоп. Но если Вы не планируете менять слейвы, выходит возможность использовать другие типы переменных(Discrete Inputs, Coils, Input Registers) так и не появится? Подозреваю что и за мастера и за слейва отвечает одна библиотека. Ну тогда я голосую за медленную библиотеку.

Нужен - ли медленный модбас-мастер или продолжать поиски

Добавлено: 30.01.2016{, 13:46}
support
Нет за мастера и слейва отвечают разные библиотеки (сейчас одна, но мастер в ней реализован ужасно).  А текущие слейвы поддерживают весь функционал модбаса. ПРосто организация памяти немного нестандартная. Объясню:
Например вы создали 3  переменых  модбас с адресами 0 - 2 типа Integer,
  • Если мастер запросит холдинг-регистр с адресом 0 то получит значение переменной с адресом 0, но это понятно.
  • если мастер запросит Input Register с адресом 0  полчит значение переменной с адресом 0
  • если мастер запросит Discrete Inputs с адресом 0  полчит значение нулевого бита переменной с адресом 0 (соответственно запросив Discrete Inputs с адресом 16 полчит значение нулевого бита переменной с адресом 1 )
  • если мастер запросит Coils с адресом 0  полчит значение нулевого бита переменной с адресом 0 (соответственно запросив Coils с адресом 16 полчит значение
    нулевого бита переменной с адресом 1 )
ТО же самое с записью. В программе FLProg  есть блоки доступа на чтение и запись отдельных битов в переменной, так что проблеммы с получение отдельных битов нет

Нужен - ли медленный модбас-мастер или продолжать поиски

Добавлено: 30.01.2016{, 14:44}
XENOMAN
Спасибо за разъяснения.

Нужен - ли медленный модбас-мастер или продолжать поиски

Добавлено: 30.01.2016{, 14:46}
Max
support писал(а):Из всех библиотек поддерживающих модбас-мастер на Ардуино я нашол только одну стабильно работающую http://playground.arduino.cc/Code/ModbusMaster.Она поддерживает весь функционал модбас, и работает без зависаний и ошибок. Но есть одна болшая проблемма. Время одного запроса 2007 милисикунд, то есть2 секунды. Причём это время почти не зависит от объёма передаваемых или читаемых данных. Поэтому я не знаю, стоит ли с ней заморачиваться и реализовывать в программе, или ещё поискать какое - то время. Давайте решим это вместе.
support писал(а):Из всех библиотек
Вот прикрепленный файл. Кое что по ModBus лежало в архивах. Посмотрите.

Нужен - ли медленный модбас-мастер или продолжать поиски

Добавлено: 30.01.2016{, 15:02}
support
Не подскажешь где скачал? Я смотрю там библиотека SPI подтягивается и не очень понятно как подключается преобразователь RS485 поскольку компорт используется для передачи на комп

Нужен - ли медленный модбас-мастер или продолжать поиски

Добавлено: 30.01.2016{, 15:13}
support
Разобрался. Библиотека очень интересная, но .... для

Цитата
MAX3107 - компактный универсальный асинхронный приемопередатчик (UART) с буфером FIFO на 128 слов в цепях приемника и передатчика, управление
которым осуществляется через интерфейс SPI или I2C. Встроенный генератор устраняет необходимость применения внешнего
источника синхронизации. Режимы 2x и 4x позволяют достичь скорости
передачи данных 24Мб/с. Схема фазовой автоподстройки частоты, делитель
сигналов синхронизации, предварительный делитель частоты и тактовый
генератор позволяют добиться максимальной точности при задании скорости
обмена и минимизировать зависимость от опорной частоты генератора.


Причём я не нашол готовые платы с ним, а сам чип даже в китае самый дешовый почти полштуки. Нам нужно по UART

Нужен - ли медленный модбас-мастер или продолжать поиски

Добавлено: 30.01.2016{, 16:01}
RK6YK
Привет Сергей! Не стоит ломать копья! Для возможностей 
контроллера Ардуино это вполне достаточно.(Не будет же он управлять турбиной на КС) Да и на промышленных контроллерах хоть и заявляют время опроса 10-20 мс.
на несколько тысяч тегов все равно выливается в 4-5сек.
Это я доказывал при пуске наших объектов на Олимп.Игр
Так как я в основном работал на Газпром САУ газотурбинных агр. Там все аварийн защиты выделяеться все на отд.контр.(ССС Compressor Control Corp) Allen Bredl/ и т.д На Ямбурге мог встречать. Хоть и не по теме но пожалуйста сделай настройку размера шрифтов в интефейсе проги на нет.буке мелковато) И огомное спасибо за прогу!!!

Нужен - ли медленный модбас-мастер или продолжать поиски

Добавлено: 30.01.2016{, 19:10}
Max
support писал(а):Не подскажешь где скачал? Я смотрю там библиотека SPI подтягивается и не очень понятно как подключается преобразователь RS485 поскольку компорт используется для передачи на комп
Один из пользователей форума мне пожертвовал.

Нужен - ли медленный модбас-мастер или продолжать поиски

Добавлено: 30.01.2016{, 22:35}
Skull
Модбас слейв на самом деле какой-то странный. Например ошибки не выдает при попытке записи в регистры для чтения . И нет различия в 3001, 4001..... Для этого модбаса оба регистра будут 01, поэтому, если менять слейвы с работающим чужим мастером на свои- беда получается.

А по поводу мастера- надо работать на чем есть пока идут изыскания. Ну не сидеть же без ничего если есть что-то боль-мень рабочее.
Ну и медленный тоже можно, но все равно продолжать изыскания. На самом деле, задач, требующих миллисекунды на обработку в бытовых задачах не так много. Да и в производственных тоже.
Кстати, может есть кто-то, кто осилит переписать библиотеку на Асме ?
ЗЫ ЭТУ пробовали ?

Нужен - ли медленный модбас-мастер или продолжать поиски

Добавлено: 31.01.2016{, 10:54}
dekorator
http://flprog.ru/_fr/0/ModbusMasterV2.zip
Не годится?
Я её без Flprog тестил и нормально было.

Добавлено (31.01.2016, 10:54)
---------------------------------------------
Может для теста, с помощью этой библиотеки блок на си сделает кто?

Нужен - ли медленный модбас-мастер или продолжать поиски

Добавлено: 01.02.2016{, 13:09}
Grafsaxar
Слейвы работают со скадой отлично. ( во всяком случае у меня )

Но заметил одну странную вещь:

Делаю 35 Тэгов в ардуине. В ОРС сервере выставляю 400001 для адреса 0 , 400001 дла адреса 1 и т.д.

ОРС сервер получает все данные без проблем, но как задаю адрес 400031 сервер умирает. 

Не получает никаких данных, 400032, 400033, такая же проблема.

Если оставляю до 400030 а следующий  ставлю 400040 данные от тэгов  до 400030 получает, 400040 нет т.к. его нет в ардуине.

Это глюк сервера или слейва ???

Может нужна возможность адреса в Ардуине вручную задавать?

Нужен - ли медленный модбас-мастер или продолжать поиски

Добавлено: 01.02.2016{, 15:41}
ingwar_85
День добрый. Больше 2 сек - круто конечно. Я уж не знаю там про турбины на КС и олимпийские объекты. Но лично в моем проекте  за 2 сек можно пропустить пару литров масла в водопровод. В принципе я уже прикрутил к кориолису трансмиттер и теперь снимаю данные  через 4-20мА. ModBUS мне не к спеху.  Я за то, что бы ещё поискать.  
Не найдется другого варианта, пусть будет тормозной, всё лучше чем ничего.

Нужен - ли медленный модбас-мастер или продолжать поиски

Добавлено: 05.02.2016{, 20:48}
omich66
Здравствуйте.

Есть еще такой вариант
Modbus RTU libraries for Arduino

Обсуждается здесь

forum.arduino.cc

Нужен - ли медленный модбас-мастер или продолжать поиски

Добавлено: 08.02.2016{, 06:35}
Max
Вот тут интересная дискуссия по стабильности и об ошибках в RS485. Похоже, там решили проблему ошибок связанную со скоростями.

Нужен - ли медленный модбас-мастер или продолжать поиски

Добавлено: 12.02.2016{, 20:26}
Grafsaxar
Спасибо Max интересная статейка.

Я тоже у меня замечал чем меньше скорость тем больше ошибок. Сеичас остановился на 57600  и всё вроде нормально работает.
Насчёт сопротивления как то не подумал. у меня в каждом ардуино на 120 Ом стоит.

Возможно Pullup и pulldown попробовать надо.

Изображение

Нужен - ли медленный модбас-мастер или продолжать поиски

Добавлено: 12.02.2016{, 20:53}
Skull
Grafsaxar писал(а):у меня в каждом ардуино на 120 Ом стоит.
Нужно только по краям

Нужен - ли медленный модбас-мастер или продолжать поиски

Добавлено: 13.02.2016{, 08:51}
Слимпер
Skull писал(а):Нужно только по краям
Полностью согласен
Grafsaxar, Вот почитайте 
Правильная разводка сетей RS-485
и еще
Подключение микроконтроллеров к шине RS-485