Страница 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