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

Тема: CODESYS V3.5. Онлайн-FAQ

Древовидный режим

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

    По умолчанию COM#24. Как настроить обмен между ПЛК, программируемыми в CODESYS V3.5?

    Вопрос: как настроить обмен данными между несколькими ПЛК, программируемыми в CODESYS V3.5?
    Очевидно, что это можно сделать с помощью протокола Modbus TCP, но этот вариант является довольно трудоемким (настройка мастера и слэйвов, размещение данных в регистрах и т.д.)
    Нет ли более простых способов?

    Ответ: такие способы есть.

    1. Если один ПЛК должен передавать одни и те же данные на несколько других ПЛК, то можно использовать сетевые переменные (Network Variables).
    См. документацию (п. 3) и видеопример.

    2. Если один ПЛК должен считывать/записывать разные данные с одного или нескольких ПЛК, то можно использовать Менеджер источников данных (Data Source Manager).
    См. видеопример, доп. информацию для ПЛК2хх и информацию в онлайн-справке CODESYS:
    https://help.codesys.com/webapp/_cds...rsion=3.5.17.0
    https://help.codesys.com/webapp/_cds...rsion=3.5.17.0
    https://help.codesys.com/webapp/_cds...rsion=3.5.17.0

    Вопрос: Как в коде контролировать наличие связи через Data Source Manager?

    Ответ: это можно сделать с помощью глобальных переменных диагностики:

    • g_Datasources.<имя_источника_данных>Error (тип - Datasources.DataSourceError)
    • g_Datasources.<имя_источника_данных>State (тип - Datasources.DataSourceMonitoringState)


    Имя источника данных можно увидеть в дереве проекта (по умолчанию для первого источника данных это имя - Datasource).

    2021-10-01_8-49-33.png

    Перечисления для этих переменных объявлены в библиотеке Datasources, которая автоматически добавляется в проект вместе с менеджером источников данных:

    2021-10-01_8-55-53.png


    Вопрос: Как в коде контролировать наличие связи при использовании сетевых переменных?

    Ответ: это можно сделать с помощью глобальных переменных диагностики, которые автоматически генерируются в списке сетевых переменных.

    Для диагностики на стороне отправителя:

    необходимо в свойствах списка сетевых переменных на вкладке Свойства сети установить галочку Подтверждение для ожидания подтверждений от получателя.

    2021-10-01_9-21-43.png

    В случае обрыва связи в структуре NetVarTxDiag_UDP поле sLastError примет значение NetVarUDPError_NOACKNOWLEDGEMENT, а поле nErrorCount будет постоянно увеличиваться.

    2021-10-01_9-14-37.png

    Для диагностики на стороне получателя:

    В случае обрыва связи в структуре NetVarRxDiag_UDP значение полей nReceiveCount и tLastReceive "застынут" и перестанут изменяться.

    2021-10-01_9-17-44.png

Похожие темы

  1. Ответов: 1
    Последнее сообщение: 29.06.2017, 11:21

Ваши права

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