Да, уж....
http://www.owen.ru/forum/attachment....4&d=1392750964
Вид для печати
За "дату и время" - спасибо!
Что касается остальных экранов, то на работающей панели я их не фотографировал. И они не такие "навороченные", как первый.
На экране "Сообщения":
- два элемента "Таблица тревог";
- два элемента "Цифровой дисплей" для отображения времени, оставшегося до очередного ТО;
- две кнопки "Сброс ошибок" с функционалом, который мы обсуждали несколькими постами ранее.
Вложение 28427
На экране "Архив сообщений":
- элемент "Историческая таблица";
- кнопка "Подтвердить" с функцией "Подтвердить" для исторической таблицы. Я так и не понял назначения данной операции. Просто, чтобы появилась надпись в колонке "Подтверждено" таблицы? Типа, "оператор видел это сообщение".
Вложение 28414
На экране "Графики" - просто два тренда без всяких органов управления ими (не было времени разбираться).
Вложение 28415
На главном экране - масса элементов. Уверен, что реализация их функционала сделана мной "криво".
Вложение 28426
Например, я хотел, чтобы вот этот элемент:
Вложение 28416
"горел постоянно", когда компрессор работает, и "мигал", когда компрессор находится в режиме ожидания.
Я уже писал, что за "статус" компрессора отвечает один регистр, каждый бит которого соответствует определенному состоянию.
Но "режим ожидания", как и "работа" характеризуются несколькими комбинациями этих битов.
Поэтому сделал "бутерброд" аж из семи индикаторов:
Вложение 28417
Бит 0 в упомянутом регистре означает "Готов к запуску". При этом индикатор не горит.
Поэтому свойства у самого нижнего индикатора из "бутерброда" такие:
Вложение 28418
Вложение 28419
Вложение 28420
Индикаторы со второго по шестой "снизу" сопоставлены с битами 7, 6, 5, 4, 3 регистра статуса и имеют сходные настройки (должны быть видимы в определенный момент и при этом гореть постоянно):
Вложение 28421
Вложение 28422
Самый верхний индикатор означает "режим ожидания" и должен мигать (бит 2):
Вложение 28423
Вложение 28424
Вложение 28425
Вот такое вот "изящное" решение. :)
И это только один из примеров реализации мной "сложного" поведения элемента.
Добавлял Логику в библиотеку.
Теперь буду читать Ваше сообщение.
Сразу по поводу
Столбец "Подтвердить" можно удалить и не заморачиваться с его назначениемЦитата:
На экране "Архив сообщений":
- элемент "Историческая таблица";
- кнопка "Подтвердить" с функцией "Подтвердить" для исторической таблицы. Я так и не понял назначения данной операции. Просто, чтобы появилась надпись в колонке "Подтверждено" таблицы? Типа, "оператор видел это сообщение".
http://www.owen.ru/forum/showthread....l=1#post138535
https://www.youtube.com/watch?v=K4TJvZMvHIA
А напишите ка условия для индикатора подробно
- горит
- не горит
- мигает
Вместо Вашей "семибоярщины" сделаем один логический элемент, по типу этих http://www.owen.ru/forum/showthread....l=1#post232246
ЗЫ.
Очень желательно указать приоритеты бит.
Первое, что я сделал при добавлении исторической таблицы - поставил "0" для ширины последнего столбца.
Сейчас уже точно не припомню, но что-то у меня там не получилось с расположением таблицы. То ли она размещалась на реальном экране не в том месте, как указано в настройках. То ли еще что. Пришлось столбец вернуть на место.
Значит так. Биты регистра PSW262:
0 - готов к запуску (включен при остановленном компрессоре, в остальных случаях выключен)
1 - компрессор в работе (выключен при остановленном компрессоре, в остальных случаях включен, но совместно с одним из следующих битов)
2 - режим ожидания
3 - запуск двигателя
4, 7 - холостой ход при разных режимах работы компрессора (продолжительный, автоматический)
5 - полная нагрузка
6 - плавная остановка двигателя
Таким образом, индикатор должен:
не гореть: при 0000 0001
гореть постоянно при: 0000 1010, 0001 0010, 0010 0010, 0100 0010, 1000 0010
мигать: при 0000 0110
На сколько я понял из этого описания должно быть так?
https://www.youtube.com/watch?v=AowiH7v_t30
Здесь индикатор режима работы привязан, например, к PSB1000.
ЗЫ.
А бит "1" я здесь не учел, подправлю.
1.Просто задать "0" для ширины последнего столбца не достаточно, нужно полностью удалить название последнего столбцаЦитата:
Первое, что я сделал при добавлении исторической таблицы - поставил "0" для ширины последнего столбца.
Сейчас уже точно не припомню, но что-то у меня там не получилось с расположением таблицы. То ли она размещалась на реальном экране не в том месте, как указано в настройках. То ли еще что. Пришлось столбец вернуть на место.
https://www.youtube.com/watch?v=jmxqqV9yUUk
2. А для индикатора режима работы вообще достаточно анализировать состояние двух бит
Т.к.
"0 - готов к запуску (включен при остановленном компрессоре, в остальных случаях выключен)
1 - компрессор в работе (выключен при остановленном компрессоре, в остальных случаях включен, но совместно с одним из следующих битов)"
здесь два взаимоисключающих состояния - либо вкл. бит №0, либо вкл. бит №1. Поэтому нужно либо бит №0 оставить, либо бит №1
Скорей всего состояние 0000 0010 в регистре статуса никогда не будет. Если это так, то вместо анализа 0000 1010, 0001 0010, 0010 0010, 0100 0010, 1000 0010 достаточно анализировать только один бит - №1.
ИТОГО остаются только два бита - №1 и №2
не гореть: при хххх х00х
гореть постоянно при: хххх х01х
мигать: при хххх х11х
Я прав?
Заголовок я, естественно, удалял. :)
Согласен, затупил. Но все равно нужен еще третий ("негорящий") индикатор. ИТОГО - три индикатора в "бутерброде".Цитата:
2. А для индикатора режима работы вообще достаточно анализировать состояние двух бит
Т.к.
"0 - готов к запуску (включен при остановленном компрессоре, в остальных случаях выключен)
1 - компрессор в работе (выключен при остановленном компрессоре, в остальных случаях включен, но совместно с одним из следующих битов)"
здесь два взаимоисключающих состояния - либо вкл. бит №0, либо вкл. бит №1. Поэтому нужно либо бит №0 оставить, либо бит №1
Скорей всего состояние 0000 0010 в регистре статуса никогда не будет. Если это так, то вместо анализа 0000 1010, 0001 0010, 0010 0010, 0100 0010, 1000 0010 достаточно анализировать только один бит - №1.
ИТОГО остаются только два бита - №1 и №2
не гореть: при хххх х00х
гореть постоянно при: хххх х01х
мигать: при хххх х11х
Я прав?
А вообще - каюсь. Чтобы упростить описание работы я "умолчал" еще о трех битах, входящих в регистр статуса. Вот его "полный состав" (с некоторой корректировкой описания):
0 - готов к запуску;
1 - компрессор в работе (включен может быть только совместно с еще каким-либо битом);
2 - режим ожидания;
3 - запуск двигателя;
4, 7 - холостой ход при разных режимах работы компрессора (продолжительный, автоматический);
5 - полная нагрузка;
6 - плавная остановка двигателя;
8 - авария;
9 - предупреждение;
10 - требуется ТО.
Рядом с зеленым индикатором есть еще и красный, для мигания которого тоже есть ряд условий:
- мигает РЕДКО: имеется предупреждение (бит 9) или требуется ТО (бит 10)
- мигает часто: авария.
Попробую составить таблицу возможных состояний (комбинаций битов):
Вложение 28450
Вложение 28451
Вложение 28452
Вложение 28453
Теперь-то понятно, что я явно перемудрил с количеством индикаторов в "бутерброде". Но прошу сделать скидку на дебют. :)
Но с красным индикатором, думаю, я сделал правильно:
частое мигание - бит 8;
редкое мигание - бит 9 ИЛИ 10;
не горит - любой бит (кроме 8, 9, 10), но изображение для ВКЛ. и ВЫКЛ. одинаково "темное".
ИТОГО - 4 индикатора.