Вложений: 31
MasterSCADA 4D 1.3.1 - Где обещанное быстродействие редактора проектов?
Тут как-то в феврале вышел релиз такой инновационной платформы для автоматизации, учета и диспетчеризации, как MasterSCADA 4D. Такие красивые слова, описывающие данный продукт, я употребил не в саркастическом стиле - именно так заявляет производитель данного продукта.
Вложение 66422
На сайте заявлено:
Цитата:
Среда разработки MasterSCADA 4D имеет простой и интуитивно понятный редактор мнемосхем, который позволяет в несколько «кликов» разработать интерфейс управления процессом или оборудованием.
По правде говоря, к быстродействию редактора проектов и к разработке в несколько "кликов" всегда были вопросы, и что удивительно, разработчик описываемого продукта даже неоднократно признавал данную ошибку. И вот совсем недавно, на одном из вебинаров, сотрудник компании МПС Софт сделал серьезное заявление, которое я решил проверить.
Прослушать его можно тут https://cloud.mail.ru/public/BPQj/5cTuLVhxM - это запись их вебинара, таймкод - 55:20
Не будем перечитывать весь WhatsNew версии 1.3.1, нас интересует только то, что добавлена возможность хранения проектов в PostgreSQL, что дает следующее:
o Поддержка многопоточной работы с БД
o Ускорение выборки в 4 раза
o Выгрузка неиспользуемых частей проекта – при длительной работе с проектом память не накапливается, так как загружены только используемые в данный момент документы
Небольшое лирическое отступление. Чтобы вы понимали, по мнению разработчиков из МПС Софт, многопоточная работа с БД выглядит следующим образом.
Вложение 66416 Вложение 66417
То есть 4 потока PostgreSQL и 27 потоков MasterSCADA 4D распределены всего лишь на два физических ядра, из восьми доступных. Если считать по логическим ядрам, представленным на скринах, то используются только 4 из 16.
Также в WhatsNew описаны доработки компилятора:
o Реализована параллельная компиляция узлов/задач/окон
o Кэширование результатов компиляции окон
o Компиляция переведена в режим многопоточности
Забегая вперед скажу, что во всех операциях, которые доступны с проектом используются только два физических ядра (или четыре логических).
Пройдемся по порядку. Поставили мы значит новый редактор, надо же обновить проект. Правильно? Ну погнали.
1. Вот само видео этого процесса: https://disk.yandex.ru/i/rnNYUVvnrD-hlQ
Чтобы не тратить драгоценное время, вот скрины
Вложение 66418 Вложение 66419 Вложение 66420 Вложение 66421
Если кратко, то также нагружены два ядра, общая нагрузка на процессор - не более 20 %, средняя нагрузка на диск не более 10 МБ/с.
Само обновление проекта и библиотек заняло по времени 10 минут.
Опять небольшое лирическое отступление. В новой версии обновили протокол Modbus. Ну как обновили, выдали некоторые исправленные ошибки за реализацию новой функции, но не об этом сейчас. Так вот, в новом протоколе Modbus TCP убрали свойство "Modbus через TCP", что приводит к тому, что при обновлении проекта вываливаются ошибки и само обновление проекта не происходит. Чтобы обновить проект, необходимо пропустить его обновление, снять флаг у указанного ранее свойства, а потом переоткрыть проект для его обновления. Это еще лишние 10 минут, которые можно было предусмотреть в процессе обновления проекта.
2. Итак, с горем пополам обновили проект, давайте попробуем его экспортировать, чтобы загрузить в исполнительную систему.
Вот видео этой неудачной (спойлер!) попытки: https://disk.yandex.ru/i/hO516WY4gld9Vw
Прождав 17 минут и словив два всплывающих окна, сообщающих о зависании, даже сама операционная система поняла, что дела тут совсем плохи, и приостановила этот процесс, вот скрин
Вложение 66391
Пришлось закрыть программу из панели задач, но в диспетчере задач процесс остался, пришлось его "убить".
Вложение 66392
Вот остальные скрины нагрузки на CPU и SSD
Вложение 66393 Вложение 66394
Опять же нагрузка на процессор около 15 %, на диск - не более 5 МБ/с
И 17 минут времени, потраченного в пустую.
То есть ВНИМАНИЕ - новый редактор проектов, который по заявлению разработчиков работает быстрее не в состоянии экспортировать проект. Говоря простыми словами - свой собственный проект я запустить никак не могу. К слову на старой версии, на которой я сейчас сижу - это 1.2.16 - экспорт проекта у меня занимает около 8 минут (на 1.3.1 - экспорт не работает, ждал почти 20 минут).
Летим дальше.
3. Выгрузить проект не получилось. А может быть мешают какие-то ошибки в проекте? Так давайте это проверим.
Проверяем конфигурацию узла. Вот видео: https://disk.yandex.ru/i/YsXSFmH6accA4g
Не трачу время 14 минут впустую, программа зависает, нагрузка на CPU такая же, как и в предыдущих пунктах - два ядра из восьми, общая нагрузка не более 15 %
Вложение 66395
4. А может нам проверить целостность проекта? Поехали :)
Видео: https://disk.yandex.ru/i/5Ep1cntZOQqbYw
Не трачу время - 8 минут на поиск ошибки (которая находится в их библиотеке) и 7 минут на ее исправление. Нагрузка на CPU не меняется два ядра из восьми, общая нагрузка не более 15 %, на SSD - около 2 МБ/с
Вложение 66396 Вложение 66397 Вложение 66398
5. Давайте просто попробуем осуществить навигацию про проекту, открывать окна, раскрывать деревья объектов
Видео: https://disk.yandex.ru/i/mzLe6t_036ajcQ
В целом, все также, как и на старых версиях, первоначальные открытия окон происходят долго (небольшие по 5-7 секунд, большие по 1-2 минуты), деревья раскрываются с подвисаниями. Ну ладно, ради инноваций можно и потерпеть. Нагрузка на CPU - не более 15 %, на диск - в пике было около 20 МБ/с
Вложение 66404 Вложение 66405
6. Давайте перейдем к "десерту". Попробуем сделать проект, который будет храниться во внешней БД PostgreSQL, может быть дела пойдут веселей :)
Не буду описывать то, что при первом подключении к PostgreSQL для создания проекта сыпятся непонятные ошибки, которые невозможно понять из-за странной кодировки: вместо текста ошибки - знаки вопроса. Ну да и ладно, у нас времени много. В результате при помощи кувалды и такой-то матери, все заработало.
Давайте попробуем перенести проект, который невозможно экпортировать из встроенной Firebird.
Переносим узел с 5000 переменными Modbus.
Видео: https://disk.yandex.ru/i/ANmZvbdUfiYwgw
Спустя 8 минут получилось скопировать и вставить в новый проект.
Сохраняем новый проект: https://disk.yandex.ru/i/s4d5ot4V6qzEtA
Тут у нас все зависло. Отвисло и сохранилось только через 40 минут. Чудесно. Инновации и улучшения на лицо.
Совместная работа MS4D и PostgreSQL дала следующее. Нагрузка на CPU общая - не более 20 % (также используются только два ядра из восьми), на SSD - в среднем около 5 МБ/с
Скрины для наглядности
Вложение 66399 Вложение 66385 Вложение 66400 Вложение 66401 Вложение 66402 Вложение 66386 Вложение 66403
7. При работе с проектом, который хранится в PostgreSQL, также есть подвисания, например, при подключении библиотек.
Видео: https://disk.yandex.ru/i/ArOpSYMI7mi7Ww
При этом нагрузка на CPU также невысокая, например, PostgreSQL нагружает CPU на 8 %. Подозреваю, что виной тому MS4D, которая не в состоянии нагрузить СУБД больше.
Вложение 66406
8. Попытка скопировать остальную часть проекта не увенчались успехом.
Методом прямого копирования не получается, поскольку вылетает ошибка, что копируемый объект не является экземпляром объекта.
Копирование через библиотеку всех объектов сразу также не увенчалось успехом - MS4D разростается до 27 ГБ в ОЗУ, копирование оканчивается неудачно и с ошибкой (скрин ниже)
Вложение 66407
Видео: https://disk.yandex.ru/i/KJGl5J7VgLmWgw
На видео выше показаны попытки скопировать объекты в проект с внешней БД. Как можно увидеть на видео, это сопровождается постоянными вылетами нового проекта. По всей видимости, взаимодействие MasterSCADA 4D и PostgreSQL происходит не совсем корректно.
Также отмечу, что копировать получалось только по одному объекту. Сам объект включает в себя окна, программы, сообщения, параметры. Таких объектов у меня в проекте около 100 штук. Надеюсь, понятно, что с учетом медленной работы редактора проектов и его постоянных вылетов, говорить о разработке проекта в несколько "кликов" не идет и речи.
Вот еще несколько скринов:
Вложение 66409 Вложение 66410 Вложение 66411 Вложение 66412 Вложение 66413 Вложение 66414
Если кратко, то здесь тоже все плачевно, ни о какой многоядерности и како-то высокой скорости работы не идет и речи.
Так может быть у меня ПК слабый? Давайте разбираться. Смотрим системные требования к среде разработки:
Рекомендуемые системные требования:
·ОС – Windows 10 х64 или старше;
·процессор – современный многоядерный, не ниже Intel® Core™ i5, 3.4 ГГц
·ОЗУ – не менее 16 Гб;
·дискретная видеокарта, с актуальными драйверами (не старше 5 лет)
·дисплей – 1920х1080;
·жесткий диск - SSD
·свободное место на диске – 100 Гб
·клавиатура, мышь.
А вот мой ПК:
Intel Core i7-10700K
32 GB RAM DDR4
Samsung SSD 970 EVO Plus 250GB
Windows 10 Pro x64
Да вроде соответствуют. Чего не зватает? Не понятно :)
Хотя если поглядеть, как MasterSCADA 4D использует ресурсы, то очевидно, что хватит и любого Intel Pentium и дешманского HDD на 5400 оборотов.
Таким образом, становится понятно, что все обещания о каком-то быстром и эффективном редакторе проектов - не более, чем слова. Ведь гораздо проще наобещать с три короба на своем вебинаре, чем реально исправить косяк и сделать свой продукт лучше.
А неугодных пользователей, которые что-то пишут в комментариях в сообществах, проще забанить. Правда?
Вложение 66415
Жаль, что вроде бы изначально неплохая задумка скатилось в такой унылый продукт.
Может все-таки стоит перестать водить людей за нос и попытаться сделать свой продукт лучше?