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

Тема: Master OPC Universal Modbus Server: Функция server.SetTagToOnOff() узла PROGRAM

  1. #1

    По умолчанию Master OPC Universal Modbus Server: Функция server.SetTagToOnOff() узла PROGRAM

    Мне нужно программно по условию останавливать и запускать исполнение тэга. Рассчитывал делать это с помощью функции server.SetTagToOnOff(). Но че то подтормаживаю - не понимаю, как ее применять.
    Думал, что функция имеет аргумент - имя тэга. Оказалось,что нет - останавливается исполнение текущего тэга. Из скрипта этого тэга. В руководстве дан следующий сниппет:
    Код:
    val,q=server.ReadCurrentTag();       --получаем значение тега 
    
    if val==true then                     --если значение "true"
    
    server.SetDeviceToOnOff (true); --запускаем опрос устройства
    
    else
    
    server.SetDeviceToOnOff (false); --иначе останавливаем
    
    end;
    Этот код может устройство выключить, но включить - нет, так как в выключенном тэге скрипт не исполняется. Пробовал писать в отключенный тэг из другого тэга, из MasterSCADA в расчете на то, что функция OnWrite() отработает - ничего не вышло.
    Нет идей, ребята? Очень надо

  2. #2

    По умолчанию

    Для чего вам вообще нужно останавливать отдельный тег?
    Спасибо.

  3. #3

    По умолчанию

    Решается следующая задача. Нужно детектировать изменение параметра - так называемый рост на некую величину на скользящем окне в трое суток. Параметр - вибрация. Таких однотипных параметров имеется на агрегат порядка 20 штук. При этом в случае, если активная мощность или обороты нестационарны, параметр не считается, если стационарны на окне более получаса - параметр начинает считаться. Если рост обнаружен, нужно выдать сигнал в систему сигнализации, который должен висеть до ручного снятия, обнулить расчет, подождать некоторое время и снова его начать. Если в процессе расчета условие стационарности нарушается, то расчет надо ОСТАНОВИТЬ, ОБНУЛИТЬ, дождаться стационарности по мощности и оборотам и снова его начать.
    Предполагалось сделать тэг с собственно параметром и тэг, читающий параметр, рост которого нужно анализировать, и производить расчеты в нем. А в подустройстве, которому принадлежат оба этих тэга, анализировать параметры мощности и оборотов. Если параметры нестационарны - выключать тэг расчета, если стационарны - считать. Сам тэг параметра ВЫКЛЮЧАТЬ нельзя, поэтому отключать подустройство с этими тэгами тоже нельзя. Также предполагалось, что функцию подготовки к расчетам будет выполнять функция OnInit(), также думалось, что эта функция вызывается всякий раз при включении тэга. Такая структура виделась удобной, потому что можно было создать вышеуказанное для одного тэга и затем продублировать нужное число раз.
    Тест на нагрузку это хозяйство прошло, но вот с включением выключением не получилось.
    Можно в принципе это реализовать и без отключения, но получается очень криво. Нужно городить в OnRead() лапшу из проверок.


    PS. Встречный вопрос. Если вы считаете, что задача включения-выключения тэга - это что-то из области абстракции, то зачем тогда делалась функция SetTagToOnOff()?
    PPS. ПО функции SetDeviceToOnOff() вопрос аналогичный - как включить, если предварительно выключил?
    PPPS. Нужно сказать, что сама программа мне очень нравится. Замечательный продукт.

  4. #4

    По умолчанию

    Включение-выключение устройства, можно производить используя тег типа ServerOnly, скрипт записи.
    Конкретно в вашем случае не ясно зачем выключать тег, просто не делайте вычисления когда это не требуется в скрипте.
    Спасибо.

  5. #5

    По умолчанию

    Спасибо. Попробовал по устройству. Все работает. Но осадочек остался с тэгом) С ним так не прокатывает. Получается, что функцию SetTagToOnOff() следовало бы назвать SetTagToOff() и вызывать без аргументов, потому что при помощи этой функции включить тэг нельзя. Мне было бы удобнее, если бы эта функция работала нормально.

  6. #6

    По умолчанию

    Здравствуйте, при ручной записи в тег Включение-выключение устройства работает отлично, но когда пытаюсь сбросить командой check, тег принимает значение false и сервер не останавливает опрос.

    Как можно решить данную проблему?

Похожие темы

  1. master opc universal modbus server
    от rekbrjaaa в разделе Сетевые технологии
    Ответов: 8
    Последнее сообщение: 01.09.2023, 19:34
  2. ПЛК 63 и Modbus Universal OPC Server
    от mendel1981 в разделе Эксплуатация
    Ответов: 0
    Последнее сообщение: 27.01.2017, 22:34
  3. Ответов: 15
    Последнее сообщение: 23.01.2017, 15:39
  4. Modbus Universal MasterOPC Server
    от jus в разделе Master SCADA 3
    Ответов: 21
    Последнее сообщение: 26.02.2015, 11:35
  5. Ответов: 7
    Последнее сообщение: 19.06.2014, 10:35

Ваши права

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