Merhabalar
DVP15 mc kullanıyorum Banta bağladığım bir enkoder vasıtasıyla bantın başında bulunan klepe valfinin yükselen kenarında ürünü banta bıraktığım noktanın encoder pozisyonunu max 15 adet index açarak herbirine sıra ile doldurmak (kaydetmek) istiyorum.
klepeden sabit bir uzaklıkta ise sıra ile ilk giren endexteki bilgi ile ara mesafeyi toplayarak bir çıkış almak istiyorum. sanırım anlatabildim. encoder pozisyon bilgisini nasıl indexleyebilirim. canopen builder kullanıyorum.
Teşekkürler
Önemli Bilgilendirme!
Forum sayfamızdan sınırsız faydalanmak için kullanıcı kaydı oluşturup giriş yapmalısınız. Özellikle mesaj eklentileri, linkler kullanıcı girişi yapmazsanız görüntülenmeyecektir. Aşağıdaki linke tıklayarak üye değilseniz kullanıcı oluşturabilirsiniz.
https://destek.delta-turkey.com/ucp.php?mode=register
Forum sayfamızdan sınırsız faydalanmak için kullanıcı kaydı oluşturup giriş yapmalısınız. Özellikle mesaj eklentileri, linkler kullanıcı girişi yapmazsanız görüntülenmeyecektir. Aşağıdaki linke tıklayarak üye değilseniz kullanıcı oluşturabilirsiniz.
https://destek.delta-turkey.com/ucp.php?mode=register
dvp15mc-06 data indexleme ve log
- hakanmuh
- Mesajlar: 49
- Kayıt: 13 Oca 2019, 00:10
- İletişim:
- Durum: Çevrimdışı
- Turhan
- Mesajlar: 8427
- Kayıt: 07 Mar 2018, 16:06
- Konum: İstanbul
- İletişim:
- Durum: Çevrimdışı
Re: dvp15mc-06 data indexleme ve log
ADR komutunu inceleyebilirmisiniz?
.
.
Bu mesaja eklenen dosyaları görüntülemek için gerekli izinlere sahip değilsiniz.
DELTA Electronics Turkey
Forum mesajlarınız, kullandığınız ürünlere ait tam model kodları ve detaylı teknik açıklamalar içermelidir.
Forum mesajlarınız, kullandığınız ürünlere ait tam model kodları ve detaylı teknik açıklamalar içermelidir.
- hakanmuh
- Mesajlar: 49
- Kayıt: 13 Oca 2019, 00:10
- İletişim:
- Durum: Çevrimdışı
Re: dvp15mc-06 data indexleme ve log
bunun yerine yeni bi st pou açıp buraya şöyle birşey yazsam destekler mi
VAR
count: INT := 0; (* Sayaç: Bant üzerindeki toplam adım *)
materialBuffer: ARRAY[1..10] OF INT := [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]; (* Buffer, 10 malzeme saklanabilir *)
bufferSize: INT := 0; (* Buffer'da kaç malzeme olduğunu tutar *)
dep_aramesafe: INT := 10; (* Depozitör ile klepe arasındaki mesafe *)
pulser_klepeac: BOOL := FALSE; (* Klepeyi açma komutu (rising edge) *)
Enc_Actpos: INT := 0; (* Bant pozisyonunu gösteren enkoder değeri *)
m_depozitor_bas: BOOL := FALSE; (* Depozitör başlatma komutu *)
dep_basti: BOOL := FALSE; (* Depozitörün bastığı sinyal (rising edge) *)
waiting_for_deposit: BOOL := FALSE; (* Depozitör işlem tamamlanana kadar bekleme *)
END_VAR
(* Bant hareketi simülasyonu *)
count := count + 1;
(* Malzeme düştü mü? *)
IF pulser_klepeac THEN
(* Malzeme düştüğünde, sayacı kaydet ve buffer'a ekle *)
IF bufferSize < 10 THEN
bufferSize := bufferSize + 1; (* Buffer'da yeni bir eleman ekle *)
materialBuffer[bufferSize] := Enc_Actpos; (* Sayacın mevcut değerini buffer'a ekle *)
END_IF;
END_IF;
(* Malzeme depozitöre ulaşırsa işlem yap *)
IF bufferSize > 0 AND (materialBuffer[1] + dep_aramesafe <= Enc_Actpos) THEN
(* Depozitöre işlem yapılacak *)
m_depozitor_bas := TRUE; (* Depozitör başlatılıyor *)
waiting_for_deposit := TRUE; (* Depozitör işlemi bekleniyor *)
(* Buffer'dan ilk malzemeyi çıkar *)
FOR i := 1 TO bufferSize-1 DO
materialBuffer := materialBuffer[i+1]; (* Malzemeleri kaydır *)
END_FOR;
bufferSize := bufferSize - 1; (* Buffer boyutunu azalt *)
END_IF;
(* Depozitör işlemi tamamlanınca, dep_basti sinyali geldiğinde *)
IF waiting_for_deposit AND dep_basti THEN
(* Depozitör bir malzeme bastı, işlemi tamamladı *)
m_depozitor_bas := FALSE; (* Depozitör başlatma komutunu sıfırla *)
waiting_for_deposit := FALSE; (* Depozitör işlemi tamamlandı, bekleme sona erdi *)
dep_basti := FALSE; (* Depozitörün bastığı sinyali sıfırla *)
END_IF;
VAR
count: INT := 0; (* Sayaç: Bant üzerindeki toplam adım *)
materialBuffer: ARRAY[1..10] OF INT := [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]; (* Buffer, 10 malzeme saklanabilir *)
bufferSize: INT := 0; (* Buffer'da kaç malzeme olduğunu tutar *)
dep_aramesafe: INT := 10; (* Depozitör ile klepe arasındaki mesafe *)
pulser_klepeac: BOOL := FALSE; (* Klepeyi açma komutu (rising edge) *)
Enc_Actpos: INT := 0; (* Bant pozisyonunu gösteren enkoder değeri *)
m_depozitor_bas: BOOL := FALSE; (* Depozitör başlatma komutu *)
dep_basti: BOOL := FALSE; (* Depozitörün bastığı sinyal (rising edge) *)
waiting_for_deposit: BOOL := FALSE; (* Depozitör işlem tamamlanana kadar bekleme *)
END_VAR
(* Bant hareketi simülasyonu *)
count := count + 1;
(* Malzeme düştü mü? *)
IF pulser_klepeac THEN
(* Malzeme düştüğünde, sayacı kaydet ve buffer'a ekle *)
IF bufferSize < 10 THEN
bufferSize := bufferSize + 1; (* Buffer'da yeni bir eleman ekle *)
materialBuffer[bufferSize] := Enc_Actpos; (* Sayacın mevcut değerini buffer'a ekle *)
END_IF;
END_IF;
(* Malzeme depozitöre ulaşırsa işlem yap *)
IF bufferSize > 0 AND (materialBuffer[1] + dep_aramesafe <= Enc_Actpos) THEN
(* Depozitöre işlem yapılacak *)
m_depozitor_bas := TRUE; (* Depozitör başlatılıyor *)
waiting_for_deposit := TRUE; (* Depozitör işlemi bekleniyor *)
(* Buffer'dan ilk malzemeyi çıkar *)
FOR i := 1 TO bufferSize-1 DO
materialBuffer := materialBuffer[i+1]; (* Malzemeleri kaydır *)
END_FOR;
bufferSize := bufferSize - 1; (* Buffer boyutunu azalt *)
END_IF;
(* Depozitör işlemi tamamlanınca, dep_basti sinyali geldiğinde *)
IF waiting_for_deposit AND dep_basti THEN
(* Depozitör bir malzeme bastı, işlemi tamamladı *)
m_depozitor_bas := FALSE; (* Depozitör başlatma komutunu sıfırla *)
waiting_for_deposit := FALSE; (* Depozitör işlemi tamamlandı, bekleme sona erdi *)
dep_basti := FALSE; (* Depozitörün bastığı sinyali sıfırla *)
END_IF;
- Turhan
- Mesajlar: 8427
- Kayıt: 07 Mar 2018, 16:06
- Konum: İstanbul
- İletişim:
- Durum: Çevrimdışı
Re: dvp15mc-06 data indexleme ve log
Aşağıdaki yazım formatında indexleme yapabiliyorsunuz. Variable tanımlamanızı ise üst sekmede yer alan alanda yapmalısınız.
.
.
Bu mesaja eklenen dosyaları görüntülemek için gerekli izinlere sahip değilsiniz.
DELTA Electronics Turkey
Forum mesajlarınız, kullandığınız ürünlere ait tam model kodları ve detaylı teknik açıklamalar içermelidir.
Forum mesajlarınız, kullandığınız ürünlere ait tam model kodları ve detaylı teknik açıklamalar içermelidir.
- hakanmuh
- Mesajlar: 49
- Kayıt: 13 Oca 2019, 00:10
- İletişim:
- Durum: Çevrimdışı
Re: dvp15mc-06 data indexleme ve log
DATA TYPE KISMINDA ARRAY AÇILMADIĞI İÇİN (BEN GÖREMEDİM) SORMUŞTUM CANOPENBUILDER VER 6.09
YAN TARAFINDAKİ OK TA ARRAY WİZARD VARMIŞ
YAN TARAFINDAKİ OK TA ARRAY WİZARD VARMIŞ