Страница 350 из 369 ПерваяПервая ... 250300340348349350351352360 ... ПоследняяПоследняя
Показано с 3,491 по 3,500 из 4097

Тема: Панели оператора СП3xx. Вопросы и ответы

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    4,143

    По умолчанию

    Цитата Сообщение от TonyMilkers Посмотреть сообщение
    День добрый. Нужен совет по графическим макросам.

    Есть объект, собранный на цифровом дисплее (в проекте – на болотном фоне), текст которого меняет свой цвет в зависимости от внешних условий (ч битовых переключателя). Сейчас сделано так, что в зависимости от этих четырёх бит меняется состояние регистра (262), из которого цифровой дисплей и берёт цвет текста.

    Как можно отвязаться от этого промежуточного регистра, и передавать номер цвета непосредственно в дисплей? С учётом того, что "IF" не возвращает значение, ничего не придумал. Но ведь есть способ... Наверняка есть!
    На "IF" не возвращает значение" могу сказать, что я использую в таких ситуациях unit "Структура" Захват-11.png
    Она возвращает значение по индексу
    Скрытый текст:
    Делаем структуру на два элемента DWORD, в качестве индекса будет значение (PV OR PN)
    Захват-12.png

    В качестве данных - две константы (unit "Данные") с цветами зеленый и желтый
    Захват-14.png
    Т.е. если PV OR PN равно 0, то из структуры берется код зеленый, а если 1,то - желтый.
    Теперь создадим вторую структуру из двух элементов DWORD.
    Индексом будет значение (АV OR АN),
    Захват-15.png
    а в качестве данных будет
    для индекса 0 - ранее созданная структура
    для индекса 1 - константа "Красный"
    Теперь созданный ГМ позволит изменять цвет текста
    Захват-16.png

    Всё, промежуточные регистры не нужны

    Захват-17.png
    Исправленный проект во вложении
    Вложения Вложения
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Мой канал на РУТУБЕ
    https://rutube.ru/channel/23641433/
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  2. #2

    По умолчанию

    Цитата Сообщение от petera Посмотреть сообщение
    На "IF" не возвращает значение" могу сказать, что я использую в таких ситуациях unit "Структура" Захват-11.png
    Она возвращает значение по индексу
    Скрытый текст:
    Делаем структуру на два элемента DWORD, в качестве индекса будет значение (PV OR PN)
    Захват-12.png

    В качестве данных - две константы (unit "Данные") с цветами зеленый и желтый
    Захват-14.png
    Т.е. если PV OR PN равно 0, то из структуры берется код зеленый, а если 1,то - желтый.
    Теперь создадим вторую структуру из двух элементов DWORD.
    Индексом будет значение (АV OR АN),
    Захват-15.png
    а в качестве данных будет
    для индекса 0 - ранее созданная структура
    для индекса 1 - константа "Красный"
    Теперь созданный ГМ позволит изменять цвет текста
    Захват-16.png

    Всё, промежуточные регистры не нужны

    Захват-17.png
    Исправленный проект во вложении
    Спасибо! Разобрался.

  3. #3
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    4,143

    По умолчанию

    Цитата Сообщение от TonyMilkers Посмотреть сообщение
    Спасибо! Разобрался.
    Прямое управление цветом конечно работает, но только непосредственно в панели, в эмуляторе это не работает.
    Можно было сделать трехцветный дисплей и по другому - для каждого состояния (норма, внимание и авария) использовать отдельные юниты "текст" с соответствующим цветом и переключаться между ними в зависимости от состояния битов АV, АN, PV или PN.
    Захват-11.png
    Исходные данные:

    Берем три "разноцветных" текста
    Скрытый текст:

    Делаем "переключатель" для норма/внимание, т.е. цвет текста будет переключаться между зеленым и желтым
    Скрытый текст:

    Добавляем еще один, внешний, переключатель для красного цвета
    Скрытый текст:

    Трехцветный текст готов, можно "поиграться"
    Скрытый текст:

    Осталось сделать из этой заготовки полноценный дисплей для вывода значения из любого регистра,например PSW256
    Скрытый текст:

    Осталось добавить возможность в настройках задавать цвет текста для разных состояний
    Скрытый текст:

    Если нужно изменить шрифт для готового дисплея - воспользуйтесь кнопкой "F" на панели иструментов
    Вложения Вложения
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Мой канал на РУТУБЕ
    https://rutube.ru/channel/23641433/
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  4. #4

    По умолчанию

    Цитата Сообщение от petera Посмотреть сообщение
    Прямое управление цветом конечно работает, но только непосредственно в панели, в эмуляторе это не работает.
    Можно было сделать трехцветный дисплей и по другому - для каждого состояния (норма, внимание и авария) использовать отдельные юниты "текст" с соответствующим цветом и переключаться между ними в зависимости от состояния битов АV, АN, PV или PN.
    Ещё раз спасибо! Этот вариант в чём-то интереснее - можно на эмуляции крутить... Попробую оба. У меня будет около дюжины таких объектов в одном окне - надо будет проверить, не проседает ли по скорости.

  5. #5

    По умолчанию

    Петр как всегда на высоте!
    Вот пытаюсь реализовать на вашем примере, изменение цвета текста в зависимости от значения PSW256.
    Понимаю, что нужно функцию сравнения, но ни как не могу разобраться, как это реализовать.
    Вот к примеру, интервал от 0 до 100, значение регистра до 50 текст зеленый, от 51 до 70 желтый ну и от 71 до 100 красный.
    Получается пока так, на контроллере создал блок сравнения и передаю значения в панельку, на отдельные регистры в зависимости отзначения и тогда цвет меняется. Но ведь можно сделать функцию сравнения в самой пенели, но пока не могу разобраться, как.

  6. #6

    По умолчанию

    Цитата Сообщение от Nakhodka Посмотреть сообщение
    Петр как всегда на высоте!
    Вот пытаюсь реализовать на вашем примере, изменение цвета текста в зависимости от значения PSW256.
    Понимаю, что нужно функцию сравнения, но ни как не могу разобраться, как это реализовать.
    Вот к примеру, интервал от 0 до 100, значение регистра до 50 текст зеленый, от 51 до 70 желтый ну и от 71 до 100 красный.
    Получается пока так, на контроллере создал блок сравнения и передаю значения в панельку, на отдельные регистры в зависимости отзначения и тогда цвет меняется. Но ведь можно сделать функцию сравнения в самой пенели, но пока не могу разобраться, как.
    Например так, собран из 3 дисплеев, с битами видимости и графич. макросов, работает в эмуляции.
    Вложения Вложения
    Последний раз редактировалось kondor3000; 09.10.2025 в 21:49.

  7. #7
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    4,143

    По умолчанию

    Цитата Сообщение от Nakhodka Посмотреть сообщение
    Петр как всегда на высоте!
    Вот пытаюсь реализовать на вашем примере, изменение цвета текста в зависимости от значения PSW256.
    Понимаю, что нужно функцию сравнения, но ни как не могу разобраться, как это реализовать.
    Вот к примеру, интервал от 0 до 100, значение регистра до 50 текст зеленый, от 51 до 70 желтый ну и от 71 до 100 красный.
    Получается пока так, на контроллере создал блок сравнения и передаю значения в панельку, на отдельные регистры в зависимости от значения и тогда цвет меняется. Но ведь можно сделать функцию сравнения в самой пенели, но пока не могу разобраться, как.
    На примере дисплея из трех цветных текстов https://owen.ru/forum/showthread.php...l=1#post473102
    Можно просто отредактировать существующий дисплей под новую задачу
    И так, в ранее созданном есть два элемента IF
    Первый IF внутренний, который позволяет переключаться между текстами с зеленым(норма) и с желтым(внимание) цветами.
    Скрытый текст:

    Переключение происходит в зависимости от текущего значения для условия IF - если текущее значение "0", то отображается нижний элемент из списка вложенных текстов, т.е. "Зеленый текст", если текущее значение "1", то отображается верхний элемент из списка вложенных текстов, т.е. "Желтый текст". Сейчас текущее значение формируется по ИЛИ(OR) от двух бит PSP271 и PSB272.
    Второй IF внешний, который позволяет переключаться между текстом с красным(авария) цветом и тем текстом, который выдаст внутренний IF
    Скрытый текст:

    В зависимости от текущего значения для условия внешнего IF - если текущее значение "0", то отображается нижний элемент из списка состояние внутреннего IF, т.е. "Зеленый" или "Желтый" текст, если текущее значение "1", то отображается верхний элемент из списка, т.е. "Красный текст". Сейчас текущее значение формируется по ИЛИ(OR) от двух бит PSP270 и PSB273.

    Для решения текущей задачи нужно заменить два существующих ИЛИ(OR) на два юнита сравнения ">".
    1. Удаляем существующие ИЛИ(OR)
    Скрытый текст:

    2. Сделаем нужные функции сравнения на больше, у юнита сравнения два операнда - слева и справа от знака сравнения. В качестве операнда слева в конечном итоге будет использоваться значение регистра PSW256(DWORD), а в качестве операнда справа константы 50 и 70. Константы можно записать прямо в поле операнда.
    Скрытый текст:

    3. Используем созданные функции сравнения в качестве текущих значений для внутреннего и внешнего IF
    Скрытый текст:

    4. Вспоминаем, что для левых операндов функций сравнения должен использоваться регистр PSW256, который у нас уже задействован внутри дисплея в качестве "содержания" для тестов. Можно конечно добавить юниты чтение PSW256 прямо в функции сравнения в качестве операндов слева. Но тогда, если нужно будет изменить в настройках дисплея источник данных, придется менять его адрес в трех местах. К счастью язык ГМ позволяет использовать результат чтения регистра в разных местах макроса. Для этого используем действие "Property Float". Это действие позволяет "вынести наружу" и сделать доступным свойства(property) юнитов, находящихся внутри группы или внутри других юнитов. Я его уже использовал при создании дисплея для свойств "содержание" трех текстов и теперь значение "Value" в группе Float Property внешнего IF используют все три текста. Добавим такую возможность и для двух функций сравнения
    Скрытый текст:
    Вложения Вложения
    Последний раз редактировалось petera; 10.10.2025 в 11:43.
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Мой канал на РУТУБЕ
    https://rutube.ru/channel/23641433/
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  8. #8

    По умолчанию

    Спасибо огромное. Буду дальше разбираться.

  9. #9

    По умолчанию

    Доброго времени суток!
    Планирую делать проект на СП310 в связке с ПР102. Столкнулся с вопросом, на который не могу найти ответ.
    Для объекта требуется довольно "точечное" управление, из-за чего буду использовать ПР102, с её большим количеством входов.
    Однако, из-за большого количества кнопок, было принято ещё вдобавок заменить их сенсорной панелью оператора. Итак, вопрос:
    Сколько с помощью панели я смогу сделать виртуальных кнопок? Есть ли какое-то ограничение?

  10. #10

    По умолчанию

    Цитата Сообщение от Niggaдяй Посмотреть сообщение
    Доброго времени суток!
    Планирую делать проект на СП310 в связке с ПР102. Столкнулся с вопросом, на который не могу найти ответ.
    Для объекта требуется довольно "точечное" управление, из-за чего буду использовать ПР102, с её большим количеством входов.
    Однако, из-за большого количества кнопок, было принято ещё вдобавок заменить их сенсорной панелью оператора. Итак, вопрос:
    Сколько с помощью панели я смогу сделать виртуальных кнопок? Есть ли какое-то ограничение?
    У панели ограничений нет, а вот у ПР102, есть ограничения, всего 64 сетевых регистра. https://owen.ru/product/pr102/specifications
    64 регистра * 16 бит = 1024 кнопки всего. При условии, что больше ничего передавать не надо.
    Только боюсь ПР102 умрёт быстрее, пока передаст все 1024 бита.
    Последний раз редактировалось kondor3000; 12.10.2025 в 15:40.

Страница 350 из 369 ПерваяПервая ... 250300340348349350351352360 ... ПоследняяПоследняя

Похожие темы

  1. Экспорт CSV в панели СП3xx и порядок квитирования событий
    от theoretician в разделе Панели оператора (HMI)
    Ответов: 30
    Последнее сообщение: 24.08.2021, 16:17
  2. Индикатор ИП120 , вопросы- ответы
    от rovki в разделе Программируемые реле
    Ответов: 56
    Последнее сообщение: 03.11.2017, 15:58
  3. Сенсорные панели оператора ОВЕН СП3ХХ
    от Боднар Олег Миколайович в разделе Подбор Оборудования
    Ответов: 7
    Последнее сообщение: 17.12.2015, 09:09
  4. СПК 107 в качестве панели оператора
    от Леонид в разделе СПК1xx (архив)
    Ответов: 15
    Последнее сообщение: 20.11.2015, 08:17

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •