Страница 27 из 174 ПерваяПервая ... 1725262728293777127 ... ПоследняяПоследняя
Показано с 261 по 270 из 1735

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

  1. #261

    По умолчанию

    Я отредактировал свой пост выше, ответьте про галочку, пожалуйста.

    Со стороны CDS логов нет. Нужно прослушивать линию связи (например, подключить к порту АС4 и запустить какую-нибудь программу-терминал)

  2. #262

    По умолчанию

    Цитата Сообщение от Евгений Кислов Посмотреть сообщение
    Ваш конвертер умеет Modbus TCP в RTU преобразовывать?

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

    В настройках слэйва в CDS стоит галочка Таймаут?
    Ну конвертер этим и занимается, на стороне RS-485 RTU, а дальше - TCP, пакеты которые я присылал со стороны скады, то есть это TCP.

    Галочка стоит, значение 2000.

  3. #263

    По умолчанию

    Галочку надо снять. Если она стоит, то после 2000 мс (или другого указанного значения) без получения команд от мастера - контроллер обнуляет значения регистров.

  4. #264

    По умолчанию

    Цитата Сообщение от Евгений Кислов Посмотреть сообщение
    Галочку надо снять. Если она стоит, то после 2000 мс (или другого указанного значения) без получения команд от мастера - контроллер обнуляет значения регистров.
    Отлично, спасибо! Вещь крайне неочевидная, надо ее в мануалы добавить. CDS продолжает удивлять =)

  5. #265

    По умолчанию

    Евгений Кислов
    Наверное последний вопрос, и самый каверзный - про REAL.
    Сделал UNION как в мануале:
    TYPE Real2Word :
    UNION
    Value:REAL;
    WordArray:ARRAY [0..1] OF WORD;
    END_UNION
    END_TYPE
    Соответственно, в Модбас смотрят переменные типа:
    Application.System.Regulators.P.Value.WordArray[0]
    Application.System.Regulators.P.Value.WordArray[1]

    В скаде при чтении отображаются корректные значения, как в CDS, если это две двухбайтовых переменных, то есть для значения "100" будет:
    Байт 0 = 0
    Байт 1 = 17096

    Но если я делаю в скаде одно четырехбайтовое значение float, то получаю ерунду.

    Понятно, что это проблемы скады, и тем не менее, мне нужно в документации дать таблицу адресов, как все это корректно указать?

    Аналогично с записью REAL, для значения "100" просто пишет в нулевой байт 100, в первый не пишет ничего - это для 2*ushort.
    Для 1*float путает байты:
    Байт 0 = 17096
    Байт 1 = 0
    Если изменить порядок следования, то в пишет в Байт 0 ерунду.

  6. #266

    По умолчанию

    Для начала попробуйте поменять Application.System.Regulators.P.Value.WordArray[0] и Application.System.Regulators.P.Value.WordArray[1] местами.

    Т.е.

    Application.System.Regulators.P.Value.WordArray[1]
    Application.System.Regulators.P.Value.WordArray[0]

    Если это не поможет - то, возможно, для вашей SCADA надо менять местами не регистры (WORD), а байты (BYTE).
    Самый простой способ определить правильный порядок - записываете из SCADA в СПК значение типа REAL (например, 11.22). Смотрите, какой у него порядок байт.

    После этого объявляете два экземпляра UNION.

    Код:
    TYPE Real2SCADA :
    UNION
    Value:REAL
    ByteArray:ARRAY [0..3] OF BYTE;
    Modbus: ARRAY [0..1] OF WORD;
    END_UNION
    END_TYPE
    В одном из них задаете REAL, и копируете байты из него в другой UNION, при этом меняя их порядок на тот, который нужен SCADA. После этого привязываете к регистрам слэйва WORD из второго UNION.

  7. #267

    По умолчанию

    Добрый день комрады! Есть такая проблема, к одному modbus порту на СПК207 подключено несколько слейвов(блок управления кранами). А вопрос у меня следующего плана, как исключить такой модуль из опроса, если один из них вышел из строя?

  8. #268

    По умолчанию

    Цитата Сообщение от nsarychev Посмотреть сообщение
    Добрый день комрады! Есть такая проблема, к одному modbus порту на СПК207 подключено несколько слейвов(блок управления кранами). А вопрос у меня следующего плана, как исключить такой модуль из опроса, если один из них вышел из строя?
    Добрый день. В проекте используются шаблоны модулей Mx110?

  9. #269

    По умолчанию

    Цитата Сообщение от Евгений Кислов Посмотреть сообщение
    Добрый день. В проекте используются шаблоны модулей Mx110?
    Нет, устройство стороннего производителя. Подключены как modbus slave, com-port.

  10. #270

    По умолчанию

    Цитата Сообщение от nsarychev Посмотреть сообщение
    Нет, устройство стороннего производителя. Подключены как modbus slave, com-port.
    Тогда можно в настройках ПЛК (компонент Device) поставить галочку Enable Diagnosis for device.

    PLC_Settings.png

    После этого в коде программы можно отключить опрос устройства следующим образом:

    Modbus_Slave_COM_Port.Enable := FALSE;
    где Modbus_Slave_COM_Port - имя нужного slave-устройства в дереве проекта.

    Для возобновления опроса, соответственно, нужно присвоить переменной значение TRUE.

Страница 27 из 174 ПерваяПервая ... 1725262728293777127 ... ПоследняяПоследняя

Похожие темы

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

Ваши права

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