8 istasyonlu bir döner tablam var. 2. istasyonda ölçüm pistonu ve 6. istasyonda hatalı ürün alma istasyonu mevcut.
Ard arda veya birer atlamalı olarak hatalı ürün geldiğinde bu ürünleri aldırmam gerek nasıl bir algoritma izlemeliyim ??
Diyelimki hatalı bir ürün geldi ve bir biti set ettim ve tabla 4 kez döndüğünde bu ürünün hatalı istasyonuna geldiğini belirleyip alırım burda sorun yok. Peş peşe veya aralıklı geldikleri zaman nasıl bir yol izleyebilirim ??
8 bitlik bir zincir oluşturun. Ve bir sensörle tablanın her dönüşünde bu bitleri birer bit öteleyin. 2. İstasyonda hatayı tesbit ettiğinizde direk 2. Biti set edeceksiniz. Sonra 8. Biti okuyarak eğer değeri 1 ise reject ettireceksiniz.
8 bitlik bir zincir oluşturun. Ve bir sensörle tablanın her dönüşünde bu bitleri birer bit öteleyin. 2. İstasyonda hatayı tesbit ettiğinizde direk 2. Biti set edeceksiniz. Sonra 8. Biti okuyarak eğer değeri 1 ise reject ettireceksiniz.
Tekrar 2. Biti set edeceksin. Çünkü bu arada 2. Bitteki bilgiyi 3. Bite öteledin.
Yani proses şu:
1-Hatalı ürünü 2. Bite set ettin.
2-Tabla dönerken bir sensörle tablanın dönüşünü algıladın ve tüm bitleri bir bit öteledin. Yani 2. Bitteki bilgi 3. Bite geçti.
3-Tekrar bir hatalı ürün algıladın. Ve yine 2. Biti set ettin.
Slm. @hkn_blt. 2. istasyonda ölçüm yaptığını farz ediyorum. 6.istasyondada hatalı ise al değil ise devam demeniz gerekiyor yanlış anlamadıysam. Bu mantığa göre ben olsam şöyle bir algoritma izlerim.
Tabla her istasyon değiştiğinde bir blink sinyal üretir onuda move ederek 6 istasyona gelecek şekilde move ederim. Konuyu dahada açacak olursak; mw0 hata algılama istasyonundan aldığım değer olsun (1 düzgün) veya (2 hatalı). Hatalı ürün ise MW0:=2 değil sie MW0:=1 Ürettğim blink sinyali geldiğinde (yani tabla ölçüm yapıp pozisyon değiştirdiğinde) bu değeri Mw2 ye yazacağım. blink sinyali düştüğünde ise (anlık 10Ms mesela) Mw4 ya yazacağım. Böylelikle Mw4 da 3. istsyonda ki ürünün hatalı olup olmadığını anladık. Makine tetkrar ölçüm yaptı ve hatalı veya hatasız ürün bilgisi Mw 0 a tekrar yazdım, tabla dönüp tekrar blink yaptığında Mw0 daki değer Mw2 ye Mw2 deki değer Mw4 e, Mw4 deki değer Mw6 ya Mw d daki değer Mw8 e yazılacak böylelikle anlık olarak ürün bilgisini 6. yani (Mw16) istasyona kadar kaydıracağım. arada hatalı ürün gelsede gelmesede anlık kaydırarak 6. istasyon wordu olan Mw16 da 1 ise devam 2 ise hatalı al komutunu işleyeceğim.
Not: Word kaydırmak yerine bit kaydırarakta yapa bilirsiniz Ben her ikisinide yaptım. bu yöntemle sonsuz bir döngüye sahip oluyor akşam iş bitiminde makine kapansada istasyon bilgilerini unutmuyor hatta istasyon bilgilerini Hmı da rahatça gösterebiliyorsunuz.
Denememiş olmakla bereber Shift komutuda iş görebilir fakat takibi zor olur diye düşünüyorum.
Anlatamadıysam şeyet bir program hazırlar resim olarak yüklerim.
Benim çalıştığım makinalarda bu proses çok fazla kullanılıyor. S5 plc de bir blok içinde aynen şu şekilde halledilmişti:
Öncelikle blok tablanın döndüğünü gören sensör girişinın yükselen kenarı ile çağrılmış ve blok içine şu yazılmış:
F0.7 = F0.6
F0.6 = F0.5
....
....
....
F0.2 = F0.1
F0.1 = F0.0
F0.0 = 0
BEU
Arkadaşlar cevaplar için teşekkürler gayet iyi anladım shift registr ile işimi halledebilirim.
Her hatalı ürün geldiğinde bir word adresine 1 atadım. Daha sonra tabla her döndüğünde bu biti 1 kaydırdım. Arkasından yine hatalı gelip gelmediğini anlamak için AND işlemine tabi tuttum. Hatalı ürünü aldıktan sonra word adresini XOR işlemine tabi tutarak taşmayı önledim bu şekilde yaptım güzel oldu