S7-300 de Register İçeriğini Adres Olarak Kullanmak



Verdiğiniz bilgi için çok teşekkürler ama ben SCL dilini bilmiyorum bunun lader veya STL kodlarını yazabilirmisiniz. Birde tomapon DB diye adlandırdığını DB tam olarak ne yapıyor Hafıza kısmımı yoksa hafızadan reçete numarasına göre gerekli bilgileri aktardığım kısım mı?
Teşekkürler...
 
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.

Merhabalar,

Registerdaki veriyi adres olarak kullanmak için en kolay yol bence bu. Yazdığım SCL kodunda karmaşık çok fazla şey olduğunu düşünmüyorum. Biraz incelersen kolayca ne yapmaya çalıştığımı anlayabilirsin. Tampon DB diye adlandırdığım DataBlock senin tüm reçetelerinin saklandığı datablock'tur. Oluşturduğun tüm reçeteler Tampon DB'de saklanacaktır. MW20 ile Tampon DB'nin hangi adresinden itibaren yazmaya ve okumaya başlayacağını belirlersin.

Kolay Gelsin
 
Sayın morfeus verdiğiniz bilgiler için çok teşekkür ederim.
 
açıkel arkadaş sen galiba böyle bi örnek istiyosun galiba


Kod:
//temp

//kaynak Any 0.0
//hedef  Any 10.0
//TEMP0 bool 20.0
//TEMP1 bool 20.1
//Tip_Ret_Val int 22.0

//nw 1  

LAR1  P##kaynak

      L     B#16#10                     // s7 için 10 
      T     LB [AR1,P#0.0]

      L     B#16#7                      // DINT format
      T     LB [AR1,P#1.0]

      L     B#16#3                      // repetition factor
      T     LW [AR1,P#2.0]

      L     1                           // DB nosu
      T     LW [AR1,P#4.0]

      L     B#16#84                     // hafıza alanı
      T     LB [AR1,P#6.0]

      L     MW    90                    // başlangıç adresi
      T     LW [AR1,P#8.0]              // (dint) 32 arttırınca bir sonraki adrese //geçer

//nw 2

      CALL  SFC   20
       SRCBLK :=#kaynak
       RET_VAL:=#Tip_Ret_Val
       DSTBLK :=#hedef  // yukarıdaki örneğe göre burayı da sen şekillendir

//nw 3  #Tip_Ret_Val 0 a eşit değilse hata ver

     L     #Tip_Ret_Val
      L     0
      <>I   
      S     DB2.DBX    0.0

//nw 4

    A     M      2.0                  // bir sonraki adres bilgisine geç işareti
      FP    #TEMP0
      =     #TEMP1

      A     #TEMP1
      JNB   _001
      L     MW    90
      L     96                          // 3*32 (3 dint kaydırmak için)
      +I    
      T     MW    90
_001: NOP   0
 
Moderatör tarafında düzenlendi:
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için onları kabul etmelisiniz. Daha fazla bilgi edin…