Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 20

Тема: Не записываются переменные в CoDeSys

  1. #1

    По умолчанию Не записываются переменные в CoDeSys

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

    Причем действует это избирательно.

    На всякий случай прикладываю файл проекта - особо это видно в POU to_OPC и Valves_alarms.
    Вложения Вложения
    Последний раз редактировалось Juan Esteban; 19.03.2021 в 09:32.

  2. #2

    По умолчанию

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

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

  3. #3

    По умолчанию

    Цитата Сообщение от Валенок Посмотреть сообщение
    .. т.е. отказом от непонятно за каким прикрученым сюда приоритетам. Да еще овер 11 уровней.
    Нет, не так. Приоритеты остались, их в любом случае в конфигураторе задач надо задавать, если он используется - от 0 до 15.

    Под циклическим режимом в данном случае подразумевается выполнение задачи через определенное время - в данном случае через 1 секунду. Свободный режим подразумевает выполнение задачи по кругу без пауз.
    Последний раз редактировалось Juan Esteban; 19.03.2021 в 16:29.

  4. #4

    По умолчанию

    Цитата Сообщение от Валенок Посмотреть сообщение
    Нету у вас там задач требующих приоритетов. 99.99% задач которые решают на плк не требуют приоритетов. Не говорите что именно у вас, именно эти 0.01%. Приоритеты тут - чисто менагерская фича. Прикрутили, а на кой они тут - неизвестно.
    Я не настаиваю, что без них не обойтись, но лично мне удобно для понимания, что за чем выполняется.

  5. #5

    По умолчанию

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

  6. #6

    По умолчанию

    Цитата Сообщение от YuriBel Посмотреть сообщение
    А что мешает просто тупо перечислить ваши подпрограммы в PLC_PRG ровно в том порядке, который вам нужен и не связываться с задачами вообще?
    Во-первых, сложнее поиск, меньше упорядоченности. А во-вторых, я столкнулся с тем, что рабочая область программы на CFC (который я использую, ибо начинающий) имеет ограниченный размер, туда у меня тупо все не помещается, а как увеличить эту область - я не нашел.

  7. #7

    По умолчанию

    Цитата Сообщение от Валенок Посмотреть сообщение
    )) Ну да. А с приоритетами такая упорядоченность и удобный поиск ...
    Да уж удобнее, чем весь код в одно место складывать.

    Цитата Сообщение от Валенок Посмотреть сообщение
    Задача - пройти вперед.
    1.Копаем яму перед собой.
    2.Ищем способ пройти
    3.Строим мост через яму
    Задача - решена.
    Ну и что, что проблема возникла, волков бояться - в лес не ходить.

    Цитата Сообщение от Валенок Посмотреть сообщение
    ))и что сделали в 1-ую очередь ? Еще ДО залезания в таски ?
    Залез в настройки, погуглил - не нашел.

    Вообще не понимаю, в чем проблема. Вы правда считаете, что тасков надо бояться только из-за того, что там циферки надо поставить, что за чем выполняется? Лично мне гораздо удобнее все разбить на подпрограммы, чем все мешать в одну кучу. Так проще искать, проще копировать однотипный код, например.

  8. #8

    По умолчанию

    Так приоритеты тасков - это НЕ номер последовательности, по которой они выполняются.
    Это именно приоритет: кто ГЛАВНЕЕ, если выражаться образно. И если окажется так, что ты сказал "вот эта задача главнее, а эта - совсем на 15ом месте" и если "более главная" задача отжирает больше ресурсов и времени - то может быть так, что менее важные задачи вообще не будут работать, потому что ПЛК отдаст время тем, кто главнее.

    Задачами удобнее пользоваться для разделения чего-то по времени. Например, если есть медленные процессы типа "взяли температуру и через секунд 10 как-то там среагировали, потому что пофиг" (например, регулирование отопления в квартире, где медленная реакция прокатит) - то всё это можно вынести в задачу и сказать ей "Выполняйся раз в 500 мсек".
    И, например, если у нас идёт обмен с модулями IO (обработка данных от AI, пересчёт их и что-то такое) - то это мы делаем самым коротким по коду (чтобы быстро выполнялось и не было сложных задач) и говорим "выполняйся раз в 20 мсек".

    А на сами задачи можно повесить несколько вызовов программ, если тебе так нагляднее.

  9. #9

    По умолчанию

    Я ещё допишу. Вот задачи IO - нафига они по секунде стоят? Конечно они не будут работать. Раз в секунду-то...
    Ты путаешь, путаешь очередь выполнения (она пользователю недоступна) и важность выполнения. Раз у тебя стоит Discret_outputs 15ым (самым последним) в очереди, и ещё и раз в секунду - то ПЛК на эту задачу может просто забить и сказать "А, ну нафиг, она не важная, и ещё и раз в секунду - отдам время другим задачам, а этой как придётся".

    Тебе хватит меньше задач:
    * Просто для IO с переменными - самая быстрая (20-30 мсек), высокий приоритет (0-1)
    * Регулирование (для управления чем ты управляешь) - быстрая (50-100 мсек), приоритет чуть ниже IO, но высокий (1-2)
    * Обмен с OPC - медленная (200-500 мсек), приоритет ещё чуть ниже (2-5)
    И всё.

  10. #10

    По умолчанию

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

    В данном случае, если интервал запуска у всех задач одинаковый - то их очередь выполнения соответствует порядку заданных приоритетов, ведь так?

Страница 1 из 2 12 ПоследняяПоследняя

Похожие темы

  1. Ответов: 13
    Последнее сообщение: 24.11.2017, 10:42
  2. Ответов: 3
    Последнее сообщение: 19.04.2017, 12:49
  3. ПЛК - переменные в Codesys
    от ioo в разделе ПЛК1хх
    Ответов: 9
    Последнее сообщение: 07.04.2011, 18:51
  4. Переменные в Codesys
    от Дмитрий Артюховский в разделе ПЛК1хх
    Ответов: 8
    Последнее сообщение: 28.03.2008, 13:55
  5. Как в CoDeSys связать переменные с Ип-320
    от незарегистрированный в разделе ПЛК1хх
    Ответов: 2
    Последнее сообщение: 28.02.2008, 07:15

Ваши права

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