Показано с 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
    Banned
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,664

    По умолчанию

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

  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
    Banned
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,664

    По умолчанию

    Цитата Сообщение от Дмитрий_Кирсанов Посмотреть сообщение
    Но по-факту не так.
    https://ru.stackoverflow.com/questio...1%82-if/588359

  5. #5

    По умолчанию

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

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

  6. #6
    Banned
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,664

    По умолчанию

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

    ЗЫ
    Код:
    Valve1 := NOT Sensor1 AND NOT Sensor2;
    Valve2 := Sensor1 AND NOT Sensor2;
    Последний раз редактировалось capzap; 28.09.2021 в 20:58.

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

    По умолчанию

    И первое условие что 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, 13:59
  4. 2 ОВЕН ПМ01 по разному работают.
    от vapik в разделе Эксплуатация
    Ответов: 5
    Последнее сообщение: 29.05.2012, 03:03
  5. БУСТ на одну фазу
    от Sniper007 в разделе Разработки
    Ответов: 8
    Последнее сообщение: 14.11.2007, 14:27

Ваши права

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