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

Тема: Два Modbus OPC Server (master-slave) - нет обмена в сопряженных регистрах...

  1. #1

    Question Два Modbus OPC Server (master-slave) - нет обмена в сопряженных регистрах...

    Добрый день.

    Подскажите пожалуйста - некая проблема взаимодействия.

    Ситуация: имеет на двух машинах OPC сервера Universal Modbus OPC Server (демо версия 32 тега, 3.0.0.8). Один работает в режиме Master, другой - режим Slave. Связываются через ethernet - MODBUS TCP.

    У слэйва есть два регистра (32 разряда или 4 байта). Мастер в один из них пишет (в слейв), в другом читает. В слейве регистры настроены read/write.

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

    Моя проблема возникла при использовании скриптов OPC сервера.
    Создал серверный тег, он принимает данные со SCADA системы (этих тегов должно быть несколько, но пока один для простоты). Эти серверные теги должны записать разные значения в разные регистры реального тега. Для этого в реальном теге, через который мастер работает со слейвом на стороне мастера создан упаковывающий значения скрипт по событию OnRead() - что обозначается, как "выполнение скрипта после чтения". Этот скрипт опрашивает серверные теги, собирает у них значения распределяет их по разрядам, превращает это в десятичное число а дальше пишет по идее функцией Server.WriteCurrentTag(), а также Server.WriteCurrentTagToDevice() (кстати отдельный вопрос эти две функции) в текущий тег. Так вот - со стороны мастера новое значение вычисляется и отображается в этом теге, но в слейв (в сопряженный тег) оно не передается. (как уже писал выше, если ручками вбить значение со стороны мастера, то придет.

    Можете ли объяснить такую специфику работы системы, в чем может быть ошибка, и как сделать правильно (так чтобы в слейв это вычисленное значение все таки приходило).

    Спасибо.

  2. #2

    По умолчанию

    Для того чтобы произвести запись в тег, с записью в устройство (именно так нужно сделать в Slave), нужно выполнить WriteCurrentTag затем WriteCurrentTagToDevice. Вот пример:
    val=10;
    qual=192;
    server.WriteCurrentTag(val,qual);
    server.WriteCurrentTagToDevice(val,qual);
    Спасибо.

  3. #3

    По умолчанию

    Спасибо за ответ.

    Знаете, я имперически пришел к такому же выводу - когда надо подряд две эти функции вызывать для записи тега (одна обновляет локально тэг в OPC сервере, другая - пишет в устройство). Это срабатывало с ПЛК ОВЕН 110. Но вот когда начался обмен между двумя OPC серверами - я застрял. Может быть дело в том, что там 32 разрядное значение (занимает 4 байта и два подряд следующих двухбайтных регистра). Но вот значение, записанное этой последовательностью функций в мастере в слейве на другом ПК не появилось. По этому я и написал.
    P.S. также я не совсем понял нюансы работы событий OnRead() и OnWrite() - может быть от них еще зависит? Я все забивал в OnRead() тега.

  4. #4

    По умолчанию

    Никаких нюансов. OnRead - вызывается при каждом опросе тега, OnWrite - при записи в этот тег.
    Спасибо.

  5. #5

    По умолчанию

    Что же вы, господа, в заблуждение вводите? У вас тупо не работало на версии 3.0.8 и все...Если бы не почитал следующий пост в ветке, и не скачал свежую версию OPC сервера, так бы и рыл носом землю до сих пор.

  6. #6

    По умолчанию

    В какое заблуждение мы вас вводим?
    Вы спросили как записать в Slave устройство значение, мы вам написали - нужно выполнять две функции. Если бы после этого вы сообщили бы что у вас что-то не заработало, то мы бы предложили выполнить обновление.
    Спасибо.

Похожие темы

  1. master opc universal modbus server
    от rekbrjaaa в разделе Сетевые технологии
    Ответов: 8
    Последнее сообщение: 01.09.2023, 19:34
  2. СП 270(slave) ПЛК154(master) по RS485 нет связи
    от desperadoes в разделе Панели оператора (HMI)
    Ответов: 13
    Последнее сообщение: 22.11.2015, 19:15
  3. Ответов: 7
    Последнее сообщение: 19.06.2014, 10:35
  4. Ответов: 1
    Последнее сообщение: 08.12.2010, 14:17

Ваши права

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