2. sayfa (Toplam 3 sayfa)
Re: Makrolar
Gönderilme zamanı: 10 Tem 2018, 11:22
gönderen Uğur
Benim yazdığım macroda port Link2 sizinkinde Link1 bunları düzenleyin. Olmazsa macro penceresinden birini yazdırıp çoklama yapın.
Re: Makrolar
Gönderilme zamanı: 10 Tem 2018, 11:38
gönderen pelezinho07
hocam işlemimizi başarıyla gerçekleştirdik.ilgi ve alakanız için çok teşekkürler
Re: Makrolar
Gönderilme zamanı: 10 Ara 2020, 02:01
gönderen savas55
Uğur yazdı: 10 Tem 2018, 11:22
Benim yazdığım macroda port Link2 sizinkinde Link1 bunları düzenleyin. Olmazsa macro penceresinden birini yazdırıp çoklama yapın.
Hocam konu eski biliyorum ancak oldukça ilgili olduğu için buradan yazmak istedim.
Kod: Tümünü seç
IF {Link2}1@C122 == 1
BMOV($10, $1, 15)
ELSEIF {Link2}1@C122 == 2
BMOV($20, $1, 15)
ELSEIF {Link2}1@C122 == 3
BMOV($30, $1, 15)
ENDIF
END
Bu makroda
PLC C122 counter 1 olduğunda $1 ( karakter giriş ) Değerini alıp $10 datasına 15 karaktere kadar yazacak.
PLC C122 counter 2 olduğunda $1 ( karakter giriş ) Değerini alıp $20 datasına 15 karaktere kadar yazacak.
PLC C122 counter 3 olduğunda $1 ( karakter giriş ) Değerini alıp $30 datasına 15 karaktere kadar yazacak.
şeklinde bir işlem yapmak istedim bu doğrumudur?
en önemlisi ise ben bu verileri (HMI hafızasında ki bu dataları ) günün belli bir saatinde sıfırlamak istiyorum otomatik olarak nasıl bir clock makro veya arka plan makro gerekli bunun için bunu bilmiyorum.
Ek olarak PLC de yaptığımız RTC PC ile senkronize etme olayını HMI üzerinde nasıl yapabiliriz.
Teşekkürler.
Re: Makrolar
Gönderilme zamanı: 10 Ara 2020, 10:21
gönderen Uğur
BMOV($10, $1, 15)
Bu satır 15 karakter taşıma değil 15 word yani 30 karakter taşıma yapar. uzunluğu 8 olarak değiştirin yoksa zaten diğer satırlardaki taşımalar ile üst üste binmeler olacaktır.
Arkaplan makroda yukarıda yazdığınıza benzer bir sıralı karşılaştırma yaparak RTC yi istediğini zamana eşitse şunu yap yani sıfırla diyebilirsiniz.
Gerçek Zaman Saati elle değiştirilebilir yada DOP100 serisinde NTP aktif ederek internet üzerinden otomatik senkronizasyonunu yaptırabilirsiniz.
Re: Makrolar
Gönderilme zamanı: 10 Ara 2020, 10:49
gönderen savas55
Uğur yazdı: 10 Ara 2020, 10:21
BMOV($10, $1, 15)
Bu satır 15 karakter taşıma değil 15 word yani 30 karakter taşıma yapar. uzunluğu 8 olarak değiştirin yoksa zaten diğer satırlardaki taşımalar ile üst üste binmeler olacaktır.
Arkaplan makroda yukarıda yazdığınıza benzer bir sıralı karşılaştırma yaparak RTC yi istediğini zamana eşitse şunu yap yani sıfırla diyebilirsiniz.
Gerçek Zaman Saati elle değiştirilebilir yada DOP100 serisinde NTP aktif ederek internet üzerinden otomatik senkronizasyonunu yaptırabilirsiniz.
Hocam birde şöyle birşey var. Arka plan makro ile
Kod: Tümünü seç
IF {Link2}1@M959 == ON
FILLASC($100, "YOK")
FILLASC($110, "YOK")
FILLASC($150, "YOK")
FILLASC($200, "YOK")
ENDIF
END
yok işlemi yani m959 anlık aktif olduğuda tüm sistemle beraber bu datalarda bulunan wordleri de sıfırlasın yani yok yazsın istedim. Ama 3 dataya da yok yazdırdığımda örneğin
ilk data $110 ikinci $150 üçüncü $200 bunlara lot test 1 - lot test 2 - lot test 3 yazdım ardından plc üzerinden M959 aktif ettim YOK yazısı geliyor ama beraberinde YOKt test 1 gibi devam ediyor yani kelimenin bir kısmını bununla değişritip kalanı aynı şekilde devam ediyor. Bu Dediğiniz 30 word olayı ile ilgilimi bilmiyorum deneyeceğim şimdi ama sizce neden olabilir.?
Re: Makrolar
Gönderilme zamanı: 10 Ara 2020, 10:56
gönderen savas55
Uğur yazdı: 10 Ara 2020, 10:21
BMOV($10, $1, 15)
Bu satır 15 karakter taşıma değil 15 word yani 30 karakter taşıma yapar. uzunluğu 8 olarak değiştirin yoksa zaten diğer satırlardaki taşımalar ile üst üste binmeler olacaktır.
Arkaplan makroda yukarıda yazdığınıza benzer bir sıralı karşılaştırma yaparak RTC yi istediğini zamana eşitse şunu yap yani sıfırla diyebilirsiniz.
Gerçek Zaman Saati elle değiştirilebilir yada DOP100 serisinde NTP aktif ederek internet üzerinden otomatik senkronizasyonunu yaptırabilirsiniz.
Yani Aşağıda ki resim gibi oluyor excel çıktısında da göreceksiniz LOT TEST kısmında bulunan LOT ve boşluk yerine YOK yazmış YOKTEST 1 olarak devam etmiş.

Re: Makrolar
Gönderilme zamanı: 10 Ara 2020, 15:00
gönderen Uğur
Buraya bakılırsa uzunluk 10 karakter olarak görünmektedir. Sadece YOK yazacaksanız FILASC komutunda
FILLASC($100, "YOK ")
şeklinde boşluk koyunki önceki yazıyı sıfırlamış olsun.
Re: Makrolar
Gönderilme zamanı: 11 Ara 2020, 18:29
gönderen savas55
Uğur yazdı: 10 Ara 2020, 15:00
Buraya bakılırsa uzunluk 10 karakter olarak görünmektedir. Sadece YOK yazacaksanız FILASC komutunda
FILLASC($100, "YOK ")
şeklinde boşluk koyunki önceki yazıyı sıfırlamış olsun.
Hocam bit butona bağlı olarak alt makrolar oluşturduk diyelim bunları nasıl çağıracağız buton on olduğunda devreye girmesini istediğim bir alt makrom var
örneğin;
Kod: Tümünü seç
IF {Link2}1@C122 == 1
BMOV($110, $100, $6)
ELSEIF {Link2}1@C122 == 2
BMOV($120, $100, $6)
ELSEIF {Link2}1@C122 == 3
BMOV($130, $100, $6)
ELSEIF {Link2}1@C122 == 4
BMOV($140, $100, $6)
ELSEIF {Link2}1@C123 == 1
BMOV($150, $100, $6)
ELSEIF {Link2}1@C123 == 2
BMOV($160, $100, $6)
ELSEIF {Link2}1@C123 == 3
BMOV($170, $100, $6)
ELSEIF {Link2}1@C123 == 4
BMOV($180, $100, $6)
ELSEIF {Link2}1@C124 == 1
BMOV($190, $100, $6)
ELSEIF {Link2}1@C124 == 2
BMOV($200, $100, $6)
ELSEIF {Link2}1@C124 == 3
BMOV($210, $100, $6)
ELSEIF {Link2}1@C124 == 4
BMOV($220, $100, $6)
ELSEIF {Link2}1@C125 == 1
BMOV($230, $100, $6)
ELSEIF {Link2}1@C125 == 2
BMOV($240, $100, $6)
ELSEIF {Link2}1@C125 == 3
BMOV($250, $100, $6)
ELSEIF {Link2}1@C125 == 4
BMOV($260, $100, $6)
ENDIF
END
Bu şekilde toplamda 10 ar atlayarak $860 a kadar yazıyorum ama Karaker gir işlem sonrası makroda kullanıyorum.
m1 aktif olduğunda c122 sayıma geçiyor sistemde bunlara göre $100 girilen karakteri C sayısına göre belirttiğim internal dataya atıyor. $180 kadar 10 ar 10 ar sorun yok. Fakat 190 itibari ile hepsi başka başka şeyler yapıyorlar. ne gibi şeyler diyecek olursak örneğin 200 e yazması gereken değeri tutuyor 170 e veya 300 e yazıyor gibi tuhaf şeyler olmakta.
Ne gibi bir hata var makrolarda nasıl çözebilirim alt makrolar ile denedim bir türlü çalıştıramadım çağırmayı becerememiş olabilirim.
Re: Makrolar
Gönderilme zamanı: 17 Ara 2020, 10:35
gönderen savas55
Merhabalar;
$100 üzerinden giridğim datayı ( karakter rakam karışık ) $4000 üzerinde ki data ile karşılaştırıp durumuna göre bir bit aktif etmeye çalışıyorum ancak neden ise bir sorun var ve anlamadım gitti. Bir çok farklı yöntem denedim direkt olarak biti aktif ediyor.
Kod: Tümünü seç
IF $100 == $4000
GOTO LABEL 1
LABEL 1
BITON ({Link2}1@M250)
ENDIF
Bu makrı ile yapmaya çaışıyorum ve örneğin $4000'e savass yazıyorum. $100'e savas yazıyorum eşit değiller ama eşitmiş gibi işlem yapıyor ve m250'yi aktif ediyor.
Re: Makrolar
Gönderilme zamanı: 17 Ara 2020, 12:28
gönderen Uğur
Siz sadece $100 e bakıyorsunuz ama savas yazısı
$100 = sa
$101 = va
$102 = s
şeklindedir. Tüm hepsi eşit ise sonuç almalısınız.