Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > SCADA-системы и контроллеры стандарта IEC (МЭК) > Посоветуйте СКАДУ (лабиринтные автоматы)


Автор: ДокторТуамОсес 13.11.2013, 22:15
Поясню о чём речь
Представьте себе сеть трубопровода. Она представляет собой большой сложный граф (лабиринт).
Каждое ребро графа — труба, которая может содержать вентиль. Если вентиль открыт — проход открыт, и вода может течь через ребро/трубу. Если вентиль закрыт — вода через ребро/трубу течь не может.

Соответственно, вода между двумя произвольно выбранными узлами может протекать если В ДАННЫЙ КОНКРЕТНЫЙ МОМЕНТ существует путь/маршрут (т.е. непрерывная последовательность рёбер) между этими узлами и у всех ребёр этого пути вентили открыты в данный момент.

Некоторые вентили управляются извне по неизвестному нам закону. А некоторыми вентилями мы может управлять, т.е. можем открывать или закрывать их в любой момент когда захотим.

Задача состоит в том, чтобы написать программу, которая бы отслеживала текущее состояние лабиринта/трубопровода и включая или выключая вентили динамически формировала бы и поддерживала путь протока воды от узла/точки А к узлу/точке Б. Причем не абы какой, а такой, чтобы этот путь обязательно содержал как минимум 3(4, 5 или сколько Вам нужно) точки из заданного множества точек.

Посоветуйте тулзу, в которой удобно и просто решаются подобного плана задачи. Плюс чтобы в этой тулзе генерировалась бы интерактивная мнемосхема, на которой бы АВТОМАТОМ выделялось бы цветом состояние вентилей включен/выключен и кроме того подсвечивалась бы группа клапанов, состояние которых нужно изменить (включить или выключить) на данном такте, чтобы поддержать поток жидкости от точки А к точки Б, протекающий через заданные промежуточные точки
Гуглением я вышел не пару десяток SCADA. Беглое знакомство с ними показало, что подобные задачи в них сделать нельзя или крайне гиморно.

Автор: ДокторТуамОсес 14.11.2013, 05:57
чо не хлэпаем? smile 

Автор: ama_kid 14.11.2013, 09:38
Цитата(ДокторТуамОсес @  13.11.2013,  23:15 Найти цитируемый пост)
Гуглением я вышел не пару десяток SCADA
Как бэ у софта класса "SCADA" немного другие задачи. Твоя задача, конечно, решается частично с помощью SCADA, но алгоритмический модуль обработки состояния графа тебе в любом случае писать самому, хоть в виде внешней библиотеки, хоть в виде внутреннего модуля. Либо искать спец-софт, который заточен под теорию графов и сопрягать его со SCADA, какой-нибудь математический пакет типа MathCad или Maple с возможностью цепляться по внешнему интерфейсу.

Автор: ДокторТуамОсес 14.11.2013, 17:37
неужели нет стандартных решений (реализованных в виде софта или специализированных языков программирования) для такого класса задач?

Просто очень уж не хочется "изобретать велосипед" если есть уже готовые, стандартные, "заточенные" под такой класс задач программные средства

Автор: ama_kid 22.11.2013, 19:10
Цитата(ДокторТуамОсес @  14.11.2013,  18:37 Найти цитируемый пост)
неужели нет стандартных решений (реализованных в виде софта или специализированных языков программирования) для такого класса задач?
Софта, заточенного под теорию графов, достаточно много, думаю. Те же математические пакеты, например. Другое дело, что ты пытаешься совместить две задачи - решить математическую задачу (это дело матпакетов) и получить красивую картинку по собранным данным (это задача SCADA). SCADA - это не математический пакет, еще раз напомню, это средство сбора и визуализации данных. Поэтому либо изобретать велосипед самому в пределах SCADA, либо ищи способы совместить математическую модель со SCADA, благо для такого можно придумать массу путей решения - от xml до DDE или OPC.

Автор: ДокторТуамОсес 26.11.2013, 21:53
Цитата(ama_kid @  22.11.2013,  19:10 Найти цитируемый пост)
Софта, заточенного под теорию графов, достаточно много, думаю. 

В том-то и дело, что ВООБЩЕ НЕТУ  smile 
Серьёзных инструментов

Автор: ДокторТуамОсес 18.1.2014, 15:55
А вот в какой тулзе лучше моделировать мозаичные алгоритмы?
На каком языке кульней и рулезней описывать и такого род зависимости:
Код


"если уберём красный кружочек в мозаике в позиции [7;13], то зеленый кружочек
 в позиции [23;78] должен стать синим, а синий кружочек в позиции [34;4] должен
 стать зеленым, но только при условии, что два хода назад кружочек [3;17] 
изменял свой цвет с белого на синий"

При том, что координаты "точек" мозаики реально могут быть не двумерными, а n-мерными.
И прога должна определять все возможные варианты подстановок, которые приведут к появлению на мозаике заданного изображения


Зачем мне нужно моделировать мозаичные алгоритмы?
Хочу на экране монитора смоделировать реальный пульт управления. С кучей кнопочек и светодиодов.
И дать поиграться заказчику. И при этом чтобы поведение индикации было такое же как на пульте реального объекта.

А для этого, мне нужно как-то описать зависимости между состояниями отдельных как видимых на экране так и не видимых элементов системы и скормить набор логических уравнений спец. тулзе, которая схавает их и будет использовать при обработке действий юзверя и отображении "мозаики" на экране монитора

Т.е. наверное придётся задавать правила типа как в грамматиках Хомского.
Ведь элементы пульта - это фактически цепочка символов. А множество допустимых состояний элементов - это фактически множество допустимых цепочек языка.
Наверное для анализа придётся использовать генераторы синтаксических парсеров. Типа YACC или LEX

Оператора я посажу на двумерную модель.
А n-мерная нужна чиста для моих ЛИЧНЫХ теоретических научно-исследовательских задач в области теории программирования.

Моделирование мозаичных алгоритмов дл меня представляет чисто научный интерес. И мне не важно какой от этого практический выхлоп. Т.е. как это можно использовать кому-то на практике

Автор: ДокторТуамОсес 23.1.2014, 20:19
Так кто-нибудь ответит мне? Или как? smile 

Автор: BlackRu 30.6.2014, 22:18
Идея напоминает клеточный автомат.  Интересно... 

Автор: Kuroki2223 1.11.2020, 22:48
Может есть готовые решения?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)