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

Тема: Подключение по Modbus TCP Slave к панели оператора. Сброс регистров после выключения

  1. #1

    По умолчанию Подключение по Modbus TCP Slave к панели оператора. Сброс регистров после выключения

    Здравствуйте, подключаю панель оператора (Modbus TCP Master) к плк 210 (Modbus TCP Slave) с последней прошивкой под SP16.

    Тестовый проект, несколько переменных как в обучающем видео и вебинаре.
    Все работает, но holding регистры после остановки или отключения питания контроллера сбрасываются на ноль. Переменные Retain работают нормально, как только привязываю одну из них к регистру, то эта переменная начинает сбрасываться на 0. Так и должно быть?
    Не очень понятно тогда как работать с настройками, которые должны быть изменены с панели оператора... Если после отключения питания они стираются.

    и второй вопрос, Slave ID (или Unit ID) можно поменять (в sp16)? Связь работает только с 0, а где изменить я не нашел.

  2. #2
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    12,147

    По умолчанию

    Цитата Сообщение от hermano Посмотреть сообщение
    Здравствуйте, подключаю панель оператора (Modbus TCP Master) к плк 210 (Modbus TCP Slave) с последней прошивкой под SP16.

    Тестовый проект, несколько переменных как в обучающем видео и вебинаре.
    Все работает, но holding регистры после остановки или отключения питания контроллера сбрасываются на ноль. Переменные Retain работают нормально, как только привязываю одну из них к регистру, то эта переменная начинает сбрасываться на 0. Так и должно быть?
    Не очень понятно тогда как работать с настройками, которые должны быть изменены с панели оператора... Если после отключения питания они стираются.

    и второй вопрос, Slave ID (или Unit ID) можно поменять (в sp16)? Связь работает только с 0, а где изменить я не нашел.
    Добрый день.

    Так и должно быть?
    Да.
    Вы можете настроить Modbus TCP Slave через библиотеку OwenCommunication - тогда можно будет объявить данные слэйва как RETAIN и они не будут обнуляться при перезагрузке.
    https://youtu.be/Cv9kxIT1eOA?t=4947

    и второй вопрос, Slave ID (или Unit ID) можно поменять (в sp16)? Связь работает только с 0, а где изменить я не нашел.
    В SP16 слэйв отвечает только на запросы с Unit ID = 0 и 255. Изменить это поведение нельзя.
    В более старых и более новых версиях - отвечает на запросы с любыми Unit ID.

    Опять же, если использовать OwenCommunucation - можно задать слэйву конкретный Unit ID.

  3. #3

    По умолчанию

    Большое спасибо!

  4. #4

    По умолчанию

    Сделал проект на OwenCommunication. Все работает.
    В вашем примере в функцию MB_TcpSlave передается указатель на буфер, который состоит из массива слов. И для того чтобы передать туда переменные типа Bool и Real используются функции преобразования.
    Я использовал вместо массива слов структуру с Bit, int, real и т.д. и передаю указатель на нее. Все работает нормально и не надо преобразования делать. Можно сразу использовать данные из буфера или просто копировать их.
    Может быть есть какие-то подводные камни при использовании структур вместо массива в этой функции?

  5. #5
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    12,147

    По умолчанию

    Цитата Сообщение от hermano Посмотреть сообщение
    Сделал проект на OwenCommunication. Все работает.
    В вашем примере в функцию MB_TcpSlave передается указатель на буфер, который состоит из массива слов. И для того чтобы передать туда переменные типа Bool и Real используются функции преобразования.
    Я использовал вместо массива слов структуру с Bit, int, real и т.д. и передаю указатель на нее. Все работает нормально и не надо преобразования делать. Можно сразу использовать данные из буфера или просто копировать их.
    Может быть есть какие-то подводные камни при использовании структур вместо массива в этой функции?
    Из подводных камней - выравнивание в структурах, об этом рассказывается в видео по ссылке выше.
    Вообще, использовать структуру в качестве карты регистров слэйва - очень удобный и разумный подход.

  6. #6

    По умолчанию

    Теперь понял, я смотрел видео с сайта, а вашу ссылку не заметил. На сайте ссылка на другое видео с массивами.

Похожие темы

  1. Ответов: 12
    Последнее сообщение: 07.12.2021, 14:01
  2. Ответов: 1
    Последнее сообщение: 01.03.2021, 12:16
  3. Сброс счетчика после передачи по Modbus - как сделать?
    от K123 в разделе Программируемые реле
    Ответов: 22
    Последнее сообщение: 09.10.2020, 11:25
  4. Адресация регистров Modbus-RTU, ПЛК(Slave)
    от Лёша в разделе ПЛК1хх
    Ответов: 15
    Последнее сообщение: 03.07.2019, 08:02
  5. Ответов: 3
    Последнее сообщение: 22.03.2010, 14:11

Ваши права

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