WebSCADA
Author |
Message |
Written on: 05. 08. 2009 [10:55]
|
roman
Roman Savochenko
Moderator Contributor Developer
registered since: 12.12.2007
Posts: 3750
|
almaz wrote:
1. Он рисует в графическом языке программирования нужную логику работы технологического процесса. При этом он создает переменные, блоки и связи между ними. Кроме того, создает связи с модулями ввода-вывода сигналов (DAQ). При создании каждого блока он использует функции "Стандартной библиотеки функций", которая сейчас называется подсистемой "Специальные" (библиотека Ява-вычислителя-то пустая в новом проекте пользователя).
Стандартная библиотека это статические функции всей системы, а не только библиотеки в подсистемы "Специальные".
И кто Вам сказал, что в JavaLikeCalc библиотек не будет? Это зависит от поставки. Реально-же именно JavaLikeCalc позиционируется как инструмент для создания и распространения пользовательских библиотек и там для этого уже всё есть. И даже одна библиотека есть: http://wiki.oscada.org/Using/APIFunctionLibs/TechApp . Как можно видеть там файл БД SQLite, который можно легко подключить, положить в дистрибутив, модифицировать другим пользователям и вообще распространять.
almaz wrote:
roman wrote: В подсистеме "Специальные" располагаются библиотеки статических функций системного API которые не могут быть реализованы в JavaLikeCalc
80% этих функций можно написать в том же Ява-вычислителе. Ну плюс-минус - цифра неточная.
Так почему же другие нужные пользователю функции должны располагаться в другом месте?
Потому что это системное программирование и конечный пользователь не сможет исправлять и дополнять эти библиотеки. Т.е. они фиксированы!
almaz wrote:
Под этими функциями подразумеваю, например, элемент "И" с двумя логическими входами и одним логическим выходом. Всего 1 короткая строчка в Си или Яве, а конечному пользователю она нужна в виде графического блока. Это простейший блок, будут и намного сложнее (например FuzzyLogic-регулятор, другие регуляторы с искусственным интеллектом и базой знаний или анализатор работы дискретного клапана). Некоторые блоки на Ява-вычислителе могут и не получиться. и скорость работы функций может пострадать.
Ну такие узко специализированные функции можно сделать и статическими.
almaz wrote:
От того, что я туда в 100-ый раз заглянул, многим конечным пользователям легче не стало. Роман, гляньте на все с их точки зрения. Пока OpenSCADA только для программистов.
И они тоже конечные пользователи. И пользователь графического интерфейса тоже программист.
Библиотека просто рассосредоточена и ассоциирована с компонентами OpenSCADA. В конечном итоге это гибко и наглядно. А если нужно пользователю создать графическую библиотеку, так она и так будет создаваться независимо и путём ассоциирования существующих функций пользовательского API с визуальным образом и будет размещаться в библиотеке виджетов. И знать ему не нужно будет что каждый компонент имеет пользовательские функции. Но зато при реализации нетривиальных задач это уже будет и опустившись чуть ниже можно будет сделать не прибегая к системному программированию.
P.S. Вы рано этот вопрос подняли. До реализации этого я должен сделать ещё две вещи:
- Расширить функции примитива "Protocol" для отображения выделенных Alarm-ов, которые уже есть на уровне сообщений, как расширенная сущнось.
- Добавить механизм пользовательской конфигурации проекта, в частности для реализации "Тем" и различных представлений проектов у разных пользователей.
Learn, learn and learn better than work, work and work.
|
Written on: 05. 08. 2009 [12:26]
|
almaz
Almaz Karimov
Contributor
registered since: 25.09.2008
Posts: 516
|
Понятно. Будем лепить библиотеки в JavaLikeCalc. В других местах только при крайней необходимости.
roman wrote:
Вы рано этот вопрос подняли. До реализации этого я должен сделать ещё две вещи
Хорошо. Если не можем помочь, хотя бы не будем мешать.
21 век - век повсеместной автоматизации. Главное - во благо всем людям.
|
Written on: 06. 08. 2009 [09:43]
|
mcogon
Андрей Макогон
Topic creator
registered since: 05.07.2009
Posts: 5
|
После нескольких дней заинтересованного обсуждения позволю себе подвести некоторые итоги.
1.Проект достиг степени "молочно-восковой спелости" и уже готов к употреблению.
2.Для этого необходимо дополнить его средствами поддержки конечных пользователей.
3.Выдвинутое предложение о разделении проекта на независимые части в соответствии с логикой
работы с ними отвергнуто.Взамен предложено конфигурировать существующий проект для каждого
специфического применения.Следовательно,участия разработчиков для этого не требуется.
4.Поддержка обеспечивается тем,что каждой стадии работы с OpenSCADA (проектирование
базовых элементов - сборка проекта из библиотечных и пользовательских элементов - исполнение
полученного проекта - работа с БД и архивами в оффлайне) соответствует своя конфигурация.
5.Для пользователя не так важен язык разработки его проектов в OpenSCADA и инструмент
(текстовый,графический),как наличие готовых образцов,корректируя которые,он может создать
свой собственный.
6.Демо-проект слишком сложен и не может служить образцом стартового проекта.
7.Существующая документация достаточно полная.Для полноценной работы конечный пользователь
нуждается не столько в дополнительных ее объемах,сколько в расширенном FAQ и HOW TO.
На основании вышеизложенного первоначальные предложения уточняются и приобретают следующий вид.
1.Определить минимальную,но достаточно представительную конфигурацию OpenSCADA,удовлетворяющую
потребности типичного пользователя.Например:БД - только SQLite,протокол - MODBUS RTU и т.д.
2.Создать стартовый проект OpenSCADA в соответствии с выбранной конфигурацией.
Создать по несколько тегов каждого типа.Связать их простейшими обработчиками-заготовками.
Например,если X - входной параметр,а Y - выходной,то
temp=X;
// Здесь вы можете разместить требуемые операторы для дальнейшей обработки.Например
// temp=2*temp;
Y=temp;
Дать образцы работы с разными типами (вход - регистр,регистр - выход).
3.То же относительно alarm'ов (образцы + заготовки обработчиков).
4.Обеспечить простейшую визуализацию,ориентируясь на WebVision.Например,входы - контактные группы;
выходы - обмотки реле;аналоговый вход - температура;аналоговый выход - напряжение на нагревателе и т.д.
5.Сконфигурировать остальные параметры,необходимые для запуска проекта,но являющиеся скрытыми
для конечного пользователя.
6.Во избежание неучтенных нюансов конфигурацию выполнять предопределенным инструментом
(предпочтительно WebD-конфигуратором).
7.Получившийся шаблон выложить для загрузки.Возможно,его придется дополнить скриптом,который
будет принимать в качестве параметра рабочий каталог OpenSCADA,распаковывать и размещать по
нужным подкаталогам соответствующие конфигурационные файлы.А также скриптом,который будет
запускать OpenSCADA с получившимся стартовым проектом.
8.Тогда т.н. руководство по быстрому старту будет представлять из себя страничку вида
пункт конфигурации - полный путь ко вкладке,где этот пункт конфигурируется - ссылка на раздел
документации с описанием (и так для всех пунктов,доступных пользователю).В дополнение следует
указать,как сохранить откорректированный проект;переименовать проект;откорректировать скрипт для
запуска переименованного проекта.
9.Добавить несколько слов о запуске на исполнение готового проекта,в т.ч. для отладки с
популярными имитаторами MODBUSа.
10.Подготовить аналогичную страничку для работы с элементами визуализации (что-то типа открыть
виджет "замыкающий контакт" - переименовать - сохранить как "переключающий контакт" -
откорректировать изображение - сохранить).То же для просмотра архивов и БД.
Будучи реализованными,эти "десять шагов навстречу людям" несомненно придадут новый импульс
развитию проекта,хотя бы в вопросах наполнения пользовательских библиотек.
|
Written on: 06. 08. 2009 [16:31]
|
Aleksey
Aleksey Popkov
Contributor
registered since: 31.07.2008
Posts: 326
|
После нескольких дней заинтересованного обсуждения позволю себе подвести некоторые итоги.
1.Проект достиг степени "молочно-восковой спелости" и уже готов к употреблению.
Он такой давно.
2.Для этого необходимо дополнить его средствами поддержки конечных пользователей.
3.Выдвинутое предложение о разделении проекта на независимые части в соответствии с логикой работы с ними отвергнуто. Взамен предложено конфигурировать существующий проект для каждого специфического применения.
http://wiki.oscada.org/RomanSavochenko/Business?v=10lb
6.Демо-проект слишком сложен и не может служить образцом стартового проекта.
В демо проекте реализовано 6 насосных станций. Все возможности OpenSCADA именно там и видно.
7.Существующая документация достаточно полная.Для полноценной работы конечный пользователь
нуждается не столько в дополнительных ее объемах,сколько в расширенном FAQ и HOW TO.
Документация по быстрому старту еще нет, но дело справиться ближе к 7-й версии (если память не изменяет)
1.Определить минимальную,но достаточно представительную конфигурацию OpenSCADA,удовлетворяющую
потребности типичного пользователя.Например:БД - только SQLite,протокол - MODBUS RTU и т.д.
Ни кто не мешает свое сделать.
2.Создать стартовый проект OpenSCADA в соответствии с выбранной конфигурацией.
Создать по несколько тегов каждого типа.Связать их простейшими обработчиками-заготовками.
Например,если X - входной параметр,а Y - выходной,то
temp=X;
// Здесь вы можете разместить требуемые операторы для дальнейшей обработки.Например
// temp=2*temp;
Y=temp;
Дать образцы работы с разными типами (вход - регистр,регистр - выход).
3.То же относительно alarm'ов (образцы + заготовки обработчиков).
4.Обеспечить простейшую визуализацию,ориентируясь на WebVision.Например,входы - контактные группы;
выходы - обмотки реле;аналоговый вход - температура;аналоговый выход - напряжение на нагревателе и т.д.
5.Сконфигурировать остальные параметры,необходимые для запуска проекта,но являющиеся скрытыми
для конечного пользователя.
Изучаем демо проект. Он для того и сделан.
6.Во избежание неучтенных нюансов конфигурацию выполнять предопределенным инструментом (предпочтительно WebD-конфигуратором).
7.Получившийся шаблон выложить для загрузки.Возможно,его придется дополнить скриптом,который будет принимать в качестве параметра рабочий каталог OpenSCADA,распаковывать и размещать по
нужным подкаталогам соответствующие конфигурационные файлы.А также скриптом,который будет запускать OpenSCADA с получившимся стартовым проектом.
Документация по быстрому старту еще не готова.
9.Добавить несколько слов о запуске на исполнение готового проекта,в т.ч. для отладки с
популярными имитаторами MODBUSа.
10.Подготовить аналогичную страничку для работы с элементами визуализации (что-то типа открыть
виджет "замыкающий контакт" - переименовать - сохранить как "переключающий контакт" -
откорректировать изображение - сохранить).То же для просмотра архивов и БД.
Будучи реализованными,эти "десять шагов навстречу людям" несомненно придадут новый импульс развитию проекта,хотя бы в вопросах наполнения пользовательских библиотек.
Демо проект курим и документацию.
Будучи реализованными,эти "десять шагов навстречу людям" несомненно придадут новый импульс развитию проекта,хотя бы в вопросах наполнения пользовательских библиотек.
С этим тоже все довольно не плохо.
|
Written on: 07. 08. 2009 [07:56]
|
almaz
Almaz Karimov
Contributor
registered since: 25.09.2008
Posts: 516
|
Не стоит смешивать Demo-проект, FAQ, HOWTO и руководство по быстрому старту в одну кучу.
Demo-проект предназначен для запуска его любым пользователем. При этом он должен увидеть все возможности OpenSCADA. И до каких бы глубин не изучил он систему - должен найти в Demo-проекте образцы решения задач. Со своим предназначением Demo-проект полностью справляется, кроме того исполняет роль тестового полигона.
FAQ - часто задаваемые вопросы. Существует в разделе Документация. Просто задаем вопросы и, если они будут частыми, наверняка туда попадут.
HOWTO - краткие инструкции по решению некоторых задач. В OpenSCADA круг решаемых задач очень широк и будет проще изучить существующую документацию. Появление HOWTO дело будущего, после руководства по быстрому старту, когда у широкого круга пользователей действительно возникнут задачи.
Руководство по быстрому старту - пошаговая инструкция по созданию простого эмулятора технологического процесса из чистого проекта OpenSCADA (с полной библиотекой функций, пока их нет) или нескольких разных эмуляторов технологических процессов в виде упражнений.
Описание использования ввода-вывода реальных данных здесь врядли нужно, это дело HOWTO и основной документации. Тем более человек, который только учится, часто не имеет под рукой никакого оборудования.
При создании эмуляторов техпроцессов нужно использовать именно графический язык программирования, так как синтаксис текстовых языков программирования отпугнет более половины потенциальных пользователей OpenSCADA. А кому нужны текстовые, найдут их в основной документации.
Даже профессиональные программисты на самом деле в голове или в техзадании программируют графически, а потом переводят в текстовый язык, понятный компилятору. Человеку свойственно мыслить графически (образно), так как максимум информации получает зрительно. В качестве примера посмотрите основную документацию OpenSCADA, сколько там схем.
В качестве приложения в руководстве по быстрому старту можно разместить справочник по библиотеке функций.
P.S. Руководством по быстрому старту, HOWTO пользователи могут заняться сами, Wiki открыто для всех зарегистрировавшихся.
[This article was edited 2 times, at last 07.08.2009 at 08:13.]
21 век - век повсеместной автоматизации. Главное - во благо всем людям.
|
Written on: 07. 08. 2009 [08:15]
|
Aleksey
Aleksey Popkov
Contributor
registered since: 31.07.2008
Posts: 326
|
Тем более человек, который только учится, часто не имеет под рукой никакого оборудования.
При создании эмуляторов техпроцессов нужно использовать именно графический язык программирования, так как синтаксис текстовых языков программирования отпугнет более половины потенциальных пользователей OpenSCADA.
Я так и начинал, у меня не было оборудования почти год.
Смешивать DEMO, FAQ, HOWTO вроде не предлагалось.
|
Written on: 07. 08. 2009 [08:20]
|
almaz
Almaz Karimov
Contributor
registered since: 25.09.2008
Posts: 516
|
Это я не Вам, Алексей. Выше предлагалось (или подразумевалось) использовать Demo-проект в качестве базы для руководства по быстрому старту.
Еще хотелось бы добавить по руководству по быстрому старту:
Дополнительно можно туда включить раздел по созданию своих библиотек на Яве (но не особо подробную, чтобы пользователь все-таки добрался до основной документации)
А использовать интерфейс пользователя в руководстве по быстрому старту лучше Qt, чем Web. В принципе это не имеет значение, так как графический двигатель (Vision) в OpenSCADA свой. Qt несколько быстродейственнее, более удобно располагает элементы интерфейса и начинающему пользователю больше понравится. А через Web он может видеть то же самое автоматически, ведь все, что добавляется в Qt, тут же появляется в Web и наоборот.
P.S. Вроде FAQ, HOWTO и не предлагалось смешивалось, просто в одном сообщении столько всего было...
[This article was edited 2 times, at last 07.08.2009 at 08:44.]
21 век - век повсеместной автоматизации. Главное - во благо всем людям.
|
Written on: 07. 08. 2009 [08:44]
|
Aleksey
Aleksey Popkov
Contributor
registered since: 31.07.2008
Posts: 326
|
Еще хотелось бы добавить по руководству по быстрому старту:
Дополнительно можно туда включить раздел по созданию своих библиотек на Яве (но не особо подробную, чтобы пользователь все-таки добрался до основной документации)
Это да.
А использовать интерфейс пользователя в руководстве по быстрому старту лучше Qt, чем Web. В принципе это не имеет значение, так как графический двигатель (Vision) в OpenSCADA свой. Qt несколько быстродейственнее, более удобно располагает элементы интерфейса и начинающему пользователю больше понравится. А через Web он может видеть то же самое автоматически, ведь все, что добавляется в Qt, тут же появляется в Web и наоборот.
Кому как превычней, мне вот тоже больше нравиться QTCfg. Хотя динамический движек WEB только по скорости уступает.
[This article was edited 1 times, at last 07.08.2009 at 08:45.]
|
Written on: 07. 08. 2009 [09:37]
|
almaz
Almaz Karimov
Contributor
registered since: 25.09.2008
Posts: 516
|
Да и речь не только о Конфигураторе, все тоже самое относится к интерфейсу запущенного на исполнение проекта пользователя.
21 век - век повсеместной автоматизации. Главное - во благо всем людям.
|
Written on: 07. 08. 2009 [09:42]
|
Aleksey
Aleksey Popkov
Contributor
registered since: 31.07.2008
Posts: 326
|
almaz wrote:
Да и речь не только о Конфигураторе, все тоже самое относится к интерфейсу запущенного на исполнение проекта пользователя.
На исполнение конечно веселей дело идет в QT, люди разные бывают, может кому больше нравиться рулить всем проектом из WEB (мне такие не встречались, но исключать нельзя ).
Хотя WEB изначально для удаленного руления расчитывался )))))))
[This article was edited 1 times, at last 07.08.2009 at 09:43.]
|
|
|