Страница 6 из 111 ПерваяПервая ... 456781656106 ... ПоследняяПоследняя
Показано с 51 по 60 из 1109

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

  1. #51

    По умолчанию

    VPN на контроллере ПЛК100 и модеме ПМ01? А это вообще реально?

    А тогда вдогонку - а средствами скриптов нельзя получить IP адрес из символьного адреса? Или, например, я легко могу получить IP адрес от DynDNS и положить его, например, в текстовый файл на компе. А нельзя ли его потом скриптом считать и использовать?

  2. #52

    По умолчанию

    Подскажите как в скрипте обработать ситуацию потери связи (физический обрыв линии)? В такой ситуации значения тегов замораживаются с признаком качества "Ок" (пробовал на эмуляторе com0com), что неприемлимо. Последняя выполняемая функция в скриптах function OnBeforeReading(), дальше тишина...Напрашивается обработчик ошибки сервера?

  3. #53

    По умолчанию

    А как именно вы имитируете разрыв связи?
    Если вы используете ModRSSim, то там может проявляться такая проблема. На реальных устройствах такой проблемы нет - при разрыве связи, ОРС переменные получают признак качества BAD.
    Спасибо.

  4. #54

    По умолчанию

    Да, пробовал именно в связке с ModRSSIM просто его закрывая...Но обработчик ошибки сервера всё равно хочу Это возможно?

  5. #55

    По умолчанию

    Ну мы вам написали, что при закрытии ModRSSim происходит подвисание виртуальных портов, и ОРС это никак обработать не может.
    С реальными портами такого происходить не будет.

    Какой обработчик ошибок вам нужен? Изменение признака качества вас не устраивает?
    Спасибо.

  6. #56

    По умолчанию

    Скажу сразу, что пытаюсь использовать ОРС сервер извращённым способом В скрипте Устройства читаю регистры 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 бесплатных, в данном случае не криминал

  7. #57

    По умолчанию

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

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

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

  8. #58

    По умолчанию

    Потерял полдня , пытаясь запустить OPC-сервер на другой (не своей) машине. Получаю "Access violation at address 004ABD2B in module 'modbusopcserver.exe'. Read of address F4F7FFF4". Много чего перекопал, много кого вспомнил... Оказалось, виной тому - отключенная в биосе сетевая карта! При включении всё заработало. Отключение сетевухи в Диспетчере устройств приводит к аналогичному результату-Access violation...Уважаемые разработчики, обработайте ошибку!Спасибо.

  9. #59

    По умолчанию

    Эту ошибку мы уже исправили.
    Спасибо.

  10. #60

    По умолчанию

    Доброе утро!
    Вопрос начинающего:
    Через dcon от счётчика импульсов поступают значения в 16тиричном виде.
    Пример: 000002FE = 766.
    Перевожу функцией string.format ("%08d", 2FE) -- например.
    получаю 441.
    Как правильно перевести из hex в dec?

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

Ваши права

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