Script içerisinde Tag değerlerini okumak ve yazmak için ilk önce Tag tanıtımı yapılmalıdır.
“Public Sub Load” ifadesinin üst satırında “Public Tag_1 As Uint16” şeklinde tanımı yapılır. Daha sonra script içerisinde Tag_1 = 5 şeklinde kullanabiliriz. Çok sayıda Tag olduğunda ve bazı özel durumlarda Tag tanımı yapılmadan’da Tag değerlerine erişebiliriz. Örneğin: Script içerisinde Timer yapıp çalıştırdığımızda Timer fonksiyonu içersinde Tag_1 = 5 ifadesi neticesinde yeni değer scada’ya iletilemez. Ancak şimdi anlatacağım yöntem ile yaptığımızda Tag değeri değiştirilebilir.

Tag tanım alanına aşağıdaki ifadeyi ekleyelim.

Public RWTagValue As Object

Her hangi bir Tag değerine erişmek istediğimizde aşağıdaki kodu kullanabiliriz.

RWTagValue.Value(“Tag_1”)

Tag_1 yerine diğer tagların isimlerini yazarak aynı script’te hepsine erişebiliriz. Okuma ve yazma yapabiliriz. Asenkron scriptler’de bu komutlar kullanılamaz.

Alternatif bir yolda Tag dizilerini kullanmak olabilir. Bu amaçla kullanılan iki dizin mevcuttur.

Public TagNameTable() As String

Public TagValueTable() As String

ilk dizi tüm tagların ismini, ikinci dizi tüm Tag’ların değerini gösterir. Bu dizilerden sadece okuma yapabilirsiniz. Yazma işlemi yapılmaz. Bu diziler ile bir tagın değerine ulaşmak için o tag’ın bulunduğu index tespit edilmelidir. IndexOf komutu ile index bulunabilir. Tag adı hatalı olduğunda index değeri -1 olacaktır. Aşağıdaki kod bu dizilerin kullanımı için yeterlidir.

dim i as integer = Array.IndexOf(TagNameTable,”Tag_1″)

if i > -1 Then

MsgBox(TagValueTable(i))

End If

Sonuç: Script ile bir Tag’ın değerine erişebilmek için 3 yöntem anlatıldı. 1. Tag ismi ile variable direkt olarak oluşturulur. 2. RWTagValue fonksiyonu kullanılabilir. 3. Tag dizileri kullanılabilir. Bu yöntemlerin avantaj ve dezavantajları vardır. 1. yöntem her zaman daha hızlı çalışır. Cpu kullanımıda düşük olur. 2. Yöntem script içerinde kullanıldığı halde her zaman okuma yazma yapılmayacağı durumlarda avantajlıdır. Diğer bir avantajı ise çok sayıda tag kullanılan scriptlerin yazım kolaylığıdır. Yazım kolay olsada çalışması 1. yönteme gere daha fazla cpu gerektirecektir. Asenkron scriptlerde kullanılmaması da diğer bir dezavantajdır. 3. yöntem her ikisinden biraz diyebiliriz. Fakat en önemli dezavantajı sadece okunur olmasıdır.