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

Тема: Не правильные значения переменных при передачи по протоколу Modbus (ПЛК210 - ПК)

  1. #1

    По умолчанию Не правильные значения переменных при передачи по протоколу Modbus (ПЛК210 - ПК)

    Здравствуйте.
    Пишу обмен ПЛК 210 с программой на ПК по протоколу Modbus TCP. ПЛК выступает в роли slave. Столкнулся с такой проблемой, что при обмене значения переменных имеют не верное значения.
    В Codesys есть переменная типа REAL, с помощью функции REAL_TO_WORD2 конвертирую в два значения WORD и передаю по modbus на ПК. С пк считываю значение как float и оно имеет не верное значение. Например передаю с плк 12 а приходит 2,3....
    Пробовал передавать значение типа int, но все равно происходит расхождение значений.

    Помогите пожалуйста настроить обмен.
    Изображения Изображения

  2. #2

    По умолчанию

    Цитата Сообщение от Xasya Посмотреть сообщение
    Здравствуйте.
    Пишу обмен ПЛК 210 с программой на ПК по протоколу Modbus TCP. ПЛК выступает в роли slave. Столкнулся с такой проблемой, что при обмене значения переменных имеют не верное значения.
    В Codesys есть переменная типа REAL, с помощью функции REAL_TO_WORD2 конвертирую в два значения WORD и передаю по modbus на ПК. С пк считываю значение как float и оно имеет не верное значение. Например передаю с плк 12 а приходит 2,3....
    Пробовал передавать значение типа int, но все равно происходит расхождение значений.

    Помогите пожалуйста настроить обмен.
    Float это 32 битная переменная ( 2 регистра WORD или 4 байта), при не правильном отображении надо поменять местами регистры ( байты)
    Для начала поменяйте местами WORD-ы.
    У меня из числа 12.0 при перестановке регистров получилось 2.340729e-041
    Последний раз редактировалось kondor3000; 29.07.2023 в 17:15.

  3. #3

    По умолчанию

    Поменял местами WORD, теперь значение на ПК стало 3,015625, но не 12 Во вложении скриншот регистров во время отладки
    Изображения Изображения

  4. #4

    По умолчанию

    Так же я пробовал с типом INT используя один регистр WORD. Все равно не правильно значение передается. Может у вас есть рабочий пример, буду очень благодарен?

  5. #5

    По умолчанию

    Цитата Сообщение от Xasya Посмотреть сообщение
    Так же я пробовал с типом INT используя один регистр WORD. Все равно не правильно значение передается. Может у вас есть рабочий пример, буду очень благодарен?
    У вас нормальный пример и проблема в перестановке регистров и байт, (при условии, что адрес регистров правильный) надо найти правильную комбинацию их всего 4. Вот скрин с вариантами 1 Перестановка регистров и байт.jpg
    Правильное число получено при перестановке регистров 123.4568
    Скачайте Овен ОРС сервер, дело 2 минут, добавьте свой флоат, там есть переставить регистры и переставить байты и проверьте https://owen.ru/product/new_opc_server

    Если у вас и целочисленное INT не правильно отображается, то ещё и байты надо переставить.
    В вашей программе тоже должна быть перестановка.
    Вот скрин с вашим числом 12, всё как у вас 1 Число 12.jpg
    Кстати байты можно переставить и у вас в программе, вместо FALSE поставить TRUE на входе блока 1 POU.png
    Последний раз редактировалось kondor3000; 29.07.2023 в 20:00.

  6. #6

    По умолчанию

    Цитата Сообщение от kondor3000 Посмотреть сообщение
    У вас нормальный пример и проблема в перестановке регистров и байт, (при условии, что адрес регистров правильный) надо найти правильную комбинацию их всего 4. Вот скрин с вариантами 1 Перестановка регистров и байт.jpg
    Правильное число получено при перестановке регистров 123.4568
    Скачайте Овен ОРС сервер, дело 2 минут, добавьте свой флоат, там есть переставить регистры и переставить байты и проверьте https://owen.ru/product/new_opc_server

    Если у вас и целочисленное INT не правильно отображается, то ещё и байты надо переставить.
    В вашей программе тоже должна быть перестановка.
    Вот скрин с вашим числом 12, всё как у вас 1 Число 12.jpg
    Кстати байты можно переставить и у вас в программе, вместо FALSE поставить TRUE на входе блока 1 POU.png
    Спасибо большое. Помогло.

Похожие темы

  1. ПЛК210 неправильные значения 485
    от asuyangpur в разделе ПЛК2хх
    Ответов: 6
    Последнее сообщение: 24.05.2022, 09:32
  2. Ответов: 0
    Последнее сообщение: 16.10.2019, 19:13
  3. Ответов: 2
    Последнее сообщение: 01.09.2016, 12:18
  4. Ответов: 1
    Последнее сообщение: 26.11.2012, 10:54
  5. Ответов: 1
    Последнее сообщение: 26.11.2012, 10:54

Ваши права

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