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

Тема: МСД-200 обмен данных в среде Delphi 7 по Modbus.

  1. #1
    Пользователь Аватар для Friencis
    Регистрация
    15.11.2010
    Адрес
    г. Бийск, инженер
    Сообщений
    23

    По умолчанию МСД-200 обмен данных в среде Delphi 7 по Modbus.

    Здравствуйте.

    Я пытаюсь реализовать обмен данными между ПК и прибором МСД-200 в среде Delphi 7 по Modbus. Анализируя посылки запрос-ответ с конфигуратором, определил способы посылок и ожидаемых ответов. Далее, при анализе ответов заметил комбинацию байтов "0h, 40h", предшествующие четырём байтам полезных данных.
    Вопрос: является ли данная комбинация сепаратором для нахождения искомых данных и корректно ли будет их использовать? И вообще, где найти информацию по данной теме?

    Спасибо.

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

    По умолчанию

    модбас открытый протокол, по чему идете какими то окольными путями, начните хотя бы с этого сайта http://ru.wikipedia.org/wiki/Modbus и далее по ссылкам найдете исходники или готовые библиотеки

  3. #3
    Пользователь Аватар для Friencis
    Регистрация
    15.11.2010
    Адрес
    г. Бийск, инженер
    Сообщений
    23

    По умолчанию

    С протоколом Modbus проблем нет. Вопрос конкретно по прибору МСД-200. Анализируя обмен запрос-ответ между прибором МСД-200 и конфигуратором выявил такую последовательность. Первый запрос: C903200000785E60, где C9h- адрес МСД, 03h- команда, 2000h- начальный регистр, 0078h- кол-во считываемых слов, 5E60h- контрольная сумма. Ответ такой: C9, 03, F0, 00, 40, 41, CF, E4... 55, 80. Последовательность 00, 40 предшествует полю данных. Так вот вопрос в том, является ли это абсолютной закономерностью и следует ли использовать данную комбинацию в качестве признака начала поля данных?

    Следующие посылки, посылаемые конфигуратором: 2) C90320780048DE6D; 3) C90320C000131FB3. Таким образом за три запроса опрашивается всё адресное пространство, чтобы не обращаться к каждому прибору (ТРМ201) по-отдельности.
    Последний раз редактировалось Friencis; 12.08.2013 в 13:35.

  4. #4
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,243

    По умолчанию

    мне всё равно не понятно в чем у Вас трудности, вы после байт C9, 03, F0 получаете 242 байта или нет? если все согласно протоколу, то первое слово данных у Вас содержит число 64

  5. #5
    Пользователь Аватар для Friencis
    Регистрация
    15.11.2010
    Адрес
    г. Бийск, инженер
    Сообщений
    23

    По умолчанию

    На что ориентироваться, выделяя последующие блоки данных в ответной посылке? Как будет «правильней», корректнее?

  6. #6
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,243

    По умолчанию

    не понятно, на пальцах объясните (в картинках или еще как), мне вот кажется у Вас первое снимаемое значение равно 25,8751220703125 градусов

  7. #7
    Пользователь Аватар для Friencis
    Регистрация
    15.11.2010
    Адрес
    г. Бийск, инженер
    Сообщений
    23

    По умолчанию

    Да, так и есть, 25,9°.
    Допустим, стоит подряд три прибора ТРМ201. Строка ответа будет выглядеть так: C9, 03, F0, 00, 40, 41, D0, 1A, 27, 00, 40, 41, D0, 1A, 27, 00, 40, 41, D0, 1A, 27 ... CRC. Несмотря на то, что номера приборов идут подряд один за другим, между блоками данных присутствуют последовательности 00h, 40h. Вопрос в том, несут ли они однозначную смысловую нагрузку и следует ли рассматривать эту пару байтов как сепаратор между показаниями соседних приборов?

  8. #8
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,243

    По умолчанию

    нет, комбинация 00, 40, 41, D0 дает значение 26,0°, потому что тип REAL это четырехбайтовая переменная, почему постоянно в каждом канале 0040, так потому что такие особенности формирования флоат

  9. #9
    Пользователь Аватар для Friencis
    Регистрация
    15.11.2010
    Адрес
    г. Бийск, инженер
    Сообщений
    23

    По умолчанию

    Байты данных — это 41, D0, 1A, 27, что даёт 26,01°. А перед этими четырьмя байтами пара 0040.

  10. #10
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,243

    По умолчанию

    ну значит смотреть надо как Вы сконфигурировали сам мсд, может у Вас сперва идет ворд потом реал. Главное, раз Вы запрашиваете 120 слов, то это количество и получаете или нет? Если все соответствует, смотрите конфиги архиватора

Похожие темы

  1. программа построения графиков данных от МСД-200
    от Анисим в разделе Сервисное ПО
    Ответов: 1
    Последнее сообщение: 21.12.2012, 16:27
  2. Обмен данными по ModBus
    от Vladimir_O в разделе ПЛК1хх
    Ответов: 15
    Последнее сообщение: 30.11.2012, 13:36
  3. Обмен данными по Modbus TCP/IP
    от tea в разделе ПЛК1хх
    Ответов: 9
    Последнее сообщение: 05.08.2011, 09:52
  4. Тормозит обмен по Modbus
    от Алексей Дмитриев в разделе ПЛК63/73
    Ответов: 14
    Последнее сообщение: 23.04.2011, 12:27
  5. Ответов: 9
    Последнее сообщение: 05.11.2009, 09:40

Ваши права

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