Показано с 1 по 10 из 30

Тема: Модели поведения в CODESYS 2.3

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    ЗЫ прочитал, в доках используется REPEAT почему используете WHILE
    Мы не используем цикл REPEAT т.к. его использование ухудшает читабельность программы:
    чтобы понять до каких пор будет выполняться цикл нужно пролистать до конца цикла и только потом станет понятно условие выхода.

    Цикл WHILE лишен этого недостатка: условие выхода становится понятным уже на 1й строке.
    Последний раз редактировалось Осинский Алексей; 08.07.2018 в 18:55.
    OSCAT.ru читать стандарты и статьи по автоматизации на русском без регистрации и СМС

  2. #2
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,256

    По умолчанию

    Цитата Сообщение от Осинский Алексей Посмотреть сообщение
    Мы не используем цикл REPEAT т.к. его использование ухудшает читабельность программы:
    чтобы понять до каких пор будет выполняться цикл нужно пролистать до конца цикла и только потом станет понятно условие выхода.

    Цикл WHILE лишен этого недостатка: условие выхода становится понятным уже на 1й строке.
    не совсем так, переменную мы найдем в while в начале блока, а в repeat в конце блока, а условие выхода нужно искать в теле обоих циклов и чтоб быть уверенным что оно несколько раз не изменяется, в каждом случае надо пролистывать от начала и до конца блока, между ними лишь одна разница repeat один раз но выполниться
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

  3. #3

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    не совсем так, переменную мы найдем в while в начале блока, а в repeat в конце блока, а условие выхода нужно искать в теле обоих циклов и чтоб быть уверенным что оно несколько раз не изменяется, в каждом случае надо пролистывать от начала и до конца блока, между ними лишь одна разница repeat один раз но выполниться
    Мы не используем (за исключением редких случаев) прерывание цикла при помощи CONTINUE и EXIT т.к. это ухудшает читабельность кода (п. 6.5.2 PLCopen Coding Guidelines):
    пробежавшись глазами по телу цикла легко пропустить такой оператор, и сидеть, недоумевая, над программой, в попытках понять, почему этот конкретный участок кода не выполняется.
    А спустя какое-то время увидеть, что перед ним стоял оператор EXIT.

    В большинстве случаев, тело цикла можно переписать так, чтобы обойтись без этих операторов.

    UPD: Из тех же соображений избегаем использования RETURN.
    Последний раз редактировалось Осинский Алексей; 08.07.2018 в 19:40.
    OSCAT.ru читать стандарты и статьи по автоматизации на русском без регистрации и СМС

Похожие темы

  1. Ответов: 2
    Последнее сообщение: 02.03.2021, 00:31
  2. Термопара 125 модели
    от Wladislaw в разделе Подбор Оборудования
    Ответов: 1
    Последнее сообщение: 17.07.2017, 13:35
  3. Замена модели в проекте
    от CEkip в разделе Программируемые реле
    Ответов: 11
    Последнее сообщение: 16.01.2015, 20:04

Метки этой темы

Ваши права

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