Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 13

Тема: ПР-200 + конвертер 485 - TCP/IP проблема со значениями переменных

  1. #1

    По умолчанию ПР-200 + конвертер 485 - TCP/IP проблема со значениями переменных

    Всем доброго дня. Разработал проект на Masterscada 4d, под ПР-200 с физическим конвертером интерфейса HF2211A, опрос чере Owen OPC server.
    Обнаружил следующую проблему, которую видно уже в окне OPC при опросе: значения всех переменных (целочисленных и Float) искажены. Причем совершенно точно целочисленные отражаются в виде, умноженными на 256 (т.е вместо 1 - 256, вместо 2 - 512 итд) Что именно с float пока не вник, скорее всего каждый их регистр тоже умножен на 256. Соответственно в masterscada передает все то же самое умноженное. Кто нибудь сталкивался с подобным? В чем суть проблемы и как с этим бороться?
    Заранее благодарю

  2. #2
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    12,986

    По умолчанию

    1. Правильность адресации, в пр200 целочисленным не требуется переставлять байты
    2. Для float надо переставить регистры местами со стороны scada

    На использовать ОРС, если в ms4d встроен modbus ?

  3. #3
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    12,986

    По умолчанию

    Это не умножение на 256, это ваше непонимание протокола.

  4. #4

    По умолчанию

    Скорее всего так и есть.

  5. #5

    По умолчанию

    Цитата Сообщение от melky Посмотреть сообщение
    1. Правильность адресации, в пр200 целочисленным не требуется переставлять байты
    2. Для float надо переставить регистры местами со стороны scada

    На использовать ОРС, если в ms4d встроен modbus ?
    Все варианты с перестановкой местами байтов в нстройке ПР-200 ничего не меняют. Переставляй, или нет - ничего не меняется. В инструкции к ПР-200 вообще сказано, что для режима slave эти порядки не имеют значения. Разумеется, я уже пробовал изменять там все, что возможно - не меняется совершенно ничего. Использование OPC показалось более простым вариантом, (для первого опыта работы со scada), дабы не ковыряеться в ее дебрях.

  6. #6

    По умолчанию

    Цитата Сообщение от valphar Посмотреть сообщение
    инструкции к ПР-200 вообще сказано, что для режима slave эти порядки не имеют значения.
    Это само собой, поскольку правильная интерпретация полученных значений имеет смысл только на принимающей стороне. Может у Вас с адресацией сто напутано? ПР200 - он 0-based или 1-based?

    Возьмите какую-нибудь простенькую утилиту для проверки обмена, ту же Radzio!, например.

  7. #7

    По умолчанию

    Цитата Сообщение от imaex Посмотреть сообщение
    Это само собой, поскольку правильная интерпретация полученных значений имеет смысл только на принимающей стороне. Может у Вас с адресацией сто напутано? ПР200 - он 0-based или 1-based?

    Возьмите какую-нибудь простенькую утилиту для проверки обмена, ту же Radzio!, например.
    Спасибо, сейчас попробую с утилитами поиграть. Не совсем понял про 0 и 1 based...

  8. #8

    По умолчанию

    Ну, у части modbus-устройств адресация идёт от 0, у других - от 1.

  9. #9

    По умолчанию

    от 1. Собственно, если я соединяю ПР-200 с ИП320, и опрашиваю с панели прямо по 485, то все отлично. Проблема началась, видимо при конвертации. Radzio! мне не очень помог, разве что я удостоверился что опрос возможен в режиме modbus tcp, а не modbus rtu over tcp/ip, как я полагал. В любом случае спасибо, хоть за какую-то инфу.. опытный программист посоветовал тупо поделить значения целочисленных на 256. Теория подтвердилась, все стало передаваться корректно. но с float это не катит. видимо придется программу в ПР-200 перерабатывать досканально с учетом этого странного бага. В итоге версии2: физический конвертер как-то каверкает протокол, либо OPC так интерпретирует данные от этого конвертера.

  10. #10

    По умолчанию

    Цитата Сообщение от valphar Посмотреть сообщение
    В итоге версии2: физический конвертер как-то каверкает протокол, либо OPC так интерпретирует данные от этого конвертера.
    Конвертер ничего не должен коверкать. Для RTU over TCP просто пересылает содержимое TCP-пакета последовательный интерфейс и наоборот. Для Modus TCP преобразовывает протокол. Опять же - не трогая данные. Что касается "OPC так интерпретирует данные от этого конвертера" - Вы серьёзно думаете, что OPC что-то знает про все те конвертеры, от которых ему данные поступают? Открою секрет - он даже не знает о их наличии, ему всё равно. Впрочем, у Вас там не просто конвертер, а целый роутер, т.ч. фиг знает - что там китайцы намудрили.

    Что касается 256, то это сдвиг влево на 8 разрядов. Может есть смысл посмотреть в программу на ПР200 - там ничего не намудрено?

Страница 1 из 2 12 ПоследняяПоследняя

Похожие темы

  1. Выходы ADAM_5056 постепенно заполнялись значениями TRUE, а после FALSE
    от Astaroth666 в разделе Помощь Разработчикам
    Ответов: 4
    Последнее сообщение: 13.01.2023, 13:58
  2. Проблема с отображением переменных на мнемосхеме
    от Alex_Under_ B в разделе Облачный сервис OwenCloud
    Ответов: 1
    Последнее сообщение: 05.10.2022, 13:28
  3. Конвертер DEC to BIN
    от Александр Бояркин в разделе Помощь Разработчикам
    Ответов: 30
    Последнее сообщение: 28.03.2021, 22:36
  4. Ответов: 2
    Последнее сообщение: 27.12.2020, 14:59
  5. Ответов: 1
    Последнее сообщение: 09.05.2019, 08:45

Метки этой темы

Ваши права

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