Показано с 1 по 10 из 1642

Тема: CODESYS V3.5. Настройка обмена с другими устройствами (Modbus, ОВЕН, OPC и др.)

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    По умолчанию

    Добрый день. Столкнулся со следующей проблемой: Для обмена по ModBus использую библиотеку OwenCommunication, при перезагрузке ПЛК функциональный блок MB_SerialRequest завершается с ошибкой 12 (WRONG_PARAMETER). Однако, если не перезагружать ПЛК, а только перезалить софт и запустить программу, то все работает корректно, никаких ошибок не возникает. Куда можно копать, чтобы понять в чем проблема?

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

    По умолчанию

    Цитата Сообщение от SemAndr Посмотреть сообщение
    Добрый день. Столкнулся со следующей проблемой: Для обмена по ModBus использую библиотеку OwenCommunication, при перезагрузке ПЛК функциональный блок MB_SerialRequest завершается с ошибкой 12 (WRONG_PARAMETER). Однако, если не перезагружать ПЛК, а только перезалить софт и запустить программу, то все работает корректно, никаких ошибок не возникает. Куда можно копать, чтобы понять в чем проблема?
    Добрый день.
    Сколько экземпляров ФБ вы используете в программе?

  3. #3

    По умолчанию

    Цитата Сообщение от Евгений Кислов Посмотреть сообщение
    Добрый день.
    Сколько экземпляров ФБ вы используете в программе?
    3 экземпляра (экземпляр - это объявление переменной данного типа, верно?). Для чтения вызывается 5 раз. Первый раз 1 экземпляр, остальные 4 раза другой экземпляр. Для записи вызывается третий экземпляр (7 раз вызов происходит)

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

    По умолчанию

    Цитата Сообщение от SemAndr Посмотреть сообщение
    3 экземпляра (экземпляр - это объявление переменной данного типа, верно?). Для чтения вызывается 5 раз. Первый раз 1 экземпляр, остальные 4 раза другой экземпляр. Для записи вызывается третий экземпляр (7 раз вызов происходит)
    Выложите, пожалуйста, проект и пошаговое описание, как с его помощью воспроизвести эту проблему.

  5. #5

    По умолчанию

    Цитата Сообщение от Евгений Кислов Посмотреть сообщение
    Выложите, пожалуйста, проект и пошаговое описание, как с его помощью воспроизвести эту проблему.
    https://disk.yandex.ru/d/Lh3KhEVIeO9ASg - ссылка на проект.

    Описание:
    Записываем проект на ПЛК. Создаем загрузочное приложение. После чего перезагружаем ПЛК путем сброса питания. После загрузки общение по ModBus не происходит. Подключаемся к ПЛК из Кодесис, смотрим имя ошибки.

    Далее, перезаписываем прошивку. Запускаем программу. ModBus работает корректно, никаких ошибок нет.

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

    По умолчанию

    Цитата Сообщение от SemAndr Посмотреть сообщение
    https://disk.yandex.ru/d/Lh3KhEVIeO9ASg - ссылка на проект.

    Описание:
    Записываем проект на ПЛК. Создаем загрузочное приложение. После чего перезагружаем ПЛК путем сброса питания. После загрузки общение по ModBus не происходит. Подключаемся к ПЛК из Кодесис, смотрим имя ошибки.

    Далее, перезаписываем прошивку. Запускаем программу. ModBus работает корректно, никаких ошибок нет.
    Спасибо, я проверю у себя и отпишусь.

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

    По умолчанию

    Цитата Сообщение от SemAndr Посмотреть сообщение
    https://disk.yandex.ru/d/Lh3KhEVIeO9ASg - ссылка на проект.

    Описание:
    Записываем проект на ПЛК. Создаем загрузочное приложение. После чего перезагружаем ПЛК путем сброса питания. После загрузки общение по ModBus не происходит. Подключаемся к ПЛК из Кодесис, смотрим имя ошибки.

    Далее, перезаписываем прошивку. Запускаем программу. ModBus работает корректно, никаких ошибок нет.
    Объявите cpCharger не в RETAIN переменных, а в локальных (VAR ... END_VAR) - это решит вашу проблему.

  8. #8

    По умолчанию

    Цитата Сообщение от Евгений Кислов Посмотреть сообщение
    Объявите cpCharger не в RETAIN переменных, а в локальных (VAR ... END_VAR) - это решит вашу проблему.
    Это помогло. Спасибо! А в чем причина? Можно предположить, допустим, что значение дескриптора порта остается старым, так как переменная хранится в независимой памяти, но при инициализации она должна перезаписаться, так как инициализация ModBus производится каждый раз при запуске.

Похожие темы

  1. Настройка ПР200, управление 3-мя устройствами через RS-485
    от Orbes в разделе Среда программирования OWEN Logic
    Ответов: 20
    Последнее сообщение: 15.05.2017, 16:45
  2. СП3ХХ Пример настройка обмена с ПЛК на CODESYS 2.3
    от Denis_Kay в разделе Панели оператора (HMI)
    Ответов: 6
    Последнее сообщение: 02.03.2017, 15:12
  3. Ответов: 43
    Последнее сообщение: 13.04.2015, 14:05
  4. Универсальная функция для обмена с устройствами OwenIO и всеми любимый LabView.
    от Алексей Крагель в разделе Помощь Разработчикам
    Ответов: 0
    Последнее сообщение: 30.05.2014, 13:38

Ваши права

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