Step7 STL KOD

crimer

Üye
Katılım
26 Mar 2010
Mesajlar
9
Puanları
1
Arkadaşlar Merhaba,

Umarım konuyu doğru yere açmışımdır. S7-300 PLC nin içerisine bağlandığımda bazı noktalarda STL kodları gördüm ve STL konusunda bilgimde pek yok, aşağıdaki kodda ne yapılmak istenilmiş bilen biri anlatabilir mi?

L P#0.0
LAR1
M002: OPN DB 13
L DBB [AR1,P#0.0]
L 0
<>I
JC M001
L P#1.0
+AR1
TAR1
L P#17.0
<=D
JC M002
SET
R M 99.0
JU M003
M001: SET
S M 99.0
M003: NOP 0
 
Yazımızda endüstrinin can damarı sayılabilecek PLC’yi inceleyeceğiz.
KNX Standardı, küçük bir rezidansın içerisindeki aydınlatma, perde panjur, klima kontrolünden, Dünya’nın en büyük havalimanlarındaki aydınlatma otomasyonu gibi çözümler için tercih edilen bir Dünya standardıdır.
Kod:
L P#0.0                // Acc1 := P#0.0
LAR1                              // AR1 := P#0.0
M002: OPN DB 13         // DB13 açıldıdı
L DBB [AR1,P#0.0]        // DB13'teki AR1+P#0.0 bytı yüklendi (DB13'ün ilk Bytına denk geliyor DB13.DBX0.0 BYTE1 )
L 0                                 // 0 değeri yüklendi
<>I                                 // DB13'ün ilk bytı 0 ile karşılaştırdı eğer eşit değillerse RLO = 1;
JC M001                        // RLO :=1 ise M001'e atla
L P#1.0                        // Acc1 := P#1.0
+AR1                          // AR1 := AR1 + Acc1
TAR1                            // ACC1 := AR1
L P#17.0                      //  P#17.0
<=D                             // AR1(P#1.0) ile P#17.0 karşılaştırılıyor(double int şeklinde). P#17.0 büyükse RLO := 1
                                     //DB13'de 1.0 ofsetli adres ile DB13'teki 17.0 ofsetli adresten sonraki değerlr karşılaştırılıyor, yukarıda DB13 açıldı.
                                      // DB13.DBX1.0 WORD2 <=D DB13DBX17.0 WORD2 ??

JC M002                          // RLO == 1 ise M002'ye atla
SET                                    // RLO := 1
R M 99.0                           // M99.0 := 0
JU M003                           // M003'e git
M001: SET                        // RLO := 1
S M 99.0                        // M99.0 := 1
M003: NOP 0
// No operation

STL'e çok hakim değilim. Kendim için pratik olsun diye aşağıdaki sitelerden yararlanarak yukarıdaki commentleri ekledim. Similasyonda test etmekte fayda var.

https://cache.industry.siemens.com/dl/files/446/45523446/att_79269/v1/s7awl__b.pdf
https://www.plcdev.com/book/export/html/624
 
Son düzenleme:
DB12 ün içi resimdeki gibi, aslında benim amacım M99.0 neden setlendiğini bulmak,
Birde şurada DBB dememiş ama karşılaştırma yapılmış onu anlamadım.

L P#1.0 // Acc1 := P#1.0
+AR1 // AR1 := AR1 + Acc1
TAR1 // ACC1 := AR1
L P#17.0 // P#17.0
<=D


Ekran görüntüsü 2024-08-19 142613.png
 
Son düzenleme:
DB12 ün içi resimdeki gibi, aslında benim amacım M99.0 neden setlendiğini bulmak,
Birde şurada DBB dememiş ama karşılaştırma yapılmış onu anlamadım.

L P#1.0 // Acc1 := P#1.0
+AR1 // AR1 := AR1 + Acc1
TAR1 // ACC1 := AR1
L P#17.0 // P#17.0
<=D


Ekli dosyayı görüntüle 109703
L DBB [AR1,P#0.0]
L 0
<>I
JC M001 // DBB [AR1,P#0.0] Satırı sıfıra eşit değilse M001 etiketine sıçra

//Devamı
M001: SET
S M 99.0 // M99.0 burada setleniyor.
 

Forum istatistikleri

Konular
129,121
Mesajlar
923,469
Kullanıcılar
451,450
Son üye
SimbaYunus
Geri
Üst