Ethernet ağındaki 3 adet farklı marka PLC'ye reçete oluşturma?
Ethernet ağındaki 3 adet farklı marka PLC'ye reçete oluşturma?
Merhabalar.
Halihazırda çalışan bir sisteme HMI ilavesi yapmam gerekiyor.
3 adet DELTA PLC bulunan bir ağa VI20-101S-FE model HMI ekran ilavesi yapmak istiyorum fakat bu PLC'lerdeki farklı adreslerdeki dataları tek reçetede birleştirerek bir reçete sayfası oluşturmalıyım.
VEICHI markasında fazla bir tecrübem olmadığından macro uygulamasına tam hakim olamadım ve dolayısıyla reçeteyi oluşturamadım.
3 adet PLC'nin içerisindeki sıralı olmayan adreslerdeki, her PLC için yaklaşık 50 Word-DWord ve 20 bitten oluşan bu verileri 100 adet reçete kaydı yapabilen bir reçetede nasıl toplayabilirim?
Reçete sayfasında sıra numarası ve reçete adı görünmesi yeterli olacaktır, fazla detaylı bir reçete gösterimi olmasına gerek yok.
Bir örnek paylaşır mısınz?
Teşekkürler.
Halihazırda çalışan bir sisteme HMI ilavesi yapmam gerekiyor.
3 adet DELTA PLC bulunan bir ağa VI20-101S-FE model HMI ekran ilavesi yapmak istiyorum fakat bu PLC'lerdeki farklı adreslerdeki dataları tek reçetede birleştirerek bir reçete sayfası oluşturmalıyım.
VEICHI markasında fazla bir tecrübem olmadığından macro uygulamasına tam hakim olamadım ve dolayısıyla reçeteyi oluşturamadım.
3 adet PLC'nin içerisindeki sıralı olmayan adreslerdeki, her PLC için yaklaşık 50 Word-DWord ve 20 bitten oluşan bu verileri 100 adet reçete kaydı yapabilen bir reçetede nasıl toplayabilirim?
Reçete sayfasında sıra numarası ve reçete adı görünmesi yeterli olacaktır, fazla detaylı bir reçete gösterimi olmasına gerek yok.
Bir örnek paylaşır mısınz?
Teşekkürler.
Re: Ethernet ağındaki 3 adet farklı marka PLC'ye reçete oluşturma?
Merhabalar,
Reçete için makro kullanmanıza gerek yok. Aşağıdaki örneği inceleyebilirsiniz.
Reçete için makro kullanmanıza gerek yok. Aşağıdaki örneği inceleyebilirsiniz.
- Dosya ekleri
-
- REÇETE.zip
- (5.79 MiB) 345 kere indirildi
Re: Ethernet ağındaki 3 adet farklı marka PLC'ye reçete oluşturma?
Teşekkürler. Bu örneğin işimi göreceğini düşünüyorum.
Re: Ethernet ağındaki 3 adet farklı marka PLC'ye reçete oluşturma?
Ahmet Bey:
Verdiğiniz örneği plrojeme uyarlamaya çalışıyorum fakat şöyle bir sorun yaşıyorum.
Data transfer elementi 32 adet datayı taşımama izin veriyor.
Daha fazlasını taşımak için ikinci bir şeffaf transfer elementi daha koymaya çalıştım fakat bu elementin tetikleme adresi olmadığı için nasıl tetikleyeceğimi bulamadım.
Rica etsem daha fazla datayı taşıyabileceğim bir örnek paylaşırmısınız?
Teşekkürler.
Re: Ethernet ağındaki 3 adet farklı marka PLC'ye reçete oluşturma?
Yaşadığım sorunla ilgili çözüm öneriniz nedir?
Re: Ethernet ağındaki 3 adet farklı marka PLC'ye reçete oluşturma?
Merhaba Ahmet Bey,
Bir butona 32 adetten fazla aksiyon eklenememektedir. Bu sorununuz için makro yazılması gerekebilir. Örnek oluşturup sizinle paylaşacağım.
Bir butona 32 adetten fazla aksiyon eklenememektedir. Bu sorununuz için makro yazılması gerekebilir. Örnek oluşturup sizinle paylaşacağım.
Re: Ethernet ağındaki 3 adet farklı marka PLC'ye reçete oluşturma?
Merhaba örnek aşağıdadır. HMI yerel adresleri kullanılmıştır, siz adresleri PLC'lerinize göre güncelleyebilirsiniz.
https://drive.google.com/open?id=1XygCx ... p=drive_fs
https://drive.google.com/open?id=1XygCx ... p=drive_fs
Re: Ethernet ağındaki 3 adet farklı marka PLC'ye reçete oluşturma?
Volkan Bey;Volkan yazdı: ↑Pzt Şub 03, 2025 2:00 pm Merhaba örnek aşağıdadır. HMI yerel adresleri kullanılmıştır, siz adresleri PLC'lerinize göre güncelleyebilirsiniz.
https://drive.google.com/open?id=1XygCx ... p=drive_fs
Örnek için teşekkürler.
Macro uygulamasını inceledim ve konuyu daha iyi anlamak adına birkaç soru sormak istiyorum.
Aşağıdaki görselde;
1 ==> Macroda 5. ve 7. satırdaki değişken tanımlamalarında neden değişkenler 0 (sıfır)'a eşitleniyor? Bu eşitleme işlemi değişkendeki değeri etkilemeyecek mi?
2 ==> Kırmızı okla gösterilen ve altı çizilen cümlede LW0 tanımlayıp 201 yazmanın veya LW201 tanımlayıp 0(sıfır) yazmanın mantığını kavrayamadım. Burada kafam çok karıştı.
3 ==> Macronun 9. satırında "donus" adlı tag nerede tanımlandı? Eğer bu tag ise bir türü,adresi,vs. bir tanımı olması gerekmez mi? "donus" eğer bir LABEL ise, bunun LABEL olduğunu macroya nasıl tanıtıyoruz?
4 ==> Macronun 45. satırında bulunan "return" etiketinin sağında bulunan 0(sıfır) neyi ifade ediyor?
5 ==> Macronun 17.,25.,26. satırlarında PLC değişkenlerini neden x,y,z değişkenlerine çekiyoruz? IF döngüsü içerisinde neden direkt olarak reçete verilerini PLC içerisine aktarmıyoruz? Aynı sorum r1,r2,r3 değişkenleri içinde geçerli. Buradaki değişkenleri HMI içierisindeki bir değişkene almak ve oradan tekrar aktarma yapmak macroya bir yük değil mi?
Teşekkürler.
En son AhmetA tarafından Sal Şub 04, 2025 7:22 pm tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Re: Ethernet ağındaki 3 adet farklı marka PLC'ye reçete oluşturma?
Merhabalar!
1: Hayır, etkilemeyecek. Sahada bu durumu denedim ve herhangi bir negatif durumla karşılaşmadım.
2: PLC1 ismi ve adresi tanıtılırken dikkat etmeniz gereken husustur.
Solda PLC1 adresleri tanıtılırken D0 olarak tanıttığınız senaryoyu ele alalım:
Bu durumda PLC1'in D0'ıncı registerından teoride D "sonsuza" register aralığı tanımlanmış olur ve makroda D201'in kullanımı için GetWord (@PLC1@, 201) yazılması gerekir. Yani D0'dan 201 register ötelenmiş halini yazmanız gerekir.
PLC1 adresleri tanıtılırken D201 olarak tanıttığınız senaryoyu ele alalım:
Bu durumda PLC1'in D201'inci registerlarından teoride D "sonsuza" register aralığı tanımlanmış olur ve makroda D201 kullanımı için GetWord (@PLC1@, 201) yazılması gerekir. Yani D201'den 0 register ötelenmiş halini yazmanız gerekir.
3: Bir yerde tanımlanmasına gerek yok. Direkt yazılması ve programın ilerleyen yerlerinde "goto" komutu ile kullanılması gerekir. Bunu sonsuz bir while döngüsü olarak düşünebilirsiniz:
donus
.
.
.
goto donus
bu durumda program çalıştıktan ve goto donus komutunu gördükten sonra tekrar donus satırına gidecek ve oradan tekrar çalışmaya başlayacak.
4: Bunun için C veya C++ araştırmanız gerekir. Net açıklamasını ben sunamıyorum maalesef ancak bildiğim kadarıyla programın başarıyla tamamlandığının ifadesidir.
5: Yukarıda değişkenler tanımlandıktan sonra bu değişkenlerin PLC ile eşleştirilmesi gerekir. Programda x,y... değişkenler tanımlandı evet ancak bunların PLC'de gerçek karşılıkları yok. Get... komutuyla bu değişkenler PLC'deki gerçek karşılıklarına eşleştirilmiş oluyor.
1: Hayır, etkilemeyecek. Sahada bu durumu denedim ve herhangi bir negatif durumla karşılaşmadım.
2: PLC1 ismi ve adresi tanıtılırken dikkat etmeniz gereken husustur.
Solda PLC1 adresleri tanıtılırken D0 olarak tanıttığınız senaryoyu ele alalım:
Bu durumda PLC1'in D0'ıncı registerından teoride D "sonsuza" register aralığı tanımlanmış olur ve makroda D201'in kullanımı için GetWord (@PLC1@, 201) yazılması gerekir. Yani D0'dan 201 register ötelenmiş halini yazmanız gerekir.
PLC1 adresleri tanıtılırken D201 olarak tanıttığınız senaryoyu ele alalım:
Bu durumda PLC1'in D201'inci registerlarından teoride D "sonsuza" register aralığı tanımlanmış olur ve makroda D201 kullanımı için GetWord (@PLC1@, 201) yazılması gerekir. Yani D201'den 0 register ötelenmiş halini yazmanız gerekir.
3: Bir yerde tanımlanmasına gerek yok. Direkt yazılması ve programın ilerleyen yerlerinde "goto" komutu ile kullanılması gerekir. Bunu sonsuz bir while döngüsü olarak düşünebilirsiniz:
donus
.
.
.
goto donus
bu durumda program çalıştıktan ve goto donus komutunu gördükten sonra tekrar donus satırına gidecek ve oradan tekrar çalışmaya başlayacak.
4: Bunun için C veya C++ araştırmanız gerekir. Net açıklamasını ben sunamıyorum maalesef ancak bildiğim kadarıyla programın başarıyla tamamlandığının ifadesidir.
5: Yukarıda değişkenler tanımlandıktan sonra bu değişkenlerin PLC ile eşleştirilmesi gerekir. Programda x,y... değişkenler tanımlandı evet ancak bunların PLC'de gerçek karşılıkları yok. Get... komutuyla bu değişkenler PLC'deki gerçek karşılıklarına eşleştirilmiş oluyor.
Re: Ethernet ağındaki 3 adet farklı marka PLC'ye reçete oluşturma?
Cevaplar için teşekkürler.
Hepsi yeterinde açıklayıcı oldu fakat 5. sorunun cevabını net alamadım yada ben tam olarak doğru şekilde soramadım.
IF döngüsünün içinde ;
SetWord(@PLC1@,0,@RECETE_WORD@,0);
şeklinde bir komut eklersek, bu x,y,z,a,b,c, gibi değişkenleri kullanmadan yazılamaz mı?
Hepsi yeterinde açıklayıcı oldu fakat 5. sorunun cevabını net alamadım yada ben tam olarak doğru şekilde soramadım.
IF döngüsünün içinde ;
SetWord(@PLC1@,0,@RECETE_WORD@,0);
şeklinde bir komut eklersek, bu x,y,z,a,b,c, gibi değişkenleri kullanmadan yazılamaz mı?