Страница 26 из 131 ПерваяПервая ... 1624252627283676126 ... ПоследняяПоследняя
Показано с 251 по 260 из 1308

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

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

    По умолчанию

    1. Надо заметить, что в мониторинге конфигуратора задач время отображется в микросекундах.
    2. В значительном числе случаев дефолтного времени (20 мс) для задачи пользовательского кода вполне хватает.
    Но если внезапно нет - то можно порекомендовать задавать его как (среднее время цикла в мониторинге, переведенное в мс * 1.25)
    3. В CODESYS 3.5 вытесняющая многозадачность. Все циклы так или иначе отработают полностью. Так что "маленькое" время цикла в значительном числе случаев действительно не критично.

    P.S. - на всякий случай: мс = миллисекунды (не микро)

  2. #252
    Пользователь
    Регистрация
    09.01.2017
    Адрес
    Киев
    Сообщений
    206

    По умолчанию

    Спасибо!
    То есть теоретически можно поставить обновление и 1 мс, и СПК будет работать нормально.
    Не совсем правда понятно, если любой цикл (рабочей программы/обмена РС485/визуализации) прервется на половине своей работы, "вытеснится" другой задачей...

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

    По умолчанию

    То есть теоретически можно поставить обновление и 1 мс, и СПК будет работать нормально.
    Нет, 1 мс - плохое решение. Начать следует с 20 мс. Далее можно смотреть по среднему времени реального цикла - если не укладывается, то повысить.

    Не совсем правда понятно, если любой цикл (рабочей программы/обмена РС485/визуализации) прервется на половине своей работы, "вытеснится" другой задачей...
    Представьте: вы 3 часа писали код, потом вам надоело (глаза устали), и вы решили сходить немного прогуляться. Теперь вы никогда не вернетесь домой и не допишите код?
    Наверное, нет (вернетесь и допишите).

    ПЛК выполняет задачи не последовательно одну за другой, а небольшими фрагментами (т.е. задачи постоянно переключаются). Время цикла и приоритет определяют, сколько единиц времени будет отдано той или иной задачи.

    В вашем случае достаточно поставить время цикла MainTask = 20 мс (тогда обмен будет идти нормально), а дальше в коде выполнять необходимые операции с нужной частотой, используя таймеры (см. библиотеку Standard).

  4. #254

    По умолчанию

    Добрый вечер!

    Первый раз пишу обмен по Modbus на Codesys 3.5, читал вот это краткое руководство - https://akytec.de/en/blog/modbus_kom...seinstellungen
    Есть СПК 107, конвертер Com<->Ethernet ЕТ-485 и Scada, которая вне проекта, в качестве отладки взял RapidScada.
    Нужно управлять СПК107 со стороны SCADA по Modbus TCP.
    Вопросы:
    1. В CDS один из Com-портов выделил под Modbus, его делать Master или Slave (Modbus_COM -> Modbus_Serial_Device)? По логике слейва достаточно, опрашивать СПК будет SCADA.
    2. Конвертер в этом случае должен быть мастером сети? В объекте Modbus_Serial_Device параметр Unit ID - это адрес СПК?
    3. Для передачи REAL значений в Modbus_Serial_Device на вкладке I/O Mapping нужно использовать <имя_переменной>.WordArray?
    4. Что еще почитать про обмен по Модбас, особенно когда используется конвертер, как у меня?

    Заранее спасибо!

  5. #255

  6. #256

    По умолчанию

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

    1. Да, Modbus Serial Device.
    2. Да.
    3, 4. Вам поможет этот документ:
    https://ftp.owen.ru/CoDeSys3/11_Docu...CADA_v.1.1.pdf

    В нем описывается, как опросить СПК через OPC. Настройка со стороны SCADA будет примерно такой же.
    Добрый день!

    Спасибо, с чтением более-менее, а запись командой 6 (Write Single Register) не работает.

    111.jpg

    На скрине две переменные, V0 и V1, объявлены обычно:
    VAR_GLOBAL
    V0:WORD;
    END_VAR

    PROGRAM PLC_PRG
    VAR
    V1:WORD;
    END_VAR
    Со стороны Скады пакеты такие:
    V0:
    Отправка (12): 00 00 00 00 00 06 01 06 00 00 00 64
    Приём (7/7): 00 00 00 00 00 06 01
    Приём (5/5): 06 00 00 00 64

    V1:
    Отправка (12): 00 00 00 00 00 06 01 06 00 01 00 C8
    Приём (7/7): 00 00 00 00 00 06 01
    Приём (5/5): 06 00 01 00 C8

    Если их распарсить, то все выглядит прилично, но в CDS ничего не меняется.

    Почему не работает, как думаете?

  7. #257

  8. #258

    По умолчанию

    Цитата Сообщение от Евгений Кислов Посмотреть сообщение
    А что должно меняться в CDS? Вы значение записываемой переменной меняете?
    Ну да, я ожидаю, что V0 и V1 примут переданные значения. А разве не так должно быть?

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

    По умолчанию

    Ваш конвертер умеет Modbus TCP в RTU преобразовывать?

    Желательно еще просниффить обмен со стороны RS-485.

    В настройках слэйва в CDS стоит галочка Таймаут?

  10. #260

    По умолчанию

    Цитата Сообщение от Евгений Кислов Посмотреть сообщение
    Логи выглядят странно. По идее, команда записи одного регистра занимает 8 байт.
    У вас - 7, и первый байт какой-то странный (я так понимаю у вас адрес слэйва 1, а не 6).
    Попробуйте для эксперимента в качестве мастера использовать какой-нибудь OPC-сервер (например, от ОВЕН или Insat).
    Ну я ровно этой же скадой писал в МУ110-224.16Р, кондей Митсубиси и еще какую-то штуковину крайний раз, только шлюз был MOXA.

    Пользуюсь вот этим парсером:

    http://modbus.rapidscada.net/

    Адрес слейва у меня 1, все верно, 6 - код команды Modbus.

    Попробовал командой 16:

    V0:
    Отправка (15): 00 00 00 00 00 09 01 10 00 00 00 01 02 00 64
    Приём (7/7): 00 00 00 00 00 06 01
    Приём (5/5): 10 00 00 00 01

    V1:
    Отправка (15): 00 00 00 00 00 09 01 10 00 01 00 01 02 00 64
    Приём (7/7): 00 00 00 00 00 06 01
    Приём (5/5): 10 00 01 00 01

    Результат такой же - в проекте переменные V0 и V1 не меняются.

    Вообще, в CDS отладка или логи по этому поводу есть какие-нибудь? Скада-то мне показывает что происходит с ее стороны, а вот из CDS я ничего не вижу.

Страница 26 из 131 ПерваяПервая ... 1624252627283676126 ... ПоследняяПоследняя

Похожие темы

  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, 14:38

Ваши права

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