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

Тема: многозадачность в плк63

  1. #1
    Пользователь
    Регистрация
    01.12.2007
    Адрес
    Воронеж
    Сообщений
    201

    По умолчанию многозадачность в плк63

    как устроенна?
    каждая нитка работает со своей локальной копией переменной или все общее( если во время работы одной нитки а вклинится другая б, покрутит какие то глобальные переменные, то оставшийся кусок нитки а будет дорабатывать уже с новыми значениями)?
    а если с локальной копией, то как потом система разруливает результаты работы двух ниток, которые ее поменяли?

    P.s. кстати существует ли какая нибудь стандартная методика взаимодействия ниток?
    Последний раз редактировалось pt200; 15.09.2010 в 00:30.

  2. #2
    Пользователь
    Регистрация
    11.01.2009
    Адрес
    Кострома
    Сообщений
    3,144

    По умолчанию

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

  3. #3
    Пользователь
    Регистрация
    01.12.2007
    Адрес
    Воронеж
    Сообщений
    201

    По умолчанию

    Цитата Сообщение от lara197a Посмотреть сообщение
    ...исключением составлет случай использования менеджера задач. в этом случае вы произвольно определяете порядок их выполнения
    однако плк все равно работает по описаному выше принципу.
    т.е. так
    Код:
    PLC_PRG() (*невидимая функция*)
    {
      MY_TASK1();
      MY_TASK2();
      MY_TASK3();
      MY_TASK4();
    }

    Что вроде где то что то видел про вытесняющую многозадачность в CoDeSys, по этому и спрашиваю.

    P.S. Кстати а прерывания( мои), callbackи как работают в этом плане?
    Последний раз редактировалось pt200; 15.09.2010 в 10:11.

  4. #4

    По умолчанию

    подсказка - ниток в плк63 нет. равно как и иголок. равно как и копий для нитки. почитайте в доке про экземпляры Pou.
    задачи запускаются по очереди в порядке приоритетов. для того что бы не боятся вышеуказанных вещей см проект-опции-генератор кода-проверять автоматически (ставьте все опции)
    Часто задаваемые вопросы по кодесис
    1) Почему программа не работает - Следует выполнить "Онлайн ->Старт"
    2) Где скачать CoDeSys, таргеты, прошивки, библиотеки - http://www.owen.ru/catalog/codesys_v3/opisanie

  5. #5

    По умолчанию

    Я так понимаю у вас ПЛК63. Callback есть только на ПЛК1х0. Он работает как прерывание.
    Часто задаваемые вопросы по кодесис
    1) Почему программа не работает - Следует выполнить "Онлайн ->Старт"
    2) Где скачать CoDeSys, таргеты, прошивки, библиотеки - http://www.owen.ru/catalog/codesys_v3/opisanie

  6. #6

    По умолчанию

    суммируя, на всех плк сейчас корпоративная многозадачность.
    однако в плк11х при использовании события таймера можно для 1 (одной) задачи сделать вытесняющую многозадачность.

    P.s. адресное пространство единое, виртуальная память не используется.

Ваши права

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