Повідомлення створено: 15. 11. 2012 [11:57]
|
pentagon128
Руслан Кучерявый
Автор теми
Зареєстрован(а) с: 15.11.2011
Повідомлення: 102
|
Приветствую! Проблемка следующая. Получаю по Modbus TCP из контроллера 2 шт. бит. Теперь в соответствии с этими битами на мнемосхеме надо отобразить лампочку с двумя состояниями зелёный и красный.
Если оба бита выключены - то зелёный, если включен хоть один - то красный.
Делал так.
1. На виджете мнемосхемы вкладка "обработка" добавил входные логические атрибуты ps5_hi, FLAG_rs_ps5_hi.
2. На вкладке связь привязал их к источникам данных получаемым по Modbus
3. На вкладке виджет-описание разместил код обработки (включения лампы):
//сигнализация ПС5
if (ps5_hi!=true && FLAG_rs_ps5_hi!=true) EI_Alarm1.fillColor="green";
else EI_Alarm1.fillColor="red";
if (ps5_hihi!=true && FLAG_rs_ps5_hihi!=true) EI_Alarm2.fillColor="green";
else EI_Alarm2.fillColor="red";
пытаюсь задействовать лампу по одновременной сработке 2-х битов получаемых по Modbus
При запуске виджета мнемосхемы на выполнение, и изменении атрибутов получаемых по модбасу - изменения цвета закраски элемента EL_ALARM не происходит.
Явная команда тоже непроходит. Перечитал много документации. Включал признаки обработки много где. Понимаю что можно написать свой виджет с внёдрённым кодом обработки изменения цвета. Но хочется поменять цвет подчинённого виджета из кода виджета мнемосхемы.
Open Scada v0_8_0_4
Подскажите пожалуйста, как это сделать?
[Повідомлення редагувалось 2 раз(ів), останній раз 15.11.2012 в 16:16.]
Вкладений файл
001.rar (Тип файлу: application/x-rar-compressed, Розмір: 232.21 кілобайтів) — 1519 завантажень
|
Повідомлення створено: 15. 11. 2012 [20:35]
|
roman
Roman Savochenko
Moderator Contributor Developer
Зареєстрован(а) с: 12.12.2007
Повідомлення: 3750
|
"pentagon128" wrote:
//сигнализация ПС5
if (ps5_hi!=true && FLAG_rs_ps5_hi!=true) EI_Alarm1.fillColor="green";
else EI_Alarm1.fillColor="red";
if (ps5_hihi!=true && FLAG_rs_ps5_hihi!=true) EI_Alarm2.fillColor="green";
else EI_Alarm2.fillColor="red";
Переменная EI_Alarm1.fillColor некорректна. Почему, читаем в документации, а так-же смотрим примеры в ДемоБД где кстати подобное реализовано, а вообще начинаем с быстрого старта: http://wiki.oscada.org/Doc/QuickStart
Learn, learn and learn better than work, work and work.
|
Повідомлення створено: 16. 11. 2012 [03:59]
|
pentagon128
Руслан Кучерявый
Автор теми
Зареєстрован(а) с: 15.11.2011
Повідомлення: 102
|
Спасибо за подсказку. Копаю.....Просмотрел ещё раз демопроекты AGLKS и Boiler. Виджет (элемент оторбражения сигнализации) EI_Alarm в них не задействован, во всяком случае на мнемосхемах я его не увидел. В быстром старте необходимая функциональность виджета Холодильник разрабатывается в коде виджета с нуля. Хорошо, тогда задам вопрос так - есть ли в стандартных библиотеках виджетов элемент управления который может взять на себя функцию банальной лампочки сигнализации, или такой виджет надо разрабатывать самому, при этом закраску элемента реализовывать в коде виджета?
[Повідомлення редагувалось 1 раз(ів), останній раз 16.11.2012 в 04:00.]
|
Повідомлення створено: 16. 11. 2012 [04:57]
|
pentagon128
Руслан Кучерявый
Автор теми
Зареєстрован(а) с: 15.11.2011
Повідомлення: 102
|
Проблему решил. Взял виджет EI_box_Alarm, откопировал в свою библиотеку. В обработку прописал код:
if (prmSignal==0)
{
box_alarm_fillColor="green";
El_text_alarm_text="Норма";
}
if (prmSignal==1)
{
box_alarm_fillColor="red";
El_text_alarm_text="Сработка";
}
где prmSignal сделал внешней входной переменной.
|