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

Промышленные Логические Контроллеры SIMATIC S7-200/300/400
Post Reply
a_gricaj
Posts: 202
Joined: Wed Mar 19, 2008 1:12 pm
Location: Ukraine

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

Post by a_gricaj » Wed Jul 06, 2011 12:10 pm

Вот есть нетворк на STL.
Image
Я никак не вкурю что здесь делается?
Помогите плз!

CoMod
Site Admin
Posts: 3969
Joined: Thu Feb 16, 2006 3:25 pm
Location: Russia
Contact:

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

Post by CoMod » Wed Jul 06, 2011 1:13 pm

А не пробовал разложить на элементарные составляющие ?

Code: Select all

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

Code: Select all

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

a_gricaj
Posts: 202
Joined: Wed Mar 19, 2008 1:12 pm
Location: Ukraine

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

Post by a_gricaj » Wed Jul 06, 2011 4:16 pm

В мануале по STL прочитал, что "А" это логичекое "И", а "=" присвоение.
То если взять первую строчку и в DB7.dbx6.4 , будет "1" то и в Q2.0 будет "1"??

Vovan
Posts: 24
Joined: Fri Oct 13, 2006 11:24 am
Location: Russia

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

Post by Vovan » Wed Jul 06, 2011 4:23 pm

Аллилуйя!
Именно так. Это банальное присвоение состояния битов DB7 дискретным выходам. Только улыбнула конструкция с триггерами (работоспособно, но через джоппо).

a_gricaj
Posts: 202
Joined: Wed Mar 19, 2008 1:12 pm
Location: Ukraine

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

Post by a_gricaj » Wed Jul 06, 2011 4:39 pm

СПС
Но, интерестно тогда, почему через джоппо).

ALEXZ
Posts: 41
Joined: Tue Aug 09, 2011 12:27 pm

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

Post by ALEXZ » Fri Nov 25, 2011 1:45 pm

a_gricaj wrote:СПС
Но, интерестно тогда, почему через джоппо).
Потому что

Code: Select all

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

Code: Select all

 A X
 = Y

AlexandrNK
Posts: 5
Joined: Sat Nov 24, 2012 10:01 pm

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

Post by AlexandrNK » Wed Apr 17, 2013 11:02 am

День добрый всем!
Нужна помощь сведущих в 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                    \\статусное слово+действительная частота 
последняя команда для меня загадка.

almaz78
Posts: 108
Joined: Tue Dec 16, 2008 7:36 pm

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

Post by almaz78 » Thu Apr 18, 2013 3:12 am

AlexandrNK

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

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

AlexandrNK
Posts: 5
Joined: Sat Nov 24, 2012 10:01 pm

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

Post by AlexandrNK » Thu Apr 18, 2013 12:31 pm

Спасибо за подсказку. Полистал документацию и более детально рассмотрел.

alexvp
Posts: 22
Joined: Wed Feb 06, 2013 3:50 pm

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

Post by alexvp » Wed Jun 12, 2013 2:43 pm

День добрый всем!
Нужна помощь сведующих в 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 не установится.

Rex2701
Posts: 370
Joined: Wed Oct 13, 2010 8:44 am
Location: Russian Federation

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

Post by Rex2701 » Wed Jun 12, 2013 8:08 pm

RLO копировалось, если бы было записано
= M 46.0
А "S" устанавливает бит в любом случае.

alexvp
Posts: 22
Joined: Wed Feb 06, 2013 3:50 pm

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

Post by alexvp » Thu Jun 13, 2013 10:19 am

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

Rex2701
Posts: 370
Joined: Wed Oct 13, 2010 8:44 am
Location: Russian Federation

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

Post by Rex2701 » Sun Jun 16, 2013 3:39 pm

Дело в том, что команда сравнения изменит RLO в зависимости от результата сравнения, а команда условного перехода отработает в зависимости от состояния RLO, НО! после себя JC обязательно выставит RLO=1, иначе ни true, ни false ветки перехода не смогли бы выполниться.
Поэтому S M46.0 будет выполнен так же успешно, как и NOP 0.

Post Reply