Hallo Patrick,
dachte ja, Du würdest dein Ergebniss hier mal posten, ist aber nicht so. Alles muss man selber machen.
Hier mal zum erstellen einer x beliebigen Anzahl von Instanzen mit fortlaufenden Adressen.
$katID = IPS_GetCategoryIDByName("Wago Modbus Instanzen", 0); // Kategorie
$anzahl = 1; // Anzahl der zu erstellenden Instanzen
$datenTyp = 0; // 0=Bit, 1=Byte, 2=Word, 3=DWord, 4=ShortInt, 5=SmallInt, 6=Integer, 7=Real
$modulName = "Ausgang ";
$adresse = 514; // ab Adresse
$time = 1000; // Aktualisierungzeit in ms
$nurLesen = false; // true oder false
for($i=0; $i<$anzahl; $i++)
{
$neueInstanz = IPS_CreateInstance("{CB197E50-273D-4535-8C91-BB35273E3CA5}");
IPS_SetName($neueInstanz, $modulName.$adresse);
ModBus_SetType($neueInstanz, $datenTyp);
ModBus_SetWriteAddress($neueInstanz, $adresse);
ModBus_SetReadAddress($neueInstanz, $adresse);
ModBus_SetPoller($neueInstanz, $time);
ModBus_SetReadOnly($neueInstanz, $nurLesen);
IPS_ApplyChanges($neueInstanz);
IPS_SetParent($neueInstanz, $katID);
$adresse++;
}
und mal als Funktion z.B als Aufruf in einem Script.
createModbusDevice(0, "Ausgang ", 514, 1000, false); // Instanz erstellen
function createModbusDevice($datenTyp, $modulName, $adresse, $time, $nurLesen)
{
global $IPS_SELF;
$neueInstanz = IPS_CreateInstance("{CB197E50-273D-4535-8C91-BB35273E3CA5}");
IPS_SetName($neueInstanz, $modulName.$adresse);
ModBus_SetType($neueInstanz, $datenTyp);
ModBus_SetWriteAddress($neueInstanz, $adresse);
ModBus_SetReadAddress($neueInstanz, $adresse);
ModBus_SetPoller($neueInstanz, $time);
ModBus_SetReadOnly($neueInstanz, $nurLesen);
IPS_SetParent($neueInstanz, $IPS_SELF);
IPS_ApplyChanges($neueInstanz);
}