Тут как-то в феврале вышел релиз такой инновационной платформы для автоматизации, учета и диспетчеризации, как MasterSCADA 4D. Такие красивые слова, описывающие данный продукт, я употребил не в саркастическом стиле - именно так заявляет производитель данного продукта.
2023-03-10_09-43-51.png
На сайте заявлено:
По правде говоря, к быстродействию редактора проектов и к разработке в несколько "кликов" всегда были вопросы, и что удивительно, разработчик описываемого продукта даже неоднократно признавал данную ошибку. И вот совсем недавно, на одном из вебинаров, сотрудник компании МПС Софт сделал серьезное заявление, которое я решил проверить.Среда разработки MasterSCADA 4D имеет простой и интуитивно понятный редактор мнемосхем, который позволяет в несколько «кликов» разработать интерфейс управления процессом или оборудованием.
Прослушать его можно тут https://cloud.mail.ru/public/BPQj/5cTuLVhxM - это запись их вебинара, таймкод - 55:20
Не будем перечитывать весь WhatsNew версии 1.3.1, нас интересует только то, что добавлена возможность хранения проектов в PostgreSQL, что дает следующее:
o Поддержка многопоточной работы с БД
o Ускорение выборки в 4 раза
o Выгрузка неиспользуемых частей проекта – при длительной работе с проектом память не накапливается, так как загружены только используемые в данный момент документы
Небольшое лирическое отступление. Чтобы вы понимали, по мнению разработчиков из МПС Софт, многопоточная работа с БД выглядит следующим образом.
Копирование узла 5000 тегов 6 Потоки.png Копирование узла 5000 тегов 3.png
То есть 4 потока PostgreSQL и 27 потоков MasterSCADA 4D распределены всего лишь на два физических ядра, из восьми доступных. Если считать по логическим ядрам, представленным на скринах, то используются только 4 из 16.
Также в WhatsNew описаны доработки компилятора:
o Реализована параллельная компиляция узлов/задач/окон
o Кэширование результатов компиляции окон
o Компиляция переведена в режим многопоточности
Забегая вперед скажу, что во всех операциях, которые доступны с проектом используются только два физических ядра (или четыре логических).
Пройдемся по порядку. Поставили мы значит новый редактор, надо же обновить проект. Правильно? Ну погнали.
1. Вот само видео этого процесса: https://disk.yandex.ru/i/rnNYUVvnrD-hlQ
Чтобы не тратить драгоценное время, вот скрины
Конвертация CPU.png Конвертация SSD.png Обновление библиотек CPU.png Обновление библиотек SSD.png
Если кратко, то также нагружены два ядра, общая нагрузка на процессор - не более 20 %, средняя нагрузка на диск не более 10 МБ/с.
Само обновление проекта и библиотек заняло по времени 10 минут.
Опять небольшое лирическое отступление. В новой версии обновили протокол Modbus. Ну как обновили, выдали некоторые исправленные ошибки за реализацию новой функции, но не об этом сейчас. Так вот, в новом протоколе Modbus TCP убрали свойство "Modbus через TCP", что приводит к тому, что при обновлении проекта вываливаются ошибки и само обновление проекта не происходит. Чтобы обновить проект, необходимо пропустить его обновление, снять флаг у указанного ранее свойства, а потом переоткрыть проект для его обновления. Это еще лишние 10 минут, которые можно было предусмотреть в процессе обновления проекта.
2. Итак, с горем пополам обновили проект, давайте попробуем его экспортировать, чтобы загрузить в исполнительную систему.
Вот видео этой неудачной (спойлер!) попытки: https://disk.yandex.ru/i/hO516WY4gld9Vw
Прождав 17 минут и словив два всплывающих окна, сообщающих о зависании, даже сама операционная система поняла, что дела тут совсем плохи, и приостановила этот процесс, вот скрин
Экспорт проекта Fail.png
Пришлось закрыть программу из панели задач, но в диспетчере задач процесс остался, пришлось его "убить".
После экспорта.png
Вот остальные скрины нагрузки на CPU и SSD
Экспорт проекта CPU.png Экспорт проекта SSD.png
Опять же нагрузка на процессор около 15 %, на диск - не более 5 МБ/с
И 17 минут времени, потраченного в пустую.
То есть ВНИМАНИЕ - новый редактор проектов, который по заявлению разработчиков работает быстрее не в состоянии экспортировать проект. Говоря простыми словами - свой собственный проект я запустить никак не могу. К слову на старой версии, на которой я сейчас сижу - это 1.2.16 - экспорт проекта у меня занимает около 8 минут (на 1.3.1 - экспорт не работает, ждал почти 20 минут).
Летим дальше.
3. Выгрузить проект не получилось. А может быть мешают какие-то ошибки в проекте? Так давайте это проверим.
Проверяем конфигурацию узла. Вот видео: https://disk.yandex.ru/i/YsXSFmH6accA4g
Не трачу время 14 минут впустую, программа зависает, нагрузка на CPU такая же, как и в предыдущих пунктах - два ядра из восьми, общая нагрузка не более 15 %
Проверка конфигурации.png
4. А может нам проверить целостность проекта? Поехали
Видео: https://disk.yandex.ru/i/5Ep1cntZOQqbYw
Не трачу время - 8 минут на поиск ошибки (которая находится в их библиотеке) и 7 минут на ее исправление. Нагрузка на CPU не меняется два ядра из восьми, общая нагрузка не более 15 %, на SSD - около 2 МБ/с
Проверка целостности CPU.png Проверка целостности CPU 2.png Проверка целостности SSD.png
5. Давайте просто попробуем осуществить навигацию про проекту, открывать окна, раскрывать деревья объектов
Видео: https://disk.yandex.ru/i/mzLe6t_036ajcQ
В целом, все также, как и на старых версиях, первоначальные открытия окон происходят долго (небольшие по 5-7 секунд, большие по 1-2 минуты), деревья раскрываются с подвисаниями. Ну ладно, ради инноваций можно и потерпеть. Нагрузка на CPU - не более 15 %, на диск - в пике было около 20 МБ/с
Открытие окна CPU.png Открытие окна SSD.png
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 МБ/с
Скрины для наглядности
Копирование узла 5000 тегов.png Вложение 66385 Копирование узла 5000 тегов 6 SSD.png Копирование узла 5000 тегов 5.png Копирование узла 5000 тегов 4.png Вложение 66386 Копирование узла 5000 тегов 2.png
7. При работе с проектом, который хранится в PostgreSQL, также есть подвисания, например, при подключении библиотек.
Видео: https://disk.yandex.ru/i/ArOpSYMI7mi7Ww
При этом нагрузка на CPU также невысокая, например, PostgreSQL нагружает CPU на 8 %. Подозреваю, что виной тому MS4D, которая не в состоянии нагрузить СУБД больше.
Подключение библиотеки.png
8. Попытка скопировать остальную часть проекта не увенчались успехом.
Методом прямого копирования не получается, поскольку вылетает ошибка, что копируемый объект не является экземпляром объекта.
Копирование через библиотеку всех объектов сразу также не увенчалось успехом - MS4D разростается до 27 ГБ в ОЗУ, копирование оканчивается неудачно и с ошибкой (скрин ниже)
8 Ошибка сохранения в библиотеку.png
Видео: https://disk.yandex.ru/i/KJGl5J7VgLmWgw
На видео выше показаны попытки скопировать объекты в проект с внешней БД. Как можно увидеть на видео, это сопровождается постоянными вылетами нового проекта. По всей видимости, взаимодействие MasterSCADA 4D и PostgreSQL происходит не совсем корректно.
Также отмечу, что копировать получалось только по одному объекту. Сам объект включает в себя окна, программы, сообщения, параметры. Таких объектов у меня в проекте около 100 штук. Надеюсь, понятно, что с учетом медленной работы редактора проектов и его постоянных вылетов, говорить о разработке проекта в несколько "кликов" не идет и речи.
Вот еще несколько скринов:
8 Сохранение в библиотеку.png 8 Сохранение в библиотеку Общая.png 8 Сохранение в библиотеку Общая 2.png 8 Сохранение в библиотеку SSD.png 8 Сохранение в библиотеку CPU.png 8 Сохранение в библиотеку CPU 2.png
Если кратко, то здесь тоже все плачевно, ни о какой многоядерности и како-то высокой скорости работы не идет и речи.
Так может быть у меня ПК слабый? Давайте разбираться. Смотрим системные требования к среде разработки:
Рекомендуемые системные требования:
·ОС – 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 оборотов.
Таким образом, становится понятно, что все обещания о каком-то быстром и эффективном редакторе проектов - не более, чем слова. Ведь гораздо проще наобещать с три короба на своем вебинаре, чем реально исправить косяк и сделать свой продукт лучше.
А неугодных пользователей, которые что-то пишут в комментариях в сообществах, проще забанить. Правда?
бан нахуй.jpg
Жаль, что вроде бы изначально неплохая задумка скатилось в такой унылый продукт.
Может все-таки стоит перестать водить людей за нос и попытаться сделать свой продукт лучше?