Сцепить каналы в строку

  • В этой теме 15 ответов, 4 участника, последнее обновление 6 лет назад сделано to0freak.
Просмотр 15 сообщений - с 1 по 15 (из 16 всего)
  • Автор
    Сообщения
  • #8967
    to0freak
    Участник

    Добрый день!
    Понимаю, что скорее всего задаю идиотский вопрос, но никак не могу сцепить показания нескольких каналов в строку.
    Нужно сделать что-то типа: Val(1).tostring & » (» & Val(2).tostring & «)»
    Только вот что-то не получается пока.
    Подскажите, как решить? Спасибо.

    #8969
    Romiros
    Участник

    Напишите, что Вам нужно сделать в плане задачи. Величина канала должна быть double, в string можно перевести в промежуточных вычислениях в формуле, но на выходе должен быть double.
    Синтаксис c# Val(1).ToString()+Val(2).ToString()

    #8970
    to0freak
    Участник

    Мне нужно отображать на схеме показания двух каналов температуры (фактической и задания) в виде «58 (65)». На выходе нужна именно строка со скобками.

    #8971
    Romiros
    Участник

    А почему на схеме это не сделать?
    Поставьте рядом две динамические надписи с одним и другим каналом. Под второй можно положить статическую надпись ( ) только уровнем ниже.

    #8972
    to0freak
    Участник

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

    #8973
    Romiros
    Участник

    Ну тогда это к Михаилу. Такого пока нет.

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

    В строке помещается макс. 8 символов. Подход со строкой не очень надежен.
    Но если очень хочется, то можно

    Val(1).ToString() + " (" + Val(2).ToString() + ")"
    #8976
    to0freak
    Участник

    В строке помещается макс. 8 символов.

    Для чего нужны такие ограничения? Длинные строки — вроде бы не зло.

    Подход со строкой не очень надежен.

    Какой, в таком случае, выбрать надёжный подход?

    Неужели я первый, кому захотелось как минимум вывести вместо градусов Цельсия просто значок градусов? Или показать значение в скобках, да что угодно.

    #8980
    manjey73
    Участник

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

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

    Просто нынешние базы ограничены форматом double — 8 байт. И с учетом постоянного обновления и записи это ограничение лучше и оставить. Для текстухи нужны дополнительные базы.

    • Этот ответ был изменен 6 лет назад от manjey73.
    #8982
    to0freak
    Участник

    Ну а если строки не хранить в базе, а использовать только для отображения на схеме? Здесь же не должно быть ограничений вообще? Допустим на схеме можно разместить какое-то сообщение для оператора с использованием данных из каналов и результатов вычислений. Или сформировать текст письма для отправки по почте с теми же данными. Всё лучше, чем конструктор из лейблов.

    #8984
    manjey73
    Участник

    Текст письма с данными канала можно сформировать Модулем Автоматического управления.

    Статические надписи можно попробовать хранить в базе Справочники — Типы событий, но вот можно ли их вывести на схему не пробовал, в событиях отображаются, если поиграться статусом.

    Я имел ввиду нужна база данных для строк в принципе, так как есть оборудование, которое передает строковые данные, например когда по snmp что-то опрашиваешь.

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

    на схеме можно разместить какое-то сообщение для оператора с использованием данных из каналов и результатов вычислений.

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

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

    Неужели я первый, кому захотелось как минимум вывести вместо градусов Цельсия просто значок градусов? Или показать значение в скобках, да что угодно.

    Если значение фиксированное, то его можно настроить в виде размерности. Посмотрите таблицу Размерности, в нее можно добавить свои записи.

    #9001
    to0freak
    Участник

    Если значение фиксированное, то его можно настроить в виде размерности. Посмотрите таблицу Размерности, в нее можно добавить свои записи.

    С этим разобрался, но всё равно не хватает префиксов. Пока решил статичными надписями.

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

    Вы могли бы обобщить, как Вам было бы удобно настраивать? Чтобы можно было учесть на будущее.

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