Страница 83 из 131 ПерваяПервая ... 3373818283848593 ... ПоследняяПоследняя
Показано с 821 по 830 из 1306

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

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

    По умолчанию

    Что нужно подвесить на кнопку (событие 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
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    12,145

    По умолчанию

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

  4. #824

    По умолчанию

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

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

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

    По умолчанию

    Цитата Сообщение от ВладОвен Посмотреть сообщение
    Для того, что-бы получить переменные 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
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    12,145

    По умолчанию

    Цитата Сообщение от ВладОвен Посмотреть сообщение
    Привет.
    Подключил датчик и хочу забрать от него параметр из регистра 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 из 131 ПерваяПервая ... 3373818283848593 ... ПоследняяПоследняя

Похожие темы

  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

Ваши права

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