Показано с 1 по 10 из 1123

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

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    По умолчанию

    Скажу сразу, что пытаюсь использовать ОРС сервер извращённым способом В скрипте Устройства читаю регистры Modbus

    function OnAfterReading()
    local w={}
    local err
    err,w = modbus.ReadInputRegistersAsInt16(0,12,true,"103254 76" );
    local Address = server.GetCurrentDeviceAddress( );
    server.RunFunctionFromNode("SetData",0,w[1],w[2],w[3],w[4],w[5],w[6],w[7],w[8],w[9],w[10],w[11],w[12],Address,err);
    end
    и затем переписываю эти значения в теги Сервера.
    В Устройствах никаких тегов нет. Получается этакий мультиплексор. Используя 13 тегов (12 значений и номер устройства), я опрашиваю 12 устройств по 12 каналов в каждом. При таком способе признак качества я должен формировать сам, а отследить потерю связи невозможно. Функция OnAfterReading() при обрыве связи вызываться перестаёт.
    Для контроля такой ситуации подошло бы что-то типа OnServerError(), тем более, что продукт позиционируется как платформа для разработки сервера с поддержкой разработки протоколов связи с разными устройствами. При таком подходе значения ОРС тегов придётся формировать программно, включая признак качества. Или я не прав?
    p.s. Надеюсь, попытка использовать 144 канала, вместо максимальных 32 бесплатных, в данном случае не криминал

  2. #2

    По умолчанию

    Цитата Сообщение от xatuman Посмотреть сообщение
    Функция OnAfterReading() при обрыве связи вызываться перестаёт.
    При работе с реальным COM портом такая ситуация возникнуть не должна.

    Цитата Сообщение от xatuman Посмотреть сообщение
    Для контроля такой ситуации подошло бы что-то типа OnServerError(), тем более, что продукт позиционируется как платформа для разработки сервера с поддержкой разработки протоколов связи с разными устройствами.
    Мы планируем добавить такую функцию в третью версию ОРС сервера.
    Но эта функция нужна в первую очередь при работе по Ethernet - там при обрыве связи функции скрипта действительно перестают вызываться

    Цитата Сообщение от xatuman Посмотреть сообщение
    При таком подходе значения ОРС тегов придётся формировать программно, включая признак качества.
    Да, нужно устанавливать признак качества при записи значений в тег.
    Спасибо.

  3. #3

    По умолчанию

    День добрый,

    Из старинной переписки о функции OnServerError()

    Цитата Сообщение от SCADAMaster Посмотреть сообщение
    При работе с реальным COM портом такая ситуация возникнуть не должна.


    Мы планируем добавить такую функцию в третью версию ОРС сервера.
    Но эта функция нужна в первую очередь при работе по Ethernet - там при обрыве связи функции скрипта действительно перестают вызываться


    Да, нужно устанавливать признак качества при записи значений в тег.
    В Версии 4 такой функции не обнаружл. Планы изменились или не там ищу?

  4. #4

    По умолчанию

    Цитата Сообщение от ASG Посмотреть сообщение
    В Версии 4 такой функции не обнаружл. Планы изменились или не там ищу?
    К сожалению так и не реализовали еще.
    Спасибо.

  5. #5

    По умолчанию

    Цитата Сообщение от SCADAMaster Посмотреть сообщение
    К сожалению так и не реализовали еще.
    Жаль...но, может подскажите, начинающему.
    У меня в проекте несколько десятков TCP/IP узлов. Хочу контролировать Езернет-соединения.
    Сделал объекты не уровне Скады на базе ФБ Ping с периодическим опросом.. но это решение мне не очень нравится.
    Думаю в сторону скриптов в Скаде или в OPC (поэтому и заинтересовался функцией OnServerError) но пока ничего путного не придумывается.
    К слову, как в OPC (или Скаде) получить строку с адресом узла для использования в скрипте...?

Ваши права

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