Возникли проблемы с быстродействием. Задача собрать с 50-ти систем по 200 сигналов по Modbus TCP (и второй вариант по 104 протоколу)
Тормоза уже начинаются на 10-ой системе (т.е 2000 входных регистров). А 104 вообще жуть, даже 100 параметров передать проблема. Кто сталкивался с подобным и как решили проблему.
- Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
- Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
- Не надо писать свой вопрос в первую попавшуюся тему - всегда лучше создать новую тему.
- За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения. Непонятно? - Читать здесь.
- Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
- Перед тем как что-то написать - читать здесь, а затем здесь и здесь.
- Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.
Быстродействие MasterScada 4d
Модератор: Глоб.модераторы
-
- здесь недавно
- Сообщения: 7
- Зарегистрирован: 05 авг 2022, 13:33
- Имя: Андрей
- Страна: Россия
-
- администратор
- Сообщения: 18749
- Зарегистрирован: 17 июн 2008, 16:01
- Имя: Евгений свет Брониславович
- Страна: Россия
- город/регион: Санкт-Петербург
- Благодарил (а): 973 раза
- Поблагодарили: 1852 раза
Быстродействие MasterScada 4d
Как много вопросов.....
Очень приближённо считаем что всё читается двумя запросами по 100 регистров, каждый из регистров данных 2 байта.
Запрос = 4 + 2 + 2 + 2 + 2 + 4 = 16 байт. Ответ = 4 + 2 + 2 + 200 + 4 = 212 байт. И таких два. 228 * 2 = 456 байт чтобы опросить оно устройство. Устройств 50. 456 * 50 = 22800 байт - цикл опроса.
Предположим 10/100Base-T, 100 мегабит. Приближённо это 10Мбайт/с - в чистом виде. Но паузы между телеграммами могут быть до 500 мсек (это опять же предположительно, возможно и больше). Ну пусть 100 мсек. Сервера не мгновенно отвечают. 4 паузы на одно устройство, два запроса, два ответа. 2 мсек на данные и 400 мсек на паузы - итого 402 мсек - опросить оно устройство, получить ответ. Записать эти данные в БД - тоже время надо. От печки предположу 100 мсек на всё (работа OPC, виндовса со своим двухуровневым кэшем, и накопителя, предположим что он локальный).
То есть полсекунды на опрос одного устройства. 10 устройств - 5 секунд. 50 устройств - 25 секунд в идеальных условиях!
Расчёт очень приближённый, может быть и вдвое быстрее и втрое медленнее.
У Вас примерно такие времена?
Что значит "тормоза" ?
Физика какая? 10мбит/с? 100мбит/с? 1000мбит/с? Медь или оптика? Топология какая?
Одновременно с модбасом или вместо него?
Очень приближённо считаем что всё читается двумя запросами по 100 регистров, каждый из регистров данных 2 байта.
Запрос = 4 + 2 + 2 + 2 + 2 + 4 = 16 байт. Ответ = 4 + 2 + 2 + 200 + 4 = 212 байт. И таких два. 228 * 2 = 456 байт чтобы опросить оно устройство. Устройств 50. 456 * 50 = 22800 байт - цикл опроса.
Предположим 10/100Base-T, 100 мегабит. Приближённо это 10Мбайт/с - в чистом виде. Но паузы между телеграммами могут быть до 500 мсек (это опять же предположительно, возможно и больше). Ну пусть 100 мсек. Сервера не мгновенно отвечают. 4 паузы на одно устройство, два запроса, два ответа. 2 мсек на данные и 400 мсек на паузы - итого 402 мсек - опросить оно устройство, получить ответ. Записать эти данные в БД - тоже время надо. От печки предположу 100 мсек на всё (работа OPC, виндовса со своим двухуровневым кэшем, и накопителя, предположим что он локальный).
То есть полсекунды на опрос одного устройства. 10 устройств - 5 секунд. 50 устройств - 25 секунд в идеальных условиях!
Расчёт очень приближённый, может быть и вдвое быстрее и втрое медленнее.
У Вас примерно такие времена?
По вопросам работы Форума можно обратиться по этим контактам.
-
- здесь недавно
- Сообщения: 7
- Зарегистрирован: 05 авг 2022, 13:33
- Имя: Андрей
- Страна: Россия
Быстродействие MasterScada 4d
1. Тормоза, это значит значения на приемнике начинают отличаться от источника.
2. сеть 1000, соединение напрямую.
3. сделали 2-е разных тестовых задачи с Modbus -ом и 104 протоколом.
Пред_история: Есть готовая система по сбору информации реализованная на другой скаде. Проблема в том, что она работает только под виндой, заказчик требует переход на линукс. Решили попробовать мастерскаду. Написали тест. На одном компе висит модбас-сервер (реализован на др. скаде) который предоставляет доступ к 50 группам по 200 регистров и на нем меняются значения раз в сек. На другом компе на мастер скаде организовали прием данных группами по 200 сигналов. стали последовательно добавлять группы приема сигналов , до 6 .. 7 групп полет нормальный, 10 данные начинают пропускаться, после 20 еле шевелится. На другой скаде данные со всех 50 групп читаются без проблем даже с тактом изменения 250 мсек.
25 сек с 50 устройств в идеальных условиях - это если только у вас модбас рту и линия менее 100 кбит.
для 104 протокола еще печальнее, 1 устройство, 100 параметров - тормоза.
2. сеть 1000, соединение напрямую.
3. сделали 2-е разных тестовых задачи с Modbus -ом и 104 протоколом.
Пред_история: Есть готовая система по сбору информации реализованная на другой скаде. Проблема в том, что она работает только под виндой, заказчик требует переход на линукс. Решили попробовать мастерскаду. Написали тест. На одном компе висит модбас-сервер (реализован на др. скаде) который предоставляет доступ к 50 группам по 200 регистров и на нем меняются значения раз в сек. На другом компе на мастер скаде организовали прием данных группами по 200 сигналов. стали последовательно добавлять группы приема сигналов , до 6 .. 7 групп полет нормальный, 10 данные начинают пропускаться, после 20 еле шевелится. На другой скаде данные со всех 50 групп читаются без проблем даже с тактом изменения 250 мсек.
25 сек с 50 устройств в идеальных условиях - это если только у вас модбас рту и линия менее 100 кбит.
для 104 протокола еще печальнее, 1 устройство, 100 параметров - тормоза.
-
- здесь недавно
- Сообщения: 7
- Зарегистрирован: 05 авг 2022, 13:33
- Имя: Андрей
- Страна: Россия
-
- специалист
- Сообщения: 600
- Зарегистрирован: 08 авг 2008, 10:43
- Имя: Щукин Андрей Александрович
- Страна: Россия
- город/регион: Москва
- Благодарил (а): 7 раз
- Поблагодарили: 63 раза
Быстродействие MasterScada 4d
50 приборов по Modbus TCP за 250 мсек? Вы точно ни протокол, ни цифры не перепутали? Что за комп был, что за скада?
В вашей системе видно несколько "узких" мест. По описанию похоже, что запросы/ответы не помещаются в "буфферы"б которые могут быть как аппаратные, так и программные.
Не факт, что этот компьютер корректно отвечает при большом кол-ве запросов. Затык может быть даже в чипе порта, в его буфере.
Та же проблема может быть и на стороне клиента.
200 регистров массивом читаете? У скада это встроенный драйвер или внешний ОПС?
Авторы ТЗ, с которыми я работаю, не имеют права жаловаться на дороги, ЖКХ, бюрократию и правительство.
-
- здесь недавно
- Сообщения: 7
- Зарегистрирован: 05 авг 2022, 13:33
- Имя: Андрей
- Страна: Россия
Быстродействие MasterScada 4d
Ну немножко приукрасил Сделал 2 теста На мастерскаде и на Какскад-САУ опрос источника данных 2000 параметров по МодбасТСР с встроенным счетчиком изменений - такт 500 мсек. На Мастерскаде постоянные пропуски по 5..7 значений, на Какскад-Сау ни одного пропуска (на 250 мсек появляются единичные пропуски).
Что значит массивом читаете? Запросы естественно групповые, Да, у Мастерскады через встроенный драйвер, впрочем как и КАСКАД-САУ
-
- здесь недавно
- Сообщения: 7
- Зарегистрирован: 05 авг 2022, 13:33
- Имя: Андрей
- Страна: Россия
Быстродействие MasterScada 4d
Проблема решилась. по совету поддержки:
"Попробуйте разделить модули по нескольким протоколам. Так как на каждый протокол выделяется своя задача, то в таком случае повысится нагрузка на среду исполнения в целом, но снизится нагрузка на каждую конкретную задачу, что позволит увеличить скорость опроса."
Но правда еще к этому совету добавили изменение параметра Протокола "Тайаут" с 1000 на 50.
И теперь 2000 параметров (10 по 200) легко читаются с периодом изменения на источнике 250 мсек.
"Попробуйте разделить модули по нескольким протоколам. Так как на каждый протокол выделяется своя задача, то в таком случае повысится нагрузка на среду исполнения в целом, но снизится нагрузка на каждую конкретную задачу, что позволит увеличить скорость опроса."
Но правда еще к этому совету добавили изменение параметра Протокола "Тайаут" с 1000 на 50.
И теперь 2000 параметров (10 по 200) легко читаются с периодом изменения на источнике 250 мсек.