simatic manager ve string transferi

sinyal

Üye
Katılım
25 May 2007
Mesajlar
3
Puanları
1
Yaş
39
Merhaba.
Öncelikle tüm paylaşanlara paylaşımları için teşekkür ederim.
Aşamadığım bir konu ile ilgili danışmak istiyorum.
"Step 7"de "data block"taki bir "string" ifadeyi, aynı "data block"ta diğer bir adrese taşımak istiyorum.
Aslında 10 haneli bir rakam taşıyacağım ancak "double data"ya sığmıyor.
Bu nedenle "string" ifadeye yöneldim.
Ancak daha önce kullanmadığım bu "data type" ile ilgili sorunlarım var.
Üstelik öyle bir program yazmalıyım ki yüzlerce "Load-Transfer" yazmak yerine "indirect" adresleme yolu ile bir-iki satırda işi koparayım. Yoksa vay halime...
Fakat işin içine daha önce adreslerken kullanmadığım bir sürü yeni kavram girdi.
"AR1", "AR2"," P#", "pointer" , indirect adresing" gibi.
Beni bu konuda aydınlatabilecek arkadaşlara şimdiden teşekkürü bir borç bilirim.
Herkese iyi günler.
 
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.
Çözüm önerin için çok teşekkür ederim.
İnceleyeceğim.
Ancak daha öncede bahsettiğim gibi "adres register" veya "pointer" gibi
kavramlar benim için çok yeni.
Öncelikle onları sindirmem gerekiyor.
Bu güne kadar "leader" tüm programlama ihtiyacımı görmüştü.
Ancak şimdi farkettim ki asıl problemim ingilizceyi yeterince anlamamak.
Çünki çözümüm " STL help"te yazıyor fakat ben ona bakıyorum o bana.
Neyse. tekrar teşekkür ederim
Selamlar.
 
Sayın Beyit .
Transfer işlemimi oluşturduğum bir adres üretecinin sonuçlarını "+D" ve "SLW 3" komutları aracılığı ile "pointer "formatına çevirerek başardım.
Dikkat edilecek tek şey "string" ifadenin ilk 2 "bayt"ı uzunluk ve doluluk bilgisi olarak sistem tarafından kullanılıyor. Bu nedenle data "block"u "string" değil "byte" olarak adresledim.
Ancak İşlem sayısı o kadar çoğalıyor ki çevrim süresi problem oluyor. Yaptığım transfer sayısına bağlı kalmakla beraber saniyeler boyunca "PLC(CPU 315 2Dp)" sonucu üretemiyor. Bu ise istenmeyen bir sonuç. Bunun yerine "SFC 20 (Block Move)" yi kullandım. Fonksiyonun "Search area " kısmına "Data block" un 1. "bayt" ından 1999 uncu "bayt"ına kadar oku; "destination area" kısmına 2. "bayt"ından 2000 inici "bayt"ına kadar yaz bilgilerini içeren "any" ifadeleri yazmam yeterli oldu. Bu arada "data block"u 1den 2000 e kadar tek tek adreslemeye gerek olmadığını öğrendim. "Array" komutu bunu tek satırda hallediyor. Yalnız bir şeyi çözemedim; ilk durum için "Pointer" formatına çevirirken Neden "SLW 3" işlemini yapıyoruz. Çalıştığını biliyorum ama nedenini anlayamadım.
Saygılarımla
 
siemensi standar sfc20 blokuyla yapabilirsin kolay gelsin.
 
sfc20 sizin işinizi görür onu kullanmalısınız.
SFC20 için taşıyacağınız verinin türü önemli değil sadece taşıdığınız alanlar eşit büyüklükte olsun yeter.
 
Arkadaşa önerileri forumdan yapılsa daha iyiolur düşüncesindeyim...
 
Yavuz Eminoğlu PLC kitabında string-char-date_time -array gibi kavramalrı açıklamıştır ileri seviye oalrak açıklamıştır 2.cilt kitabunda herşey var bilginiz olsun.
 

Yeni mesajlar

Forum istatistikleri

Konular
128,212
Mesajlar
915,847
Kullanıcılar
449,990
Son üye
alpersirakaya

Yeni konular

Geri
Üst