Страница 17 из 111 ПерваяПервая ... 715161718192767 ... ПоследняяПоследняя
Показано с 161 по 170 из 1109

Тема: Modbus Universal MasterOPC Server новый OPC сервер от компании ИнСАТ

  1. #161

    По умолчанию

    Зачем?
    Может быть просто опрашивать каждый канал отдельным запросом?
    Спасибо.

  2. #162

    По умолчанию

    Цитата Сообщение от SCADAMaster Посмотреть сообщение
    Сделайте тег типа ServerOnly, включите у него исполнение скрипта после чтения, и напишите примерно такой код:
    count=0;
    -- Initialization
    function OnInit()
    end
    -- Uninitialization
    function OnClose()
    end
    -- Processing
    function OnRead()
    val,qual=server.ReadCurrentTag();
    if qual~=192 and count<2 then
    server.PollCurrentDevice( );
    count=count+1;
    end;
    end

    Количество повторов можете задать произвольное. Можете сделать как настройку у устройства через дополнительные свойства.
    Спасибо,попробую. Хотелось бы уточнить,что означает qual~=192?

  3. #163

    По умолчанию

    192 - это константа признака качества GOOD
    Спасибо.

  4. #164

    По умолчанию

    Меня смутил знак "~=". Погуглил, понял,что имелось ввиду "!="
    Последний раз редактировалось energvk; 12.12.2014 в 16:45. Причина: погуглил)

  5. #165

    По умолчанию

    На языке Lua оператор "Не равно" обозначается как ~=
    Спасибо.

  6. #166

    По умолчанию

    Ясно, не вникал ещё в Lua, спасибо.

  7. #167

    По умолчанию

    Цитата Сообщение от SCADAMaster Посмотреть сообщение
    Сделайте тег типа ServerOnly, включите у него исполнение скрипта после чтения, и напишите примерно такой код:
    count=0;
    -- Initialization
    function OnInit()
    end
    -- Uninitialization
    function OnClose()
    end
    -- Processing
    function OnRead()
    val,qual=server.ReadCurrentTag();
    if qual~=192 and count<2 then
    server.PollCurrentDevice( );
    count=count+1;
    end;
    end

    Количество повторов можете задать произвольное. Можете сделать как настройку у устройства через дополнительные свойства.
    Спасибо, работает. А как сделать настройкой у устройства, ставлю этот скрипт, но не работает. И можно ли сделать задержку времени перед повторной попыткой?
    Последний раз редактировалось energvk; 15.12.2014 в 14:25.

  8. #168

    По умолчанию

    Цитата Сообщение от energvk Посмотреть сообщение
    А как сделать настройкой у устройства, ставлю этот скрипт, но не работает
    Настройкой у устройства имелось ввиду сделать количество повторов.
    Либо можно получить количество повторов устройства через функцию server.GetCurrentDeviceRetry( );

    Цитата Сообщение от energvk Посмотреть сообщение
    И можно ли сделать задержку времени перед повторной попыткой?
    Функцией server.Sleep(50);
    Где 50 - задержка в миллисекундах.
    Спасибо.

  9. #169

    По умолчанию

    Настройкой у устройства имелось ввиду сделать количество повторов.
    Либо можно получить количество повторов устройства через функцию server.GetCurrentDeviceRetry( );
    То есть, как я понял в настройках устройства нужно выставить выполнение скрипта и ,соответственно, в скрипте прописать server.SetCurrentDeviceRetry(2). Только почему то не работает...

  10. #170

    По умолчанию

    Не нужно ничего этого делать.
    Все это описывалось если вы хотите сделать количество повторов не константой, а изменяемым значением. Если нужно чтобы количество повторов равнялось заданному в устройстве, то просто измените код на:
    count=0;
    -- Initialization
    function OnInit()
    end
    -- Uninitialization
    function OnClose()
    end
    -- Processing
    function OnRead()
    val,qual=server.ReadCurrentTag();
    if qual~=192 and count<server.GetCurrentDeviceRetry( ) then
    server.PollCurrentDevice( );
    count=count+1;
    end;
    end
    Спасибо.

Страница 17 из 111 ПерваяПервая ... 715161718192767 ... ПоследняяПоследняя

Ваши права

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