EnglishУкраїнськаmRussian
Login/New
Topic with no new replies

Статья на Хабрахабр


Author Message
Written on: 02. 10. 2014 [11:59]
Expert
Владимир Тихонов
Topic creator
registered since: 05.08.2008
Posts: 45
Листая новости на Хабре, наткнулся на статью о OpenSCADA - автор s60 (видимо Антон Петров, он же s60ru).

Сам как то писал статью на Хабр о oscada, но админам тамошним пост показался более рекламный чем информационный и был удален :( Думал переписать его и вновь выложить но желание как то угасло, а вскоре и вовсе забылось.

Собственно это хорошо что сей проект освещается на крупнейшем русскоязычном IT-ресурсе :)

Все глюки Windows исправляются установкой Linux
Written on: 02. 10. 2014 [21:29]
roman
Roman Savochenko
Moderator
Contributor
Developer
registered since: 12.12.2007
Posts: 3750
"Expert" wrote:

Листая новости на Хабре, наткнулся на статью о OpenSCADA - автор s60 (видимо Антон Петров, он же s60ru).

Приятно, но неожиданно от человека, который в последнем общении меня мягко говоря оскорбил.

В знак признательности и в виду того, что в статье таки допущен ряд неточностей и неосведомленностей, я их тут позже прокомментирую.

"Expert" wrote:

Сам как то писал статью на Хабр о oscada, но админам тамошним пост показался более рекламный чем информационный и был удален :( Думал переписать его и вновь выложить но желание как то угасло, а вскоре и вовсе забылось.

Так как и ранее, на WikiPedia. Причём для меня вообще загадка в грани между информационной статьёй и рекламой, в особенности для свободного проекта, который прямой прибыли от рекламы не получает, а за ним не стоят коммерческие организации над решениями.

Learn, learn and learn better than work, work and work.
Written on: 02. 10. 2014 [22:50]
roman
Roman Savochenko
Moderator
Contributor
Developer
registered since: 12.12.2007
Posts: 3750
Комментарии к статье:

На первый взгляд, у openSCADA высок порог вхождения да и сам разработчик говорит, что ваш предыдущий опыт работы со SCADA вряд ли пригодится, но это только на первый взгляд.

Часто по этому поводу я говорю —"Единственный интуитивно понятный интерфейс это грудь матери, а всему остальному так или иначе нужно учиться, и это та цена которую пользователь всегда платит, даже за формально бесплатное ПО."

Кроме того, гибкость и модульность, а значит широта возможностей имеет свою цену, а именно широту мышления для осмысления, конечно если осмысливать полностью. Однако для вхождения я описывал три уровня сложности формирования интерфейса визуализации, позволяющие органично осваивать и применять инструментарий по методике от простого к сложному:
- формирование из шаблонных кадров путём назначения динамики (без графической конфигурации);
- графическое формирование новых кадров путём использования готовых элементов визуализации из библиотеки (мнемосхемы);
- формирование новых кадров, шаблонных кадров и элементов отображение в библиотеки.

Документация не особо-то структурирована. Пример — результат поиска...

Документация предельно структурирована, а результаты поиска являются спецификой конкретной реализации Wiki.
Хорошо ищет Google, по всему, с главной страницы сайта, путём "Custom Search".

А для PostgeSQL? С копированием графического элемента из одного проекта в другой задачка.

Всегда можно БД целиком скопировать с PostgeSQL в SQLite одним нажатием, прямо из OpenSCADA.

... и есть поле ввода SQL запроса, так что можете в табличном редакторе склеить запросы и массово что-то внедрить в свой проект вместо бесконечного тыкания мышкой.

В QTCfg уже есть групповое редактирование, если это кивок в его сторону.

В каждой функции есть объект this – ссылка на саму функции

На самом деле, во всех процедурах интерфейса, а у процедур источников данных только если добавить с "this" с типом "Объект".

Доступ к тегу (атрибуту в терминах openSCADA) в коде можно осуществить так SYS.DAQ[«JavaLikeCalc»][LocalPLC][Local_Param][«myTag»].get(), где ...

[Local_Param] уже может быть в периоде в виду добавления иерархического включения одного параметра в другой для многих модулей DAQ.

Эта особенность синтаксиса употребления встроенных функций привела к тому, что в Vision доступ к свойствам объекта осуществляется не через точку (MyObject.property1), а через нижнее подчеркивание (MyObject_property1), что значительно снижает читабельность, поскольку "_" в именах тегов используется вместо пробела.

Нет такой особенности. Доступ к элементу объекта через точку везде, а "MyObject_property1" всего лишь способ кодирования атрибута вложенного виджета, включенного в обработку, в скрипте контейнера, для прямого, быстрого и статического доступа. При этом к нему всегда можно обратиться динамически "this.MyObject.attr("property1")".

Поскольку в openSCADA нет алармов в классическом понимании SCADA систем (вместо них Рома придумал нарушения – некая абстракция не пойми чего, уровень нарушений задается программистом проекта в момент формирования нарушения и не говорит ни о чем)

"Готовить" Вы их просто не умеете! Собственно из-за возможности OpenSCADA работать отдельно как сервер и отдельно визуализаторы, нарушения разделены на регистрацию (на сервере) и уведомление (в визуализаторах), а уровень часто используется для прямого разделения важности, что типично "Предупреждение", "Авария" и "Нет данных" (недостоверность).

... где есть постоянная область меню и алармов и динамично меняющиеся мнемосхемы.

Потенциально кадр можно полностью динамически сформировать в RunTime, из процедуры любого элемента в библиотеке.

А что грустно? Например, окружность задается по пяти точкам, а не привычным прямоугольником/квадратом.

Цена гибкости за возможность изобразить любую дугу.

Пример заливки в Citect
Нарисовать подобное в openSCADA целая задача.

Да, есть тут проблема, хотя конкретно этот случай решается прямоугольной областью на заднем плане, которая льётся как обычно, через маску полигона.

вставить в ячейку объект типа поле ввода/флажок/кнопка невозможно. Может сейчас возможностей добавилось.

Вставить то можно, стандартным для HTML образом, а вот динамически с или в него передавать возможности нет.

Можно взять пример из демо-проекта, но там много ручной работы при конфигурировании. Для первого раза пойдет, но далее хочется более автоматизированного (из скрипта) интерфейса. Внешне подходит как Citect, но там таблица с флажками для управления видимостью перьев, а в openSCADA пока нет подходящего инструментария. Либо надо другую реализацию легенды придумать. Или на С++/Qt свою написать и в openSCADA добавить.

То что в ДемоБД вовсе не пример, а библиотечный шаблон типового кадра группы графиков, с развитыми функциями контроля вплоть до выбора параметров с желаемыми свойствами в позиции графика, в RunTime, и сохранением выбора. Что, кроме всего прочего, демонстрирует возможность создания любого другого со своей спецификой обвязки и не прибегая к решениям на C++ за рамками концепции.

Learn, learn and learn better than work, work and work.
Written on: 24. 10. 2014 [20:20]
rxs5
Дмитрий Лыков
In tech support
registered since: 06.11.2013
Posts: 205
Было бы неплохо в статье на хабре добавить комментария от Романа.



2405