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

Тема: test.0 := NOT test.1 := TRUE. На ПЛК test равняется 3, под симулятором - 2

  1. #1
    Пользователь
    Регистрация
    13.10.2011
    Адрес
    Златоуст
    Сообщений
    1,021

    По умолчанию test.0 := NOT test.1 := TRUE. На ПЛК test равняется 3, под симулятором - 2

    Следите за руками:
    Код:
    VAR
        test: WORD;
    END_VAR
    
     test.0 := NOT test.1 := TRUE;
    На ПЛК110 test = 3, а на симуляторе test = 2. Делаем автоматическое (!) преобразование в IL:
    Код:
    LD        TRUE
     ST        test.1
     NOT
     ST        test.0
    Запускаем. Теперь на ПЛК test тоже равняется 2.

    Чо за хрень?

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

    По умолчанию

    Те кто писал компилятор, работают по старинке, одно присвоение после точка с запятой. На подобные комбинации ни кто толком не обращал внимание на тестировании,это не редко случается

  3. #3

    По умолчанию

    Цитата Сообщение от Yegor Посмотреть сообщение
    Следите за руками:
    Код:
    VAR
        test: WORD;
    END_VAR
    
     test.0 := NOT test.1 := TRUE;
    На ПЛК110 test = 3, а на симуляторе test = 2. Делаем автоматическое (!) преобразование в IL:
    Код:
    LD        TRUE
     ST        test.1
     NOT
     ST        test.0
    Запускаем. Теперь на ПЛК test тоже равняется 2.

    Чо за хрень?
    Не надо заумных конструкций (test.0 := NOT test.1 := TRUE), и все нормально будет.

  4. #4
    Пользователь
    Регистрация
    23.09.2008
    Адрес
    Центророссийск
    Сообщений
    2,290

    По умолчанию

    Имхо, ошибка компилятора не в обработке, а в том что вообще не посчитал ошибочным весьма не очевидное выражение "test.0 := NOT test.1 := TRUE"
    Присвоение справа налево в кучу переменных - это нормально и удобно, но в переменные, а не в операцию. "NOT test.1" явно операция.
    Наверное было бы более очевидным test.0 := NOT (test.1 := TRUE), в чего и превращается iL и, кажется, есть в КДС3
    Последний раз редактировалось Валенок; 29.08.2014 в 12:10.

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

    По умолчанию

    К слову семен такую конструкцию непропускает даже со скобками и оговорился не компилятор, а интерпретатор

  6. #6
    Пользователь
    Регистрация
    13.10.2011
    Адрес
    Златоуст
    Сообщений
    1,021

    По умолчанию

    Третий кодесис тоже не пропускает. Дело не в этом. Интересно то, что с одним компилятором получаются два разных результата. Понятно, что кодогенераторы разные, но у них на входе уже разобранные предложения обычно.
    Последний раз редактировалось Yegor; 29.08.2014 в 15:51.

  7. #7
    Пользователь
    Регистрация
    23.09.2008
    Адрес
    Центророссийск
    Сообщений
    2,290

    По умолчанию

    Тогда внесём это в копилку где уже есть sizeof и будем продолжать следить за Вашими руками ))

    PS
    ...
    ...
    ...
    "Ж-ж-ж-ж-ж кр4?(jkvo4#%*C*()!" - сказала японская бензопила.
    "А-а-а-а, б..я!" - сказали рабочие
    Последний раз редактировалось Валенок; 29.08.2014 в 16:09.

Похожие темы

  1. Кто на чём программирует под WINDOWS ?
    от rocky7 в разделе Трёп (Курилка)
    Ответов: 6
    Последнее сообщение: 13.06.2014, 13:33
  2. Ответов: 4
    Последнее сообщение: 03.11.2013, 01:14
  3. Ответов: 3
    Последнее сообщение: 30.06.2013, 11:56
  4. Адаптация программы под ПЛК 154
    от Andrupel в разделе ПЛК1хх
    Ответов: 2
    Последнее сообщение: 04.08.2009, 12:55

Ваши права

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