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

Тема: Почему эмулятор PLC выполняет одну и ту же логику по-разному? CoDeSys V2.3

  1. #1

    По умолчанию Почему эмулятор PLC выполняет одну и ту же логику по-разному? CoDeSys V2.3

    Использую IDE CoDeSys V2.3

    Исходники в приложении.

    Почему эмулятор PLC выполняет одну и ту же логику по-разному?

    Пример1:

    Код HTML:
    IF NOT (Sensor1 AND Sensor2)
    THEN
         Valve1 := TRUE;
         Valve2 :=  FALSE;
    ELSIF (Sensor1 AND NOT(Sensor2))
    THEN
        Valve1 := FALSE;
        Valve2 := TRUE;
    ELSE
         Valve1 := FALSE;
         Valve2 :=  FALSE;
    END_IF;
    Пример1. Таблица выполнения:

    Код HTML:
    Sensor1  Sensor2  Valve1  Valve2
      0         0       1        0
      0         1       1        0
      1         0       1        0
      1         1       0        0
    Пример2:

    Код HTML:
    IF NOT (Sensor1 AND Sensor2)
    THEN
         Valve1 := TRUE;
         Valve2 :=  FALSE;
    END_IF;
    
    IF (Sensor1 AND NOT(Sensor2))
    THEN
        Valve1 := FALSE;
        Valve2 := TRUE;
    END_IF;
    
    IF (Sensor1 AND Sensor2) OR (NOT(Sensor1) AND Sensor2)
    THEN
         Valve1 := FALSE;
         Valve2 :=  FALSE;
    END_IF;
    Пример2. Таблица выполнения:

    Код HTML:
    Sensor1  Sensor2  Valve1  Valve2
      0         0       1        0
      0         1       0        0
      1         0       0        1
      1         1       0        0
    Вложения Вложения

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

    По умолчанию

    а где же это одинаковая логика, в первом случае выполняется только одно из условий, а во втором случае каждое условие проверяется отдельно. И если условие NOT (Sensor1 AND Sensor2) это все варианты кроме когда оба ТРУ, то второй вариант последнее условие переписывает повторно значения переменных
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

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

  3. #3

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    а где же это одинаковая логика, в первом случае выполняется только одно из условий, а во втором случае каждое условие проверяется отдельно. И если условие NOT (Sensor1 AND Sensor2) это все варианты кроме когда оба ТРУ, то второй вариант последнее условие переписывает повторно значения переменных
    Логика одинаковая.

    В случае см. Пример1.

    Sensor1 Sensor2 Valve1 Valve2
    1 0 1 0
    Предполагается выполнение:

    ELSIF (Sensor1 AND NOT(Sensor2))
    THEN
    Valve1 := FALSE;
    Valve2 := TRUE;
    Но по-факту не так.

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

    По умолчанию

    Цитата Сообщение от Дмитрий_Кирсанов Посмотреть сообщение
    Но по-факту не так.
    https://ru.stackoverflow.com/questio...1%82-if/588359
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

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

  5. #5

    По умолчанию

    Всё равно не понятно, что вы имеете в виду.

    Могли бы выложить код, который выполняет логику из примера №2, но только с использование IF-ELSIF-ELSE?

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

    По умолчанию

    в таком виде ни как не повторить

    ЗЫ
    Код:
    Valve1 := NOT Sensor1 AND NOT Sensor2;
    Valve2 := Sensor1 AND NOT Sensor2;
    Последний раз редактировалось capzap; 28.09.2021 в 20:58.
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

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

  7. #7
    Пользователь
    Регистрация
    28.08.2008
    Адрес
    23..93..123
    Сообщений
    1,671

    По умолчанию

    И первое условие что TRUE и выполняется NOT(True AND False)= True, в чем вопрос?

Похожие темы

  1. Ответов: 2
    Последнее сообщение: 26.01.2021, 13:31
  2. Ответов: 22
    Последнее сообщение: 17.07.2018, 10:50
  3. Два ПЛК160 в одну SCADA
    от asupsp700 в разделе Другие SCADA системы
    Ответов: 4
    Последнее сообщение: 29.06.2012, 14:59
  4. 2 ОВЕН ПМ01 по разному работают.
    от vapik в разделе Эксплуатация
    Ответов: 5
    Последнее сообщение: 29.05.2012, 04:03
  5. БУСТ на одну фазу
    от Sniper007 в разделе Разработки
    Ответов: 8
    Последнее сообщение: 14.11.2007, 14:27

Ваши права

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