Ardışık data adreslerini taşıma sorunu...

huh

Profesyonel Üye
Katılım
10 Şub 2007
Mesajlar
1,537
Puanları
281
S7-1200 için;

MW0- MW2- MW4- MW6- MW8 şeklinde sıralı 5 adet WORD büyüklüğündeki datayı,

datablock içerisindeki

veri[0]- veri[1]- veri[2]- veri[3]- veri[4] şeklinde sıralı beş adet değişkene atamak istiyorum.

MOVE komutunu beş kez kullanmak zorunda kalmadan tek bir komut ile taşıyabileceğim bir komut var mı?

MOVE_BLK ve MOVE_BLK_VARIANT komutlarını denedim ancak başaramadım.
 
ladder da yazıyorsun sanırım bir scl satırı aç
veri1:=mw0
veri2:=mw1...
gibi yazarbilirsin "veriler int tipinde olmalı "
 
SCATTER komutu var word tipindeki değişkeni çıkış olarak oluşturduğun db içerisindeki ARARRAY[0...15]BOOL olarak transfer ediyor aynı şekilde GATHER komutu var buda tam tersi olarak çalışıyor help kısmından inceliyebilirsin
 
İhtiyaç duyduğum komutlar bunlar değil sanırım.
Ayrıca daha WORD datayı girer girmez resimlerdeki gibi uyarı çıkıyor.

Komutlar için yardım menüsünde şu bilgi verilmiş.

SCATTER
"Bit dizisini ayrı bitlere ayrıştır" komutu, BYTE, WORD, DWORD veya LWORD veri tipinin bir etiketini ayrı bitlere ayrıştırır ve bunları bir BOOL DİZİSİ, anonim bir STRUCT veya yalnızca Boole öğeleriyle bir PLC veri türünde kaydeder. "

GATTER
Ayrı bitleri bir bit dizisinde birleştir" komutu, BOOL ARRAY, anonim STRUCT veya yalnızca Boole öğeleriyle bir PLC veri türündeki bitleri bir bit dizisi halinde birleştirir. Bit dizisi, BYTE, WORD, DWORD veya LWORD veri türünün bir etiketine kaydedilir.
 

Ekli dosyalar

  • tia.jpg
    tia.jpg
    35.9 KB · Görüntüleme: 15
PHP:
j := 0;
FOR i := 0 TO 8  BY 2 DO
  veri[ j ] := MW[ i ];
  j         := j+1;
END_FOR;
 
Son düzenleme:

Forum istatistikleri

Konular
130,108
Mesajlar
933,182
Kullanıcılar
453,163
Son üye
gurkangunc

Yeni konular

Çevrimiçi üyeler

Geri
Üst