|
Связь с внешним миром Modbus, RS232, RS485, Lon и другое. |
|
Опции темы | Поиск в этой теме |
06.03.2019, 13:15 | #1 |
Новичок
Регистрация: Nov 2018
Сообщения: 18
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Тормозит передача по modbus на индикатор (решено)
Вывожу циферку одновременно на экран контроллера и по модбас на индикатор ОВЕН SMI2. На индикаторе цифра обновляется секунд на 10-15 позже, чем на экране. Залез посмотреть в SMLogix - и действительно, на входе кубика с переменной число уже несколько раз поменялось, а на выходе появляется секунд 15 спустя.
Всего на модбасе 8 устройств. Из двух читается по 40 слов групповым запросом, в 6 пишется по одному слову. Скорость 19200. Период для всех переменных 500 мс. Что за фигня? Искать проблемы в проводах или..? |
06.03.2019, 14:02 | #2 | |
Senior Member
Регистрация: Jan 2012
Адрес: Саратов
Сообщения: 179
Благодарил(а): 1 раз(а)
Поблагодарили:
3 раз(а) в 3 сообщениях
|
Ответ: Тормозит передача по modbus на индикатор
Цитата:
2 Увеличьте период до 3 секунд |
|
06.03.2019, 14:23 | #3 |
Новичок
Регистрация: Nov 2018
Сообщения: 18
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Тормозит передача по modbus на индикатор
|
06.03.2019, 16:03 | #4 |
Senior Member
Регистрация: Oct 2010
Адрес: Москва
Сообщения: 403
Благодарил(а): 29 раз(а)
Поблагодарили:
2 раз(а) в 2 сообщениях
|
Ответ: Тормозит передача по modbus на индикатор
Из-за низкой скорости обмена ваши устройства не успевают вычитываться с задаваемой периодичностью. В итоге из запросов накапливается очередь на их вычитку - потому что следующий запрос будет выполнен только после того, как ответит предыдущий слейв (или не ответит и истечет таймаут, что еще медленнее). И даже может быть, что очередь быстро переполняется и запросы на запись в СМИ2 вообще теряются.
Увеличение скорости и, главное, увеличение периода опросов - позволяют иметь короткую очередь (в идеале - только из выполняющегося в данный момент запроса к слейву), и тем самым обеспечить почти мгновенную реакцию индикатора. UPD: Если задержка индикации СМИ2 критичнее частоты опроса датчиков - настройте слейвы на обращение "по запросу", и дергайте их поочередно: Slave1-индикатор-Slave2-индикатор-Slave3-индикатор-... и т.д. При этом частота запросов станет пофигу (хоть 1 мс) - индикатор будет обновлять очень часто, и задержку вы практически не увидите... |
06.03.2019, 17:27 | #5 |
Новичок
Регистрация: Nov 2018
Сообщения: 18
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Тормозит передача по modbus на индикатор
Как-то у меня в голове не склеивается.
Пусть 1 и 2 - устройства, с которых читаем (причём, как я написал, читаем немного), 3-8 - пишем (вообще по одной переменной). Период везде одинаковый и, по логике, контроллер ставит запросы в очередь как-то в том же порядке 1-2-3-4-5-6-7-8-1-2-3-4....Пусть период опроса слишком короткий - начинает копиться очередь.... а потом запросы начинают отбрасываться... ну и пускай отбрасываются. я просто получаю ответы на более старые запросы, но в том же порядке - 1-2-3-... Зато опрос идёт без перерыва.. Да и вроде передача 40 слов одним групповым запросом даже на скорости 19200 должно занимать совсем небольшое время. Другое дело - если тормозит контроллер, С которого считываем данные - но тогда изменение периода опроса не поможет. Тогда, наверное, имеет смысл поставить разный период опроса - для устройств 1 и 2 (контроллеры) - побольше, а 3-8 (индикаторы) - на порядок меньше? Видимо, придётся какой-нибудь сниффер в руки и смотреть, что на шине делается... Могу отписаться, если удастся это сделать. |
06.03.2019, 22:47 | #6 |
Senior Member
Регистрация: Oct 2010
Адрес: Москва
Сообщения: 403
Благодарил(а): 29 раз(а)
Поблагодарили:
2 раз(а) в 2 сообщениях
|
Ответ: Тормозит передача по modbus на индикатор
Отпишитесь, конечно.
Я с этим столкнулся, когда распределенную сеть мучал - в итоге перешел к системе К-1-К-2-К-3-...-К-n (где К - критичный слейв, 1...n - менее критичные). Увеличение периода опросов, сокращение тайм-аутов, увеличение сокрости и т.п. работают только до тех пор, пока все слейвы отвечают сразу и быстро. Стоит одному "замешкаться" (перестать отвечать, сдохнуть, ловить помеху во время передачи) - и всё, запросы начинают копиться как снежный ком; при этом критичный сможет "втиснуться" лишь если попадет в очень узкое окно, когда в очереди уже появится свободное место, но ни у кого из некритичных еще не истечет интервал. А схема с опросом "через один" гарантирует запрос даже если дергать очередной слейв каждый тик... |
07.03.2019, 08:05 | #7 |
Senior Member
Регистрация: Jan 2012
Адрес: Саратов
Сообщения: 179
Благодарил(а): 1 раз(а)
Поблагодарили:
3 раз(а) в 3 сообщениях
|
Ответ: Тормозит передача по modbus на индикатор
|
07.03.2019, 10:52 | #8 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 131
Благодарил(а): 15 раз(а)
Поблагодарили:
663 раз(а) в 606 сообщениях
|
Ответ: Тормозит передача по modbus на индикатор
Цитата:
Тайм-аут подберите правильный, базовый 100 мсек для передачи пары значений непомерно велик. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|