Показано с 1 по 9 из 9

Тема: C# MS4D | Управление параметром из 2х скриптов

  1. #1

    Question C# MS4D | Управление параметром из 2х скриптов

    Здравствуйте! Знакомлюсь с MS4D, есть 2 скрипта(программы объекта) на c#:
    1. Устанавливает параметр State при некоторых условиях, исполняется периодически.
      Код:
      if(Alert == 2 || Alert_1 == 2 || Alert_2 == 2 || Alert_3 == 2)
      {
             State = 2;
      }
    2. Действие по кнопке квитировать, сбрасывает State.
      Код:
      public override void Execute()
      {
           State = 0;
      }


    Проблема в том, что первый скрипт "зажимает" в состоянии тревоги, даже если условие перестало выполняться. Собственно вопрос, есть ли возможность не менять состояние выхода при не выполнении условия?
    Последний раз редактировалось isamars; 18.03.2026 в 11:15.

  2. #2
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    13,281

    По умолчанию

    Если Alert равен чему-то, то даже если вы сбросите, он снова появится (изменится State) и это нормально. Вы же не Alert сбрасываете своим вторым скриптом, а свою переменную State

    Опять же, у вас Alert сработал, вы сбросите (используя промежуточную переменную), а потом у вас сработает Alert_1 и ничего не произойдет, так как вы промежуточной переменной запретите срабатывать всем Алертам.

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

    Я правильно понимаю, что от оборудования, прилетает ошибка, что-то засветилось, зажужжало, вы просто отключаете это жужжание - то есть оператор принял и оповещен, но само оборудование то продолжает быть в ошибке.
    Последний раз редактировалось melky; 18.03.2026 в 11:18.

  3. #3

    По умолчанию

    Есть датчики, в них заданы уставки, при сработке уставок они ставят свою переменную Alert в значение 1 либо 2:
    Код:
    if(T.Value >= Hi && T.Value < HiHi)
            {
                //Верхняя предупредительная уставка
                Alert = 1;
            }
            else if(T.Value >= HiHi)
            {
                //Верхняя аварийная уставка
                Alert = 2;
            }
            else if(T.Value <= Lo && T.Value > LoLo)
            {
                //Нижняя предупредительная уставка
                Alert = 1;
            }
            else if(T.Value <= LoLo)
            {
                //Нижняя аварийная уставка
                Alert = 2;
            }
            else
            {
                Alert = 0;
                //Нормальный режим
            }
    от значения Alert привязываются визуальные параметры в окне, эта логика работает отлично.

    Но, нужно в основном окне при сработке любого Alert на датчиках - подсветить фон всего окна красным, пока не квитируется кнопкой(то есть, без разницы уставка в сработке или нет, если было - то меняем фон пока не квитируют). Для этого создал параметр State, от него зависит цвет фона, это тоже работает. Но программа 1 после сработки уставки видимо запоминает последнее значение или как(не силен в промышленном программировании), то есть при исполнении вижу, что на выходе программы2 State = 0, но на выходе программы1 остается State = 2, хотя Alert не в сработке

  4. #4

    По умолчанию

    Разобрался, видимо программе на выходе нужно всегда какое то значение отдавать, то есть если один раз задали 2 и допустим в следующей итерации не задаем значение(так как условие не выполняется), то отдаст туже 2, надо же что-то отдать...

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

    Вышел из положения так - сделал флаг, при квитировании ставлю его в true, в программе 1 при невыполнении условия смотрю этот флаг, если он true - cбрасываю значение и возвращаю флаг в false

  5. #5
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    13,281

    По умолчанию

    Ну, а если у вас с датчика продолжает переть HiHi ? вы сбросили окно (цвет) и он тут же вернулся обратно в красный? или вы квитированием еще что-то сбрасываете?

  6. #6

    По умолчанию

    Если все еще сработан HiHi, то продолжает красным гореть все верно, другого и не требуется. Это как предупреждение, что вот была сработка - посмотри в чем дело. А если висит в сработке, то так и должно гореть - пока из сработки не выйдет.

  7. #7
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    13,281

    По умолчанию

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

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

  8. #8

    По умолчанию

    Необходимо ещё обратить внимание на это:
    Вопрос:

    Как реализовать несколько входящих связей в параметре?

    Ответ:

    Диспетчеризация входящих связей для параметров проекта в MasterSCADA 4D в настоящий момент не поддерживается.

    Таким образом, для корректной работы должна быть только одна входящая связь.



    Если в проекте необходима диспетчеризация нескольких связей, то такую диспетчеризацию необходимо проводить в программе (например ST или FBD).



    https://support.iek-digital.ru/ru/kn...ej-v-parametre

  9. #9
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    13,281

    По умолчанию

    Ну разве AND кто-то отменял? а уже выход его это одна связь. (пример)

Похожие темы

  1. Выполнение скриптов, поясните.
    от spkg в разделе OPC Серверы
    Ответов: 1
    Последнее сообщение: 21.07.2025, 18:59
  2. Ответов: 13
    Последнее сообщение: 21.02.2025, 16:29
  3. ТРМ132М-01 проблема с параметром Время Ост.
    от Михаил74 в разделе Контроллеры для систем вентиляции и кондиционирования
    Ответов: 1
    Последнее сообщение: 06.06.2019, 13:40
  4. Пульсатор с аналоговым параметром
    от Igor V в разделе Master SCADA 3
    Ответов: 12
    Последнее сообщение: 19.12.2017, 11:57
  5. Установка параметром ТРМ1
    от koksha в разделе Эксплуатация
    Ответов: 0
    Последнее сообщение: 19.07.2017, 09:01

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •