Просмотр полной версии : Вопрос по изменению цвета елемента
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
Все скрипт получился, всем спс
Powered by vBulletin® Version 4.2.3 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot