Page 1 of 1

[?+]: Растолкуйте мне нетворк на STL

Posted: Wed Jul 06, 2011 12:10 pm
by a_gricaj
Вот есть нетворк на STL.
Image
Я никак не вкурю что здесь делается?
Помогите плз!

Re: [?]: Растолкуйте мне нетворк на STL

Posted: Wed Jul 06, 2011 1:13 pm
by CoMod
А не пробовал разложить на элементарные составляющие ?

Code: Select all

A DB7.AAA
=Q2.0
или в LAD

Code: Select all

--|DB7.AAA|----(Q2.0)

Re: [?]: Растолкуйте мне нетворк на STL

Posted: Wed Jul 06, 2011 4:16 pm
by a_gricaj
В мануале по STL прочитал, что "А" это логичекое "И", а "=" присвоение.
То если взять первую строчку и в DB7.dbx6.4 , будет "1" то и в Q2.0 будет "1"??

Re: [?]: Растолкуйте мне нетворк на STL

Posted: Wed Jul 06, 2011 4:23 pm
by Vovan
Аллилуйя!
Именно так. Это банальное присвоение состояния битов DB7 дискретным выходам. Только улыбнула конструкция с триггерами (работоспособно, но через джоппо).

Re: [?]: Растолкуйте мне нетворк на STL

Posted: Wed Jul 06, 2011 4:39 pm
by a_gricaj
СПС
Но, интерестно тогда, почему через джоппо).

Re: [?]: Растолкуйте мне нетворк на STL

Posted: Fri Nov 25, 2011 1:45 pm
by ALEXZ
a_gricaj wrote:СПС
Но, интерестно тогда, почему через джоппо).
Потому что

Code: Select all

A X
 S Y
 AN X
 R Y
Эквивалентно

Code: Select all

 A X
 = Y

Re: [?+]: Растолкуйте мне нетворк на STL

Posted: Wed Apr 17, 2013 11:02 am
by AlexandrNK
День добрый всем!
Нужна помощь сведущих в STL.
Есть фрагмент программы для обмена с приводом Micromaster.
собственно сам текст STL:
\\convert adress

Code: Select all

L #I_O_Adress       \\загружаем входную переменную в АСС1 (переменная формата INT)
SLD 3
T #Adress_tmp       \\ пересылаем результат сдвига во временную переменную
здесь вроде все ясно, кроме того зачем используется сдвиг. Так же не понял пока зачем вообще конвертировать адрес
далее:

\\receive PZD from MM4xx

Code: Select all

L PID[#Adress_tmp]  \\загрузка в АСС1 DW из периферии по адресу [#Adress_tmp]
T LD 8                    \\статусное слово+действительная частота 
последняя команда для меня загадка.

Re: [?+]: Растолкуйте мне нетворк на STL

Posted: Thu Apr 18, 2013 3:12 am
by almaz78
AlexandrNK

здесь данные передаются через индерект адрес, с исползованием 32 битного поинтера.
в структуре 32битного поинтера в трех первих битах передается номер бита, с третьего по восемнадцатый бит -ето баит адрес.
так как вы читаете dword, 3 первих бита ==0. поетому sld 3

последняя строка---> передать содержимое аккумулятора 1 в локал дата dword 8

Re: [?+]: Растолкуйте мне нетворк на STL

Posted: Thu Apr 18, 2013 12:31 pm
by AlexandrNK
Спасибо за подсказку. Полистал документацию и более детально рассмотрел.

Re: [?+]: Растолкуйте мне нетворк на STL

Posted: Wed Jun 12, 2013 2:43 pm
by alexvp
День добрый всем!
Нужна помощь сведующих в STL. Написано на STEP5 - в STEP7 преобразовало также.
STEP5

Code: Select all

      T     DW  244
      L     KF12                         
      <=F  
      JC    M010
      S     F 46.0
      R     F 40.0
      C     DB 8
      L     KF 1
      T     DW  244
M010: 
      A     F 43.3
STEP7

Code: Select all

      T     DBW  488
      L     12                          
      <=I   
      JC    M010
      S     M     46.0
      R     M     40.0
      OPN   DB     8
      L     1
      T     DBW  488
M010: NOP   0
      A     M     43.3
непонятно установка S M46.0 после команды JC - если правильно понимаю
при RLO=1, будет переход,
при RLO=0 перехода не будет, но и бит 46.0 не установится.

Re: [?+]: Растолкуйте мне нетворк на STL

Posted: Wed Jun 12, 2013 8:08 pm
by Rex2701
RLO копировалось, если бы было записано
= M 46.0
А "S" устанавливает бит в любом случае.

Re: [?+]: Растолкуйте мне нетворк на STL

Posted: Thu Jun 13, 2013 10:19 am
by alexvp
Спасибо что ответили.
Разобрался. В документации нашел 4 команды перехода которые записывают в RLO 1.
Rex2701 wrote: А "S" устанавливает бит в любом случае.
Только при RLO=1, но в данном случае при использовании команды JC - полностью с вами согласен.

Re: [?+]: Растолкуйте мне нетворк на STL

Posted: Sun Jun 16, 2013 3:39 pm
by Rex2701
Дело в том, что команда сравнения изменит RLO в зависимости от результата сравнения, а команда условного перехода отработает в зависимости от состояния RLO, НО! после себя JC обязательно выставит RLO=1, иначе ни true, ни false ветки перехода не смогли бы выполниться.
Поэтому S M46.0 будет выполнен так же успешно, как и NOP 0.