Поле для написания заметок на схеме

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

Помечено: 

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

    Тестирую RapidSCADA. Рассматриваю возможности её использования вместо OpenSCADA.

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

    Есть ли подобный функционал в RapidScada? Чтобы диспетчер мог сохранять заметки о работе оборудования на схеме в системе.

    #38537
    manjey73
    Участник

    Как вариант использовать массив каналов с форматом данных Строка.
    Ну и соответствующий скрипт. Будет ограничение на количество вводимых символов. Канал 8 байт. Длину данных выставляете Требуемое количество/8 при использовании ASCII.
    Или Требуемое количество/4 при использовании UTF8

    Формат команды так же Строка.

    #38538
    manjey73
    Участник

    При необходимости можно даже придумать кнопку, которая будет скрывать заметку.
    Не пробовал если честно.
    Хранение будет в БД соответственно.

    #38539
    manjey73
    Участник

    Строковых БД тут нет к сожалению, так что только через массивы каналов играться.

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

    Добрый день!

    С точки зрения пользовательского интерфейса поле для ввода нового текста в текущей версии Rapid SCADA будет появляться по кнопке в диалоговом окне. Текущий текст может отображаться на схеме.

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

    Т.к. это не самая частая задача, лучше попробовать на практике и при возникновении вопросов спросить здесь.

    #38565
    manjey73
    Участник

    @mikhail а вот тут хотелось бы подробностей как сделать команду ввода строки, чтобы она разбилась по массиву каналов по 8 или 4 символа в зависимости от кодировки.

    Именно в команде пока. Что-то непонятно, как тут поступать?

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

    Давайте какую-то одну тему выберем для обсуждения вопроса разбивания строки по каналам. Эта уже третья, как минимум.

    #38576
    manjey73
    Участник

    Ну вообще-то тема как сделать заметку. Тут отличие как разбить строку CmdDataStr в массив каналов?

    #38577
    manjey73
    Участник

    1

    Собственно. Почему команда проходит только в одном канале, если это массив, а не повторяется?

    Как в данном случае заполнять массив значениями?

    Тупо сейчас передаю длину строки в return. Не понимаю. как это тогда работает?

    #38578
    manjey73
    Участник

    для простоты Тип данных по умолчанию (double), формат команды Строка/

    В скрипте для команды public double для простоты.

    #38579
    manjey73
    Участник

    Собственно простой вопрос.

    Входная формула дублируется в каждом элементе массива, а команда не дублируется — ПОЧЕМУ ?

    #38580
    manjey73
    Участник

    Вот блин, тормоз перестройки, пытаюсь увидеть то. что меньше 0 при формате D 🙂

    Работает, правда формула какая-то кривоватая получилась 🙂

    #38581
    a80808
    Участник

    А разве формат D не показывает отрицательные значения? У меня показывает…
    Правда на 5.8.4…

    #38582
    a80808
    Участник

    Или здесь 0,ххх? Тогда сорри…(((туплю…

    #38583
    manjey73
    Участник

    Все равно фигня получается… 🙁

    1. Если вводу второе слово короче первого, остается хвост первого слова.
    2. При перезагрузке не сохраняет введенные данные

    Во входной формуле DecodeUnicode(Val())
    В выходной формуле скрипт

    public double ToMultiString(string cmdString)
    {
    double val = double.NaN;
    SetVal(CnlNum, val); // очистить, но вероятно неправильно
    
    int mass = 0;
    for (int i = 0; i < cmdString.Length; i+=4)
    {
    val = EncodeUnicode(Substring(cmdString, i, 4));
    SetData(CnlNum + mass, val, 1);
    mass++;
    }
    return 1;
    }

    Тип данные Unicode, Форматы — Строка
    Длина по необходимости.

    Что делать, чтобы при рестарте Сервера сохранялись данные ?

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