Команды STL

ПЛК / Децентрализованная периферия
Ответить
Димар
Любитель
Сообщения: 25
Зарегистрирован: 15 фев 2017, 16:48

Команды STL

Сообщение Димар »

Всем доброго дня.
Пытаюсь разобраться в программе STL, и возник вопрос на который в мануале не все ясно расписано, а именно речь идет о команде NOP 0 тли NOP 1.
Вот что написано:
"Эти команды не выполняют никаких действий и не оказывают влияния на содержимое слова состояния. Команды NOP 1 и NOP 0 необходимы для декомпиляции. Код команды содержит битовую комбинацию из 16 нулей или 16 единиц."

Разжуйте для чего здесь применили эти команды.
Вот сама программа:

Код: Выделить всё

      SET   
      A     #IN3
      JC    M001
      L     0.000000e+000
      T     #TEMP6
      JU    M002
M001: L     -2.764800e+004
      T     #TEMP6
M002: NOP   0
      L     2.764800e+004
      T     #TEMP7
      L     #IN0
      ITD   
      DTR   
      T     #TEMP5
      L     #IN1
      L     #IN2
      -R    
      T     #TEMP8
      L     #TEMP5
      L     #TEMP6
      >=R   
      JC    M003
      L     8
      T     #RET_VAL
      L     #TEMP8
      L     0.000000e+000
      <R    
      JCN   M004
      L     #IN1
      JU    M005
M004: L     #IN2
M005: NOP   0
      T     #OUT4
      JU    M006
M003: POP   
      L     #TEMP7
      <=R   
      JC    M007
      L     8
      T     #RET_VAL
      L     #TEMP8
      L     0.000000e+000
      <R    
      JCN   M008
      L     #IN2
      JU    M009
M008: L     #IN1
M009: NOP   0
      T     #OUT4
      JU    M006
M007: NOP   0
      NOP   0
      L     #TEMP7
      L     #TEMP6
      -R    
      T     #TEMP9
      L     #TEMP5
      L     #TEMP6
      -R    
      L     #TEMP9
      /R    
      L     #TEMP8
      *R    
      L     #IN2
      +R    
      T     #OUT4
      L     0
      T     #RET_VAL
      SET   
      JU    M00a
M006: CLR   
M00a: SAVE

Михайло
Администратор
Сообщения: 4094
Зарегистрирован: 19 сен 2012, 19:16

Re: Команды STL

Сообщение Михайло »

Все правильно. NOP расшифровывается как "no operation". Эта команда ничего не делает.
В языке STL инструкции NOP появляются в результате конвертации из языка FBD, LAD и т.п. Эти NOP автоматически ставятся на месте пропускаемых аргументов функций и т.п. для обеспечения возможности обратной конвертации (как я понимаю).

Вообще эта команда больше нужна хакерам, которые хотят устранить действие какой-либо команды. ;) Заменил полезную команду на NOP и защита нейтрализована. Без сдвига кода и заметных воздействий.

Димар
Любитель
Сообщения: 25
Зарегистрирован: 15 фев 2017, 16:48

Re: Команды STL

Сообщение Димар »

Спасибо за ответ.

Ответить