> For the complete documentation index, see [llms.txt](https://inscada.gitbook.io/ins/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://inscada.gitbook.io/ins/master/user-interface/development/expressions.md).

# İfadeler

inSCADA içerisinde javascript dilinde expression'lar yazabilirsiniz. Script'ten farklı olarak expression'lar kullanıldıkları ortamdan parametre alabilmektedir. Kullanılan ortamlar;

* Variable Expression,
* Variable Logs,
* Alarms,
* Alarm Group On-Off-Ack Actions,
* Animation Elements.

{% hint style="info" %}
Expression'lar projeye bağımlı değildir. Yazdığınız Expression'lar tüm projelerde kullanılabilir.
{% endhint %}

![İfadeler Ana Menü](/files/nwTkLSUEs8nfnJhvWNyB)

## Variable Expression

Variable expression, bir değişkenin haberleşme kanalından okuma taraması sırasında çalıştırılır. Bir variable'a ekleyeceğiniz expression, Variable'ın bağlı olduğu Device ve Frame'in tarama periyoduna bağlı olarak çalıştırılır.&#x20;

Expression'a aktarılan değişkenler;

* initialValue (Number)
* self (object)

![Resim 2 : Variable Custom - Expression](/files/-LkcZkL7MzgbDRqR7Tpw)

Resim 2'de görüldüğü gibi bir variable içerisinde custom bir expression yazılmıştır. Yukarıdaki expression tanımında, expression'ların çalıştırıldığı ortamdan parametreler alabildiğinden bahsetmiştik. Resim 2'deki örnekteki yazılan javascript kodunu incelediğimizde "initialValue" isimli bir değişken göreceksiniz. "initialValue" değişkeni sadece Variable içerisinde kullanılabilecek, inSCADA platformu tarafından expression'a gönderilen bir değişkendir. Bu değişken içerisinde , ilgili variable'in değeri bulunmaktadır.

```javascript
if (initialValue<10) {
    return 1;
}
else 
{
    return 0;
}

```

Resim 2'deki javascript kodunu incelerseniz, ilgili variable değerinin 10'dan küçük olması durumunda 1,  büyük ve eşit olması durumunda 0 değeri olması sağlanmaktadır.&#x20;

{% hint style="info" %}
Variable Expression  çok güçlü ve kullanışlı bir özelliktir. Geleneksel metotlarda, cihazlardan okunan ham verilerin, scale operasyonundan daha karmaşık ve farklı hesaplamaları için sanal Variables/Tag oluşturmanız akabinde, script'ler yazıp ham değeri okuduğunuz Variables/Tags'dan sanal taglarınıza işlemden geçirip kopyalamanız gerekir. Fakat inSCADA bu tür operasyonlarınız için projenizin takip edilemez içeriklerle doldurmanıza göz yummaz. Size daha güçlü ve kullanışlı olan Variable Expression metodunu sunar.
{% endhint %}

Aşağıda variable expression için farklı örnekler görebilirsiniz.

```javascript
// Joule to KCal
var newValue=initialValue/4185.5;
return newValue;
```

```javascript
if (self.name.search("BAR">=0) {
return initialValue*1000; // Convert BAR to mBAR
}

if (self.name.search("PSI">=0) {
return initialValue*69; // Convert PSI to mBAR
}

```

```javascript
var datetime=new Date(initialValue);
if (self.name.search("YEAR")>=0 {
return datetime.getYear()+1900;
}

if (self.name.search("MONTH")>=0 {
return datetime.getMonth()+1;
}

```

## Variable Logs

Variable logs'da yazılan expressionlar, sonucu true olduğu durumlarda değişken değerinin veritabanına tarama periyodunda kaydedilmesini sağlar.

Aşağıda variable log'da kullanılabilecek expression örneklerini görebilirsiniz.

```javascript
if initialValue>100 return true; else false;
```

```javascript
if (self.name.search("DAILY")>=0 {
    var dt=ins.now();
    if (dt.getHours()===0 && dt.getMinutes()===0) {
    return true; }
}
return false;
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

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

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
