Reçete'den girdiğim sayı kadar tabla döndürüp delik deldirmek

Timsah_16

Üye
Katılım
2 Ocak 2024
Mesajlar
23
Puanları
1
Yaş
25
Merhaba s71200 plcimde reçetem mevcut , bu reçete'de 2 değişkenim var
360 derece dönen bir tabla var , ekrandan girdiğim sayı , örneğin 4
tablayı 90 derecede durdurup pistonumla ürünü tablaya itmek istiyorum , bu döngüyü tamamladıktan sonra sistemin durmasını istiyorum.
burda sormak istediğim konu şu girdiğim değeri 360 dereceye hep böleceğim matematik fonksiyonlarını yaptım
fakat döngüyü nasıl yapacağımı ve comparator mü kullanmam gerektiğini veya başka bir mantık ile nasıl yapacağımı düşünüyorum...

bu döngüyü nasıl kurabilirim ?
90 dereceye gelince duracak sonra
180 e gidecek duracak ve işlem yapılacak 270-360 derece sırasıyla bunları yapacak
fakat girilen sayı 10 olduğunda 36 derece olacak ve 36 derece de bir itme işlemi yaptırmam gerekiyor
örnek bir program var ise ve ya sadece mantığın olduğu bir tia portal yazılımı var ise paylaşım yapabilirmisiniz ya da burdan anlatma şansınız var mı ?
teşekkürler...
 
abi o olurmu olmazmı s71200 de bilmiyorum ama senin dediğin iş motionun işi s71200 le çok zor yaparsın olurda zor olur yani nc lasım sana n coder lazım sinumerik lazım . pozisyon lazım tablaya enkoder lazım
enkoderin kaç tur döndüğünde tablanın o dereceye geldiğini bilmen lazım . 0 noktasını bilmen lazım

mantık olarak sequantial function chartla yaparsın döngüye gerek kalmaz
başla dersin tabla oraya gider gittiğinde ne yapmasını istiyorsun oraya yazarsın enkoder koyarsın kaç turda 90 derece yapıyor hesaplarsın dön dersin döner sonra 3 sekansa gitmesini istersin osekansta ne yapması gerekiyor onu yap dersin sonra inşite geri gider sıfıra ordan bir daha başlar ..

ha bildiğimden değil belki sana ilham verir deye ama motion kontrollere bak derim sanki daha rahat yaparsın zorda bişi değil 1 eksenli cnc gibi kolay ama ekipmanlar yeterlimi bilmiyorum
 
Kod:
// motion_complated --> hedef değere gittiğinde ON ( Mc_MoveAbsolute.Done çıkışı olabilir programda ne kullandığını bilmiyorum)
// motin_complated_old --> bir önceki cycle'daki değeri
// operation_cmd --> çalışma döngüsünü başlatan bit
// operation_cmd_old --> bir önceki cycle'daki değeri
// target --> hedef
// total_station --> ekrandan girilen istasyon sayısı
// next_station --> hareket edeceği istasyon

operation_rising_edge := operation_cmd AND NOT operation_cmd_old;
motion_complated_rising_edge := motion_complated AND NOT motion_complated_old;


IF motion_complated_rising_edge THEN
   next_station:= next_station+1;
END_IF;


IF ((operation_rising_edge) OR (next_station == (total_station-1))) THEN // ilk hareket verildiğinde ve tüm istasyonlar gezildiğinde
    next_station:= 0;
END_IF;


target := (360/total_station) * next_station;

operation_cmd_old := operation_cmd;
motion_complated_old := motion_complated;
 
Son düzenleme:

Forum istatistikleri

Konular
129,853
Mesajlar
930,787
Kullanıcılar
452,712
Son üye
berkaykara1

Yeni konular

Geri
Üst