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

Тема: СПК110 Modbus TCP обмен с модулями ввода/вывода

  1. #1

    По умолчанию СПК110 Modbus TCP обмен с модулями ввода/вывода

    Добрый день,
    Описание проблемы:
    • Контроллер СПК110
    • SMC EX600
    • И модули ввода/вывода МВ210


    Все они соединены между собой по Modbus TCP
    Внутри CODESYS все настроено, проверено с помощью руководств и FAQов, но есть нюанс...
    Обмен который происходит по Modbus TCP выполняется медленно на практике, и запуске ПЛК всегда есть ошибки на модуле SMC EX600 (ошибки появляются не сразу)
    Сам обмен настроен так:
    У ПЛК цикл выполнения задач = 25мс
    у ОВЕН модулей МВ210 - дискретные = 25мс, у аналогового 400мс
    у EX600 тоже обмен стоит по 25мс
    Итого на практике получается следующее:
    При включении выхода на МВ210 или на EX600, с панели через кнопку - задержка по сути только визуальная, которая складывается из времени цикла визуализации и реакции системы.
    Иными словами если я включу один выход на МВ210 или на EX600, руками с панели - проблем особо нет.
    Однако в рамках технологии мне нужно на EX600, одновременно включить 4ре выхода на разных адресах в модуле. И тут начинается проблема - это по сути невозможно сделать.
    Как проверялось - я сделал цикл 100мс/500мс/1000мс (как это сделано написано в отдельной ветке форума, потому что и там тоже не гладко)
    ***
    Сразу оговорка по Фрейду - мои действия в настройке программы могут быть ошибочны или не правильными, поэтому я пытаюсь понять, что не так в моих действиях или что не так в настройках ПО
    ***
    Собственно поставил 4 бита разных адресов, включаться каждую секунду - результат включение рандомно, то 1 выход, то 2 выхода, то 1 и 3й выход включаться - одновременно их включить не получается
    Попробовал уменьшить время до 500мс - тоже самое
    Пробовал на МВ210-403 - тоже самое
    Вспомнил то как когда то вручную писал обмен на Segnetics, для Modbus RTU, там нужно было прям прописать байтами запрос и получив байтовый ответ, разобрать его.
    Тут ситуация иная - в самом CODESYS есть возможность привязки переменных, что я и сделал.
    Привязал битовые данные к выходам (ниже будет вырезка из EX600)
    Пробовал использовать запись по коду 05 или 15 - разницы нет, результат один и тот же.

    Единственное, что не пробовал - так это, привязывать цикл шины к задаче, но об этом ниже - вопросы.

    Картинки того как настроено все - ниже
    Screenshot 2024-12-03 070959.png
    Screenshot 2024-12-03 071120.png

    Вопросы:
    1. Допускается ли использование битовых переменных при обмене по Modbus TCP именно в CODESYS?
    2. Есть ли разница при записи через код 5 или код 15 при использовании битовых переменных?
    Тут вопрос, про код 15 больше, так как я изменяю 1 бит в low byte, остальные не трогаю - по сути изменения записываются сами средствами ПЛК - или это не так?
    3. нужно ли привязать цикл шины к циклу ПЛК, например к main_prg?
    4. Более "абстрактный" вопрос - в чем может быть причина асинхронной работы модулей вывода?
    Вопрос касается поведения описанного выше. Я беру 4 бита из адресного пространства 0х0000 / 0х0010 / 0х0020 - и получаю глюки, вместо одновременного включения.

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

    По умолчанию

    Добрый день.

    1. Да.
    2. С точки зрения ПЛК - никакой принципиальной разницы нет.
    Функция 15 позволяет записать несколько бит одним запросом, функция 05 записывает каждый бит отдельным запросом.
    Основной вопрос к SMC EX600 - позволяет ли он записать все 4 нужных вам бита одним запросом.
    3. https://ftp.owen.ru/CoDeSys3/98_Book...kManagment.pdf (п. 4, п. 8)

    Напишите мне в телеграм (см. в подписи) или на support@owen.ru - разберемся, что происходит в вашей конкретной ситуации.

  3. #3

    По умолчанию

    Цитата Сообщение от Евгений Кислов Посмотреть сообщение
    Добрый день.

    1. Да.
    2. С точки зрения ПЛК - никакой принципиальной разницы нет.
    Функция 15 позволяет записать несколько бит одним запросом, функция 05 записывает каждый бит отдельным запросом.
    Основной вопрос к SMC EX600 - позволяет ли он записать все 4 нужных вам бита одним запросом.
    3. https://ftp.owen.ru/CoDeSys3/98_Book...kManagment.pdf (п. 4, п. 8)

    Напишите мне в телеграм (см. в подписи) или на support@owen.ru - разберемся, что происходит в вашей конкретной ситуации.
    Напишу
    Руководство по циклам - это первое, что я прочитал)
    EX600 по идее позволяет. По крайней мере ограничений внутри руководства я не нашел.
    да и логика работы их модуля одинакова на всех протоколах (PROFIBUS/PROFINET/CAN и т.д.)

  4. #4

    По умолчанию

    Цитата Сообщение от Unreality Посмотреть сообщение
    Напишу
    Руководство по циклам - это первое, что я прочитал)
    EX600 по идее позволяет. По крайней мере ограничений внутри руководства я не нашел.
    да и логика работы их модуля одинакова на всех протоколах (PROFIBUS/PROFINET/CAN и т.д.)
    ***
    Итого получилось сделать так
    Чтение и запись сделал 2мя командами соответственно
    На чтение идет 4 байта
    На запись (код 15) идет 4 байта

    Время опроса для всех модулей установил равным 250 мс
    У аналогового модуля - 600мс (чтобы стабилизировать сигнал по инструкции)
    В итоге получился разбег от 250 мс до 600 мс время опроса для 4х модулей ввода вывода

    Отрабатывает отлично
    пропусков в командах нет.

    ***
    Однако появился нюанс с точки зрения ошибок по соединению - модуль EX600 начал в произвольный момент времени отваливаться. То есть СПК110 сообщает что ошибка SLAVE. Её сбрасываешь и все едет дальше.
    В поддержку написал, жду ответа. Думаю это обсуждать в этой теме не стоит.

Похожие темы

  1. Ответов: 8
    Последнее сообщение: 12.05.2022, 19:32
  2. Проверка связи с модулями ввода\вывода
    от ind в разделе Среда программирования OWEN Logic
    Ответов: 3
    Последнее сообщение: 26.03.2022, 18:59
  3. Ответов: 1
    Последнее сообщение: 22.05.2017, 20:37
  4. Ответов: 43
    Последнее сообщение: 13.04.2015, 14:05
  5. Код для работы с модулями ввода-вывода
    от Ling-Ling в разделе ПЛК3xx (архив)
    Ответов: 3
    Последнее сообщение: 17.05.2011, 21:26

Ваши права

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