Scale Hakkında - SCADA Eğitim Sitesi
Home » Haberleşme » Scale Hakkında
Posted by Ben_Cemal on Eki 8, 2013 in Haberleşme | 5 comments
PLC’den gelen değeri scale edip scada’ya alabiliyorum. PLC’den 16 bit unsigned geliyor. Scada’da floating oluyor.
Ancak aksini yapamıyorum. Scada’daki floating sayıyı unsigned 16 bit’e scale edemiyorum.
Scale sonucu floatpoint bir tag’a yazılmak zorundadır. İlk değer unsigned veya floatpoint olabilir. Böyle olmasının sebebi ise floatpoint gösterim kaabiliyeti çok büyüktür. 16 bit’lik sayı ise 0-65535 arasında değerleri virgülsüz olarak gösterebilir.
Scada’daki floatpoint sayıyı neden 16 bite çevirmek istediğinizi anlamadım. Nedenini açıklarsanız belki bir önerim olabilir. Ayrıca plc kullanıyorsanız scale işlemini neden plc içersinde yapmıyorsunuz?
PLC’deki programın formatı bu şekilde benim ona müdahale etmem söz konusu değil. PLC programını yazan firma kendi cihazlarını bu şekilde kontrol ediyor. Benim amacım ise scada Programını kullanacak operatöre daha anlaşılır bir ekran görüntüsü vermek.
Şöyle ki, Cihazın SET Voltajı için PLC’ye gidecek değer unsigned 16-bit. örneğin, 200. Ancak cihaz aslında 20.0 voltta çalışacak. Operatöre diyemem ki, sen belirtilen kutucuğa 200 yazdığında, cihaza 20.0 volt gider. 176 yaz 17.6 volt gitsin.
Scada’da floating point kullanarak noktalı sayıyı alıp, plc’ye unsigned olarak göndermek istiyorum. Yani operatör ekrana 37.5 volt yazdığında. ben bu değeri alıp 375 olarak plc’ye göndermek istiyorum.
Script ile yapmalısın.
Tag’ları sağ tarafdan seçip script içersine ekledikten sonra aşağıdaki kodu Form Load bölümüne yazın.
PlcTag = Val(10 * OprTag)
Bu scripti set değerinin girileceği sayfanın Refresh fonksiyonunda çalıştırın. Ekran’da değer girilen textbox’ın value özelliğine OprTag’ı seçin.
Dediğinizi yapınca çalıştı. Ancak “sayfanın Refresh fonksiyonunda çalıştırın” kısmını çözemedim. Bende “Control Panel”‘deki “Network cycle script” kısmında yazdığım scripti seçtim.
Bu durumda 1 sorum daha olacak.
Ekranda yazdığım “7,0” değerini kendisi otomatik olarak “7”ye değiştiriyor. Diğer değerlerde sorun yok. 7,1 —> 7,1 oluyor. Buna yönelik bir çözümünüz var mıdır?
Cycle script demo’da çalışır fakat lisanslı çalışmada 1024 Tag ve üstünde çalışır. Daha düşük tag sayısında çalışmaz.
Screen açın boş bir yere sağ kılik yapın screen properties içersinde function da refresh bölümünden scripti seçmelisiniz.
virgülden sonraki hane 0 olduğunda böyle gösterir. Numeric updown kullanıp virgülden sonraki dijit sayısını seçebilirsiniz.