Подскажите пожалуйста методику расчета пропускной способности линии связи RS-485, modbus.
С Уважением, KaRp
Если в двух словах, то методика простая: берется структура запрос+ответ, подсчитывается кол-во передаваемых байт информации (сетевой номер, код команды, данные, контрольная сумма) по всем параметрам. Получается общий объем требуемой к передаче информации.
Скорость порта тоже известна. В результате деления получаем время, требуемое для передачи полного объема информации по проекту.
Ну а если детально, то конечно придется повозиться с арифметикой.
Почти точное вычисление для 232/485: 1. Х = длина пакета (в байтах), множенная на 10 2. скорость канала (например, 9600 б/с) делишь на Х - получаешь время, за которое пакет передастся в канал
в Модбасе добавь к длине своего пакета: заголовок + хвост + контрольную сумму (всё не знаю, может ещё что есть)
Первоначально опубликовано Semelenov
Почти точное вычисление для 232/485: 1. Х = длина пакета (в байтах), множенная на 10
Это Вы байты в биты переводите домножив на 10?
К вышесказанному добавлю: не забывайте про timeout, не учитывая их все равно, что пальцем в небо тыкать.
каждый сам виноват в своих проблемах, собственно как и сам волен выбирать, как их решать
Первоначально опубликовано mirror-reflected
К вышесказанному добавлю: не забывайте про timeout, не учитывая их все равно, что пальцем в небо тыкать.
Угу, и даже более того - достаточно только таймауты посчитать, а временем непосредственно передачи пренебречь.
Таймауты - из паспортов, а лучше опытным путем.
и от стальной его груди отскакивают стрелы.
Таймауты у слейвов обыкновенно 100-200 мс, в то время как время посылки - 10-20 мс.
и от стальной его груди отскакивают стрелы.
Первоначально опубликовано Astilya
Если в двух словах, то методика простая: берется структура запрос+ответ, подсчитывается кол-во передаваемых байт информации (сетевой номер, код команды, данные, контрольная сумма) по всем параметрам. Получается общий объем требуемой к передаче информации.
Скорость порта тоже известна. В результате деления получаем время, требуемое для передачи полного объема информации по проекту.
Ну а если детально, то конечно придется повозиться с арифметикой.
И арифметика здесь не ко двору.
Берем количество устройств в сети, умножаем на два (посылка-ответ) и умножаем на средний таймаут (200 мс) = вот и получим пропускную способность, точнее время за которое можно успеть опросить все устройства.
и от стальной его груди отскакивают стрелы.
несогласные есть? :)
и от стальной его груди отскакивают стрелы.
по-аналогичному вопросу однажды яро заспорил со мной непосредственно разработчик модбасного модуля, электронщик. эмпирическим путем выяснили, что таки таймайт не пару миллисек, а сотня или две.
так что, скептики идут ставить опыты.
и от стальной его груди отскакивают стрелы.
Да, между запросами к разным приборам получается время вовсе не то, которое хотелось бы. Это приколы операционки. А на практике, между запросами не имеет смысл брать число менее 50 мс, скорее всего, его просто не получится добиться. У меня получалось немного меньше, но если вы будете оперировать числом 50, то примерно так и получиться.
Точнее для 9600 порядка 50-60 мс
19200 - 30 мс
1200 -125 мс
115200 - 20 мс
Теоретически можно что-то выскрести и сделать поменьше, практически это бесполезно.
При экспериментах ни один чайник не пострадал
-----------
Плохому системному интегратору всегда OPC сервер мешает.
______________
Пишу на C++ за еду
Вы не можете публиковать новые темы в этом форуме Вы не можете отвечать на сообщения в этом форуме Вы не можете удалять Ваши сообщения на этом форуме Вы не можете редактировать Ваши сообщения на этом форуме Вы не можете создавать голосования на этом форуме Вы не можете выражать своё мнение в голосованиях на этом форуме