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

Тема: МВ110-224.8А порядок следования байт

  1. #1

    По умолчанию МВ110-224.8А порядок следования байт

    Подскажите пожалуйста порядок следования байт для МВ110-224.8А.
    (прибора пока нет, на руках проверить нет возможности)

    Собираем шкаф из 20 МВ110-224.8А и для ускорения опроса хотим сделать опрос каждого
    считыванием группы регистров методом string (на форуме есть несколько примеров, но информация не однозначная). Для разбора нужен порядок следования байт.

    1. при считывании регистра 0001 (целое значение измерения входа 1) порядок байт будет старший байт, младший байт (как в протоколе Modbus RTU) или наоборот?

    2. с плавающей точкой по адресу 0004 - будет старшее слово Float32, а по адресу 0005 будет младшее или наоборот?

    3. будут подключены датчики PT1000 (МВ110-224.8А будет сконфигурировано) в этом случае при считывании будет показание температуры или сопротивление ТС.

    Спасибо большее.
    Последний раз редактировалось Васильев; 25.07.2023 в 00:11.

  2. #2

    По умолчанию

    Для float 3 2 1 0 (старшим словом вперёд). Для целочисленных ничего специально задавать не нужно (и не можно).

  3. #3

    По умолчанию

    Цитата Сообщение от Васильев Посмотреть сообщение
    Подскажите пожалуйста порядок следования байт для МВ110-224.8А.
    (прибора пока нет, на руках проверить нет возможности)

    Собираем шкаф из 20 МВ110-224.8А и для ускорения опроса хотим сделать опрос каждого
    считыванием группы регистров методом string (на форуме есть несколько примеров, но информация не однозначная). Для разбора нужен порядок следования байт.
    Спасибо большее.
    Вот готовый пример считывания всех параметров с МВ110-8А, через String https://owen.ru/forum/showthread.php?t=35094#10
    Целочисленные будут как есть, в переменных Float, переставлены регистры, в программе уже есть их перестановка.
    Если входы блока сконфигурированы, будет выдаваться температура.
    При адаптации для вашего ПЛК , достаточно добавить в конфигурации 2 String, с настройками как в примере и ваш адрес модуля.
    Последний раз редактировалось kondor3000; 25.07.2023 в 08:52.

  4. #4

    По умолчанию

    Спасибо большое. Я читал ваши посты.
    установил таргет файл, ваш проект открылся.
    при приёме у вас не не меняется порядок байт (trace mode)

    значит МВА отправляет сначала младший байт, потом старший байт для переменной word?

    судя по вашему коду
    w1:=w_1^[1]; w2:=w_1^[7]; ..... (* Целочисленное значение без смещения INT *)

    а для Float32
    TWO_WORD_TO_REAL(wIn1:=w_1^[5] , wIn2:=w_1^[4] , rOut=>r1 );
    сначала старшее слово w_1^[4], потом младшее w_1^[5]?

    так?
    Последний раз редактировалось Васильев; 25.07.2023 в 09:21.

  5. #5

    По умолчанию

    Цитата Сообщение от Васильев Посмотреть сообщение
    Спасибо большое. Я читал ваши посты.
    установил таргет файл, ваш проект открылся.
    п
    а для Float32
    TWO_WORD_TO_REAL(wIn1:=w_1^[5] , wIn2:=w_1^[4] , rOut=>r1 );
    сначала старшее слово w_1^[4], потом младшее w_1^[5]?

    так?
    Это не совсем так, при передаче через String, порядок не меняется, как регистры лежат в модуле, так и считываются. Поэтому приходится их переставлять для Float32.
    Но вообще да, получается Float лежат старшим регистром вперёд.
    Если читать через конфигурацию, то настройку ставите Native и ПЛК сам переставляет регистры ( если надо).
    Например при связи ПЛК с панелью СП310, через String, ничего переставлять не надо, Float отображается правильно.
    Последний раз редактировалось kondor3000; 25.07.2023 в 10:25.

  6. #6

    По умолчанию

    совсем запутался..
    вот читаю данные в стринг без перестановки в модуле модбас с 0 регистра по 5
    посылка в буфере Buf будет такой ?

    Buf[1] = R0 старший байт,
    Buf[2] = R0 младший байт,
    Buf[3] = R1 старший байт,
    Buf[4] = R1 младший байт,
    Buf[5] = R2 младший байт,
    Buf[6] = R2 младший байт,
    Buf[7] = R3 старший байт,
    Buf[8] = R3 младший байт,

    Buf[9] = R4 старший байт, - старшее слово для Float32
    Buf[10] = R4 младший байт,
    Buf[11] = R5 старший байт, - младшее слово для Float32
    Buf[12] = R5 младший байт,

  7. #7

    По умолчанию

    Цитата Сообщение от Васильев Посмотреть сообщение
    совсем запутался..
    вот читаю данные в стринг без перестановки в модуле модбас с 0 регистра по 5
    посылка в буфере Buf будет такой ?
    ,
    По моей ссылке, откройте 1 сообщение, там Cs-Cs всё расписал про байты, порядок байт в целочисленных и Float

  8. #8

    По умолчанию

    сообщения Cs-Cs прочитал
    Cs-Cs всё расписал про байты, порядок байт в целочисленных и Float (спасибо большое), но опять такие Cs-Cs в своём коде пишет что младший байт идёт первым, а в техподдержке сегодня сказали что МВ110-8а передаёт данные старшим байтом вперёд...

    для уточнения моего вопроса будем ждать прибор и посмотрим на железе, что и как передается
    постараюсь выложить здесь..
    Большое спасибо.

  9. #9

    По умолчанию

    ....я расписал в том примере, которым ПЛК читаю через STRING.
    А ещё модули же обновились В моей инструкции от 2019 года написано что старшее слово передаётся в регистре с меньшим номером (старшим вперёд) как в ТехПоддержке и сказали.

    ...и вообще. Мать его! Раз речь идёт про STRING - значит это CodeSys 2.3.
    А значит можно взять мой ГОТОВЫЙ FB из моего примера - и прям накопировать всё на много модулей!

  10. #10

    По умолчанию

    может конечно не там читаю и уже туплю, но судя по коду в строке младший байт идёт первым
    CSParseMV8A.ValDigPoint := ((BYTE_TO_WORD(pBuffer[1]) OR SHL(BYTE_TO_WORD(pBuffer[2]), 8)));

    вы так и пишете..
    Младший байт (pBuffer[1]) идёт здесь первым, поэтому я его просто склеиваю через OR Старший байт идёт здесь вторым, поэтому его надо сдвинуть влево на 8 бит (из 16#0012 превратить в 16#1200) при помощи оператора SHR и снова склеить с нужным нам числом.


    скиньте пожалуйста ссылку на ваш FB
    Последний раз редактировалось Васильев; 25.07.2023 в 13:55.

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

Похожие темы

  1. Порядок прошивки модулей.
    от Serrk в разделе Мх210
    Ответов: 2
    Последнее сообщение: 02.07.2023, 21:25
  2. Порядок выполнения
    от Anatoly.snjrs в разделе ПЛК2хх
    Ответов: 1
    Последнее сообщение: 25.04.2022, 13:26
  3. Порядок байт FLoat в ПР200
    от KaScada в разделе Программируемые реле
    Ответов: 12
    Последнее сообщение: 02.09.2018, 00:37
  4. Порядок байт для STRING в CoDeSys
    от askaev в разделе ПЛК1хх
    Ответов: 4
    Последнее сообщение: 18.07.2016, 11:47
  5. Порядок расположения приборов
    от Qween в разделе Master SCADA 3
    Ответов: 3
    Последнее сообщение: 23.04.2013, 11:10

Ваши права

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