Страница 83 из 174 ПерваяПервая ... 3373818283848593133 ... ПоследняяПоследняя
Показано с 821 по 830 из 1735

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

  1. #821

    По умолчанию

    Что нужно подвесить на кнопку (событие OnMouseClick), чтобы нажатие на нее вызвало отправку одиночного пакета modbus (одиночная запись командой modbus-06)
    К кнопке достаточно привязать BOOL-переменную, которая будет привязана к триггеру вашего канала записи.
    По нажатию на кнопку нужно генерировать в ней единичный импульс.

    См. стр. 39 и далее, параметр "Триггер"
    https://ftp.owen.ru/CoDeSys3/11_Docu...odbus_v3.0.pdf

  2. #822

    По умолчанию

    Спасибо. Вроде разобрался.
    В этом slave-устройстве имеется 1 канал для пакетного чтения и 7 каналов для индивидуальной записи.
    А переменная xTrigger будет действовать на все 7 каналов записи одновременно? Т.е. нажатие на кнопку произведет сразу 7 индивидуальных записей?
    (Я не нашел переменную xTrigger на каждый канал записи. Переменная есть только на всё устройство.)
    Последний раз редактировалось ВладОвен; 22.06.2022 в 11:31.

  3. #823

    По умолчанию

    Цитата Сообщение от ВладОвен Посмотреть сообщение
    Спасибо. Вроде разобрался.
    Но получается, что в этом slave-устройстве имеется 1 канал для пакетного чтения и 7 каналов для индивидуальной записи.
    Т.е. переменная xTrigger будет действовать на все 7 каналов записи одновременно? Т.е. нажатие на кнопку произведет сразу 7 индивидуальных записей?
    xTrigger действует на все каналы устройства с типом Передний фронт.

  4. #824

    По умолчанию

    Для того, что-бы получить переменные xTrigger для каждого из каналов, я клонировал мое slave-устройство.
    Клоны.png

    И в каждом клоне описал свой индивидуальный канал записи. Тогда у каждого устройства (читай: у каждого канала записи) теперь есть своя переменная xTrigger.
    Эту переменную (generator01cloneX.xTrigger) и привязал к кнопке
    Всё работает, но есть проблемы:
    Компилятор ругается на дублирование адресов slave-устройств-клонов. Это не ошибка, а предупреждение. Работать можно.
    Пропадает наглядность проекта в IDE.
    Костыль... Ёпта!
    Последний раз редактировалось ВладОвен; 22.06.2022 в 12:15.

  5. #825

    По умолчанию

    Цитата Сообщение от ВладОвен Посмотреть сообщение
    Для того, что-бы получить переменные xTrigger для каждого из каналов, я клонировал мое slave-устройство.
    Клоны.png

    И в каждом клоне описал свой индивидуальный канал записи. Тогда у каждого устройства (читай: у каждого канала записи) теперь есть своя переменная xTrigger.
    Эту переменную (generator01cloneX.xTrigger) и привязал к кнопке
    Всё работает, но есть проблемы:
    Компилятор ругается на дублирование адресов slave-устройств-клонов. Это не ошибка, а предупреждение. Работать можно.
    Пропадает наглядность проекта в IDE.
    Костыль... Ёпта!
    Вам не нужно клонировать устройство.
    Забудьте вообще про xTrigger - в вашем случае он не нужен.
    Перейдите на вкладку соотнесения входов-выходов - там будут каналы триггеров для каждого канала типа Передний фронт.
    Привяжите к каждому триггерному каналу свою переменную.
    Ссылку на руководство я уже выше привел.

    2022-06-22_12-17-16.png 2022-06-22_12-17-24.png

  6. #826

    По умолчанию

    Привет.
    Подключил датчик и хочу забрать от него параметр из регистра Modbus.
    Как правильно привязать переменную (тип WORD)?
    Туда, где показано зеленым или красным? Зачем там два таких поля? В чем разница? (см. рисунок)
    КудаСохранить.png

  7. #827

    По умолчанию

    Цитата Сообщение от ВладОвен Посмотреть сообщение
    Привет.
    Подключил датчик и хочу забрать от него параметр из регистра Modbus.
    Как правильно привязать переменную (тип WORD)?
    Туда, где показано зеленым или красным? Зачем там два таких поля? В чем разница? (см. рисунок)
    КудаСохранить.png
    Добрый день.
    В вашем случае - разницы нет.
    Разница была бы, если бы вы читали одним запросом несколько регистров - тогда в верхнем поле вы могли бы привязать массив вордов (он представялет собой все регистры ответа), а при его раскрытии - привязать переменные к отдельным вордам (если, например, вас из ответа интересуют значения только конкретных регистров).

  8. #828

    По умолчанию

    Спасибо за ответ.
    Подскажите, будет ли работать сл. метод:

    1. Есть структура sensorsRAW. В нее попадают сырые значения от десяти датчиков из сети ModBus.
    Код:
    rPressurePatm_RAW: REAL := 0.0; // Давление в атмосфере, кПа ABS (необработанное значение)
    rPressurePvac_RAW: REAL := 0.0; // Давление вакуума (готовность вакуума), кПа ABS (необработанное значение)
    ...
    2. Есть "Конверсия единиц CODESYS3.5" В которой эти сырые значения преобразуются масштабированием и смещением (соответствующие коэффициенты K и B)
    3. Есть структура sensors. В ней должны лежать уже конвертированные величины от этих десяти датчиков.
    Код:
    rPressurePatm: REAL := ExchangePressurePatm.Convert(PLC_PRG.stSensorsRaw.rPressurePatm_RAW) ; // Давление в атмосфере, кПа ABS
    rPressurePvac: REAL := ExchangePressurePvac.Convert(PLC_PRG.stSensorsRaw.rPressurePvac_RAW); // Давление вакуума (готовность вакуума), кПа ABS
    ...
    Но почему-то во второй структуре (sensors) числа не меняются. Может нельзя вставлять функцию .Convert (.Reverse) прямо вот так в структуру?
    Может .Convert (.Reverse) нужно вставлять в основной код программы?
    Последний раз редактировалось ВладОвен; 05.07.2022 в 12:05.

  9. #829

  10. #830

    По умолчанию

    Вот проект.
    Там только 2 датчика.
    Они читаются через ModBus, конвертируются.
    proj001.project

    Я думаю, что функцию преобразования .Convert и .Reverse нельзя вставлять тупо в структуру. Их надо вызывать в PLC_PRG.
    Вложения Вложения
    Последний раз редактировалось ВладОвен; 05.07.2022 в 12:59.

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

Похожие темы

  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

Ваши права

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