- PVSM.RU - https://www.pvsm.ru -
Добрый день. Очень долго программе FLProg не было новостей. Это обоснованно тем, что я был занят большой задачей, по созданию интегрированной в программу системы Scada. И вот вышла первая, бета версия этой системы [1].
В процессе разработки я время от времени рассказывал на сайте программы о состоянии дел по работе.
Второй отчет о состоянии проекта от 6 сент. 2017 г.
Сначала расскажу об идеологии системы.
В настоящее время я не нашёл ни одной Скада системы которая устроила бы меня по уровню вхождения, и удобству создания проектов. Практически все они представляют собой монстров, рассчитанных на промышленное применение, и для того что бы начать ими пользоваться требуется пройти серьёзное обучение. Да и после обучения (я например сертифицированный разработчик на WinCC), начало работы на них требует значительного времени. К тому же цены на них начинаются от десятка тысяч рублей. Есть, конечно, бесплатные версии, но чаще всего они ограничены либо очень маленьким количеством тэгов, либо временем работы. Есть FreeScada. Но я так и не разобрался, как с ней работать. И если этого не смог сделать я, то люди не знакомые с программированием (какими является большинство пользователей программы) тем более не справятся.
Кроме того во всех скадах которые я рассматривал для создания логики поведения самой скады используются те или иные текстовые языки программирования. То есть встаёт необходимость изучать их синтаксис, правила написания, набор команд. Это так же противоречит девизу проекта FLProg –«Программирование для непрограммистов».
В общем, хотелось чего-то лёгонького, с низким порогом вхождения, и возможностью программирования внутренней логики с помощью визуального программирования. Ну и конечно бесплатное. Ничего подходящего не нашлось, значит, будем изобретать свой велосипед.
За основную концепцию я взял идею реализовать не скаду, а представить компьютер неким микропроцессором со встроенным дисплеем, клавиатурой и мышью. Соответственно с этим сразу появились основные части программы.
Редактор графической части
В качестве образца я взял очень любимую мной программу WinCC от Сименса, встроенную в пакет TiaPortal. Убрал то, что мне в ней не нравится, добавил то, что как мне кажется, ей не хватает, взял немного из виндового паинта, немного из CorelDraw, немного от себя. Во всех остальных скадах, которые я видел, меня больше всего напрягала жесткое задание размеров экрана. При отображении этих экранов на мониторах с другим разрешением получались либо черные рамки, либо часть элементов уходило за пределы экрана, и была просто невидимо. Это в полной мере касается, например той же WinCC. Вижу это на работе каждый день. В моей скаде размер экрана то же задается, но при проигрывании проекта в плеере можно изменять размеры окна программы, при этом элементы будут автоматически подстраиваться под новый размер. Что-то типа масштабирования, но умного, без потери качества (все виджеты скады — векторные).
В первой бета-версии программы виджетов пока немного. Это прямоугольник, круг, ломаная линия, текст. Кроме этого есть контролы. Это поле ввода – вывода, простая кнопка, круглый индикатор.
Все виджеты имеют анимацию. С помощью привязанных переменных они могут динамически изменять своё положение, видимость, цвет контура (у кого есть контур), цвет заливки (у кого заливка возможна). Виджет текста может изменять свой текст, а виджеты прямоугольник и поле ввода могут, имеют режим динамической заливки (уровень заливки меняется в зависимости от значения привязанной переменной).
Так же к любому виджету возможно привязать события. Это наведение курсора на виджет, уход курсора с виджета, нажатие кнопки мыши, отпускание кнопки мыши, клик, двойной клик. Возможные реакции на события – изменение значения переменной, инвертирование значения переменной типа Boolean, переход на другой экран, открытие служебного диалога.
Это конечно не густо, но для первой версии пока хватит. Далее количество виджетов и их возможности будут расти.
Редактор схемы
Тут я конечно за основу взял редактор FBD, который используется при программировании контроллера в программе FLProg. Интерфейс редактора практически не изменился, что позволит пользователям программы легко работать и в редакторе схемы скады. Но вот начинка изменилась кардинально. За время работы над программой FLProg (уже пошёл пятый год) у меня возникло достаточно много идей по оптимизации работы редактора и компилятора программы. Все эти идеи я применил в редакторе схемы скады, и после обкатки на ней, перенесу их так же и в основную программу. Насчет поддержки языка LAD в скаде я ещё не принял решение, если будет достаточно много заинтересованных в этом пользователей, то сделаю.
Коммуникации
Ну и конечно коммуникации, какая же скада без них.
Для всех коммуникаций есть возможность в процессе исполнения включать, выключать соединение, производить полную настройку соединения, включать отключать опрос слейвов, контролировать состояние соединения, а так же статус соединения слейва с мастером. Конечно же, для каждого мастера и слейва есть служебные переменные, хранящие код последней ошибки при опросе.
В любой момент разработки проекта можно открыть этот проект на исполнение, и посмотреть, как он будет работать. Для проигрывания в плеере создаётся Runtime файл.
Modbus RTU
Modbus RTU
Плеер
Плеер runtime файла представляет собой отдельное приложение. Пакет плеера имеет три исполняемых файла для Windows и два для Linux.
Файл Start.exe (только Windows версия). При запуске ищет у себя под боком runtime файл (расширение .fsp). Если находит – запускает его на исполнение. Если не находит, то ищет записи диспетчера проекта. В этих записях ищется проект по умолчанию, который и запускается на исполнение. Если не найдены записи диспетчера проектов, или в них не отмечен проект по умолчанию, то запускается непосредственно сам диспетчер. С помощью диспетчера можно найти runtime файлы на компьютере, составить из них список, и назначить какой – то из них как запускаемый по умолчанию. Файл Start.exe нельзя переименовывать, так же нельзя к нему привязывать на исполнение runtime файлы (расширение .fsp). Нельзя этот файл и удалять из пакета.
Файл Pleer.exe. По поведению, аналогичен файлу Start.exe, но при этом нет ограничений по переименованию, и привязки runtime файлов. Если данные функции не нужны, то данный файл из пакета можно удалить (это касается только Windows, в Linux он является основным запускающим файлом).
Файл Manager.exe. Служит для однозначного запуска диспетчера проектов. Если данная функция не нужна, то данный файл из пакета можно удалить.
Остальные файлы в пакете представляют собой непосредственно плеер.
Основная цель проекта FLprog – это привлечение молодёжи в профессию промышленного программиста, электронщика, да и просто в профессии технического направления. Обычных программистов и менеджеров по продажам у нас в стране и так слишком много. Куда ни плюнь, либо программист игрушек для андроида, либо веб программист продажных страниц, либо «продвинутый» менеджер. А хорошего наладчика или разработчика автоматизированной системы управления днём с огнём не сыщешь. В связи с этим меня радует появление уже двух кружков робототехники, которые в качестве основной рабочей программы выбрали FLProg. Один в городе Шатура [2], другой в Мытищах [3] (Фотография из этого кружка). С учетом этого разрабатывалась и скада. Я старался что бы любой преподаватель мог без сложностей, изучения языков программирования, принципов построения программ сделать интерактивное приложение, например для демонстрации работы базовой логики. Так же с помощью этой скады, можно проводить какие либо лабораторные работы по построению логических схем, обучению создания промышленных систем автоматики.
У меня отсутствует учительский дар, но я думаю, настоящий преподаватель сможет придумать правильный материал. Ну а инструмент я постарался предоставить.
Если данная тема заинтересует читателей Geektimes, то я продолжу выпуск статей с более подробным описанием функций программы.
Автор: Сергей
Источник [4]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/programmirovanie/265112
Ссылки в тексте:
[1] бета версия этой системы: http://flprogwiki.ru/flprogReleaseBeta/releseSite/index.php
[2] Шатура: https://www.youtube.com/channel/UCgh1-mkvusSh2aMRCOn8KPg/featured
[3] Мытищах: http://www.arduinomeh.ru/news/ID_19.html
[4] Источник: https://geektimes.ru/post/293783/
Нажмите здесь для печати.