Hallo Zusammen,
ist es möglich die Vorbelegung einer Siemens S7 Instanz zu ändern? (siehe Markierungen im Anhang)
Ich möchte das Intervall und den DB nicht immer neu eingeben müssen. (Will auch kein Skript zum Anlegen verwenden)
Hallo Zusammen,
ist es möglich die Vorbelegung einer Siemens S7 Instanz zu ändern? (siehe Markierungen im Anhang)
Ich möchte das Intervall und den DB nicht immer neu eingeben müssen. (Will auch kein Skript zum Anlegen verwenden)
was stört dich an einem Script;
kurz oben die Daten eingeben; ausführen drücken, fertig
schneller geht es kaum
Gruß
bastelfrosch
Nein das ist nicht möglich. Mit einem Skript würdest du dir wirklich am schnellsten selber helfen können.
paresy
Ok, danke.
Ich schau mir dann die Skriptsache nocheinmal an
Hallo MrEASY,
habe nun mal einen Testscript erstellt der deine Aufgabe übernehmen könnte …
<?
$S7_ParentInstanz_ID = 13017 /*[S7_TESTSTEUERUNG]*/ ;
//index0 = INSTANCENAME der S7-Instanz
//
//index1.0 = TYP (0=bit, 1=byte, 2=word, 3=dword,
// 4=ShortInt, 5=SmallInt, 6=Integer, 7=Real)
//index1.1 = AREA (0=SystemInfo, 1=SystemFlags,
// 2=AnalogInput CPU200, 3=AnalogOutput CPU200,
// 4=Input, 5=Output, 6=Flags, 7=Datablock,
// 8=InstanzDaten, 9=LokaleDaten, 10=UnknownedArea
// 11=Zaehler, 12=Timer, 13=PEW/PAW)
//index1.2 = AREAADDRESS (Baustein)
//index1.3 = ADDRES (StartByte)
//index1.4 = BIT (Bit = wird nur bei TYP=0 verarbeitet)
//index1.5 = POOLER (PoolInterval in ms)
//index1.6 = READONLY (ReadOnlyFlag)
//index1.7 = EMULATESTATUS (EmulationsStatus)
//index1.8 = STATUSVARIABLENNAME (Name der Statusvariable wenn ungleich "")
//index1.9 = USERVARIABLENPROFIL (Uservariablenprofil wenn ungleich "")
//index1.10 = ACTIONSCRIPT (Actionscript wenn ungleich 0)
$S7_INSTANCE_IDs = array("M0.1" => array(0,6, 0, 0,1, 0,0,1, "" ,"B_ICON_NOTAUS" ,26768),
"TEST_DB" => array(2,7,10,26,0,60000,0,1, "TEST","" ,0 ));
CreateChange_S7_Instances($S7_ParentInstanz_ID,$S7_INSTANCE_IDs);
//*****************************************************************
// FUNCTION
//*****************************************************************
function CreateChange_S7_Instances($S7_ParentInstanz_ID,$S7_INSTANCE_IDs)
{
while($S7_VAR_ID = each($S7_INSTANCE_IDs))
{
$Check_ID = @IPS_GetInstanceIDByName($S7_VAR_ID[0],IPS_GetObject($_IPS['SELF'])['ParentID']);
if ( ($Check_ID) == 0 ||
(IPS_GetInstance($Check_ID)['ModuleInfo']['ModuleID'] != "{932076B1-B18E-4AB6-AB6D-275ED30B62DB}")
)
{
//INSTANZ mit diesen Namen existiert nicht
$S7_Instanz_ID = IPS_CreateInstance("{932076B1-B18E-4AB6-AB6D-275ED30B62DB}");
//Instanz auf Scriptebene anlegen
IPS_SetParent($S7_Instanz_ID,IPS_GetObject($_IPS['SELF'])['ParentID']);
//Instanzname aendern
IPS_SetName($S7_Instanz_ID,$S7_VAR_ID[0]);
IPS_LogMessage($_IPS['SELF'], "Generiere neue S7-Instance '" . $S7_Instanz_ID . " - " . $S7_VAR_ID[0] . "'");
}
else
{
$S7_Instanz_ID = $Check_ID;
}
if (IPS_IsInstanceCompatible($S7_Instanz_ID,$S7_ParentInstanz_ID) == true)
{
IPS_DisconnectInstance($S7_Instanz_ID);
IPS_ConnectInstance($S7_Instanz_ID,$S7_ParentInstanz_ID);
IPS_LogMessage($_IPS['SELF'], "Verbindungsinstance zur S7-Instance '" . $S7_Instanz_ID . " ==> " . $S7_ParentInstanz_ID . "'");
}
IPS_LogMessage($_IPS['SELF'], "S7-Instance '" . $S7_Instanz_ID . " - " . $S7_VAR_ID[0] . "' konfigurieren");
//Instanz konfigurieren
IPS_SetProperty($S7_Instanz_ID,"DataType",$S7_VAR_ID[1][0]);
IPS_SetProperty($S7_Instanz_ID,"Area",$S7_VAR_ID[1][1]);
IPS_SetProperty($S7_Instanz_ID,"AreaAddress",$S7_VAR_ID[1][2]);
IPS_SetProperty($S7_Instanz_ID,"Address",$S7_VAR_ID[1][3]);
IPS_SetProperty($S7_Instanz_ID,"Bit",$S7_VAR_ID[1][4]);
IPS_SetProperty($S7_Instanz_ID,"Poller",$S7_VAR_ID[1][5]);
IPS_SetProperty($S7_Instanz_ID,"ReadOnly",$S7_VAR_ID[1][6]);
IPS_SetProperty($S7_Instanz_ID,"EmulateStatus",$S7_VAR_ID[1][7]);
IPS_ApplyChanges($S7_Instanz_ID);
if ($S7_VAR_ID[1][8] != "")
{
IPS_SetName(IPS_GetObjectIDByIdent("Value",$S7_Instanz_ID), $S7_VAR_ID[1][8]);
}
else
{
//aendern auf ORIGNALNAME
IPS_SetName(IPS_GetObjectIDByIdent("Value",$S7_Instanz_ID),"Value");
}
if ($S7_VAR_ID[1][9] != "")
{
IPS_SetVariableCustomProfile(IPS_GetObjectIDByIdent("Value",$S7_Instanz_ID), $S7_VAR_ID[1][9]);
}
else
{
//Variablenprofil loeschen
IPS_SetVariableCustomProfile(IPS_GetObjectIDByIdent("Value",$S7_Instanz_ID), "");
}
if ($S7_VAR_ID[1][10] >= 1)
{
IPS_SetVariableCustomAction(IPS_GetObjectIDByIdent("Value",$S7_Instanz_ID), $S7_VAR_ID[1][10]);
}
else
{
//Actionscript loeschen
IPS_SetVariableCustomAction(IPS_GetObjectIDByIdent("Value",$S7_Instanz_ID), 0);
}
}
}
?>
… weiters schau Dir doch auch mal diesen Threads an (LINK)
tgusi74
S7_TESTSCRIPT.zip (13.3 KB)
super, Danke.
Hallo,
was ich vergessen habe zu posten ist das WF_S7_ACTIONSCRIPT !!!
Viel Spass,
tgusi74
WF_S7_ACTIONSCRIPT.zip (1.25 KB)