Step7 STL KOD

crimer

Üye
Katılım
26 Mar 2010
Mesajlar
10
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
 
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.
Yazımızda endüstrinin can damarı sayılabilecek PLC’yi inceleyeceğiz.
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.
 
Aşağıdaki kod için açıklamanız var mı, M69,3 gelmesi gerekiyor neden gelmediğini anlamak istiyorum.

M006: NOP 0
A DB65.DBX 31.0
= M 69.0
A DB65.DBX 31.1
= M 69.1
A DB65.DBX 31.2
= M 69.2
A DB65.DBX 31.3
= M 69.3
A DB65.DBX 31.4
= M 69.4
A DB65.DBX 31.5
= M 69.5

Online olunca böyle bişey çıkıyor.

1.jpg
 
---| |----------------------------------( )
--DB65.DBX 31.3-------------------M69.3

M69.3 burada doğrudan DB65.DBX 31.3'ün değerini alıyor
 

Yeni mesajlar

Forum istatistikleri

Konular
129,685
Mesajlar
929,000
Kullanıcılar
452,386
Son üye
emir679

Yeni konular

Geri
Üst