Перезапуск модулей Сервера отдельно от Сервера

Стартовая страница Форумы Новые идеи Перезапуск модулей Сервера отдельно от Сервера

Просмотр 15 сообщений - с 1 по 15 (из 16 всего)
  • Автор
    Сообщения
  • #13346
    manjey73
    Участник

    Собственно вот. Возможность перезапускать модули сервера, не перезапуская сам Сервер.
    Например тот же модуль авто управления, формулы и т.д.
    Если происходит компиляция формул и она ошибочна, уведомлять и запускать предыдущий вариант, который без ошибок.

    з.ы. надо на лету выполнять некоторые настройки Модуля автоуправления например.
    Сделать по принципу Коммуникатора, то есть перезапуск, останов, запуск отдельных веток настроек модуля.

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

    Компиляция формул находится не в модулях, а в самом движке Сервере.

    А почему неудобно перезапустить службу Сервера полностью?

    #13374
    manjey73
    Участник

    Ну речь больше о Модуле автоуправления.
    Есть задача, которую не знаю как решить.

    Есть два устройства (на самом деле больше, но на примере 2-х). У устройств есть датчики температуры, влажности. Если какой-то датчик ломается на устройтсве 1, то люди в программе говорят — Бери данные о температуре с Устройства 2. Все это происходит на лету.
    При использовании Модуля автоуправления это можно реализовать, но только при перезагрузках сервера целиком.

    Шаблоны для такой подмены я сделаю, вроде сейчас в Модуле тоже можно активировать и деактивировать группы правил. Но было бы удобно в дальнейшем действовать по аналогии с Коммуникатором. Запускать, останавливать, перезапускать группы правил Модуля.

    #13376
    Romiros
    Участник

    А почему не с помощью формул и каналов управления? Это же по сути замещение входных данных для дорасчетного канала по условию. Или там всё гораздо сложнее?

    #13377
    manjey73
    Участник

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

    Вот и планируется задействовать Модуль Авто управления, но любые переключения будут сопровождаться перезапуском Сервера.

    А так было бы здорово активировать наборы триггеров модуля и перезапускать только модуль. Да и вообще, модульность архитектуры вполне была бы ничего, более гибкое решение.

    #13379
    Romiros
    Участник

    Переключение на другую метеостанцию можно произвести через модуль автоуправления. Почему тоже самое нельзя сделать с кнопки на схеме? Тем более, что именно автоматическое управление не получается, приходится менять руками.

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

    #13380
    manjey73
    Участник

    На уровне двух серверов это уже горячее резервирование. О нем тоже недавно была речь с Михаилом. Но это другая тема немного.

    Как сделать переключение с мнемосхемы ? Scada должна выступить в роли шлюза, брать данные с одного ПЛК и передавать другому (у которого сломалась метеостанция).

    Передавать данные в другое устройство может только Модуль автоуправления. А это настройка триггеров в шаблоне и их активация, когда необходимо. К тому же данные можно брать с метеостанции любой установки а не с какой-то конкретной. Тут я еще не знаю, как все это придумать… в Scada как бы нет СВОБОДЫ выбора на лету.
    А переключение ручное, потому что по умолчанию данные берутся с метеостанции на самой установке.

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

    Если каналов не много, то проще всего завести дорасчётные каналы, которые будут брать данные с того источника, который доступен. Тогда настройки модуля автоуправления переключать не придётся.

    Ретрансляцию придётся вести сразу на оба ПЛК, но с помощью формул канала управления можно блокировать команды на исправный прибор.

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

    можно ли реализовать на уровне коммутатора взаимодействие между двумя разными КП, а результат отправлять на сервер?

    Нужно больше информации, как именно КП должны взаимодействовать.

    #13396
    Romiros
    Участник

    Есть КП основное и есть резервное. Это два разных драйвера. Одно КП получает данные по OPC другое из БД MS SQL Server. При исчезновении данных по OPC(Bad status), необходимо брать данные из БД. Замещаться должны только те теги, у которых совпадают номера привязанных каналов.
    Как бы понятно, что это больше задача для сервера, но каналов порядка 900 штук и дублировать их в базе так не хочется.
    Т.е. если бы резервное КП, могло контролировать статус тегов основного КП и замещать только те у кого статус undefined.
    Или только через интерфейс ServerComm линии связи?

    #13397
    Romiros
    Участник

    И кстати ещё вопрос по резервирования. У нас системы которые имеют по два идентичных OPC сервера. KpOPC стоит на обоих серверах. Теги привязываются по выходным каналам в коммуникаторах. На одном сервере линия связи запущена на втором соответственно остановлена. При потере связи с первым сервером, автоматически отправить команду на остановку этой линии связи и команду старта линии связи на втором сервере. Такое возможно через модуль автоуправления?

    #13401
    manjey73
    Участник

    Михаил, не все так просто, ПЛК существующие, программа в них тоже. Менять программу не планируется, да и сложно. ПЛК много, очень много…
    Строил бы систему сам, сделал бы глобальные переменные и через настройки ПЛК читал бы нужные данные. Кстати Modbus slave тут бы очень пригодился.

    На счет механизма отсылать всем и блокировать каналы можно подробнее как это сделать ?

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

    Есть КП основное и есть резервное. Это два разных драйвера.

    Задача понятна. Действительно, было бы удобно её реализовать на уровне Коммуникатора, чтобы не завдоить множество лишних каналов. Это потребует довольно серьёзной доработки Коммуникатора — нужна возможность подключить свою логику между Сервером и Коммуникатором. Кроме того получается, что 2 разных КП привязаны к одним и тем же каналам — тоже нужно учесть при разработке.

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

    При потере связи с первым сервером, автоматически отправить команду на остановку этой линии связи и команду старта линии связи на втором сервере. Такое возможно через модуль автоуправления?

    На данный момент нет, но хотелось бы реализовать. Где-то выше обсуждали.
    Нужно ввести понятие, не только команды КП, но и команды приложению, в данном случае — команда запуска/остановки линии.
    Эта и предыдущая доработки тянут быть включенными в новое поколение Rapid SCADA ))

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

    На счет механизма отсылать всем и блокировать каналы можно подробнее как это сделать ?

    Отсылаете команды через Модуль автоуправления. Указываете в параметрах команды не № КП, а № канала управления. Для передачи данных по изменению подойдёт триггер на изменение.
    Затем в формуле канала управления проверять какую-нибудь переменную, которая означает, требуется ли в данный момент передавать команду по этому каналу управления. Если команда не требуется, то в случае стандартной команды из формулы канала возвращать double.NaN, а в случае бинарной — null. Тогда команда отменится.

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