Страница 2 из 2 ПерваяПервая 12
Показано с 11 по 20 из 20

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

  1. #11

    По умолчанию

    Цитата Сообщение от Васильев Посмотреть сообщение
    скиньте пожалуйста ссылку на ваш FB
    Я ненавижу невежественность и невнимательность.
    Мои FB и готовый пример лежит в первой странице моей темы, на которую ссылался kondor3000, причём уже даже советовал открыть первую страницу моей темы, цитирую
    Цитата Сообщение от kondor3000 Посмотреть сообщение
    По моей ссылке, откройте 1 сообщение, там Cs-Cs всё расписал про байты, порядок байт в целочисленных и Float
    Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живёте. © Steve McConnell
    Мой рабочий блог со статьями про щиты и автоматику ОВЕН - Cs-Cs.Net | Почта: Info@Cs-Cs.Net

  2. #12

    По умолчанию

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

    для уточнения моего вопроса будем ждать прибор и посмотрим на железе, что и как передается
    постараюсь выложить здесь..
    Большое спасибо.
    Так всем брейк, не надо нервничать)))
    Распишу по порядку
    1) Вы пропустили ( вероятно), что в передаче через STRING порядок не меняется.
    2) Техподдержка, вероятно ответила про обычную конфигурацию, где меняется порядок регистров и байт по Модбас.

    Вот и вся проблема, выложенные проекты проверены, можете повторить и проверить сами. Мой проет проверяли уже раз сто, никто проблем не нашёл)))
    Последний раз редактировалось kondor3000; 25.07.2023 в 15:56.

  3. #13

    По умолчанию

    Благодарю.

  4. #14

    По умолчанию

    Меня БЕСЯТ невежды. У меня в той теме лежит готовый пример, рабочий.
    Нет, надо всем повыносить мозги, (мне ещё и в личку понаписать), наговорить на две страницы темы - и про пример забыть.
    Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живёте. © Steve McConnell
    Мой рабочий блог со статьями про щиты и автоматику ОВЕН - Cs-Cs.Net | Почта: Info@Cs-Cs.Net

  5. #15
    Пользователь
    Регистрация
    23.09.2008
    Адрес
    Центророссийск
    Сообщений
    2,251

    По умолчанию

    Цитата Сообщение от kondor3000 Посмотреть сообщение
    ..в передаче через STRING порядок не меняется.)
    Увы )) Меняется. От сетевого к машинному.
    Не меняется через modbus.lib в buffer

  6. #16

    По умолчанию

    Прошу помощи. все устройства пришли
    1. на столе собрал связку плк110-30 (мастер) + 4 МВ110-8А (слайв).
    2. МВ110-8А настроены через конфигуратор (адреса заданы, типы датчиков определены, параметры modbus заданы)
    3. создаю тестовый проект ПЛК110-30
    https://disk.yandex.ru/i/3WCEZavcfY-UEA
    4. тестовая программа получает доступ к элементам стринг, отображает последний адрес устройства modbus и ошибку
    5. нет никакой активности по modbus

    подскажите пожалуйста, что упустил?

  7. #17

    По умолчанию

    Цитата Сообщение от Васильев Посмотреть сообщение
    Прошу помощи. все устройства пришли
    1. на столе собрал связку плк110-30 (мастер) + 4 МВ110-8А (слайв).
    2. МВ110-8А настроены через конфигуратор (адреса заданы, типы датчиков определены, параметры modbus заданы)
    3. создаю тестовый проект ПЛК110-30
    https://disk.yandex.ru/i/3WCEZavcfY-UEA
    4. тестовая программа получает доступ к элементам стринг, отображает последний адрес устройства modbus и ошибку
    5. нет никакой активности по modbus

    подскажите пожалуйста, что упустил?
    Вот ваша программа, где у вас 4 модуля? Что у вас за байты в основной программе и что вы сделали в ФБ Opros_MVA ? а=в это что такое? 1 а и в.jpg
    А вот что должно быть
    Код:
    w_1:=ADR(Str14);     (*Начальный адрес  в массиве  WORD *)
    w_2:=ADR(Str58);
    Вложения Вложения
    Последний раз редактировалось kondor3000; 30.07.2023 в 13:57.

  8. #18

    По умолчанию

    это просто тест, и переменные просто для ознакомления с codesys ни какого смысла в них нет
    меня интересует почему нет обмена по модбус, должно быть периодическое считывание со slave устройства и
    в переменой LastAdress должен быть адрес последнего опрощенного устройства и ошибка если устройства нет.
    у меня в них значение всегда 0.

    сейчас создал проект с нуля по чтению одного регистра по инструкции
    https://cs-cs.net/plk-oven-110-programmiruem-na-codesys

    всё работает, обмен начался..

    Благодарю всех.
    Последний раз редактировалось Васильев; 30.07.2023 в 15:15.

  9. #19

    По умолчанию

    Цитата Сообщение от Васильев Посмотреть сообщение
    это просто тест, и переменные просто для ознакомления с codesys ни какого смысла в них нет
    меня интересует почему нет обмена по модбус, должно быть периодическое считывание со slave устройства и
    в переменой LastAdress должен быть адрес последнего опрощенного устройства и ошибка если устройства нет.
    у меня в них значение всегда 0.
    Так возьмите пример, и ничего не переделывая проверьте, поменяйте конфигурацию под свой ПЛК и поставьте адрес своего МВ8А

    Вот повыкидывал, всё что не работало, проверьте адрес МВ8А ( в программе 31) подключите 1 блок к RS-485-2 и проверьте, все переменные будут в глобальных

    Зачем скорость поставили 9600, у вас ведь 4 блока, и поллинг 300 ms ? Вот зачем это ?
    Вложения Вложения
    Последний раз редактировалось kondor3000; 30.07.2023 в 15:19.

  10. #20

    По умолчанию

    и так информация для начинающих (как и я)

    в МВ110-08А порядок следования байт при считывании регистров сначала младший, потом старший байт;
    для значения температуры в формате Float32 в регистре 4 передаётся порядок и старшая часть мантиссы (сначала младший байт, потом старший)
    в регистре 5 передаётся младшая часть мантиссы (сначала младший байт, потом старший)

    в стандартном представлении чисел Float32 в памяти мк сначала идёт младшая часть мантиссы, потом порядок и старшая часть,
    поэтому при получении данных с МВ110-8а необходимо слова переставить местами.

    считываем данные для 4 датчиков через строковую переменную,
    копируем в массив temp данные для одного датчика, через указатель типа word,
    температуру в формате Float32 получаем путём копирования, через указатель типа word:

    ptr:=ADR(var_real);
    ptr^[0]:=temp[5];
    ptr^[1]:=temp[4];

    параметр Byte Sequence (trace_mode и native) при конфигурировании ModBus влияет только на порядок байт в слове при считывании Real input module (сам проверил и находил в каком-то мануле).

    Спасибо большое.

Страница 2 из 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

Ваши права

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