Skip to content

Utils API

Utils API, script’ler içinden HTTP istekleri, SQL sorguları, tarih/sayı formatlama ve sistem yardımcı fonksiyonlarına erişim sağlar.

ins.rest(httpMethod, url, contentType, body)

Section titled “ins.rest(httpMethod, url, contentType, body)”

Harici bir HTTP servisine istek gönderir.

// GET isteği
var response = ins.rest("GET",
"https://jsonplaceholder.typicode.com/todos/1",
"application/json", null);
var statusCode = response.statusCode;
var body = response.body;
var data = JSON.parse(body);

Yanıt:

{
"statusCode": 200,
"body": "{\n \"userId\": 1,\n \"id\": 1,\n \"title\": \"delectus aut autem\",\n \"completed\": false\n}"
}

Özel HTTP header’ları ile istek gönderir.

var headers = {
"Content-Type": "application/json",
"Accept": "application/json"
};
var response = ins.rest("GET",
"https://jsonplaceholder.typicode.com/todos/1",
headers, null);

Desteklenen HTTP metodları: GET, POST, PUT, DELETE

Varsayılan veritabanında SQL sorgusu çalıştırır.

var result = ins.runSql("SELECT * FROM custom_table WHERE date = CURRENT_DATE");
// result.columns = ["id", "name", "value"]
// result.rows = [[1, "temp", 25.4], [2, "press", 3.2]]

Tanımlı bir harici veri kaynağında SQL sorgusu çalıştırır.

var result = ins.runSql("erp_database", "SELECT production_count FROM daily_report");

Doğrudan bağlantı bilgileriyle SQL sorgusu çalıştırır.

var result = ins.runSql(
"jdbc:postgresql://192.168.1.50:5432/erp",
"reader", "password123",
"SELECT * FROM orders WHERE status = 'active'"
);

Zaman serisi veritabanında InfluxQL sorgusu çalıştırır.

var result = ins.runInfluxQL(
"SELECT mean(value) FROM variable_values WHERE time > now() - 1h GROUP BY time(5m)"
);

ins.getCustomSqlQuery(name) / ins.getCustomInfluxQLQuery(name)

Section titled “ins.getCustomSqlQuery(name) / ins.getCustomInfluxQLQuery(name)”

Platformda tanımlı özel sorgu şablonlarını getirir.

var sql = ins.getCustomSqlQuery("daily_report");
var result = ins.runSql(sql);

Sunucunun güncel zamanını döndürür.

var now = ins.now();
// → Sat Mar 28 11:31:47 TRT 2026

Milisaniye değerinden Date nesnesi oluşturur.

var yesterday = ins.getDate(Date.now() - 86400000);
var oneHourAgo = ins.getDate(Date.now() - 3600000);
// → Sat Mar 28 10:32:43 TRT 2026

ins.formatNumber(number, pattern, decimalSeparator, groupingSeparator)

Section titled “ins.formatNumber(number, pattern, decimalSeparator, groupingSeparator)”

Sayıyı belirli formatta metin olarak döndürür.

ins.formatNumber(1234567.89, "#,##0.00", ",", ".");
// → "1.234.567,89"
ins.formatNumber(3.14159, "0.00", ".", ",");
// → "3.14"

Metnin soluna karakter ekleyerek belirli uzunluğa tamamlar.

ins.leftPad("42", 5, "0"); // → "00042"
ins.leftPad("AB", 4, " "); // → " AB"

Benzersiz UUID üretir.

var id = ins.uuid();
// → "f4cbb047-4376-4d8b-ae46-5cafed31155b"

Bir sayının belirli bit’ini okur.

var statusWord = ins.getVariableValue("status_register").value;
var bit3 = ins.getBit(statusWord, 3); // true veya false

Bir sayının belirli bit’ini ayarlar.

var word = 0;
word = ins.setBit(word, 0, true); // bit 0 = 1 → word = 1
word = ins.setBit(word, 3, true); // bit 3 = 1 → word = 9

Yanıt:

{ "word": 9, "bit0": true, "bit1": false, "bit3": true }

Bir IP adresine ping gönderir.

var reachable = ins.ping("127.0.0.1", 3000);
// → true
if (!reachable) {
ins.notify("warning", "Ağ Uyarısı", "PLC erişilemez!");
}

Belirli bir porta TCP bağlantı testi yapar.

var portOpen = ins.ping("127.0.0.1", 8081, 3000);
// → true

JavaScript nesnesini JSON string’e dönüştürür.

var obj = {temperature: 25.4, status: "ok"};
var json = ins.toJSONStr(obj);
// '{"temperature":25.4,"status":"ok"}'

Script’ler içinden kullanıcı arayüzü ile etkileşim:

// Konsol logu
ins.consoleLog("Debug: değer = " + value);
// Numpad açma (değer girişi)
ins.numpad("setpoint_temperature");
// Tüm istemcileri yenile
ins.refreshAllClients();
// UI yeniden yükle
ins.reloadUi();
// Gece/gündüz modu
ins.setDayNightMode(true); // gece modu
// Ses çalma
ins.playAudio(true, "alarm.wav", false);
// Onay popup'ı
ins.confirm("warning", "Dikkat", "Pompa durdurulsun mu?", callbackObj);

Sunucu dosya sistemine yazar.

ins.writeToFile("report.csv", "timestamp,temperature,pressure\n", false);
ins.writeToFile("report.csv", ins.now() + ",25.4,3.2\n", true);

Sunucu dosya sisteminden okur.

var content = ins.readFile("config.json");
var config = JSON.parse(content);