From Friday, January 17th 11 PM CDT (January 18th 5 AM UTC) through Saturday, January 18th 11:30 AM CDT (January 18th 5:30 PM UTC), ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

NI Ürünleri İle İlgili Tartışmalar

cancel
Showing results for 
Search instead for 
Did you mean: 

Sıra kullanarak eşleme (Queue Synchronization)

Farklı görevler arasında  veri akışı sağlamanın en temel yollarında biridir.

0 Kudos
Message 1 of 4
(6,685 Views)

Eş zamanlı çalışan görevler arasında veri aktarmak söz konusu olduğunda en basit yöntem yerel/genel (global) değişkenler kullanmaktır. Ancak değişkenler kullanmak dikkat gerektiren bir yöntemdir. Verilerin erişim sıralarını (yazma/okuma önceliklerini), güncellenme zamanlarını, işlem sırasını, vb gibi önemli durumları değişkenler kullanarak ayarlamak oldukça zordur ve önemli yazılım hataları oluşmasına neden olabilir.

Paralel Döngü.png

Örneği incelersek iki farklı görev arasında "SAYAÇ" etiketli bir yerel değişken ile veri aktarılmaya çalışıldığını görebiliriz. İlk görevde "SAYAÇ" ile bir işlem gerçekleştirilirken ikinci görevde "SAYAÇ" değişkeninin o anki değerine göre başka bir işlem gerçekleştirilmektedir.

Bu örnek sistemsel bir sorun olmadığı ve çok hızlı tekrar gerektirmediği durumlarda düzgün çalışacaktır diyebiliriz. Ama mesela yinelenmeyi 1ms'ye düşürdüğümüzde hemen eşleme sorunlarıyla karşılaşacağımızı göreceksiniz.

(Örnekte yerel değişken kullanarak işlem yapılması başka bir LV kodlama hatasıdır ama örneğin amacı eş zamanlı çalışan görevler arası veri aktarmak olduğu için göz ardı ediniz.)

0 Kudos
Message 2 of 4
(5,838 Views)

Şimdi aynı örneğin LV kodlama yapısıyla doğru olarak nasıl kodlandığını görelim. Bunun için bir "Sıralama" (Queue) yapısı kullanılmıştır. Tanımladığımız sıralama yapısında "zaman aşımı" tanımlanmadığı için ikinci görev ilk görevin sıraya veri eklemesiyle çalışmakta ve sırada veri olmadığı zaman beklemektedir. Buna göre ikinci görevin ilk görevin istediği ile eş zamanlı olarak çalıştırıldığını ve veri kaybı olmadan işlem gerçekleştirldiğini söyleyebiliriz.

eşleme.png

İlk görev sonlandırıldığında ikinci görevi sonlandırmak için sıra yapısının hata çıkışı kullanılmıştır. İlk görev bittiğinde sıra tanımının silinmesi ikinci görevde bir hata çıkışına sebep olmakta ve hata seçim penceresine eklenen bir doğru değişkeni ile döngü sonlandırılmaktadır.

0 Kudos
Message 3 of 4
(5,838 Views)

Sıralama yapıları birden fazla noktadan gelen verilerin toplanıp bir görev altında iş yapmasına da imkan verir. Oluşturduğunuz sıra referanslarını kullanarak alt VIlardan da veri aktarabilirsiniz.

0 Kudos
Message 4 of 4
(5,838 Views)