Comments 65
UFO just landed and posted this here
Сам по себе QT много не требует. Даже на компьютере 10 летней давности запуск простых Qt приложений проблем не вызывают, не говоря уже про современные машины.
Основное потребление cpu/ram зависит именно от самой задачи, которую решает приложение.
Основное потребление cpu/ram зависит именно от самой задачи, которую решает приложение.
Действительно, требования конечного приложения оказываются довольно скромными. Проект на около 1000 тегов, со всеми потрохами потребовал примерно 100 MB RAM и успешно работает на простом планшете (IRBIS tw39) и стареньком нетбуке (MSI MS-N011).
А почему не решились присоединить свои усилия к open scada? Вроде тоже QT там основной движок…
OpenSCADA классный проект, но я пытаюсь использовать принципиально другую идеологию.
если не трудно — в чем она принципиально другая (и вообще в чем она заключается)?
судя по окошкам на видео и упоминании про OPC DA вы под венду делаете — только из-за OPCDA?
судя по окошкам на видео и упоминании про OPC DA вы под венду делаете — только из-за OPCDA?
У меня нет самописного графического редактора и IDE — все в Qt creator. Нет никаких скриптовых языков, только полноценный C++. На выходе скомпилированный исполняемый файл.
Стараюсь делать кроссплатформенно, но OPC DA, разумеется, только под win. Будут и другие драйверы.
Стараюсь делать кроссплатформенно, но OPC DA, разумеется, только под win. Будут и другие драйверы.
Возможно тогда Вам будет интересно взглянуть на libuniset2.
Тут как раз немного обратная ситуация. Нету графического движка и IDE, но цель та же — ,
чисто C++ная библиотека для создания АСУ.
Тут как раз немного обратная ситуация. Нету графического движка и IDE, но цель та же — ,
чисто C++ная библиотека для создания АСУ.
Я бы добавил ещё один пункт.
Возможность повторного использования компонентов. Вот у тебя есть одинаковых установки, которые стоят рядом друг с другом. Тебе хочется абстрагировать их в единый компонент, и с точки зрения управляющей логики, и с точки зрения взаимодействия с пользователем, а потом использовать трижды.
А на практике часто приходится использовать копипасту для размножения.
Возможность повторного использования компонентов. Вот у тебя есть одинаковых установки, которые стоят рядом друг с другом. Тебе хочется абстрагировать их в единый компонент, и с точки зрения управляющей логики, и с точки зрения взаимодействия с пользователем, а потом использовать трижды.
А на практике часто приходится использовать копипасту для размножения.
Да, Вы правы. Это очень здорово, когда можно написать один виджет и использовать многократно из проекта в проект. А особенно приятно, когда эта возможность является гармоничной частью языка программирования, а не искусственным костылем.
Особенно, если ты из проекта в проект используешь одну и ту же железку: контроллер, датчи, реле — все одинаковые.
так у вас это реализовано (для графических элементов и/или страниц) или вы просто согласны что это здорово?
было, хорошо, если б вы написали, что из каких скад вы взяли в свой проект… ведь у каждой есть свои фичи…
было, хорошо, если б вы написали, что из каких скад вы взяли в свой проект… ведь у каждой есть свои фичи…
О как! :) Запасаюсь попкорном и занимаю первый зрительский ряд. Еще одна самописная скада!
На самом деле, судя по текущему состоянию Вашей разработки, Вы еще в самом начале пути в состоянии уровня прототипов, поверьте мне, как человеку прошедшему уже многие эти этапы, и до сих пор идущего через многие новые. Но, желаю Вам удачи и главное — сохранить этот запал энтузиазма, аналогичный в свое время дал мне сил довести до коммерческого вида свое решение и продолжать его развитие и внедрение до сих пор. Готовьтесь, теперь у Вас появится оооочень много критиков. :)
Ну, и если что — пишите, чем смогу подскажу, у меня граблей собрано было уже много по этой теме…
На самом деле, судя по текущему состоянию Вашей разработки, Вы еще в самом начале пути в состоянии уровня прототипов, поверьте мне, как человеку прошедшему уже многие эти этапы, и до сих пор идущего через многие новые. Но, желаю Вам удачи и главное — сохранить этот запал энтузиазма, аналогичный в свое время дал мне сил довести до коммерческого вида свое решение и продолжать его развитие и внедрение до сих пор. Готовьтесь, теперь у Вас появится оооочень много критиков. :)
Ну, и если что — пишите, чем смогу подскажу, у меня граблей собрано было уже много по этой теме…
DeltaV — SCADA? ))) Вы делаете мне больно.
Посмотрел на первый рисунок и сразу возник вопрос. Почему DeltaV отнесли к SCADA? DeltaV это распределенная система управления, но может я что-то не знаю? Можно купить у Emerson DeltaV в виде SCADA, отдельно?
мне приходилось писать свои скады — в основном, на c++builder (универсальное решение для армов на пк и для панелей визуализации) и даже на vb (только для панелей на базе win ce). плк тоже были под стать — micropc типа octagon и fastwel. да, программы для плк — тоже на c/c++ )
потом много чего сделал на step7 + wincc 6/7. последние годы работаю с wonderware system platform.
и мысли вот такие:
— сименс после c++builder, после кода на c/c++ для плк показался просто раем. не фонтан, есть выбешивающие косяки, но терпимо и достаточно красиво всё можно делать;
— ww sp — ужас и это нельзя применять в реальной, серьёзной автоматике. только диспетчеризация и прочие системы, допускающие кратковременные остановы/перезагрузки; что угодно может зависнуть без видимых указний на ошибки: всё коннектед, всё гуд, но не работает и на запросы не отвечает. самое печальное, что для лечения некоторых зависов нужен только редеплой, который только человеком и только вручную. как это продают?
вот после ww возникает стойкое желание писать всё на самостоятельно.
на qt можно, но лучше сразу иметь в виду трансляции экранов в веб.
писать сразу для веба надо.
проблемы в контексте таких велосипедов, собственно, две:
— кто это будет поддерживать на условном заводе после внедрения и вашего отъезда;
— реализация обмена данными.
вопрос 1. согласился бы я принять систему для асу, созданную «на коленке» (не сименс, не аб, не вв, даже не овен и не кодесис), будучи рядовым руководителем службы асутп предприятия? в адеквате — нет. да, всегда есть нюансы, всегда есть лихие асушники, но это не мэйнстрим. это основная трудность.
вопрос 2. на начальном этапе вы ограничены в выборе лишь пирогом в виде «ваша скада -> opc локальный -> что-то типа кепвэйр с кучей модулей». можете смело считать, что opc в чистом виде между скадой и другим пк на реальном предприятии работать не будет. и на реальном производстве есть и s7, и модбасы в самых разных реализациях, и opc, и всякие сущности, типа fs gateway.
и на начальном этапе не нужно сразу проектировать именно ide, именно редактор скады. создайте сначала просто визуальные компоненты для того же дизайнера qt. (но всё таки напомню: забудьте всё, и пишите сразу для веб. инфа 100%)
потом много чего сделал на step7 + wincc 6/7. последние годы работаю с wonderware system platform.
и мысли вот такие:
— сименс после c++builder, после кода на c/c++ для плк показался просто раем. не фонтан, есть выбешивающие косяки, но терпимо и достаточно красиво всё можно делать;
— ww sp — ужас и это нельзя применять в реальной, серьёзной автоматике. только диспетчеризация и прочие системы, допускающие кратковременные остановы/перезагрузки; что угодно может зависнуть без видимых указний на ошибки: всё коннектед, всё гуд, но не работает и на запросы не отвечает. самое печальное, что для лечения некоторых зависов нужен только редеплой, который только человеком и только вручную. как это продают?
вот после ww возникает стойкое желание писать всё на самостоятельно.
на qt можно, но лучше сразу иметь в виду трансляции экранов в веб.
писать сразу для веба надо.
проблемы в контексте таких велосипедов, собственно, две:
— кто это будет поддерживать на условном заводе после внедрения и вашего отъезда;
— реализация обмена данными.
вопрос 1. согласился бы я принять систему для асу, созданную «на коленке» (не сименс, не аб, не вв, даже не овен и не кодесис), будучи рядовым руководителем службы асутп предприятия? в адеквате — нет. да, всегда есть нюансы, всегда есть лихие асушники, но это не мэйнстрим. это основная трудность.
вопрос 2. на начальном этапе вы ограничены в выборе лишь пирогом в виде «ваша скада -> opc локальный -> что-то типа кепвэйр с кучей модулей». можете смело считать, что opc в чистом виде между скадой и другим пк на реальном предприятии работать не будет. и на реальном производстве есть и s7, и модбасы в самых разных реализациях, и opc, и всякие сущности, типа fs gateway.
и на начальном этапе не нужно сразу проектировать именно ide, именно редактор скады. создайте сначала просто визуальные компоненты для того же дизайнера qt. (но всё таки напомню: забудьте всё, и пишите сразу для веб. инфа 100%)
Вы очень верно ухватили суть основных задач.
Трансляция в веб нужна, но пока у меня не в приоритете.
Ваш вопрос 1: да это серьезная задача вывести продукт на консервативный рынок автоматизации и сделать его мэйнстримом, но это верно для любого продукта. Будем работать :)
Ваш вопрос 2: написание драйверов одна из приоритетных задач. В ближайшее время буду делать для siemens.
По-поводу ide – наверно я плохо донес свою основную идею. Я вообще не буду делать свою ide. Моя главная задача: сделать так, чтобы разработка велась в Qt Creator и при этом была проще, чем в других SCADA.
я и правда серьёзно думал об этом — о замене на что-то своё (причём очень желательно — open source).
тоже пару лет назад смотрел на qt именно в этом плане.
но потом пришлось повозиться с d3js, с svg, с вебом… и qt как-то поблёк. веб, js, svg — это такая простая штука, такая универсальная! хочешь — отображай в любом браузере на десктопе. хочешь — верстай контейнеры в адаптивном стиле для всех этих смартов и чего угодно! хочешь производительность, риалтаймовость? приручи какой-нибудь веб-сервер, реализуй обмен визуалистики с бэкэндом чере те же веб-сокеты. красота!
.я не веб-макакер — я как раз наоборот, от asm, от железа, от си, от stl/ld/etc, но я оценил ближайшее будущее именно так — это веб. и если вы один (вас мало), если вы не монстр типа сименса или шнайдера, то не стоит распыляться, я думаю. работать сразу универсальным образом.
но может вы как-то иначе собираетесь прикручивать веб и мобильность.
тоже пару лет назад смотрел на qt именно в этом плане.
но потом пришлось повозиться с d3js, с svg, с вебом… и qt как-то поблёк. веб, js, svg — это такая простая штука, такая универсальная! хочешь — отображай в любом браузере на десктопе. хочешь — верстай контейнеры в адаптивном стиле для всех этих смартов и чего угодно! хочешь производительность, риалтаймовость? приручи какой-нибудь веб-сервер, реализуй обмен визуалистики с бэкэндом чере те же веб-сокеты. красота!
.я не веб-макакер — я как раз наоборот, от asm, от железа, от си, от stl/ld/etc, но я оценил ближайшее будущее именно так — это веб. и если вы один (вас мало), если вы не монстр типа сименса или шнайдера, то не стоит распыляться, я думаю. работать сразу универсальным образом.
но может вы как-то иначе собираетесь прикручивать веб и мобильность.
Про web — правда. Надо с самого начала думать, как передать все в web. Потом «прикрутить» будет очень сложно.
Сравнивать Qt и другие SCADA неправильно. Со SCADA-системами работают разные люди, порой они и понятия не имеют о программировании, а в Qt вынь да положь знание C++. SCADA, в общем-то, и нужна для того, чтобы уйти от программирования в сторону мышки. Технология производства выходит на первый план, думать о тонкостях C++ некогда, сдавать надо. А если еще и заказов много, то нанимать программистов под C++ будет очень дорого.
Сравнивать Qt и другие SCADA неправильно. Со SCADA-системами работают разные люди, порой они и понятия не имеют о программировании, а в Qt вынь да положь знание C++. SCADA, в общем-то, и нужна для того, чтобы уйти от программирования в сторону мышки. Технология производства выходит на первый план, думать о тонкостях C++ некогда, сдавать надо. А если еще и заказов много, то нанимать программистов под C++ будет очень дорого.
слишком категорично про неправомерность сравнения скад и qt.
как правило, про ненужность программистов с «нашей самой лучшей скадой», про отказ вообще от тэгов и прочий шрот — это поле менеджеров, продаванов этих скад. этот шрот они грузят в уши менеджеров и покупашек от заказчика.
допускаю, что можно рисовать очень простые проекты без программизма, но сам с этим не сталкивался. всегда есть код, и код порой очень и очень сложный. плюс вообще сложные техрешения. такова реальность. но — да, есть сименс и ко, есть языки мэк, среди которых есть и языки релейной логики в плк, и даже есть фбд в некоторых скадах (может кто напомнит, кстати: была или есть такая скада, вроде из австралии; забыл название). но кажущаяся простота выразительных средств языка никак не связана с необходимостью думать и придумывать.
думать и придумывать, как малыми средствами, из небольших деталек, построить красивое здание решения — разве это не суть программирования?
чем отличается тот же quick script от wonderware от си, от шарпа? только тем, что на нём гораздо сложнее сделать что-либо толковое. (си + vb в wincc — уже гораздо лучше!). поэтому для сложных алгоритмов мы берём ms vs и создаём библиотеку для archestra. потому что встроенные средства ww не убоги, но часто недостаточны и просто сложны в применении, если нужно сделать как раз что-то небанальное.
а для qt есть привязки, так что c++ знать не обязательно. можно и на пистоне писать.
как правило, про ненужность программистов с «нашей самой лучшей скадой», про отказ вообще от тэгов и прочий шрот — это поле менеджеров, продаванов этих скад. этот шрот они грузят в уши менеджеров и покупашек от заказчика.
допускаю, что можно рисовать очень простые проекты без программизма, но сам с этим не сталкивался. всегда есть код, и код порой очень и очень сложный. плюс вообще сложные техрешения. такова реальность. но — да, есть сименс и ко, есть языки мэк, среди которых есть и языки релейной логики в плк, и даже есть фбд в некоторых скадах (может кто напомнит, кстати: была или есть такая скада, вроде из австралии; забыл название). но кажущаяся простота выразительных средств языка никак не связана с необходимостью думать и придумывать.
думать и придумывать, как малыми средствами, из небольших деталек, построить красивое здание решения — разве это не суть программирования?
чем отличается тот же quick script от wonderware от си, от шарпа? только тем, что на нём гораздо сложнее сделать что-либо толковое. (си + vb в wincc — уже гораздо лучше!). поэтому для сложных алгоритмов мы берём ms vs и создаём библиотеку для archestra. потому что встроенные средства ww не убоги, но часто недостаточны и просто сложны в применении, если нужно сделать как раз что-то небанальное.
а для qt есть привязки, так что c++ знать не обязательно. можно и на пистоне писать.
Вы все правильно говорите, совсем без программирования нельзя, ведь технологию нужно обсчитывать.
Но, насколько я понял авторское высказывание о том, что среда (в его понимании IDE) не в приоритете (читай — не особо нужна), ситуация другая. В SCADA-системе уже есть инфраструктура, все уже между собой увязано, осталось только потоки данных раскидать и обсчитать (знаю, что выглядят мои слова слишком уж оптимистично). А тут получается, что дали мне Qt и сиди сам собирай всю скаду от начала и до конца. Думаю, это совсем другой уровень сложности.
Но, насколько я понял авторское высказывание о том, что среда (в его понимании IDE) не в приоритете (читай — не особо нужна), ситуация другая. В SCADA-системе уже есть инфраструктура, все уже между собой увязано, осталось только потоки данных раскидать и обсчитать (знаю, что выглядят мои слова слишком уж оптимистично). А тут получается, что дали мне Qt и сиди сам собирай всю скаду от начала и до конца. Думаю, это совсем другой уровень сложности.
Вы меня все-таки поняли не верно. Я не утверждал, что IDE не в приоритете. Я говорил, что в Qt уже есть отличная IDE и моя задача адаптировать Qt Creator под нужды автоматизации и завязать в единую инфраструктуру. В идеале, вы и не заметите особой разницы в процессе разработки по сравнению с классическими решениями (кроме гораздо более широких возможностей :)). 8 случаях из 10 Вам и не придется писать код вообще либо можно обойтись 2-3 строками.
скажите, а перед тем как начать делать вы ознакомились c уже существующими подобными (которые на базе той или иной IDE) проектами? если да, то c какими?
Со SCADA-системами работают разные люди, порой они и понятия не имеют о программировании, а в Qt вынь да положь знание C++. SCADA, в общем-то, и нужна для того, чтобы уйти от программирования в сторону мышки.
в той же WinCC вы далеко ней уйдете без программирования на Си…
Например, так можно «прикрутить веб»: Pult.online.
а как же клиент-серверная архитектура и резервирование? в планах есть?
в статье и на видео нет упоминания встроенного языка программирования (открыть страницу c трендом и кодом добавить необходимые перья ну и т.п.) — он есть/будет? если будет, то на базе чего?
Возможно, мы не понимаем друг друга. Зачем еще какой-то встроенный язык, когда есть C++?
мы не понимаем, потому что нет доходчивой презенташки c точки зрения составных частей, формата хранения исходников (на выходе уже написали — экзешник) или описания концепции вашей SCADA, а есть только упоминание Qt и сразу видео рантайма c баками/кранами и 1000 квадратиков c числами… (facebook смотрел — там тоже нет)
со стороны выглядит так
на видео есть пример 1000 графических элементов… а есть замеры времени на опрос 1000 тегов, 500 которых из них пишутся в архив раз в секунду, 500 алармов (частота опроса зависит от реализации подсистемы алармов. так что на ваше усмотрение) + открытый видеокадр c теми 1000 графических элементов? (c указанием параметров ПК, на котором провидится эксперимент) для той же openSCADA такие замеры есть на сайте разработчика + уже есть замеры в своих проектах
Подобные замеры сделать собираюсь. Сперва хотел сделать полноценный драйвер для Siemens, чтобы включить обмен тегов с реальным ПЛК. Кстати, посоветуете что-нибудь по методологии подобных измерений? Хочется сделать набор тестов применимых для различных SCADA (чистая математика, работа графической системы, работа тегов, алармов и. т.д.).
Моя главная задача: сделать так, чтобы разработка велась в Qt Creator
а JavaFX рассматривали?
будучи рядовым руководителем службы асутп предприятия
кроме этой есть и другие ниши…
например такая
для какой ниши автор позиционирует свою SCADA систему?
да все, кто в теме, прекрасно знают, что и где применимо.
если есть уверенность в том, что будет поток гаражных внедрений (мелкие фирмы и физики), если много времени, то можно пилить. даже нужно, наверное. можно будет поднимать проектики от нескольких килорублей )
и вот мы уже говорим о самых мелких применениях.
но, говоря про мелочи, почему бы именно для этого не взять тот же codesys? зачем компрессору в гараже навороченная графика? в кодесис есть примитивная графика.
tracemode можно рассмотреть вместе с плк (у icpdas есть очень и очень дешёвые решения совместно с tm).
для мелкого применения много чего есть на самом деле, включая интегрированные решения (панель+плк+ввод-вывод+ПО).
но автор выбрал верный для себя вектор. ему только надо делать поворот в сторону веб (смотреть тот же qt, но в сторону svg хотя бы — проще будет потом).
если есть уверенность в том, что будет поток гаражных внедрений (мелкие фирмы и физики), если много времени, то можно пилить. даже нужно, наверное. можно будет поднимать проектики от нескольких килорублей )
и вот мы уже говорим о самых мелких применениях.
но, говоря про мелочи, почему бы именно для этого не взять тот же codesys? зачем компрессору в гараже навороченная графика? в кодесис есть примитивная графика.
tracemode можно рассмотреть вместе с плк (у icpdas есть очень и очень дешёвые решения совместно с tm).
для мелкого применения много чего есть на самом деле, включая интегрированные решения (панель+плк+ввод-вывод+ПО).
но автор выбрал верный для себя вектор. ему только надо делать поворот в сторону веб (смотреть тот же qt, но в сторону svg хотя бы — проще будет потом).
это я в пример, что ниши разные бывают…
но ни в коем случае не про то, что автор (этот или какой другой энтузиаст) не сможет запилить вполне надежную систему и
но ни в коем случае не про то, что автор (этот или какой другой энтузиаст) не сможет запилить вполне надежную систему и
согласился бы я принять систему для асу, созданную «на коленке» (не сименс, не аб, не вв, даже не овен и не кодесис), будучи рядовым руководителем службы асутп предприятия? в адеквате — нет.исключительно стереотип руководителя…
По приведенному описанию сложно понять, насколько удобный и функциональный продукт. Думаю, вам никто в комментариях ничего ценного по этому поводу не напишет.
Чтобы получить действительно качественный feedback нужно дать возможность попробовать поработать с продуктом сторонним пользователям. Опыт создателя программы не может быть до конца объективным в силу разных причин.
Есть у вас возможность дать продукт на тестирование неподготовленным пользователям? Мне, например, было бы интересно посмотреть. Я сам много лет писал SCADA-систему, не в одиночку, конечно.
Чтобы получить действительно качественный feedback нужно дать возможность попробовать поработать с продуктом сторонним пользователям. Опыт создателя программы не может быть до конца объективным в силу разных причин.
Есть у вас возможность дать продукт на тестирование неподготовленным пользователям? Мне, например, было бы интересно посмотреть. Я сам много лет писал SCADA-систему, не в одиночку, конечно.
В будущем я обязательно дам возможность тестировать продукт всем желающим, но это требует плотной работы над документацией, процессом инсталляции и решения еще множества задач. Как только буду готов – отпишусь на хабре, вот только будет это еще не очень скоро.
вы точно не хотите/не_можете хотя бы отбранчеваться от openSCADA? там столько уже всего сделано и проверено… я так понял вас только графическая часть не устраивает в ней и отказ от сущности тега?
от опенскады не только «отбранчеваться» не надо, от неё бежать надо ))
во всяком случае то, что я увидел в быстром старте — ужас на ужасе. и адресация (что-то там такое было страшненькое про нижние подчёркиваания), и графика. графика потрясла ) не, не надо. автор пошёл гораздо дальше авторов tracemode в какой-то концептуальности, основанной на личном мироощущении )
да и нет ничего реально стоящего, такого, чтобы «ух!».
что-то хорошо и в винсс, что-то прикольно в интаче и в систем платформ. что-то и в трейсмоде есть.
надо брать всё хорошее от мейнстримовых решений. те же графические примитивы: смотри в перечисленное, и бери оттуда. настройки, пороги и т.п. (тут у сименса всё хорошо как раз).
возможно, даже у опенскады что-то можно взять.
во всяком случае то, что я увидел в быстром старте — ужас на ужасе. и адресация (что-то там такое было страшненькое про нижние подчёркиваания), и графика. графика потрясла ) не, не надо. автор пошёл гораздо дальше авторов tracemode в какой-то концептуальности, основанной на личном мироощущении )
да и нет ничего реально стоящего, такого, чтобы «ух!».
что-то хорошо и в винсс, что-то прикольно в интаче и в систем платформ. что-то и в трейсмоде есть.
надо брать всё хорошее от мейнстримовых решений. те же графические примитивы: смотри в перечисленное, и бери оттуда. настройки, пороги и т.п. (тут у сименса всё хорошо как раз).
возможно, даже у опенскады что-то можно взять.
ужас на ужасе. и адресация (что-то там такое было страшненькое про нижние подчёркиваания)
слышал я этот Битлз… ужас на ужасе… мне Мойша напел…
пороги и т.п. (тут у сименса всё хорошо как раз)
особенно конфигурирование аналоговых алармов…
В плане идеи использовать готовую IDE есть похожий проект Advanced HMI.
Только там Visual Studio.
У вас наверно будет преимущество кроссплатформенности?
Только там Visual Studio.
У вас наверно будет преимущество кроссплатформенности?
SimarglSCADA, beremiz и Eclipse neoSCADA видели?
пожалуйста, сам только вчера откопал… может будет что полезное…
UFO just landed and posted this here
UFO just landed and posted this here
Sign up to leave a comment.
SCADA: в поисках идеала