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

Modbus i delai

Добавлено: 05 апр 2017, 11:55
KSP
Два одинаковых проекта, но в одном из них есть индикатор, с индикатором проект прекрасно работает, а как только я его убираю все начинает жестко тормозить где-то на форуме читал , что в проекте с modbus нельзя использовать delai сравнил скетчи так и есть, без индикатора есть такое слово. Кто разбирается подскажите пожалуйста его что просто стереть или это не поможет?

Modbus i delai

Добавлено: 05 апр 2017, 12:25
Boroda
С тяжелыми блоками и Delay больше 1 секунды Modbus начинает некорректно работать. Проекты в студию.

П.С. в самом коде ModBus есть 1 или 2 delay(5), т.е задержка на 5мс. Один делай, если не указана нога переключения RX/TX, и два делая, если указана.

Modbus i delai

Добавлено: 05 апр 2017, 17:57
KSP
Я проекты прикрепил. Сейчас еще раз попробую

Добавлено (05.04.2017, 17:54)
---------------------------------------------
Я извиняюсь, но как прикрепить проект подскажите если можно

Добавлено (05.04.2017, 17:57)
---------------------------------------------
Я извиняюсь, но как прикрепить проект подскажите если можно

Modbus i delai

Добавлено: 05 апр 2017, 18:09
Олег
Внизу окна редактора кнопка Choose File

Modbus i delai

Добавлено: 05 апр 2017, 18:35
KSP
Разобрался почему я не могу прикрепить проект, он 2082кб я так понял из-за того, что у меня стоят блоки которые я сам придумал. Спасибо Boroda Вы были правы delai есть почти в конце каждого проекта, я так понял где загрузки мастера.Сейчас попробую другие блоки я где-то на форуме видел. Если не получится буду еще выспрашивать.

Modbus i delai

Добавлено: 05 апр 2017, 19:06
Boroda
KSP, заархивтруйте, пережмется раз в 10.

Modbus i delai

Добавлено: 05 апр 2017, 19:56
KSP
Я вместо своих кривых блоков вставил блоки которые выложил Слимпер, ого проект стал меньше почти в три раза, но проблема так и осталась с индикатором все срабатывает меньше чем за секунду, а без индикатора иногда через минуту. Где еще копать уже не знаю?

Modbus i delai

Добавлено: 06 апр 2017, 11:06
Boroda
Ну даже не знаю... Таймаут вроде нормальный. Попробуйте период синхронизации увеличить хотя бы до 50 мс. И InputRegistr заменить на HoldingRegistr. Отличие у них в том, что в Input нельзя записывать со стороны мастера. Команды ModBus input и holding разные. Ведь с Coil реализация Сергея некорректно работает. Может и с input регистрами некорректно?

Modbus i delai

Добавлено: 06 апр 2017, 11:29
KSP
Попробовать смогу вечером, но я не совсем понял как можно заменить InputRegistr на HoldingRegistr вернее как заставить голову опрашивать HoldingRegistr там синенький прямоугольник и выхода цепляются с двух сторон у меня InputRegist-"состояние на бане" или я не понял что менять?

Modbus i delai

Добавлено: 06 апр 2017, 11:55
Boroda
Цитата KSP () 200?'200px':''+(this.scrollHeight+5)+'px');">вернее как заставить голову опрашивать HoldingRegistr
Ну Holding регистр - это более универсальный регистр, мастер его может и отправить и запросить у слейва, поэтому у Holding может быть или вход или выход на синенькой коробочке. А Input можно только запросить у слейва, поэтому только выход на плате мастера, и только вход на плате слейва.


Modbus i delai

Добавлено: 06 апр 2017, 12:30
KSP
Я поменял на 4 слейве 55 InputRegistr на HoldingRegistr , дело в том что 4 слейв зто панель Weintek и при ее программировании можно включить онлайн симуляцию , включил проверил точно мастер данные из панели принимает. Так , что теперь и на втором слейве менять?

Modbus i delai

Добавлено: 06 апр 2017, 12:33
Boroda
Все, что находится здесь, мастер постоянно опрашивает с частотой синхронизации (у Вас 1мс - очень часто).


И отправляет параметр слейву, если произошло изменение:



Добавлено (06.04.2017, 12:33)
---------------------------------------------
KSP писал(а):Так , что теперь и на втором слейве менять?
Ну если работает, переходите полностью на Holding.

Modbus i delai

Добавлено: 06 апр 2017, 14:21
KSP
А я думал, что это тайм аут для протокола т.е. режим тишины между запросами и равен он 3.5

Modbus i delai

Добавлено: 06 апр 2017, 16:25
Boroda
KSP, таймаут в 3,5 байта для RTU уже заложен в алгоритме.

Таймаут ожидания (по умолчанию 1000мс) - время ожидания ответа от слейва.



Синхронизация - это период опроса переменных слейвов мастером.


Modbus i delai

Добавлено: 06 апр 2017, 20:19
KSP
Попробовал заменить InputRegistr на HoldingRegistr мастер перестал работать. При попытке увеличить таймаут перестает работать на 5 мс , на 50 и 20 тоже не работает. В настройках панели слейв 4 нашел строку мин. время команды я так думаю тот-же таймаут у меня стояло 50 м.с ставлю 5 ничего не меняется даже кажется быстрее работает но только с табло.

Добавлено (06.04.2017, 20:19)
---------------------------------------------
В настройках панели минимальное время команды поставил 1 м.с на мастере 1 м.с проект с табло летает, а без табло вообще не работает, хотя оба одинаковые