Ich habe mal ein Script erstellt was SPS Instanzen anlegt aber leider werden diese nicht Aktualisiert. Testcenter Ein/Aus geht auch nicht. Wenn ich eine davon von Hand erstelle geht es also muss etwas beim Script fehlen.
Hat jemand ne idee was das Problem ist ?
Achtung Texte und GUID gekürzt.
<?
$DB = 308;
$Byte = 0;
$Bit = 0;
$Area = 7;
$Typ = 0;
$adr = 0; //Start
$cnt = 778; //Anzahl
$Name = array(
0 => 'R00 - Quittieren',
1 => 'R00 - Quittieren System',
2 => 'R00 - Alarmanlage Intern Statuswechsel',
776 => 'R054 - Reserve 38',
777 => 'R054 - Reserve 39',
778 => 'R054 - Reserve 40');
var_dump($Name );
for($i=0; $i<$cnt; $i++)
{
$Is = $Name[$adr];
if(stristr($Is, 'Reserve') === FALSE)
{
$InsID = IPS_CreateInstance("{xxxx}");
IPS_SetName($InsID, $Is); // Instanz benennen
IPS_SetParent($InsID, 50777 /*[SPS\VISU Steuern]*/); // Instanz einsortieren unter dem Objekt mit der ObjektID "12345"
//Konfiguration
IPS_SetProperty($InsID, "Address", $Byte); // Byte Nummer
IPS_SetProperty($InsID, "Area", $Area); //4-"Inputs" 5-"Outputs" 6-"Merkers" 7-"Datablock" 13-"Peripherals"
IPS_SetProperty($InsID, "AreaAddress", $DB); // DB Nummer
IPS_SetProperty($InsID, "Bit", $Bit); // Bit Nummer
IPS_SetProperty($InsID, "DataType", $Typ); //0-"Bool" 1-"Byte" 2-"Word" 3-"DWord" 4-"ShortInt" 5-"SmallInt" 6-"Integer" 7-"Real"
IPS_SetProperty($InsID, "EmulateStatus", "0");
IPS_SetProperty($InsID, "Factor", "0");
IPS_SetProperty($InsID, "Poller", "500");
IPS_SetProperty($InsID, "ReadOnly", False);
IPS_ApplyChanges($InsID);
}
$Bit ++;
if ($Bit > 7)
{
$Bit = 0;
$Byte ++;
}
$adr++;
}
?>