PDA

Просмотр полной версии : Вопрос по изменению цвета елемента



a_gricaj
26.05.2015, 01:12
Допустим есть "объект" (например эл. мотор) цвет которого на мнемосхеме нужно менять:
серый - отключено
зеленый - Включено
красный - Авария
желтый - Ручной режим

Использую команду с типом данных - целое, перетаскую ее в окно свойств "Динамизация входных значений" в поля "Тип штриховки и цвет штриховки" и настраиваю цвета:
0 - серый,
1- зеленый
2 -красный
3 - желтый
Тут у меня все ок - цвета меняются при изменении значения в команде. Проверял при симуляции.

Также есть "схема" в "объекте" где описана логика работы этого ел. мотора, задержки пуска, стопа и т.д.

ВОПРОС: как из схемы где только дискретные сигналы выдать целое для изменения цвета "объекта"?

Получается нужно по наличию логической единицы в "схеме объекта" присвоить целое значение от пуска - значение:1, от аварии -значение: 2, от ручного режима -значение:3, и запихнуть в один элемент "значение" с типом "целое". Какие элементы "схемы" использовать в этом случае?

omelchuk
26.05.2015, 08:31
Встречный вопрос: как будут выглядеть состояния включен вручную, и, например, вручную, но мотор в аварии?
Обычно используют два элемента для отображения - значок руки для индикации ручного режима и двигатель, состоящий из двух наложенных друг на друга значков - работа/авария, фон серый.
Это как я понимаю. Возможно, на самом деле всё иначе...

a_gricaj
26.05.2015, 10:12
Наложением можно конечно, ну так это бешеное количество элементов....но все равно спс попробую


а вообще есть ли возможность присвоить значение переменной (в схеме объекта):
если один логический сигнал (включен) равен 1 то присвоить 1 (целое)
если другой логический сигнал (авария) равен 1 то присвоить 2 (целое)
если третий логический сигнал (ручной режим) равен 1 то присвоить 3 (целое)

и главное запихнуть все эти целые значения в один элемент "значение"?

omelchuk
26.05.2015, 11:00
Пример из одной схемы18351
Насос из диспетчеризации выключен (виртуальный, ВКЛ-ВЫКЛ-АВТО), но включён вручную через переключатель (физический, Р-0-А) на шкафу управления.
Как в твоём случае это отобразить?

a_gricaj
26.05.2015, 11:10
Пример из одной схемы18351
Насос из диспетчеризации выключен (виртуальный, ВКЛ-ВЫКЛ-АВТО), но включён вручную через переключатель (физический, Р-0-А) на шкафу управления.
Как в твоём случае это отобразить?

При включении через физический я бы блокировал виртуальные кнопки, и выводил изображение "руки" как у Вас.....

omelchuk
26.05.2015, 11:47
Вот. С режимом ручной определились - ещё один символ (рука).
Осталось два - работа и авария.
К примеру, у символа работа два состояния: серое и зелёное(0/1), а у символа авария цвет красный, но режим видим/невидим(0/1), причём симв. авария поверх симв. работа.
Вроде правильно рассуждаю?

Это всего лишь мои суждения, т.к. с названиями атрибутов в мастер скаде я пока не знаком...

SCADAMaster
26.05.2015, 11:55
Наложением можно конечно, ну так это бешеное количество элементов....но все равно спс попробую


а вообще есть ли возможность присвоить значение переменной (в схеме объекта):
если один логический сигнал (включен) равен 1 то присвоить 1 (целое)
если другой логический сигнал (авария) равен 1 то присвоить 2 (целое)
если третий логический сигнал (ручной режим) равен 1 то присвоить 3 (целое)

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

Если всё же нужно именно так, то как вариант:
-1- Сделать 3 события. Каждое следит за своей переменной и по действию присваивает значение переменной (1\2\3)
-2- Написать скрипт, на входы которого подаются 3 значения, а на выходе получаете 1\2\3 в зависимости от вашей логики.

a_gricaj
26.05.2015, 12:11
Вот. С режимом ручной определились - ещё один символ (рука).
Осталось два - работа и авария.
К примеру, у символа работа два состояния: серое и зелёное(0/1), а у символа авария цвет красный, но режим видим/невидим(0/1), причём симв. авария поверх симв. работа.
Вроде правильно рассуждаю?

Это всего лишь мои суждения, т.к. с названиями атрибутов в мастер скаде я пока не знаком...

Читаете мои мысли, у меня это был запасной вариант)))

a_gricaj
26.05.2015, 12:13
Достаточно спорное решение.
Приоритет сигналов тогда тоже придется настраивать или вы можете гарантировать что если, допустим, на аварии стоит 1, то сигнал включен будет 0, ведь в противном случае не ясно какой из 2-х сигналов будет отрисовываться в данный момент.

Если всё же нужно именно так, то как вариант:
-1- Сделать 3 события. Каждое следит за своей переменной и по действию присваивает значение переменной (1\2\3)
-2- Написать скрипт, на входы которого подаются 3 значения, а на выходе получаете 1\2\3 в зависимости от вашей логики.

СПС, сейчас попробую, вроде то, что надо потом отпишусь

a_gricaj
26.05.2015, 14:02
18352

А тут где я туплю, подскажите пожалуйста...

SCADAMaster
26.05.2015, 14:43
18352

А тут где я туплю, подскажите пожалуйста...

Присваивается либо через закладку "Действие" у События, либо пишем "Если(Авария=1,1,0)" - 1 или 0 будет на выходе и это значение присваиваем нужной переменной.
Почитайте методичку или посмотрите видеопримеры, эти базовые вещи там разобраны. Без этого создать проект будет достаточно трудно.

a_gricaj
27.05.2015, 00:30
ппц не получается, в видео уроках этого нет, в методичке тоже.....

вроде скрипт самое лучшее для моего случая но тоже не идет:
18356

a_gricaj
27.05.2015, 02:02
Все скрипт получился, всем спс