Neue Siemens Logo 0BA7 über Ethernet an IPS ???

Morgen kann ich es prüfen.
Einfach ein Script erstellen und den Code einfügen? Ist das alles, oder muss ich noch etwas beachten?

mfg
caesar

Hallo caesar,

Deine ObjektID (die der LOGO in den I/O-Instanzen musst Du selbstverständlich anpassen…:wink:

Bei mir funktioniert es!
Noch schöner wäre selbstverständlich, wenn man den Fehler „abfangen“ könnte und dann das Skript „automatisch“ ausführen könnte bevor der Fehler offensichtlich wird - aber daran arbeiten wir noch…:slight_smile:

Joachim

Da ich mich mit Skript noch nicht gut auskenne, hab ich es jetzt doch in der Logo programmiert. Funktioniert tadellos.

mfg
caesar

Gerade getestet. Funktioniert, wenn man es manuell ausführt.

mfg
caesar

Hallo Leute,

wenn die LOGO kurz den Status gewechselt hat oder kurz offline war erscheint bei einem Befehl folgende Fehlermeldung:

Warning: Timeout when waiting for PLC response in D:\IP-Symcon\Installation\scripts\Technikraumlicht_Schalten.ips.php on line 3

In der Zeile drei steht:

S7_WriteBit(19146 /*[Garage\LOGO NE 0/1 Technikraum]*/,true);

Wie kann ich den Fehler „abfangen“ und folgendes Skript ausführen:

S7_SetOpen(40477, false); 
IPS_ApplyChanges(40477 /*[Siemens S7]*/); 
IPS_Sleep(500); 
S7_SetOpen(40477, True); 
IPS_ApplyChanges(40477 /*[Siemens S7]*/);  

Joachim

Fehler unterdrücken und Status abfragen
zB:


$result = @S7_WriteBit(19146 /*[Garage\LOGO NE 0/1 Technikraum]*/,true);  
if ($result==false) {
   S7_SetOpen(40477, false); 
   IPS_ApplyChanges(40477 /*[Siemens S7]*/);   
   IPS_Sleep(500);  
   S7_SetOpen(40477, True); 
   IPS_ApplyChanges(40477 /*[Siemens S7]*/);  
   S7_WriteBit(19146 /*[Garage\LOGO NE 0/1 Technikraum]*/,true);  
}

siehe auch:
S7_WriteBit: IP-Symcon :: Automatisierungssoftware

Hallo Andreas,

das „@“ war wohl das was mir bei meinen zahlreichen „Versuchen“ fehlte…:wink:

Danke für Deine Antwort!

Joachim

Die neue Logo 0ba7 hat ja leider nur 2 Analogausgänge.
Ich benötige allerdings 4 Analogausgänge. Welche Möglichkeiten gibt es, irgendwie noch 2 weitere Analogausgänge anzusteuern?
Vielleicht irgendwie durch Multiplexing?

mfg
caesar

Hallo caesar,

Denkbar wäre das sicher schon…
Mit zwei der digitalen Ausgänge „sendest“ Du die Werte an zwei Speicher, die den Analogwerte solange halten, bis an neuer Wert kommt…
Kannst Du an die Logo nur eine Analog-Erweiterung andocken??

Joachim

Die neue Logo unterstützt leider nur ein Analogmodul mit zwei Ausgängen.
Den Ansatz mit zwei Speicher finde ich schon mal gut.
Komm leider erst wieder übernächste Woche zum testen. Urlaub ist angesagt.
Auch das Script zum Statuswechsel nach der Logo-Programmierung werd ich dann testen.

mfg
caesar

[QUOTE=Brownson;158187]Fehler unterdrücken und Status abfragen
zB:


$result = @S7_WriteBit(19146 /*[Garage\LOGO NE 0/1 Technikraum]*/,true);  
if ($result==false) {
   S7_SetOpen(40477, false); 
   IPS_ApplyChanges(40477 /*[Siemens S7]*/);   
   IPS_Sleep(500);  
   S7_SetOpen(40477, True); 
   IPS_ApplyChanges(40477 /*[Siemens S7]*/);  
   S7_WriteBit(19146 /*[Garage\LOGO NE 0/1 Technikraum]*/,true);  
}

Hallo Gemeinde,
der Code funktioniert bei mir leider nicht. Es wird unter Meldungen praktisch der Code von oben angezeigt. Es gibt aber keine Aktion. Natürlich habe ich die ID`s angepasst. Mein Code sieht so aus:

$result = @S7_WriteBit(27876 /[Logo\Logo_Netzwerk_6.0]/ ,true);
if ($result==false) {
S7_SetOpen(33630 /[Siemens S7]/, false);
IPS_ApplyChanges(33630 /[Siemens S7]/ );
IPS_Sleep(500);
S7_SetOpen(33630 /[Siemens S7]/, True);
IPS_ApplyChanges(33630 /[Siemens S7]/ );
S7_WriteBit(27876 /[Logo\Logo_Netzwerk_6.0]/ ,true);
}

Was mache ich falsch?
!-------------------------------------------------------------------------------------------------!
Habe den Fehler selber gefunden.

Wie dumm von mir aber ich habe die
>?

?>
zwischen dem Code vergessen.

Sachen gibt`s.

Hallo Sascha,

fehlt bei Dir zu Beginn des Skriptes vielleicht das „<?“??
Hast Du die ID angepasst?

Joachim

Hallo Joachim,

danke für Deine Antwort. Habe den Fehler grade eben gefunden.
Es waren wirklich die <? ?>.

Ist schon spät…

Das mit dem wiederverbinden ist echt stark. Endlich mal ein Tag wo alles was ich Steuern wollte, sofort reagiert hat. Und alles ohne auch nur einmal manuell neu zu verbinden.

Danke.

PS: Ihr hattet recht. IPS macht süchtig.
:loveips:

Hallo, ich möchte, wenn ein Online-Gerät ausfällt, einen Merker setzen und den an die Logo weiterleiten.
Das Script zur Onlineüberwachung funktioniert und den Merker kann ich auch „händisch“ setzen.
Bei meinem Script allerdings wird der Merker immer gesetzt, auch wenn ein Gerät offline ist. Was mach ich falsch?

mfg

<?
foreach(IPS_GetChildrenIDs($IPS_SELF) as $item){ // alle Unterobjekte
$id_info = IPS_GetObject($item);
$id_typ = $id_info[‚ObjectType‘];
if ($id_typ == 2){ // nur bei Variablen
$id_adr = $id_info[‚ObjectInfo‘];
$ping = Sys_Ping($id_adr, 1000); // Ping max. 2 Sek. warten
if($IPS_SENDER == „Execute“) { // zum Testen
echo "IP: $id_adr
";
echo "Ping: " .(int)$ping. "

";
}
SetValue($item, $ping); // Ping-Ergnis speichern
}
}
$ThermometerEG = getValueBoolean(„ThermometerEG“);
if (ThermometerEG == true)
{
S7_WriteBit(42900 /[Logos\Logo Bit setzen]/,true);
}
else
{
S7_WriteBit(42900 /[Logos\Logo Bit setzen]/,false);
}
?>

Netzwerk.JPG

Hallo caesar,

was „versteckt“ sich denn hinter der ObjektID 42900?

Joachim

Siemens S7-Instanz
Prinzipiell funktioniert ja das Setzen des Merkers.
Nur über das Script wird nicht erkannt, wenn ein Gerät offline ist.

mfg

S7_Instanz.JPG

if (ThermometerEG == true)

Fehlt da nicht das „$“ ?

Erwin

Stimmt. Jetzt kommt folgende Fehlermeldung:
Warning: Wrong parameter type for getvalueboolean() in [Netzwerk] on line 15

Line15: $ThermometerEG = getValueBoolean(„ThermometerEG“);

Der ThermometerEG wird doch auf boolean abgfragt, wieso dann ein falscher Paramater-typ?

mfg

Du solltest Code-Tags benutzen, findet man ganz rechts oben hier im Schreib-Dialog.

Wenn Du das Wort ThermometerEG mal markierst und dann mit der rechten Maustaste im Contexmenue : Objekt suchen anwählst, es hoffentlich auch findest, dann steht nach dem Anklicken auch die richtige Variable MIT ObjektID in der Zeile.

Gruß…ohne Namen