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
|
Было бы неплохо в статье на хабре добавить комментария от Романа.
|