Romiros

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

Просмотр 15 сообщений - с 31 по 45 (из 1,450 всего)
  • Автор
    Записи
  • в ответ на: Распределенная установка #39665
    Romiros
    Участник

    Если с восстановлением архивов, то Быстрый шлюз. Это правда уже платный модуль, но он того стоит. Там есть автоматическая репликация архивов, но можно и сделать через команды, если связи не было долго. У нас так 10 локальных scada отправляют в центральную.
    Можно для старта сделать без архивов, просто отправляя данные на два сервера — локальный и удаленный.

    в ответ на: Распределенная установка #39641
    Romiros
    Участник

    Здесь наверное ключевой вопрос в каналах связи. GSM вряд-ли подойдёт. Нужно tcp соединение. Или модемы 3g-4g?

    в ответ на: Время что дышло #39483
    Romiros
    Участник

    У прибора есть свое локальное время. Драйвер его забирает, переводит в UTC и кладет в БД сервера. Если в web другой часовой пояс, то естественно и время будет другое. Если нужно подгонять под время сервера, то в драйвере надо учитывать часовой пояс сервера. Все же логично вроде?

    в ответ на: Время что дышло #39460
    Romiros
    Участник

    Вот кусок кода. Время везде приводится к UTC. Я думаю Михаил написал правильно, нужно плясать от времени прибора по UTC и хранить его в UTC. В драйвере использовать только время прибора, не привязываясь к системному.

     DateTime sliceTime = typeData == TypeData.Hour? reader.GetDateTime("DTime").ToUniversalTime(): reader.GetDateTime("DTime").ToUniversalTime().Date;
    
     Dictionary<DeviceTag, CnlData> dict = new Dictionary<DeviceTag, CnlData>();
     for (int i = 0; i < cnt; i++)
     {
         var property = reader[group.DeviceTags[i].Code.Split('.')[1]];
         if (property != DBNull.Value)
         {
             dict.Add(group.DeviceTags[i], Utils.DecodeTag(property, typeData));                            
         }                       
     }
     DeviceSlice slice = new DeviceSlice(sliceTime, dict.Keys.ToArray(), dict.Values.ToArray())
     {
         DataSentCallback = DataSent,
         FailedToSendCallback = FailedToSend,
         ArchiveMask = typeData == TypeData.Hour ? 4 : 8,                        
         Descr = typeData == TypeData.Hour ? "Часовой" : "Дневной"
     };                    
     DeviceData.EnqueueSlice(slice);                        
    в ответ на: Время что дышло #39447
    Romiros
    Участник

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

    в ответ на: Время что дышло #39444
    Romiros
    Участник

    А у меня его нет вообще. Только slice.
    По идее это не должно никак влиять. Канал же существует и ему просто отправляется архивный срез.

    в ответ на: Привязка каналов к устройствам #37548
    Romiros
    Участник

    В tibbo поставьте On-the-fly commands: Disabled

    в ответ на: Границы, ноль, пусковой ток #37439
    Romiros
    Участник

    Генерировать статус через МАУ с задержкой, наверное. А какие границы стоят?

    в ответ на: Невозможно создать канал #36929
    Romiros
    Участник

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

    в ответ на: Создание Плагинов WEB #36422
    Romiros
    Участник

    1. Да
    2. Смотрите что есть в html типа table, input, button и т.д.
    3. Blazor — очередное изобретение Microsoft. Использует web assembly и позволяет писать на c#, который преобразуется в js. Возможно под него есть готовые библиотеки компонентов.

    Romiros
    Участник

    В настройке web станции есть соответствующий пункт. Что-то типа требовать пароль при отправке команд.

    в ответ на: Администратор — Представления #36209
    Romiros
    Участник

    Штатного примера не обнаружено.

    Значит мы просто обсудили, что его нужно добавить, но так и не сделали :). Вещь действительно не очевидная. Сам с такой же проблемой столкнулся.

    в ответ на: Администратор — Представления #36206
    Romiros
    Участник

    В Редакторе Перечислений дать возможность их перечислять с новой строки — сейчас такой шухер происходит, если так сделать 🙂 но было бы удобнее так видеть.
    Просто перенос на новую строку, без точки с запятой. По-моему даже есть штатный пример, посмотри.

    в ответ на: Запись в базу данных по событию #34859
    Romiros
    Участник

    Да работать будет. По синтаксису точно не помню,но я так отправлял записи в БД ещё на пятой версии скады, причем скопом кучу каналов, единственное наверное через формулу в виде строки. Если будет нужно, завтра на работе могу посмотреть. Ну или попробуйте вариант Михаила, может так проще будет.

    в ответ на: Запись в базу данных по событию #34851
    Romiros
    Участник

    Нет, тут вопрос как записать в стороннюю БД mySQL текущие данные из SCADA 1 раз по триггеру?

    Я про это и написал. Используйте драйвер импорта из БД вместо модуля экспорта. Сможете записывать в MySQL с нужным интервалом.

Просмотр 15 сообщений - с 31 по 45 (из 1,450 всего)