Динамическая надпись на схеме — обработка значений входного канала, пароль

Стартовая страница Форумы Понять, как работает ПО Динамическая надпись на схеме — обработка значений входного канала, пароль

Просмотр 14 сообщений - с 1 по 14 (из 14 всего)
  • Автор
    Сообщения
  • #8206
    fotonboxx
    Участник

    Добрый день.

    В качестве тестового устройства имеем модуль дискретного выхода ОВЕН МУ110-224.16Р, управляется через конвертер по Modbus TCP.

    Чтобы МУ переключил вход ему необходимо передать значения 1000 либо 0, аналогичные значения мы видим, когда читаем регистр.

    Вопросы:
    1. Как сделать так, чтобы на схеме отображался текст ВКЛ\ВЫКЛ в зависимости от значения выхода 0 или 1000, аналогично при клике на динамическая надпись с этим входом отображалось две команды «Вкл» или «Выкл» (в идеале одна конечно, в зависимости от текущего состояния, но это скорее всего нереализуемо)?

    2. Как отключить запрос пароля при отправке команды на схеме, в Коммуникаторе (в последнем это вообще видимо такой мини-паззл в нарушение всех гайдлайнов по юзабилити, пока не вобьешь стандартный пароль не увидишь элементы управления. Афтору — кроме свойства Visible есть еще и Enabled, вот его и нужно использовать в данном случае)?

    3. По каналам ввода и управления — у них есть поле тип, где почитать описание что каждый из типов делает и зачем он нужен?

    #8207
    manjey73
    Участник

    Используйте команду Выкл-Вкл и в формуле канала управления умножайте на 1000 (или на число, чтобы при выходе подучилось 1000Н)

    В свойствах Web приложения отключите запрос пароля при подаче команды, пока это общая настройка для всех команд.

    #8209
    Mikhail
    Модератор

    Добрый день!

    1. Вариант формулы для канала управления:
    Cmd > 0 ? 1000 : 0

    Можете сделать команду «Переключить» и с помощью формулы отправлять команду в зависимости от текущего состояния.

    2. Пароль в Коммуникаторе не отключается, чтобы случайный пользователь не отправил несколько веселых команд.

    3. Для типов каналов и команд есть соответствующие таблицы в базе конфигурации и в них содержатся описания.

    #8211
    fotonboxx
    Участник

    1. Вариант формулы для канала управления:
    Cmd > 0 ? 1000 : 0

    Ок, спасибо. Вопрос был немного в другом, например есть канал в который может придти значение 1,2,3 а на визуализации надо показать текст «Режим 1», «Режим 2», «Режим 3» в зависимости от дискретного значения в канале. Понятно, что это делается формулами, но где про это почитать, в документации ничего нет про это, на форуме просто много разных тем.
    То есть регэкспы свои самописные или откуда-то взяты? =)))

    Дальше вопрос, в скриптах («Таблицы формул») C#? Доступ к объектной модели (те же каналы) есть? Если да, то где почитать?

    2. Пароль в Коммуникаторе не отключается, чтобы случайный пользователь не отправил несколько веселых команд.

    Ну тогда сделайте, чтобы элементы управления не прятались, а отключались, пока не введен пароль, я вот лично вообще не понял изначально, что есть возможность отправлять команды из коммуникатора.

    #8212
    manjey73
    Участник

    Никто не мешает по аналогии прописать «Режим 1» «Режим 2» «Режим 3» по аналогии с Выкл, Вкл и выбрать данный способ отображения. Единственное пока не помню, можно ли цвет задавать уже своим текстовым отображениям.

    Отправка команд из Коммуникатора больше тестовый режим при отладке, а не рабочий. Там пароль нужен.

    • Этот ответ был изменен 6 лет, 3 месяца назад от manjey73.
    #8215
    fotonboxx
    Участник

    Никто не мешает по аналогии прописать «Режим 1» «Режим 2» «Режим 3» по аналогии с Выкл, Вкл

    Здорово и как же это сделать?

    Для команд я нашел таблицу «Значения команд», я так подразумеваю, что там от нуля считается и увеличение строго на едицину, чего в реальных устройствах может и не быть, то есть не хватает соответствия «Текстовое описание — цифровое значение команды».

    А для входных каналов ничего не нашел.

    #8216
    manjey73
    Участник

    Справочники — Размерности. Создайте свою размерность Режим1, 2, 3 и дайте ей имя.
    Во входном канале укажите в столбце Формат — Текст перечисления и в Размерности выберите свою созданную размерность.

    Можно попробовать и с промежутками, надо попробовать как будет отображаться, например
    Режим 1;;;Режим 3;;Режим 5

    Согласен, что нужен вариант прописывания кодов, но он относительный, так как с некоторого оборудования может прилетать битовая маска кодов ошибок, где могут быть зафиксированы сразу несколько ошибок. На все случаи жизни вряд ли получится сделать без формул.

    Что касается команд, сделайте список от 0 или от 1, используя пример ;команда1;команда2 то есть поставив в начале «;» тем самым откините 0…

    А дальше формулой превращайте в нужные значения, если 1 то передать 20, если 2 то передать 40 ну или что необходимо для прибора.

    • Этот ответ был изменен 6 лет, 3 месяца назад от manjey73.
    #8219
    Mikhail
    Модератор

    При использовании перечислимых значений, которые прописываются в таблице Размерности, нумерация значений: 0, 1, 2….
    Чтобы привести в соответствие значения, получаемые от контроллера, нужно использовать формулу для входного канала.
    Для работы с командами аналогично помогут формулы каналов управления.

    #13871
    Naladun
    Участник

    Компонент динамическая надпись используется вместо компонента переключатель на мнемосхеме, т.к. последний не располагает набором необходимых функций, у него нет некоторых параметров. Реализация переключения значения дискретного канала, привязанного к динамич. надписи, реализуется через выполнение команды с выходного канала, с использованием формулы Val(101)==1 && Stat(101)!=0 ? 0 : 1. Это не совсем удобно и технически выглядит некрасиво, т.к. у компонента в свойстве есть параметр Data > Input Channel, но чтобы поменять адрес — надо в администратор будет лезть, плюс на схеме несоответсвие адресов плодится. Вообще, шикарно было-бы иметь скрипт для элементов на разные действия, и побольше перекрестных свойств от других компонентов (но это так, пожелания, на форуме их и без того много).
    Каким-то способом сейчас в формуле можно указать этот адрес косвенно, ссылаясь на значение Data > Input Channel компонента с мнемосхемы?

    #13876
    Mikhail
    Модератор

    Можете сделать скриншоты? Иначе не совсем понятно.

    #13879
    Naladun
    Участник

    У компонента Dynamic text есть свойства Input channel, Output channel. Для того, чтобы изменить значение данных, привязанных к входному каналу компонента в пар. Input channel, необходимо выполнить команду по команде в пар. Output channel. И чтобы работать с данными самой переменной канала Input channel, мне необходимо выполнить функцию Val(101)==1 && Stat(101)!=0 ? 0 : 1. 101 — это и есть канал, указанный в пар. Input channel, но только мне его приходится записывать прямой адресацией. Если я поменяю в самом компоненте значение пар. Input channel, то это не приведет к изменению выполнения формулы команды, что неудобно. Есть ли какой-то доступ к значению параметров самого компонента, чтобы значение пар. Input channel подставить в формулу? Жаль что не доступны скрипты на компоненте по определенному типу действий, так можно было бы что угодно выполнять с данными привязанных каналов.

    #13889
    Mikhail
    Модератор

    Возможно, было бы удобнее использовать не Dynamic text, а другой компонент, но без картинки не могу дать конкретные рекомендации.

    Есть ли какой-то доступ к значению параметров самого компонента, чтобы значение пар. Input channel подставить в формулу?

    При отправке команды, только для компонента Тумблер учитывается его положение.

    Жаль что не доступны скрипты на компоненте по определенному типу действий

    Подобные функции мы обычно реализуем с помощью спонсоров, как и большинство open source проектов.

    #13893
    Naladun
    Участник

    При отправке команды, только для компонента Тумблер учитывается его положение

    Правильно. Тумблер и создается, только из динамической надписи, или из динамического изображения, если стандартный не подходит. Кнопка, с фиксацией, без, двух или многопозиционный переключатель и т.д., — все действия этих созданных объектов проходят через выполнение команд привязанного выходного канала, но чтобы учесть состояние переменной до подачи команды, и приходится обращаться к входному каналу напрямую. В тумблере готовом обращение идет к его собственным параметрам, как компонента. Обратиться к таким данным, не углубляясь в создание библиотеки компонентов, наверное, и не возможно.

    #13896
    Mikhail
    Модератор

    Да. Вы всё верно описали. Либо нужно обращаться к значению входного канала в формуле для канала управления. Либо нужна доработка мнемосхем.

Просмотр 14 сообщений - с 1 по 14 (из 14 всего)
  • Вы должны авторизироваться для ответа в этой теме.