Romiros

Созданные ответы форума

Просмотр 15 сообщений - с 736 по 750 (из 1,364 всего)
  • Автор
    Сообщения
  • в ответ на: Новая Rapid SCADA 5.8.1 #16770
    Romiros
    Участник

    Оси скрыл с помощью настроек размера и цвета. Вопрос закрыт, спасибо. Больше в этой теме писать не буду 🙂

    в ответ на: Новая Rapid SCADA 5.8.1 #16768
    Romiros
    Участник

    Всё, разобрался. Надо было добавить к строке &config=PlgChartPro1.xml

    в ответ на: Новая Rapid SCADA 5.8.1 #16767
    Romiros
    Участник

    Ну уже закончим в этой теме?

    Да. Но сейчас появился компонент График, который делает то же самое удобнее.

    Да я его опробовал. Первый вопрос как раз для него. Интересует именно организация ссылки с нужным шаблоном. Для графика придется рисовать ещё одну схему. Либо если бы эту схему можно было вызвать по ссылке с параметрами в виде номеров каналов, то подошло бы.

    в ответ на: Новая Rapid SCADA 5.8.1 #16762
    Romiros
    Участник

    И второй вопрос. Могу ли я при использовании компонента Ссылка для вызова графиков в строке адрес назначить xml шаблон для графиков? Например для строки /Scada/plugins/ChartPro/ChartPro.aspx?cnlNums=173,174&viewIDs=14,14&Period=-2
    приписать PlgChartPro1.xml

    в ответ на: Новая Rapid SCADA 5.8.1 #16760
    Romiros
    Участник

    Добрый день. Есть ли возможность у Графика Про сделать добавленные оси невидимыми(в атрибуты оси Y добавить Position = None или Visible = false). Смысл в том, чтобы каналы строились по разным осям, но сами оси не отображались, поскольку достаточео значений при наведении курсора. Просто необходимо сэкономить пространство. Или это слишком большая переработка компонента?

    в ответ на: Новая Rapid SCADA 5.8.1 #16567
    Romiros
    Участник

    Добрый день, приятная новость, что вышла новая версия.
    По новому RapidGate неплохо бы описание, на сайте не нашел. Посмотрел xml конфиг, возникли вопросы:
    1. Gate может быть только один или несколько?
    2. Чем делается шифрование пароля? (для Grafana была соответствующая страничка)
    3. CnlMappings — теперь обязательно прописывать нумерацию какие каналы в какие? MappingItem — может быть несколько?
    4. UseRawData — я так понимаю это данные от коммуникатора не расчитанные по формулам?
    5. Секция ArcUploadOptions — можете подробнее рассказать что делает и принцип работы?

    По новому компоненту график тоже вопрос — файл конфигурации графика. Есть где-то пример? Где он должен находиться.

    Romiros
    Участник

    Версии Scada модуля не совпадают. Для сервера 5.1.2.0 нужен по идее этот https://rapidscada.ru/download/mod_auto_control/mod_auto_control_5.2.4.0_ru.zip

    Вообще если у Вас версия не актуальная ходите сюда http://rapidscada.net/scada/plugins/Store/StorePublic.aspx?locale=ru

    в ответ на: Gsm модем #16431
    Romiros
    Участник

    Устанавливаете модем. Создаете линию связи с com портом, который присвоен модему. Настраиваете скорость, четность и т.д.
    На линию связи подключает KpSMS.
    Устанавливаете модуль автоуправления и в триггерах отправляете команду на номер данного КП(номер команды 1 или 2 не помню уже). Текст команды формируется в модуле автоуправления, в описании к нему есть весь синтаксис.

    в ответ на: Приложение Автоотчёт #16405
    Romiros
    Участник

    Может опять dll заблокирована? У Win10 такое бывает.

    в ответ на: Xml, БД, внешнее приложение #16314
    Romiros
    Участник

    1. Можно забрать данные из БД с помощью KpDbImport и положить их в каналы RapidScada.
    2. Разработать модуль для RapidScada, который по изменению данных каналов будет считывать текстовые данные из xml файла и отправлять их в события RapidScada.
    3. Если не хватает отображения в журнале событий, то разработать свой плагин отображения, либо html страницу.

    Romiros
    Участник

    Да так не пойдет. 105 по формуле при закрытии минуты получает значение из 101, а тот не усредняется.

    Romiros
    Участник

    1) Нет, в 60-ый раз будет отображено среднее за минуту. Часовые значения на графиках не отображаются.
    2) как вариант, да.
    3) проверьте настройки, по идее если данные меняются несколько раз в минуту, они должны быть разные. Я вроде этот момент как-то проверял.

    в ответ на: CustomParams считать до обнуления ? #16273
    Romiros
    Участник

    А зачем вообще это все? Какая практическая задача?

    Romiros
    Участник

    В OnCommLineStart() можно получить связку сигнал — канал. Если у Вас архив пишется только для определенного сигнала, то необязательно прогонять все сигналы КП.

    public override void OnCommLineStart()
    {
    base.OnCommLineStart();
    //Присвоить номера каналов переменным груп из БД
    foreach (KPTag tag in KPTags)
    {
    foreach(VarGroup varGroup in varGroups)
    {
    foreach(TagConfig.Variable variable in varGroup.Variables)
    {
    if (variable.Signal == tag.Signal)
    variable.CnlNum = tag.CnlNum; //Получаем номер канала
    }

    }

    }

    if (config.ImportArc)
    GetLastArcDateTime();
    if (config.ImportEvents)
    GetLastEvDateTime();

    }

    Далее получаем дату последнего архива. Я использую часовые тренды, поскольку у меня данные берутся из БД другой программы сбора и даты архивов могут различаться не то что на часы, а на целые дни. В Вашем случае возможно эффективнее выгружать не Trend, а SrezTable.

    public void GetLastArcDateTime()
    {
    WriteToLog(«запрос архивов RapidScada»);
    foreach (VarGroup varGroup in varGroups)
    {
    DateTime date = DateTime.Now;
    DateTime dateTime1 = DateTime.Today;
    DateTime dateTime2 = dateTime1.AddDays(-config.DayCnt);
    DateTime dateTime3 = DateTime.MinValue;
    bool flag = false;
    int cnlNum = 0;
    if (varGroup.Variables.Length != 0)
    cnlNum = varGroup.Variables[0].CnlNum;
    if (cnlNum > 0)
    {
    for (; date >= dateTime2 && !flag; date = date.AddDays(-1.0))
    {
    Trend trend = new Trend(cnlNum);
    if (CommLineSvc.ServerComm.ReceiveTrend(new StringBuilder().Append(«h»).Append(date.ToString(«yyMMdd»)).Append(«.dat»).ToString(), date, trend))
    {
    trend.Points.Reverse();
    foreach (Trend.Point point in trend.Points)
    {
    if (point.Stat == 2)
    {
    dateTime3 = point.DateTime;
    flag = true;
    break;
    }
    }
    }
    }
    varGroup.ArcDateTime = dateTime3 > DateTime.MinValue ? dateTime3 : dateTime2;
    Log.WriteLineDelegate writeToLog = WriteToLog;
    dateTime1 = varGroup.ArcDateTime;
    string str2 = dateTime1.ToString();
    string text = varGroup.Name + » Дата последнего архива » + dateTime1.ToLocalizedString();
    writeToLog(text);
    }
    else
    varGroup.ArcDateTime = DateTime.Now;
    }
    }

    Если что-то непонятно, пишите.

    Romiros
    Участник

    я так понимаю надо узнать номер присвоенного канала и проверять его ?

    Да, так и нужно. Определяете связку сигнал — канал, и потом через ServerComm получаете нужные архивы. Код у меня на рабочей машине, смогу только завтра.

Просмотр 15 сообщений - с 736 по 750 (из 1,364 всего)