Страница 1 из 4 123 ... ПоследняяПоследняя
Показано с 1 по 10 из 31

Тема: Выходные данные с электросчётчика Меркурий

  1. #1
    Пользователь Аватар для Сема
    Регистрация
    17.12.2011
    Адрес
    Армавир
    Сообщений
    567

    По умолчанию Выходные данные с электросчётчика Меркурий

    Добрый вечер, уважаемые коллеги.

    Ну помогите мне пожалуйста, я не могу разобраться с одной вещью. Я пытаюсь подружить СПК207.03.WEB с электросчётчиком Меркурий 234 ART-03 P.

    Открыть ком порт и опросить Меркурий через Mercury.lib вроде удалось, но я совсем не понимаю, что мне надо сделать с данными с выхода блока data_buffer. Я понимаю, что байты нужно склеить в определённом порядке. Но я не понимаю в каком. Я прилагаю все скриншоты, в том числе и на инструкцию по протоколу Меркурия. У меня не получилось сделать так, чтобы он вывел мне в real значение напряжения в 1 фазе.

    Про описание запроса и ответа напряжения в инструкции начинается со страницы 53. Очень нужна ваша помощь, спасибо!
    Изображения Изображения
    Вложения Вложения
    kipiaplc.ru - приходите, будет интересно...

  2. #2
    Пользователь
    Регистрация
    24.07.2012
    Адрес
    Россия
    Сообщений
    1,492

    По умолчанию

    Там переменная должна получиться из 4х байт не REAL, а dword, её потом просто поделить на 100 надо.
    Просто 4 байта надо положить в dword, можно со сдвигом поиграться, можно умножать на 256.

    у меня ток на 1 фазе, но к вольтам порядок байт наверное такой же, и я беру с массива полного ответа, поэтому не с 0.
    DWORD = SHL(BYTE_TO_DWORD(rx_buffer[2]),24) + SHL(BYTE_TO_DWORD(rx_buffer[1]),16) + SHL(BYTE_TO_DWORD(rx_buffer[4]),8) + BYTE_TO_DWORD(rx_buffer[3]);

  3. #3
    Пользователь Аватар для Сема
    Регистрация
    17.12.2011
    Адрес
    Армавир
    Сообщений
    567

    По умолчанию

    Цитата Сообщение от Scream Посмотреть сообщение
    Там переменная должна получиться из 4х байт не REAL, а dword, её потом просто поделить на 100 надо.
    Просто 4 байта надо положить в dword, можно со сдвигом поиграться, можно умножать на 256.

    у меня ток на 1 фазе, но к вольтам порядок байт наверное такой же, и я беру с массива полного ответа, поэтому не с 0.
    DWORD = SHL(BYTE_TO_DWORD(rx_buffer[2]),24) + SHL(BYTE_TO_DWORD(rx_buffer[1]),16) + SHL(BYTE_TO_DWORD(rx_buffer[4]),8) + BYTE_TO_DWORD(rx_buffer[3]);
    То есть, у меня всё остальное правильно, система сама у меня работает, а сдвигать зачем??
    kipiaplc.ru - приходите, будет интересно...

  4. #4
    Пользователь
    Регистрация
    24.07.2012
    Адрес
    Россия
    Сообщений
    1,492

    По умолчанию

    Цитата Сообщение от Сема Посмотреть сообщение
    а сдвигать зачем??
    Какие есть варианты положить 4 отдельных байта в одно двойное слово?

  5. #5
    Пользователь Аватар для Сема
    Регистрация
    17.12.2011
    Адрес
    Армавир
    Сообщений
    567

    По умолчанию

    А почему четыре байта, если в документации указано три? Не могу сообразить..
    kipiaplc.ru - приходите, будет интересно...

  6. #6

    По умолчанию

    возьмите dword переменную. положите со двигом три принятых байта (как Вам показал тов. Scream ) четверый байт у Вас будет пустым == 0 , далее число преобразуете в real и делите на 100

  7. #7
    Пользователь
    Регистрация
    24.07.2012
    Адрес
    Россия
    Сообщений
    1,492

    По умолчанию

    Цитата Сообщение от Сема Посмотреть сообщение
    А почему четыре байта, если в документации указано три? Не могу сообразить..
    Потому что у меня было 4
    я показал 99% решения, осталось подумать на 1% и подставить свои данные.

  8. #8
    Пользователь Аватар для Сема
    Регистрация
    17.12.2011
    Адрес
    Армавир
    Сообщений
    567

    По умолчанию

    Цитата Сообщение от Scream Посмотреть сообщение
    Потому что у меня было 4
    я показал 99% решения, осталось подумать на 1% и подставить свои данные.
    А, я понял, я думал, что это важно. спасибо..
    kipiaplc.ru - приходите, будет интересно...

  9. #9
    Пользователь Аватар для Сема
    Регистрация
    17.12.2011
    Адрес
    Армавир
    Сообщений
    567

    По умолчанию

    Чё-то у меня не получилось, как мне надо расположить байты, чтобы получить 220 В. В каком порядке? Я пробовал во всех комбинациях.
    Изображения Изображения
    kipiaplc.ru - приходите, будет интересно...

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

    По умолчанию

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

Страница 1 из 4 123 ... ПоследняяПоследняя

Похожие темы

  1. Ответов: 9
    Последнее сообщение: 09.03.2017, 09:53
  2. Ответов: 2
    Последнее сообщение: 14.07.2015, 10:47
  3. Меркурий 230+Меркурий-энергоучет+ПМ-1
    от AJR в разделе Эксплуатация
    Ответов: 13
    Последнее сообщение: 23.12.2013, 10:47
  4. ПЛК-150 ТРМ-138 выходные реле
    от незарегистрированный в разделе Сетевые технологии
    Ответов: 0
    Последнее сообщение: 19.04.2007, 13:25
  5. ПЛК-150 ТРМ-138 выходные реле
    от незарегистрированный в разделе Эксплуатация
    Ответов: 0
    Последнее сообщение: 19.04.2007, 13:25

Ваши права

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