WinTr içerisinde script yazılıp çalıştırılabilir. Scriptler, screen ve nesne fonksiyonlarında kullanılarak belirli olaylar meydana geldiğinde tetiklenebilir. Örneğin scriptler, screen her refresh edildiğinde veya kullanıcı screen'de bir button üzerinde mouse'a bastığında ve kaldırdığında çalışacak şekilde ayarlanabilir.

Scriptlerle Internal ve External Taglar, değişkene erişiliyormuş gibi okunup yazılabilir. 

Script, Visual Basic veya C# diliyle yazılabilir.

Bu dillerle gerçekleştirilebilecek her işlem WinTr içerisinde script olarak çalıştırılabilir.

Script Writer'a, Editors Butonuna basıldığında açılan menüdeki Script Writer'a tıklanarak ulaşılır.
Script Writer'a erişim
Script Writer, otomatik üretilmiş kodlarla açılır. Bunlar gerekli class ları projeye dahil eden ve programın derlenebilmesi için ihtiyaç duyulan class ve prosedür tanımlamalarını içeren kodlardır.


WinTr taglarına script içerisinden erişmek için Tag isimleri

VB dilinde, Public Class MainClass ve Public Sub Load satırları arasında,

Public [Tag_ismi] as [Tip]

şelinde,

C# dilinde, class MainClass ve Public Void Load() satırları arasında,

Public [Tip]  [Tag_ismi]

şeklinde tanımlanmalıdır.(Aşağıdaki resmi inceleyiniz)

Aşağıdaki resimlerde WinTr Taglarına random sayı atayan basit VB ve C# örnek scriptleri bulunmaktadır.
Script'in Derlenmesi ve Çalıştırılması:

Toolstrip'deki Test butonuna basıldığında script hatalara karşı kontrol edilip derlenir.
Script'in kaydedilebilmesi için derlenmesi gereklidir.
Test and Run butonu ise script i derledikten sonra çalıştırır. Bu şekilde WinTr taglarına değer atanabilir.

Script'in derlenmesi ve çalıştırılması
Script Dilinin Seçilmesi
Yeni Script Oluşturmak ve Kaydetmek:

Yeni script oluşturma ve kaydetme işlemleri toolstrip üzerindeki butonlarla gerçekleştirilir.

Script oluşturmak ve kaydetmek
Yeni butonu yeni bir script dosyası oluşturur.

butonu kaydedilmiş script dosyasını açmak için dosya açma penceresini görüntüler.



Varolan Script'i açmak
Kaydet butonu dosyanın kaydedilmesi için kaydetme penceresini görüntüler.

Farklı kaydet butonu dosyayı farklı isimle kaydeder.

Script yazıldığında kaydetme butonları pasif durumdadır. Aktifleştirmek için Test butonuyla script in derlenmesi gereklidir.

Runtime Mod'a geçilip script çalıştırıldıktan sonra aynı oturumda script değiştirilip tekrar üzerine kaydedilemez. Script üzerinde değişiklik yapabilmek için WinTr nin kapatılıp açılması gereklidir.
Scriptlerin Function List'e atanması
Scriptlerin Runtime da Çalıştırılması:

Scriptler Runtime'da Screen ve Nesnelerin fonksiyonlarından çağırılırlar.

Screen designer da screen üzerinde sağ tıklanıp Screen Properties - Function menüsünden Screen Loading, Screen Refresh ve Screen Closing seçilerek ilgili olaya script atanabilir.
Scriptlerin Runtime'da çalıştırılması
Scriptlerin Nesne Fonksiyonlarına atanması
Script'i nesne fonksiyonlarından çağırmak için screen designer da nesne üzerinde sağ tıklanıp Properties - Function menüsünden nesneye ait bir olay seçilmelidir. Bu durumda fonksiyon penceresi açılacaktır.
Fonksiyon penceresinde Action Script combobox'undan script seçilip fonksiyon listesine eklendiğinde script, ilgili olayın fonksiyonuna atanmış olur.
Scriptlerin Function List'e atanması
Script kodları içerisinde açıklama yapmak amacıyla VB için ' (tek tırnak) ile, C# için // ile başlayan açıklamalar yazılabilir.
VB Derleyicisi ' tan, C# derleyicisi // den sonra yazılanları dikkate almayacaktır.
Script'te Prosedür ve Fonksiyon Kullanmak:

Script'in çalışmaya başladığı Load prosedürü içerisinden diğer prosedürler ve fonksiyonlar çağırılabilir.

VB dilinde;
Prosedür ile fonksiyon arasındaki fark, fonksiyonların geriye değer döndürebilmesidir.

C# dilinde ise;
prosedürlerin değer döndürmesi isteniyorsa prosedür tanımlanırken geri dönüs değerinin tipi prosedür isminden önce belirtilmelidir.

Load prosedürü içerisinden çağırıldıklarında bu yordamlar WinTr taglarına okuyup yazabilirler.
Prosedür ve fonksiyonlarda parametre kullanılabilir.

Aşağıda prosedür ve fonksiyonların kullanımına örnek olarak VB ve C# dilinde yazılmış iki script bulunmaktadır.
Scriptlerde Form Arayüzü ve Nesne Olayları Kullanmak:

Scriptlerde üzerinde nesne kontrolleri(Buton,textbox,checkbox...) bulundurarak kullanıcıyla etkileşim imkanı sağlayan grafiksel pencere arayüzleri kullanılabilir.
Scriptlerin WinTr SCADA İçerisinde Çalışma Biçimleri:

Runtime'da bir script tetiklendiğinde, Load prosedürü içerisinden çalışmaya başlar ve Tag değişkenlerine atanan değerler bu prosedürün son satırına gelindiğinde WinTr ye yazılır.

Load prosedürünün çalışması bittikten sonra script in WinTr Taglarıyla ilişkisi kesilir. Bu andan sonra script çalışmaya devam etse dahi WinTr taglarının değerleri değiştirilemez.

Bu sebeple WinTr Taglarına okuyup yazacak komutlar Script Start Line ve Script End Line satırları arasında çalıştırılacak şekilde tasarlanmalıdır.
WinTr Taglarına Script İçerisinden Erişmek:

Toolstrip üzerindeki Combobox' dan Script in yazılacağı dil Visual Basic yada C# olarak belirlenir.
Script'te form arayüzü
Görsel arayüz oluşturmak için 'form' tipinde bir nesne oluşturulup Public Sub Load prosedüründe showdialog yöntemiyle gösterilmelidir.

Kontrol nesneleri(buton,textbox...) bu form üzerine 

[form_ismi].controls.add([kontrol_ismi])

komutu ile eklenir.

Bu nesnelere ait olay handle'ları ise aşağıda gösterildiği gibi script'e eklenmelidir.
Script Writer'a erişim
Script Writer - VB derleyicisi
Script Dilinin Seçilmesi
VB dilinde Tagların Script içerisinde tanımlanması ve rastgele değer atanması
Script'te form arayüzü
Script'in derlenmesi ve çalıştırılması
Script oluşturmak ve kaydetmek
Varolan Script'i açmak
Scriptlerin Runtime'da çalıştırılması
Scriptlerin Nesne Fonksiyonlarına atanması

                                                                                                                                                                       Script Writer
VB Kodu:

Imports System
Imports System.IO
Imports System.Windows.Forms
Imports Microsoft.VisualBasic

Namespace WinTr
Public Class MainClass

Public Tag_1 as Uint16
Public Tag_2 as Uint16
Public Tag_3 as Uint16

Public Sub Load
'------- Script Start Line -----

procedure(Tag_2,Tag_3) 'prosedürün load prosedüründen çağrılması
Tag_1=func(Tag_2,Tag_3) 'func isimli fonksiyonun load prosedüründen çağrılması

'------- Script End Line -------
End Sub


'procedure isimli prosedürün tanımlanması
Sub procedure (parametre1 as Uint16 , parametre2 as Uint16)
Tag_1=parametre1+parametre2
end sub

'func isimli fonksiyonun tanımlanması
Function func(parametre1 as Uint16 , parametre2 as Uint16)
func=(parametre1+parametre2)*2
end function

End Class
End Namespace
Imports System
Imports System.IO
Imports System.Windows.Forms
Imports Microsoft.VisualBasic

Namespace WinTr
Public Class MainClass
       Public Tag_1 as Uint16

       'Buton, Click olayı ile kullanılacağı için withevents kelimesi ile tanımlanıyor.
       Private Withevents btn as New Button
       Public Sub Load

       '------- Script Start Line -------

       Dim frm as new form 'görüntülenecek form tanımlanıyor.
       frm.controls.add(btn) 'buton, forma ekleniyor.
       frm.showdialog        'form görüntüleniyor. Eğer form showdialog ile
                               'görüntülenmezse buton click olayı ile WinTr taglarına erişilemez.
       '------- Script End Line -------
       
       End Sub
       Sub btnhandler (sender as object,e as system.eventargs) Handles btn.click 'butonun 'click' handler'ı
       Tag_1=1
       End sub

End Class
End Namespace
Script Writer - C# derleyicisi
C# dilinde Tagların Script içerisinde tanımlanması ve rastgele değer atanması
C# Kodu:

using System;
using System.IO;
using System.Windows.Forms;
using Microsoft.CSharp;

namespace WinTr
{
class MainClass
{

public UInt16 Tag_1;
public UInt16 Tag_2;
public UInt16 Tag_3;

       public void Load()
       {
       //------- Script Start Line -----

       Tag_1=procedure(Tag_2,Tag_3); 'prosedürün load prosedüründen çağrılması

       //------- Script End Line -------
       }

'procedure isimli prosedürün  UInt16 geri dönüş tipiyle tanımlanması
public UInt16 procedure(UInt16 parametre1, UInt16 parametre2)
{

return (UInt16)((parametre1+parametre2)*2);

}

}
}

Projede kullanılan Scriptlerin Cross reference olarak gösterilmesi
Script Writer'da bir Script açıldığında o script'in proje içerisinde kullanıldığı yerler sağ tarafta Cross Reference olarak listelenir.
Script'in proje içerisinde kullanıldığı yerlerin Cross reference olarak listelenmesi
C# dilinde Tagların Script içerisinde tanımlanması ve rastgele değer atanması
Eğer derleme sonucunda Scriptte hata tesbit edilirse hatalar Script Writer'ın alt kısmında listelenecektir. Hatanın üzerine çift tıklandığında hatanın olduğu satır otomatik olarak işeretlenecektir.
Derleme sonucunda hataların tesbit edilmesi
VB dilinde Tagların Script içerisinde tanımlanması ve rastgele değer atanması

                                                                                                                                                                               English                Turkish
Script Writer - VB derleyicisi
Script Writer - C# derleyicisi
Derleme sonucunda hataların tesbit edilmesi
Yakınlaştır - Uzaklaştır butonu yazı karakterlerini büyütüp küçültür.

Arama özelliği, kutucuğa yazılan tag ismini listede bularak işaretler.

Açıklama satırı butonları seçili satırları açıklama haline getirir.

Satır kaydırma butonları satırı içe-dışa kaydırır.
Script Toolbar
Script ToolBar
Otomasyon        Scada        Plc
SCADA