# Değişkenler

Tüm SCADA yazılımlarında olduğu gibi inSCADA platformunda en önemli temel bileşen "Variable",  diğer SCADA'larda bilinen adıyla "TAG" veya "POINT".

![Resim 1 : Variable Architecture](/files/-LjFa0VuR0Wy679CC6WZ)

Resim 1'de gösterildiği gibi "Variable" haberleşme kanalından okuduğumuz değerlerin etiketlenmiş halidir. Haberleştiğimiz cihazlardan okuduğumuz değerlerin inSCADA platformuna etiketlenerek getirilmesini ve platform içerisinde değişken olarak kullanılmasını sağlar. Programlama dillerinde tanımlanan değişkenler gibi.

Değişkenlerin her programlama dilinde olduğu gibi en önemli özelliği tipleridir. Kullandığımız programlama tiplerine göre ufak farklılıklar göstersede birbirlerine yakın tanımlamaları olur. (Float, Double, Boolean gibi)

inSCADA içerisinde tip tanımı, verinin okunduğu cihaz içerisindeki formatını belirtir. Okunan cihaz içersindeki bir veri hangi tipte o cihaz içerisinde tanımlı ise, inSCADA içerisinde tanımlanırken aynı şekilde tanımlanmalı ki okunan veri doğru şekilde platform içerisine getirilebilsin. Esasen tüm variable 'lar hangi tipte tanımlı oluyor olsun, platform içerisinde Double/Boolean tipine dönüştürülür ve platform içerisinde o bu tiplerde işleme girerler.

Variable ifadesinin kısa bir açıklamasını yaptıktan sonra verilen ekran görüntüleri üzerinden, platformun bize sunduğu araçları ve özellikleri inceleyelim.&#x20;

![Resim 2 : Variables](/files/XbP5cIQZ1e6WhxLE6oBh)

Resim 2'de görüldüğü gibi seçili proje altındaki tüm değişkenler zaman etiketi ve değerleri ile birlik görülmektedir. Grid üzerinde, değişkenlerimizin özelliklerini ve haberleşme kanalları aktif ise güncel değerlerin ve zaman etiketlerinin değiştiğini gerçek zamanlı olarak izleyebilmekteyiz.

Gridimizin sağ üst köşesinde bulunan butonlar ;

<div align="left"><img src="/files/Qkv44VQ6EUX6lMVxrMax" alt="Backup"></div>

Backup : Variable tablosundaki tüm değişkenleri xlsx formatında dışarı aktarır.

<div align="left"><img src="/files/aokXR0QbEfXYrlelAb57" alt="Restore"></div>

Restore : xlsx olarak hazırlanmış variable listesinin, variable tablosuna aktarılmasını sağlar.

<div align="left"><img src="/files/-LkjzRycpT89WYLZXkAP" alt="Refresh"></div>

Refresh : Değişkenlerin en son değerlerinin ekrana getirilmesini sağlar. Ekrandaki verileri günceller.&#x20;

{% hint style="info" %}
Variable gridindeki değerler otomatik olarak güncellenmektedir. Güncelleme periyodundan önce anlık olarak değerlerini güncellemek için refresh komutunu kullanabilirsiniz.
{% endhint %}

<div align="left"><img src="/files/cFlf0589l573X567hCfb" alt="Set"></div>

Set : Grid üzerinde seçili bir değişkenin değerinin kullanıcı tarafında değiştirilmesini sağlar. Değişkenin tipine uygun olarak num-pad veya on-off diyalog penceresi açar ve kullanıcının bir değer girmesini bekler.

![Resim 3 : Num-Pad](/files/-LkSs4dI7f-3NJ7x3kt-)

Resim 3'te görüldüğü gibi boolean/digital tipi dışındaki değişken değerlerinin değiştirilmesi için kullanılan veri giriş diyalog penceresi açılır.&#x20;

![Resim 4 : On-Off / True-False](/files/FEgWZ7LofVny9vRLrHJy)

Boolean/Digital değerler içinse Resim 4'te görülen diyalog penceresi açılır.

<div align="left"><img src="/files/-Lkk0g4yOdSoQj5yhbpq" alt="Search"></div>

Search : Grid üzerinde arama yapmamızı sağlar.&#x20;

![Resim 5 : Variable Search Form](/files/j3ULJZEnNHDrx1dw0Cn1)

Resim 5'te görüldüğü gibi search butonuna bastığımızda açılan form üzerindeki kriterlere göre grid üzerinde arama yaparak istediğimiz değişkenlere ulaşabiliyoruz.

<div align="left"><img src="/files/-Lkk4JcFqBJ6RuzVX1Iw" alt="Add-Edit-Delete"></div>

Add : Yeni bir variable oluşturmamızı sağlar.

Edit : Var olan grid üzerinde seçili bir değişkeni düzenlememizi sağlar.

Delete : Var olan grid üzerinde seçili bir değişkeni silmemizi sağlar.

## Add/Edit Form

inSCADA platformunda bir değişken oluşturmak veya düzenlemek için açılan form resim 6'da gösterilmiştir. Resimde gösterilen form üzerinden hem kullanımını, hem de değişkenlerin özelliklerini tanıyalım.

![Resim 6 : Variables Add/Edit Form](/files/z7eZ3DQuUZaSCkozoZmK)

#### Project

Değişkenin bağlı olduğu veya bağlanacağı projeyi belirtir veya tanımlar.

#### Connection

Değişkenin bağlı olduğu veya bağlanacağı bağlantıyı belirtir veya tanımlar.

#### Device

Değişkenin bağlı olduğu veya bağlanacağı cihazı belirtir veya tanımlar.

#### Frame

Değişkenin bağlı olduğu veya bağlanacağı veri bloğunu belirtir veya tanımlar.

#### Code

Değişkeni tanımlayan kısa etiketidir. P\&ID no olarak kullanılabilir. Bu değer raporlarda değişkenlerin sütun başlığı olarak da kullanılır.

#### Start Address

Değişkenin bağlı olduğu veri bloğundaki word-index'ini ifade eder.

#### Type

Değişkenin bağlı olduğu veri bloğunda içerisinden hangi tipte veri okuyacağını/yazacağını belirler. Aynı zamanda start address'den itibaren kaç byte/bit/word okuyacağını da belirtmiş olur. inSCADA içerisinde seçebileceğiniz Data Tip'leri aşağıda listelenmiştir.&#x20;

* Float (32 Bit Single-Precision Floating Number)
* Integer (32 Bit Signed Integer Number)
* Byte (8 Bit)
* Boolean (1 Bit)
* Short (16 Bit Signed Integer Number)
* Double (64 Bit Double-Precision Floating Point Number)
* Long (64 Bit Signed Integer Number)
* Unsigned Integer (32 Bit Unsigned Integer Number)
* Unsigned Short&#x20;
* Unsigned Byte
* 16 Bit BCD
* 32 bit BCD
* 64 bit BCD

#### Unit

Değişken değerimizin birimini tanımlar. Sadece gösterim için kullanılır. Değere etki etmez birim dönüşümü yapmaz. Raporlarda değerlerin birimini belirtmek için kullanılır.&#x20;

{% hint style="info" %}
inSCADA ile birim dönüşümleri yapmak için Value Expression kullanılır. Kullanışlı ve esnek bir metotdur.
{% endhint %}

#### Name

Değişken değerimizin tanımlayıcı ismidir. Değişken değerlerine bu isim aracılığı ile erişim sağlanır.

#### Description

Değişken değerimiz ile ilgili açıklama girilen alandır.

#### Decimal Point

Değişken değerimizin ondalık basamak miktarını tanımlar.

### Scale

![Resim 7 : Variable Scale](/files/-Lkk_rVOqKHK72V9rVjl)

$$Eng=(Raw/(RawFull-RawZero))\*(EngFull-EngZero)+EngZero$$&#x20;

#### is Active

Değişkenin active/deactive eder. Deactive olan değişkenlerin değerleri güncellenmez.

#### Word Swap

Değişken word'lerinin yerlerini değiştirir. High Word-Low Word => Low Word-High Word

#### Byte Swap

Değişken byte'larının yerlerini değiştirir. High Byte-Low Byte => Low Byte->High Byte

### Expression Type

Variable Expression değişkenlerin haberleşme hattından gerçek zamanlı okunurken ve yazılırken javascript dili ile işlemden geçirilmesini sağlar. Bu sayede cihazlardan okunan veya cihazlara yazılan değişkenler, sanal değişkenler ve scriptler oluşturmadan kendi içerisinde hesaplamalar, işlemler ve birim dönüşümleri gibi operasyonlar yapılmasını sağlar.

![Resim 8 : Read Variable Value Cycle](/files/-LkkzQv_EsvxdZwqVEcc)

Resim 8'de inSCADA içerisinde değişken değerlerinin "Variable Value" nasıl oluşturulduğunu görüyorsunuz.

Expression Type seçenekleri ;

![Resim 9 : Expression Type](/files/-Lkl2ycxB4XC6j9BTEiH)

#### Expression Type - None

Expression operasyonunu deaktif eder. Bu durumda scale operasyonu aktif olur.

#### Expression Type - Custom

Expression operasyonunu aktif eder. Variable Add/Edit form içerisinde script yazılmasına olanak verir.

#### Expression Type - Expression

Expression operasyonunu aktif eder. Expression kütüphanesinden istenilen expression'ın kullanımını sağlar.

### Log Type

Log Type, değişken değerlerinin veri tabanına hangi metotla kaydedileceğini belirler.

#### Log Type - None

Değişken değerinin veritabanına kaydedilmemesini sağlar.

#### Log Type - When Changed

Değişken değerinin veritabanına değiştiğinde kaydedilmesini sağlar.

#### Log Type - Periodical

Değişken değerinin her tarama periyodunda kaydedilmesini sağlar. Tarama periyodu bir değişken için Device Scan Time \* Frame Scan Time Factor kadardır. Kaydedilme periyodu ise Log Period \* Device Scan Time \* Frame Scan Time Factor kadar olur.

#### Log Type - Threshold

Değişken değerinin set edilen Threshold değeri % oranında değişimini aştığında kaydedilmesini sağlar.

#### [Log Type - Custom](/ins/master/user-interface/development/expressions.md#variable-logs)

Değişken değerinin kaydedilmesi için javascript ile expression yazılır. Expression sonucu true olduğu durumlarda değişken değeri veritabanına kaydedilir. Kaydetme periyodu tarama periyoduna bağlıdır.

#### [Log Type - Expression](/ins/master/user-interface/development/expressions.md#variable-logs)

Değişken değerinin kaydedilmesi için expression kütüphanesinden bir expression seçilmesini sağlar ve expression'ın sonucu true olduğu durumlarda değişken değeri veritabanına kaydedilir. Kaydetme periyodu tarama periyoduna bağlıdır.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://inscada.gitbook.io/ins/master/user-interface/development/variables.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
