kustar

Ответы в темах

Просмотр 15 сообщений - с 16 по 30 (из 118 всего)
  • Автор
    Записи
  • в ответ на: "Сдвиг" значений по регистрам #8348
    kustar
    Участник

    Задача простая.
    Я по SNMP от сетевого устройства (коммутатора, маршрутизатора etc) получаю SysUpTime в тиках и значения накопительных счетчиков по интерфейсам этих устройств — ifInOctets, ifOutOctets, etc. Задача — посчитать и показать на схеме мгновенную скорость по интерфейсам. Для этого и нужны текущее и предыдущее значение.
    Проблема, собственно, в том, что некоторые сетевые устройства выдают SysUpTime периодом в 1 тик (0,01 сек), а некоторые неторопливые — с периодом аж 1500 тиков (15 сек.)
    Четыре входных канала делал только для понимания процесса, достаточно двух.

    в ответ на: "Сдвиг" значений по регистрам #8331
    kustar
    Участник

    Добрый день, Михаил!
    Коммуникатором регулировать не очень удобно. КП будет много (сетевое оборудование корпоративной сети), частота опроса будет падать по мере добавления новых КП. А как сделать цикл для дорасчетных каналов? Можно ли его синхронизировать чем-нибудь?

    в ответ на: "Сдвиг" значений по регистрам #8324
    kustar
    Участник

    Да, конечно, можно и с else:

    public double Trigger(double sut, int stat, int n, int m, int l, int k)
    {
    if (sut != Val(n))
    {
    SetData(k, Val(l), Stat(l));
    SetData(l, Val(m), Stat(m));
    SetData(m, Val(n), Stat(n));
    SetData(n, sut, stat);
    }
    else
    {
    SetData(k, Val(k), Stat(k));
    SetData(l, Val(l), Stat(l));
    SetData(m, Val(m), Stat(m));
    SetData(n, Val(n), Stat(n));
    }
    return sut;
    }

    Для понимания происходящего сделал для сдвига 4 канала.
    Номер канала, в котором вызывается формула, не влияет на результат.
    То есть, не имеет значения, работает ли сначала формула, а потом считывается «текущий» канал, являющийся источником данных для сдвига, или наоборот — сначала вычисляется «текущий» канал, а потом канал с формулой.
    С четырьмя каналами ситуация стала еще более запутанной.
    На сервере сейчас порядка 600 рабочих входных каналов.
    Коммуникатор (SNMP) поставляет данные с периодичностью ок 2 сек. — стандартный MIB’овский SysUpTime.
    Отображаю значения всех каналов на схеме. Наблюдаю периодичность обновления схемы ок. 15 секунд.
    На схеме значения текущего канала и канала n совпадают. В каналах m, l и k — некие промежуточные значения SysUpTime, которые не появляются на схеме в 15-ти секундном режиме обновления.
    Выходит, значения каналов записываются (или вычисляются) быстрее, чем обновляется схема?
    И формула работает, только с другой «тактовой» частотой, намного быстрее, чем обновляется схема?

    в ответ на: Модемная связь #8026
    kustar
    Участник

    Статический IP на 4G у Вас публичный?
    Если наподобие 10.120.хх.хх, то работать не будет.
    Ping до сервера проходит?

    СКАДА с бука со «свистком» работает запросто.

    в ответ на: Передача команды в канал #8021
    kustar
    Участник

    Так просто!
    Спасибо, Михаил!

    в ответ на: Передача команды в канал #7980
    kustar
    Участник

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

    в ответ на: Передача команды в канал #7976
    kustar
    Участник

    Михаил, ну не томите! 🙂
    Есть в Rapid готовый инструмент?

    в ответ на: Передача команды в канал #7909
    kustar
    Участник

    Ок, это работает!
    Михаил, ручной ввод значений возможен?

    в ответ на: Передача команды в канал #7902
    kustar
    Участник

    В идеале нужна возможность ввода значения оператором (в окошке, терминале) и передача этого значения в дорасчетные входные каналы.
    Самое простое: получаю с устройства текущее значение объема жидкости. Необходим ручной ввод значения плотности для расчета (а также отображения и сохранения истории) массы этой самой жидкости.
    Возможности такого ввода пока не вижу. Можно для начала организовать ввод нескольких значений плотности из списка (перечня).
    Вопрос в том, как передать значение из команды в дорасчетный входной канал?

    Кстати, первая часть задачи тоже актуальна!

    в ответ на: Дата в текущем срезе #7901
    kustar
    Участник

    Спасибо, Михаил! Все ОК.

    в ответ на: Дата в текущем срезе #7887
    kustar
    Участник

    Вопрос об ошибке при обновлении данных снимаю.
    Мои эксперименты с командами привели к непреднамеренному изменению данных в регистрах устройства.
    В частности, один из параметров стол равен нулю, а у меня в СКАДЕ он используется в одном из дорасчетных каналов в знаменателе формулы.
    Вылечил перезагрузкой самого устройства.
    Видимо, деление на ноль пагубно влияет на логику работы сервера.

    Скорости добавить, увы, не могу. Интернет канал до промысла дохленький.

    По дате текущего среза: посмотрел логи за предыдущие дни — там тоже есть подобные сообщения. Видимых проблем это не вызывало.

    в ответ на: Типы данных в формулах #7814
    kustar
    Участник

    Благодарю, коллеги! 🙂

    в ответ на: Кривые дата и время #7794
    kustar
    Участник

    Заработало!
    Значения ShowNumber в таблице Format файла ScadaBase.sdf для форматов ASCII, UNICODE и прочих «нецифровых» были True. Сделал False по образцу базы из новой версии.
    Работает вывод ASCII ( 8 зн.), UNICODE (4 зн.) и DateTime.
    Количество чаров ограничено 8 байтами double?
    Нужно, конечно, больше. Делать два (и больше) канала, выводить их на схему друг за другом? Фонты в разных браузерах будут выглядеть по-разному. Будет кривовато.
    Впрочем, «ВКЛ» и «ВЫКЛ» уже можно! 🙂

    в ответ на: Кривые дата и время #7790
    kustar
    Участник

    Михаил, правильно ли я понимаю?
    ВебСтанция должна выводить на схему:
    1. значение в десятичном формате, если значение «Формат» не выбрано
    и
    2. знак (Char), соответствующий этому значению, если в ячейке «Формат» выбрано «Текст ASCII».
    Дело в том, что я по шагам апгрейдил всю СКАДУ до крайней (текущей) версии, просто последовательно перенося директории со всеми новыми приложениями в рабочую директорию на сервере. Возможно, что-то при этом упустил. Так, например, форматы и формулы импортировал из новой версии. А может быть надо еще и «Величины» и «Размерность»?
    Мой результат — вывод дорасчетного ТИ со значением в ячейке формулы 0х42 — 66, независимо от значения ячейки «Формат» (пустое либо «Текст ASCII» либо «Текст UNICODE»). До собственно формул дело еще не дошло.
    Прошу помочь.

    kustar
    Участник

    Понятно. Где поподробнее почитать про статусы?

Просмотр 15 сообщений - с 16 по 30 (из 118 всего)