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

Тема: МСД-200, чтение оперативных данных каналов по Mobus RTU

  1. #1

    По умолчанию МСД-200, чтение оперативных данных каналов по Mobus RTU

    Помогите разобраться, читаю документацию и ни фига не понимаю. Самого устройства пока в наличии нет, т.ч. проверить на железе не могу пока.

    Читаю раздел "Протокол конфигуратора МСД-200 (Modbus RTU)", таблица "Параметры команд чтения оперативных данных каналов архивирования:"

    Код:
    Команда чтения оперативных данных каналов архивирования (Чтение, количество регистров - 3 * 64
    = 192).
    Допускается считывание одной командой от 1 до 40 каналов расположенных последовательно.
    Что 192, если далее сказано "от 1 до 40 каналов"?

    Далее, "Адрес регистра":
    Код:
    Рассчиты-
    ваются по
    формуле:
    0x2000 + K* 3
    —
    0x20BF
    , где K– канал
    архивирова-
    ния 0…63
    Допустим, адрес регистра 0x2000 + K* 3, а 0x20BF - это вообще о чём?

    Я вообще правильно понимаю, что тут подразумевается функция чтения holding-регистров (3) ?

    Прошу прощения, если не в том разделе форума тему создал, но ничего более подходящего не нашёл.

  2. #2

    По умолчанию

    Цитата Сообщение от imaex Посмотреть сообщение
    Помогите разобраться, читаю документацию и ни фига не понимаю. Самого устройства пока в наличии нет, т.ч. проверить на железе не могу пока.

    Читаю раздел "Протокол конфигуратора МСД-200 (Modbus RTU)", таблица "Параметры команд чтения оперативных данных каналов архивирования:"

    Код:
    Команда чтения оперативных данных каналов архивирования (Чтение, количество регистров - 3 * 64
    = 192).
    Допускается считывание одной командой от 1 до 40 каналов расположенных последовательно.
    Что 192, если далее сказано "от 1 до 40 каналов"?

    Далее, "Адрес регистра":
    Код:
    Рассчиты-
    ваются по
    формуле:
    0x2000 + K* 3
    —
    0x20BF
    , где K– канал
    архивирова-
    ния 0…63
    Допустим, адрес регистра 0x2000 + K* 3, а 0x20BF - это вообще о чём?

    Я вообще правильно понимаю, что тут подразумевается функция чтения holding-регистров (3) ?

    Прошу прощения, если не в том разделе форума тему создал, но ничего более подходящего не нашёл.
    Я бы понял так:
    Всего 64 канала (192 регистра с данными), но прочитать одним запросом можно только 40 последовательно расположенных каналов (т.е 40*3 = 120 регистров).
    0x20BF - это последний адрес диапазона, а
    вместо "—" там следовало поставить многоточие

  3. #3

    По умолчанию

    0x20BF - 0x2000 = 8383 -8192 = 191 + нулевой, всего 192 регистра

  4. #4

    По умолчанию

    Да я верю, что 192. 64 х 3. При чем тут 0x20BF, если адрес регистра для последнего канала будет 0х20BD, если просто по формуле 0x2000 + K*3 посчитать? Зачем вообще его было указывать, да ещё в такой странной (мягко говоря) нотации?

  5. #5

    По умолчанию

    И ещё вопрос: данные канала нужно строго по 3 регистра читать или можно отдельно статус и собственно измеренные данные?

  6. #6

    По умолчанию

    Цитата Сообщение от imaex Посмотреть сообщение
    И ещё вопрос: данные канала нужно строго по 3 регистра читать или можно отдельно статус и собственно измеренные данные?
    3 регистра это и есть СТАТУС + ЗНАЧЕНИЕ:


    WORD - 1 канал статус/формат;
    FLOAT32/DWORD - 1 канал данные;
    WORD - 2 канал статус/формат;
    FLOAT32/DWORD - 2 канал данные;
    ... и т.д.

  7. #7

    По умолчанию

    Цитата Сообщение от 1exan Посмотреть сообщение
    3 регистра это и есть СТАТУС + ЗНАЧЕНИЕ:
    Ну, спасибо. Я не об этом спрашивал, это и так понятно.

  8. #8

    По умолчанию

    Цитата Сообщение от imaex Посмотреть сообщение
    Ну, спасибо. Я не об этом спрашивал, это и так понятно.
    Скорее всего можно и отдельно прочитать - только смысл?

  9. #9

    По умолчанию

    Цитата Сообщение от 1exan Посмотреть сообщение
    Скорее всего можно и отдельно прочитать - только смысл?
    Вы теоретик, как и я пока что? Про смысл я поясню (все адреса чисто от балды).

    Допустим, в некоей SCADA определены 3 тег-переменные, привязанные с модбас-тэгам:
    1. UINT/WORD - модбас-адрес 100
    2. FLOAT32/DWORD - модбас-адрес 101

    Т.е. в итоге имеем ссылки на 3 подряд расположенных регистра. Я вот так сходу не могу чисто умозрительно сказать - как поведёт себя оптимизатор запросов в SCADA? Одним запросом на 3 регистра начиная со 100 будет читать или последовательными 2-мя с 100 и 101.
    Если предположить, что статус и данные можно читать раздельно - то пофиг. А если нет - вовсе уже не пофиг, придётся извращаться.

  10. #10

    По умолчанию

    Цитата Сообщение от imaex Посмотреть сообщение
    Вы теоретик, как и я пока что? Про смысл я поясню (все адреса чисто от балды).

    Допустим, в некоей SCADA определены 3 тег-переменные, привязанные с модбас-тэгам:
    1. UINT/WORD - модбас-адрес 100
    2. FLOAT32/DWORD - модбас-адрес 101

    Т.е. в итоге имеем ссылки на 3 подряд расположенных регистра. Я вот так сходу не могу чисто умозрительно сказать - как поведёт себя оптимизатор запросов в SCADA? Одним запросом на 3 регистра начиная со 100 будет читать или последовательными 2-мя с 100 и 101.
    Если предположить, что статус и данные можно читать раздельно - то пофиг. А если нет - вовсе уже не пофиг, придётся извращаться.
    Здравый смысл говорит, что при одинаковом периоде опроса тегов и отсутствии пропусков должен создаваться один запрос.
    Кстати если будет опрашиваться больше 40 каналов - придется принудительно разбить запросы.
    В мастерскаде, например, для этого можно отметить что "вот этот регистр - последний в запросе"

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

Похожие темы

  1. ЧТЕНИЕ ДАННЫХ ИЗ ПОРТА RS-232
    от deniska13 в разделе ПЛК1хх
    Ответов: 12
    Последнее сообщение: 14.04.2017, 09:58
  2. Чтение данных с СПК110 по RS 232
    от GoodLuck в разделе СПК1xx (архив)
    Ответов: 3
    Последнее сообщение: 24.11.2015, 21:46
  3. Чтение данных СИ8
    от Sevel в разделе Помощь Разработчикам
    Ответов: 0
    Последнее сообщение: 14.11.2014, 17:46
  4. Чтение данных с ТРМ 138 в паскале
    от Дмитрий Щаднев в разделе Помощь Разработчикам
    Ответов: 0
    Последнее сообщение: 03.03.2011, 13:36
  5. Запись массива данных в Mobus-Slave ПЛК150
    от Alex A Pap в разделе ПЛК1хх
    Ответов: 3
    Последнее сообщение: 13.12.2010, 13:41

Ваши права

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