Herkese selam..hazır bir programı çözmeye ugrasıyorum fakat stl kısmında tıkandım..ekteki resimdeki yapılan işlemi tam olarak çözemedim..Bu konuda yardım edebilecek ark.lar war mı?.Bir de stl i ögrenebilmek adına dokuman ,kaynak vs. paylaşım olursa cok sevinirim ..iyi çalışmalar dileirm
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.
Merhaba,
Geçmiş arızalar ile şimdiki arızaları karşılaştırıyor. Yeni arıza gelmiş ise korna çaldıran bir program. MD180 ile başlayan hafıza bölgelerinde geçmiş alarmlar saklanıyor. Databloklarda ise yeni gelen alarmlar.
MD180(Double Word)= MW 180+MW182(Word) = MB180+MB181+MB182+MB183 (Byte) olarak alan kaplar burada + işaretlerini toplama anlamında kullanmadım, sadece nereden nereye kadar kapladığı alanları birleştirip göstermek için kullandım. Yani MD180 dediğin zaman MB180 ile MB 183 arasını kullanmış oluyorsun bir sonraki Double Word değişkeni kullanmak istersen MD184 ten başlaman gerekli ki MD180 ile çakışmasın! 8) (Önemli kısmı burası ve veri tiplerine çalışman lazım)
Hepsinin biribirine eşit olmasını kapladığı alanların aynı olduğunu göstermek için kullandım yoksa içerikleri farklı olabilir!
Merhaba.
Siemens S7-300 ve S7-400 PLC'lerdeki hafıza yapısını anlamak için kendine excell sayfası gibi yanyana ve alt alta karelerden oluşan bir yapı çiz. En üstesi sol kutudan itibaren 0'dan başlayarak her kutuya bir arttırarark sayıları yaz. Herbir kutunun kendi kapasitesi 8 bittir. 1 Byte= 8bit yani bir kutu. 2 byte=1 word yani 2 kutu 4 byte=1 dword yani 4 kutu. MW0 hafıza bölgesinde ilk iki kutuyu kaplar. MW0'a bir sayı yazdığın zaman bu sayı 256'dan küçük ise MB1'e 256 dan büyük ise hem MB0 ve MB1 e yazılır. MW0=10 yaptığın zaman MB1in değeride 10 olur. Marker dışındaki Input, Output Datablokların yapısıda aynıdır...
STL ile ilgili bir sorum var.Şimdi 2 mw adresinin carpımından oluşacak bir mw adresi düşünürsek , sonuç kısmındaki mw adresinin her degerine karşılık bir bit setlemek istiyorum. Örneğin;
mw100*mw200=mw0
mw0=1 ise m1000.0 set
mw0=8 ise m1001.0 set .. gibi
Ancak burada ladderda compare komutunu kullanarak yapmak istemiyorum cunku belki 100 adet bu işlemden olacak..Daha pratik olarak nasıl olabilir? Konu baslıgında stl ile ilgili bir soru yazdım cunku index adresleme ile yapılabilir diye duydum ama nasıl olacagı hakkında bi bilgi yok! Teşekkürler saygılar...
eğer bir matematiksel işlemi çok fazla kullanacaksan onu sürekli yazmak yerine bir fonksiyon (FC) tanımlaman çok daha avantajlı olur. bahsettiğin çarpanlar için birer mw ya da dw kullanıp onları fonksiyon içinde çarpıp başka bir mw ya da dw'nin ilgili bitlerini set edersin. böylece o fonksiyonu hangi parametrelerle çağırırsan (mw100, mw200 gibi) o değerleri arguman olarak alıp sana sonucu verecektir. istediğin kadar da çağırabilirsin bu fonksiyonu. FC yazmak konusunda da internette çeşitli örnekler var onlardan faydalanabilirsin.
MW0=0 ISE M1000.0=1
MW0=1 ISE M1000.1=1
MW0=2 ISE M1000.2=1
.................
MW0=8383 ISE M2047.7=1 (8383 ÇARPIMIN ALABILECEGI SON DEGERDIR)
Kod:
L 0
T MB 300
CALL "FILL"
BVAL :=MB300
RET_VAL:=MW400
BLK :=P#M 1000.0 BYTE 1048
L MW 100
L MW 200
*I
T MW 0
L 8383
>I
JC stp
L 1000
SLD 3
LAR2
L MW 0
+AR2
S M [AR2,P#0.0]
stp: NOP 0