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

cancel
Showing results for 
Search instead for 
Did you mean: 

OPC Server S7-1200 Data Block Erişim Sorunu

Solved!
Go to solution

Bu yöntemi biliyorum ancak kullanışsız. Çok sayıda variable için, içinden çıkılmaz bir hal alacak. Ki ben de çok sayıda variable ile çalışmak durumundayım şu anda. 

 

Ayrıca debuggable olarak bir uygulama oluşturup denedim, shared variable'larımın olduğu kütüphaneyi deploy edemiyor. Ancak nedenini hala bilemiyorum 🙂

0 Kudos
Message 11 of 12
(1,874 Views)
Solution
Accepted by aykanklnk

1.Datasoket ile erişmek aksine oldukça kullanışlı bir yöntem. Veri tipine göre dinamik tanımlamalar yaparsanız oldukça da esnek bir yöntem.

2.Değişken sayısının fazla olması Datasoket kullanımının daha uygun bir seçim olmasının diğer sebebi. Zira her değişken için sabit bir SharedVar tanımlamak yazılımda oldukça statik bir yapı oluşturacaktır. Oysa Datasoket ile dinamik erişimler yapabilirsiniz.

3.SharedVar kullanımı "global değişken" kullanımının da üzerinde yazılım içerisinden takip edilmesi zor ve karmaşık durumlar ortaya çıkarabilir. Hele ağ üzerinde birden çok cihaz aynı adrese okuma yazma yapıyorsa "race condition" denilen durum ortaya çıkması ve sorunun anlaşılmasının mümkün olmaması bile olasılıklar dahilindedir.

4.SharedVar bir motor üzerinde çalışmaktadır (SharedVar Engine). Bu motor belli aralıklarla ilgili adresleri kontrol ederek güncelemeler yapmaktadır (yanlış hatırlamıyorsam en az 20ms). Projeye eklediğiniz her bir değişken (muhtemelen) yazılım koşmaya başlayınca bu motora yüklenecek ve bu motor üzerinde takibe alınacaktır. Ne kadar çok değişken olursa motor o kadar ağırlaşacaktır.

5.SharedVar motoru veri aktarımı açısından kısıtlı bir hıza ve veri aktarımına imkan vermektedir. Anlık değişimleri yakalamak için değişkeni gereksiz yere sıklıkla kontrol etmeniz gerekmektedir. Bu hız verinin yazıldığı noktadan daha hızlı olmak durumundadır.

 

Öyleyse hangi durumlarda (neden) SharedVar kullanılır?

1.Adres tanımlamaları kolay yapıldığı ve değişken tipine adapte olabildiği için

2.Sürükle/bırak yöntemi ve okuma/yazma yön seçeneği ile yazılımda istenilen noktadan kolay erişimi olduğu için

3.Cihazlar arası haberleşmenin kurulmasının ve takibinin SharedVar motoru tarafından takip ediliyor olması sebebiyle

4.Doğrudan denetimlere/göstergelere bağlanabilmesi sebebiyle

 

Kullanımda dikkat edilecek hususlar

1.Varsa DSC modül içerisindeki SharedVar kütüphanesini kullanın. Orada dinamik okumalar yapabileceğiniz ve "notification" ile takip etmenize imkan veren işlevler var.

2.Okuma/yazma yazılım içerisinde tek noktadan yapılmalı. Değerler bu noktadan yada bu noktaya yönelendirilmeli.

3.Yavaş işlemlerde kullanılması sorun çıkarmayacaktır (küçük ve sık olmayan veri).

 

 

Gelelim sorunuza;

Sanırım karşı tarafa kurulum yaparak yükleme yapmadınız. Kurulum yaparak yükleme yapmanız bu sorunu giderecektir diye düşünüyorum. Diğer olasılık ise geliştirme yaptığınız bilgisayarda "C:\ProgramData\National Instruments\MDF\ProductCache" içerisinde "NI Variable Engine" klasöründeki kurulumları karşı tarafa yükleyiniz.

Message 12 of 12
(1,869 Views)