Programlama Konusunda Yardım

Kullanıcı avatarı
firukk
Mesajlar: 143
Kayıt: 08 Mar 2018, 20:15
Konum: KAYSERİ
İletişim:
Durum: Çevrimdışı

Programlama Konusunda Yardım

Mesaj gönderen firukk »

12SE plc cpu yapmayı planladığım bir program var ama nasıl yapmam gerektiği konusunda bir çıkış yolu bulamadım. Yardımcı olursanız çok sevinirim.

X ve Y eksenli servo kontrollü kartezyen robot uç kısmında pnömatik noktalama aparatı var. Birbirinden farklı 30 parça var ve her parçada değişen sayılarda noktalama işlemi yapılıyor. Kimi parça da 10 tane kimi parça da 40 noktalama işlemi var. Reçeteleme ile 30 parçayı kayıt altında tutmam gerekiyor her seferinde tek tek koordinat girmemek için. Programın plc tarafında nasıl pratik kısa bir yol izlerim bunu bir türlü çözüme ulaştırmadım. maksimum noktalama sayısı olan 40 adete göre sıralı şekilde 40 adet pulse komutu yazmam saçma ve uzun olur diye düşünüyorum.
Kullanıcı avatarı
Turhan
Mesajlar: 7787
Kayıt: 07 Mar 2018, 16:06
Konum: İstanbul
İletişim:
Durum: Çevrimdışı

Re: Programlama Konusunda Yardım

Mesaj gönderen Turhan »

Merhaba,

DDRVA absolute pozisyonlama komutunun pozisyon değerini dolaylı adresleme ile kullanabilirsiniz.

Örneğin: Birinci işlenecek malzeme için her bir hedef pozisyon değerlerinizin D2000, D2002, D2004... adreslerine ardışık kaydedildiğin varsayın. |DDRVA D2000E0 D500 Y0 Y1| pulse komutunda E0 index register adresine 0 sayısını yüklediğinizde komut D2000 data adresindeki hedef pozisyona, Pozisyonlama tamamlandıktan sonra E0 sayısını 2 arttırıp komutun yeniden aktif ettiğinizde bu kez DDRVA komutu D2000+2= D2002 data adresindeki hedef pozisyona konumlanacaktır.

PLC'deki dolaylı adreslemeyi kullanarak tek bir pulse komutu ile ardışık 40 pozisyon değerini sırası ile icra edebilirsiniz.
DELTA Electronics Turkey

Forum mesajlarınız, kullandığınız ürünlere ait tam model kodları ve detaylı teknik açıklamalar içermelidir.
Kullanıcı avatarı
firukk
Mesajlar: 143
Kayıt: 08 Mar 2018, 20:15
Konum: KAYSERİ
İletişim:
Durum: Çevrimdışı

Re: Programlama Konusunda Yardım

Mesaj gönderen firukk »

1) Sistem 2 eksenli olduğu için E0 X ekseni için E1 Y ekseni için kullanılabilir diyebilir miyiz ?

2) D2000 dolaylı adresleme için özel register mi yoksa örnek olarak rastgele mi yazdınız ? Data register ı istediğimiz yerden başlatabilir miyiz ?

3) Neden absolute komutu kullanıyoruz ?
Kullanıcı avatarı
Turhan
Mesajlar: 7787
Kayıt: 07 Mar 2018, 16:06
Konum: İstanbul
İletişim:
Durum: Çevrimdışı

Re: Programlama Konusunda Yardım

Mesaj gönderen Turhan »

DVP-SE serisi PLC'de E0-E7 ve F0-F7 aralığında toplam 16 farklı index register kullanabilirsiniz.

D2000 genel amaçlı bir data adresidir. D1000-D1999 özel data aralığı dışındaki diğer D adreslerini de kullanabilirsiniz.

Pozisyonlama profilinize göre Absolute yada Relative pozisyonlama komutlarından her ikisinide kullanabilirsiniz.
DELTA Electronics Turkey

Forum mesajlarınız, kullandığınız ürünlere ait tam model kodları ve detaylı teknik açıklamalar içermelidir.
Kullanıcı avatarı
firukk
Mesajlar: 143
Kayıt: 08 Mar 2018, 20:15
Konum: KAYSERİ
İletişim:
Durum: Çevrimdışı

Re: Programlama Konusunda Yardım

Mesaj gönderen firukk »

Yeniden merhabalar. 28SV2 cpu ile projeye devam ediyorum. Öncelikle reçete kısmını çözmek için hmi ile başlamak istedim.

Şimdi gelişmiş reçete bölümünden 40x80 reçete oluşturdum. Reçete Adresi D2000 den başlıyor. Reçete değerlerini gireceğimiz sayı gir elementlerini oluşturdum. Bu sayı gir elementlerinin yazma adreslerini ENRCP0 dan ENRCP79 a kadar girdim tek tek. Lua script ile reçete ismi değiştirme bile yaptım. Buraya kadar sorun yok. Anlayamadığım yer bundan sonrası.

Plc tarafında programı oluştururken index register kullanacağım için D2000 den D2080 e kadar olan data adreslerini plc de tek tek yazmayacağım diye düşünüyorum. Ürüne uygun kayıtlı reçeteyi seçip PLCye yaz dedikten sonra Plc de D data adreslerinin tamamı yazılı olmamasına rağmen ENRCP lerin karşılı olan D2000 den itibaren data adreslerinin karşılığını plc nin kendisi otomatik algılayıp yazılı olan değerleri çeker mi yoksa plc içine D2000 den D2080 e kadar olan tüm data adreslerini yazmam gerekecek mi ?

Umarım anlaşılır yazabilmişimdir.
Kullanıcı avatarı
Uğur
Mesaj Panosu Yöneticisi
Mesajlar: 8885
Kayıt: 06 Mar 2018, 10:37
Konum: İstanbul
İletişim:
Durum: Çevrimdışı

Re: Programlama Konusunda Yardım

Mesaj gönderen Uğur »

Örnek MOV D2000E D100 diye bir satır yazdığınız zaman

E=0 ise D100 = D2000
E=5 ise D100 = D2005
E=9 ise D100 = D2009

olacaktır. Böylelikle bir satırla program akışında istediğiniz reçete datasını D100 e sadece E nin değerini değiştirerek çekmiş olacaksınız.
Uğur Birdal - Technical Support Team Manager - DELTA Electronics Turkiye

Bildirimler İçin Whatsapp Kanalımıza Katılın
Whatsapp Kanal

https://www.linkedin.com/in/ugurbirdal
Kullanıcı avatarı
firukk
Mesajlar: 143
Kayıt: 08 Mar 2018, 20:15
Konum: KAYSERİ
İletişim:
Durum: Çevrimdışı

Re: Programlama Konusunda Yardım

Mesaj gönderen firukk »

Kusura bakmayın yazdığınız komutu tam anlamadım. E0 yada E1 registerının değerini artıtmak için INC E0 INC E1 gibi komut kullanmak gerekmez mi yani nen öyle düşündüm kendimce. INC komutu ile E0 değerini bir artırdığımız zaman DDRVA D2000E0 D500 Y0 Y1 komutundaki D2000E0 datasının değeri reçetedeki değeri almaz mı ?
Kullanıcı avatarı
Uğur
Mesaj Panosu Yöneticisi
Mesajlar: 8885
Kayıt: 06 Mar 2018, 10:37
Konum: İstanbul
İletişim:
Durum: Çevrimdışı

Re: Programlama Konusunda Yardım

Mesaj gönderen Uğur »

E yi istediğiniz yolla arttırın ister mov komutu ile içerisine değer yükleyin ister toplama komutu ile toplayarak arttırın isterseniz de INC ile. Sonuçta verdiğim örneğe dikkat ederseniz E nin değer D2000E nin içeriğini etkiliyor.
Uğur Birdal - Technical Support Team Manager - DELTA Electronics Turkiye

Bildirimler İçin Whatsapp Kanalımıza Katılın
Whatsapp Kanal

https://www.linkedin.com/in/ugurbirdal
Kullanıcı avatarı
firukk
Mesajlar: 143
Kayıt: 08 Mar 2018, 20:15
Konum: KAYSERİ
İletişim:
Durum: Çevrimdışı

Re: Programlama Konusunda Yardım

Mesaj gönderen firukk »

Üzerinde çalıştığım makinada sensör yerine sınır switch olduğu ben kendim PLSV komutu ile home işlemi yaptırdım. Eksenleri istediğim pozisyonlara gönderip CH0 için D1336, CH1 için D1338 gösterge registerlarına 0 değeri atayarak home noktasını oluşturuyorum. Buraya kadar hiç bir problem yok. Makina farklı pozisyonlara gidip gelerek parça üzerinde gerekli işlemleri yaptıktan sonra home noktası olarak belirlediğim noktaya geri dönsün istiyorum. DDRVA komutunu kullanırsam home noktasına git demek için DDRVA komutunda Pals değeri olarak 0 yazmam doğru olur mu ? Yada tam olarak ne yapmam gerekir home noktasına dönüş için ?
Kullanıcı avatarı
Turhan
Mesajlar: 7787
Kayıt: 07 Mar 2018, 16:06
Konum: İstanbul
İletişim:
Durum: Çevrimdışı

Re: Programlama Konusunda Yardım

Mesaj gönderen Turhan »

Başlangıç home işleminden sonra DDRVI gibi pozisyon komutları ile pozisyonlama yapıyorsanız işlem sonunda DDRVA komutu ile 0 pozisyon komutu çalıştırıldığında başlangıç home noktasına geri dönmüş olursunuz.
DELTA Electronics Turkey

Forum mesajlarınız, kullandığınız ürünlere ait tam model kodları ve detaylı teknik açıklamalar içermelidir.
Cevapla

“PLC Forum” sayfasına dön