İçeriğe geç

Connection API

Connection API, script’ler içinden haberleşme bağlantılarını (Modbus, OPC-UA, IEC-104, S7, MQTT, BACnet vs.) yönetir ve Connection → Device → Frame hiyerarşisini okuyup günceller.

ins.startConnection(name) / ins.startConnection(projectName, name)

Section titled “ins.startConnection(name) / ins.startConnection(projectName, name)”

Bağlantıyı başlatır. projectName verilmezse mevcut proje varsayılır.

ins.startConnection("MODBUS-PLC");
ins.startConnection("otherProject", "MODBUS-PLC");

ins.stopConnection(name) / ins.stopConnection(projectName, name)

Section titled “ins.stopConnection(name) / ins.stopConnection(projectName, name)”

Bağlantıyı durdurur.

ins.stopConnection("MODBUS-PLC");

ins.getConnectionStatus(name) / ins.getConnectionStatus(projectName, name)

Section titled “ins.getConnectionStatus(name) / ins.getConnectionStatus(projectName, name)”

ConnectionStatus enum döner — yalnızca iki değer vardır:

DeğerAnlam
"Connected"Bağlantı aktif
"Disconnected"Bağlantı kapalı veya koptu
var status = ins.getConnectionStatus("MODBUS-PLC");
if (status == "Disconnected") {
ins.notify("warning", "Bağlantı", "MODBUS-PLC bağlı değil");
}

ins.getConnection(name) / ins.getConnection(projectName, name)

Section titled “ins.getConnection(name) / ins.getConnection(projectName, name)”

ConnectionResponseDto döner.

Alanlar:

MetodTürAçıklama
getName()StringBağlantı adı
getDsc()StringAçıklama
getProjectId()StringProje ID
getProtocol()ProtocolProtokol (MODBUS, OPC_UA, S7, vs.)
getIp()StringIP adresi
getPort()IntegerPort
getConfig()Map<String, Object>Protokole özel ek ayarlar
var c = ins.getConnection("MODBUS-PLC");
ins.consoleLog(c.getProtocol() + " " + c.getIp() + ":" + c.getPort());

DeviceResponseDto döner.

MetodTürAçıklama
getName()StringDevice adı
getDsc()StringAçıklama
getConnectionId()StringÜst bağlantı ID
getProtocol()ProtocolProtokol
getConfig()Map<String, Object>Device’e özel ayarlar (slave ID, node ID, vs.)
var d = ins.getDevice("MODBUS-PLC", "Device1");
ins.consoleLog("Slave: " + d.getConfig().slaveId);

ins.getFrame(connectionName, deviceName, frameName)

Section titled “ins.getFrame(connectionName, deviceName, frameName)”

FrameResponseDto döner.

MetodTürAçıklama
getName()StringFrame adı
getDsc()StringAçıklama
getDeviceId()StringÜst device ID
getProtocol()ProtocolProtokol
getMinutesOffset()IntegerDakika offset (scan pencereleri için)
getScanTimeFactor()IntegerTarama süresi çarpanı
getIsReadable()BooleanOkuma aktif mi
getIsWritable()BooleanYazma aktif mi
getConfig()Map<String, Object>Frame-specific (örn. Modbus adres aralığı)
var f = ins.getFrame("MODBUS-PLC", "Device1", "HoldingRegs_0_100");
ins.consoleLog("Scan x" + f.getScanTimeFactor() + " — offset " + f.getMinutesOffset() + "m");

Güncelleme metodları tam DTO ister — tipik kalıp: önce getConnection / getDevice / getFrame ile oku, ilgili alanı değiştir, sonra updateX ile geri yaz.

var c = ins.getConnection("MODBUS-PLC");
c.setIp("192.168.1.100");
c.setPort(502);
ins.updateConnection("MODBUS-PLC", c);

ins.updateDevice(connectionName, deviceName, dto)

Section titled “ins.updateDevice(connectionName, deviceName, dto)”
var d = ins.getDevice("MODBUS-PLC", "Device1");
d.setDsc("Main switchgear — updated");
ins.updateDevice("MODBUS-PLC", "Device1", d);

ins.updateFrame(connectionName, deviceName, frameName, dto)

Section titled “ins.updateFrame(connectionName, deviceName, frameName, dto)”
var f = ins.getFrame("MODBUS-PLC", "Device1", "HoldingRegs_0_100");
f.setScanTimeFactor(5); // tarama aralığını seyrekleştir
f.setIsWritable(false); // salt okunur yap
ins.updateFrame("MODBUS-PLC", "Device1", "HoldingRegs_0_100", f);

Örnek: Bağlantıyı IP değişikliği ile yenile

Section titled “Örnek: Bağlantıyı IP değişikliği ile yenile”
function main() {
var c = ins.getConnection("MODBUS-PLC");
if (c.getIp() == "192.168.1.100") {
ins.consoleLog("IP zaten güncel");
return;
}
ins.stopConnection("MODBUS-PLC");
c.setIp("192.168.1.100");
ins.updateConnection("MODBUS-PLC", c);
ins.startConnection("MODBUS-PLC");
ins.writeLog("INFO", "Connection", "MODBUS-PLC → 192.168.1.100");
}
main();