Показано с 1 по 3 из 3

Тема: Обмен данными между задачами

  1. #1

    По умолчанию Обмен данными между задачами

    Подскажите, пожалуйста, каким образом организовать корректный обмен данными между циклическими задачами через глобальные переменные? Поясню. Одна задача вычисляет переменные (с разрядностью больше чем слово контроллера) или массив переменных, вторая - использует их для своих вычислений. Как скопировать данные через глобальные переменные исключив возможность их порчи более приоритетной задачей? Я работал раньше с plc Ваших конкурентов, и для их контроллеров в адаптацию Codesys'а была включена специальная библиотека для связи переменных одинакового размера, принадлежащих программам, вызываемых из разных задач. Есть ли что-то аналогичное для Вашей адаптации Codesys?

  2. #2

    По умолчанию

    Заведите флаг. Задача, пишущая в переменную, перед началом записи устанавливает флаг, по окончании - сбрасывает. Задача, читающая переменную, перед началом чтения смотрит флаг, если сброшен - можно читать, если установлен - нельзя.

  3. #3
    Пользователь
    Регистрация
    24.07.2012
    Адрес
    Россия
    Сообщений
    1,527

    По умолчанию

    Цитата Сообщение от bmc938 Посмотреть сообщение
    Заведите флаг. Задача, пишущая в переменную, перед началом записи устанавливает флаг, по окончании - сбрасывает. Задача, читающая переменную, перед началом чтения смотрит флаг, если сброшен - можно читать, если установлен - нельзя.
    Всё гениальное - просто!

Похожие темы

  1. Ответов: 5
    Последнее сообщение: 20.06.2018, 15:09
  2. Обмен данными по ModBus
    от Vladimir_O в разделе ПЛК1хх
    Ответов: 15
    Последнее сообщение: 30.11.2012, 13:36
  3. Ответов: 3
    Последнее сообщение: 06.06.2012, 18:41
  4. Ответов: 9
    Последнее сообщение: 05.11.2009, 09:40
  5. Обмен данными через DDE
    от Faradox в разделе Разработки
    Ответов: 0
    Последнее сообщение: 27.10.2008, 23:06

Ваши права

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